From owner-freebsd-net@FreeBSD.ORG Mon Jan 25 22:10:50 2010 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC386106566C; Mon, 25 Jan 2010 22:10:50 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from tarsier.geekcn.org (tarsier.geekcn.org [IPv6:2001:470:a803::1]) by mx1.freebsd.org (Postfix) with ESMTP id B27AE8FC18; Mon, 25 Jan 2010 22:10:48 +0000 (UTC) Received: from mail.geekcn.org (tarsier.geekcn.org [211.166.10.233]) by tarsier.geekcn.org (Postfix) with ESMTP id 927C3A57A6C; Tue, 26 Jan 2010 06:10:47 +0800 (CST) X-Virus-Scanned: amavisd-new at geekcn.org Received: from tarsier.geekcn.org ([211.166.10.233]) by mail.geekcn.org (mail.geekcn.org [211.166.10.233]) (amavisd-new, port 10024) with LMTP id gHSKyhUBleUe; Tue, 26 Jan 2010 06:10:40 +0800 (CST) Received: from delta.delphij.net (drawbridge.ixsystems.com [206.40.55.65]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tarsier.geekcn.org (Postfix) with ESMTPSA id 8C52FA57A21; Tue, 26 Jan 2010 06:10:38 +0800 (CST) DomainKey-Signature: a=rsa-sha1; s=default; d=delphij.net; c=nofws; q=dns; h=message-id:date:from:reply-to:organization:user-agent: mime-version:to:cc:subject:x-enigmail-version:openpgp:content-type; b=Ii+5YEmfqUja/3ullKNdx72RKb5g01FU8u6kYf5LU0c3lBNibGs3hz7UNUVeVl7Fx P5sU7uQKPXA2hxOCopHzQ== Message-ID: <4B5E16DB.2080203@delphij.net> Date: Mon, 25 Jan 2010 14:10:35 -0800 From: Xin LI Organization: The Geek China Organization User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.1.7) Gecko/20100122 Thunderbird/3.0.1 ThunderBrowse/3.2.8.1 MIME-Version: 1.0 To: freebsd-net@freebsd.org X-Enigmail-Version: 1.0 OpenPGP: id=3FCA37C1; url=http://www.delphij.net/delphij.asc Content-Type: multipart/mixed; boundary="------------090205010302020105020607" Cc: delphij@freebsd.org, Robert Watson , jhb@freebsd.org Subject: [PATCH] Interface description X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: d@delphij.net List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jan 2010 22:10:50 -0000 This is a multi-part message in MIME format. --------------090205010302020105020607 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I have revised the patchset based on feedback received. This version: - Unbreak the case when libpcap is being built for pre-ifdescr world. - Documents the descr and -descr primitives for ifconfig(8), they are intended for OpenBSD compatibility. - Simplify and concentrate memory allocation in ifconfig(8) - Document the use of nul terminated buffer and the meaning of length parameter - Use char* instead of sbuf and simplify the logic in kernel part. Hopefully this version would address all problems raised by reviewers. Comments? Cheers, - -- Xin LI http://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iQEcBAEBAgAGBQJLXhbbAAoJEATO+BI/yjfBWg8IAJTruuq7gMcB3SS/CP7hhRPN 2lN7N3NxTz9V1s4mkzZ4/EFtM+mpwn30PYlZ7Q4t9QdPgnUbH54hQt+FJU1EHSnd U+CyilDA7kR7AlnAv9Rk7RxjF/zq19JiVIbZn3DZFQI20EpfFap/PzbdGWNZiGtz Lp7Q7v7/FgIk5dwNtjbXnyd9sOAc67oBi33rd6KOORKZLtzDz3xZYuTaasT1ZGfp LtCWRHKeMcFR0lHr3meEYxzkj8C48UIoTvp486vgak2hcE1ez7fgCJb+lvEbIxxs x5h5g+330z5XG0vHJLFyNQEs8oMTh5KihqcOD0/nBONYryXJnOmvskm3c64zJko= =mElq -----END PGP SIGNATURE----- --------------090205010302020105020607 Content-Type: text/plain; name="ifdescr.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ifdescr.diff" SW5kZXg6IGNvbnRyaWIvbGlicGNhcC9pbmV0LmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY29udHJp Yi9saWJwY2FwL2luZXQuYwkocmV2aXNpb24gMjAyOTc5KQorKysgY29udHJpYi9saWJwY2Fw L2luZXQuYwkod29ya2luZyBjb3B5KQpAQCAtNDAxLDExICs0MDEsMTYgQEAgYWRkX2FkZHJf dG9faWZsaXN0KHBjYXBfaWZfdCAqKmFsbGRldnMsIGNvbnN0IGNoYXIKIAlwY2FwX2lmX3Qg KmN1cmRldjsKIAljaGFyICpkZXNjcmlwdGlvbiA9IE5VTEw7CiAJcGNhcF9hZGRyX3QgKmN1 cmFkZHIsICpwcmV2YWRkciwgKm5leHRhZGRyOworCWludCBzOwogI2lmZGVmIFNJT0NHSUZE RVNDUgogCXN0cnVjdCBpZnJlcSBpZnJkZXNjOworI2lmbmRlZiBJRkRFU0NSU0laRQorI2Rl ZmluZSBfSUZERVNDUlNJWkUgNjQKKwljaGFyIGlmZGVzY3JbX0lGREVTQ1JTSVpFXTsKKyNl bHNlCiAJY2hhciBpZmRlc2NyW0lGREVTQ1JTSVpFXTsKLQlpbnQgczsKICNlbmRpZgorI2Vu ZGlmCiAKICNpZmRlZiBTSU9DR0lGREVTQ1IKIAkvKgpAQCAtNDEzLDEyICs0MTgsMTcgQEAg YWRkX2FkZHJfdG9faWZsaXN0KHBjYXBfaWZfdCAqKmFsbGRldnMsIGNvbnN0IGNoYXIKIAkg Ki8KIAltZW1zZXQoJmlmcmRlc2MsIDAsIHNpemVvZiBpZnJkZXNjKTsKIAlzdHJsY3B5KGlm cmRlc2MuaWZyX25hbWUsIG5hbWUsIHNpemVvZiBpZnJkZXNjLmlmcl9uYW1lKTsKKyNpZmRl ZiBfX0ZyZWVCU0RfXworCWlmcmRlc2MuaWZyX2J1ZmZlci5idWZmZXIgPSBpZmRlc2NyOwor CWlmcmRlc2MuaWZyX2J1ZmZlci5sZW5ndGggPSBzaXplb2YoaWZkZXNjcik7CisjZWxzZQog CWlmcmRlc2MuaWZyX2RhdGEgPSAoY2FkZHJfdCkmaWZkZXNjcjsKKyNlbmRpZgogCXMgPSBz b2NrZXQoQUZfSU5FVCwgU09DS19ER1JBTSwgMCk7CiAJaWYgKHMgPj0gMCkgewogCQlpZiAo aW9jdGwocywgU0lPQ0dJRkRFU0NSLCAmaWZyZGVzYykgPT0gMCAmJgotCQkgICAgc3RybGVu KGlmcmRlc2MuaWZyX2RhdGEpICE9IDApCi0JCQlkZXNjcmlwdGlvbiA9IGlmcmRlc2MuaWZy X2RhdGE7CisJCSAgICBzdHJsZW4oaWZkZXNjcikgIT0gMCkKKwkJCWRlc2NyaXB0aW9uID0g aWZkZXNjcjsKIAkJY2xvc2Uocyk7CiAJfQogI2VuZGlmCkluZGV4OiBzYmluL2lmY29uZmln L2lmY29uZmlnLjgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc2Jpbi9pZmNvbmZpZy9pZmNvbmZpZy44 CShyZXZpc2lvbiAyMDI5NzkpCisrKyBzYmluL2lmY29uZmlnL2lmY29uZmlnLjgJKHdvcmtp bmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIC5cIiAgICAgRnJvbTogQCgjKWlmY29uZmln LjgJOC4zIChCZXJrZWxleSkgMS81Lzk0CiAuXCIgJEZyZWVCU0QkCiAuXCIKLS5EZCBTZXB0 ZW1iZXIgMjMsIDIwMDkKKy5EZCBKYW51YXJ5IDI1LCAyMDEwCiAuRHQgSUZDT05GSUcgOAog Lk9zCiAuU2ggTkFNRQpAQCAtMjU4LDYgKzI1OCwxMiBAQCBEaXNhYmxlIHBlcm1hbmVudGx5 IHByb21pc2N1b3VzIG1vZGUuCiBBbm90aGVyIG5hbWUgZm9yIHRoZQogLkZsIGFsaWFzCiBw YXJhbWV0ZXIuCisuSXQgQ20gZGVzY3JpcHRpb24gQXIgdmFsdWUgLCBDbSBkZXNjciBBciB2 YWx1ZQorU3BlY2lmeSBhIGRlc2NyaXB0aW9uIG9mIHRoZSBpbnRlcmZhY2UuCitUaGlzIGNh biBiZSB1c2VkIHRvIGxhYmVsIGludGVyZmFjZXMgaW4gc2l0dWF0aW9ucyB3aGVyZSB0aGV5 IG1heQorb3RoZXJ3aXNlIGJlIGRpZmZpY3VsdCB0byBkaXN0aW5ndWlzaC4KKy5JdCBDbSAt ZGVzY3JpcHRpb24gLCBDbSAtZGVzY3IKK0NsZWFyIHRoZSBpbnRlcmZhY2UgZGVzY3JpcHRp b24uCiAuSXQgQ20gZG93bgogTWFyayBhbiBpbnRlcmZhY2UKIC5EcSBkb3duIC4KQEAgLTI1 MTIsNiArMjUxOCwxMCBAQCBDb25maWd1cmUgdGhlIGludGVyZmFjZQogdG8gdXNlIDEwMGJh c2VUWCwgZnVsbCBkdXBsZXggRXRoZXJuZXQgbWVkaWEgb3B0aW9uczoKIC5EbCAjIGlmY29u ZmlnIHhsMCBtZWRpYSAxMDBiYXNlVFggbWVkaWFvcHQgZnVsbC1kdXBsZXgKIC5QcAorTGFi ZWwgdGhlIGVtMCBpbnRlcmZhY2UgYXMgYW4gdXBsaW5rOgorLlBwCisuRGwgIyBpZmNvbmZp ZyBlbTAgZGVzY3JpcHRpb24gXCYiVXBsaW5rIHRvIEdpZ2FiaXQgU3dpdGNoIDJcJiIKKy5Q cAogQ3JlYXRlIHRoZSBzb2Z0d2FyZSBuZXR3b3JrIGludGVyZmFjZQogLkxpIGdpZjEgOgog LkRsICMgaWZjb25maWcgZ2lmMSBjcmVhdGUKSW5kZXg6IHNiaW4vaWZjb25maWcvaWZjb25m aWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBzYmluL2lmY29uZmlnL2lmY29uZmlnLmMJKHJldmlz aW9uIDIwMjk3OSkKKysrIHNiaW4vaWZjb25maWcvaWZjb25maWcuYwkod29ya2luZyBjb3B5 KQpAQCAtNDQsNyArNDQsNiBAQCBzdGF0aWMgY29uc3QgY2hhciByY3NpZFtdID0KICNpbmNs dWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KICNpbmNsdWRlIDxz eXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgogI2luY2x1ZGUgPHN5cy90 aW1lLmg+CiAjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgogI2luY2x1ZGUgPHN5cy9saW5rZXIu aD4KQEAgLTgzLDYgKzgyLDggQEAgc3RhdGljIGNvbnN0IGNoYXIgcmNzaWRbXSA9CiBzdHJ1 Y3QJaWZyZXEgaWZyOwogCiBjaGFyCW5hbWVbSUZOQU1TSVpdOworY2hhcgkqZGVzY3IgPSBO VUxMOworc2l6ZV90CWRlc2NybGVuID0gNjQ7CiBpbnQJc2V0YWRkcjsKIGludAlzZXRtYXNr OwogaW50CWRvYWxpYXM7CkBAIC04MzgsNiArODM5LDM1IEBAIHNldGlmbmFtZShjb25zdCBj aGFyICp2YWwsIGludCBkdW1teSBfX3VudXNlZCwgaW50CiAJZnJlZShuZXduYW1lKTsKIH0K IAorLyogQVJHU1VTRUQgKi8KK3N0YXRpYyB2b2lkCitzZXRpZmRlc2NyKGNvbnN0IGNoYXIg KnZhbCwgaW50IGR1bW15IF9fdW51c2VkLCBpbnQgcywgCisgICAgY29uc3Qgc3RydWN0IGFm c3d0Y2ggKmFmcCkKK3sKKwljaGFyICpuZXdkZXNjcjsKKworCW5ld2Rlc2NyID0gc3RyZHVw KHZhbCk7CisJaWYgKG5ld2Rlc2NyID09IE5VTEwpIHsKKwkJd2Fybigibm8gbWVtb3J5IHRv IHNldCBpZmRlc2NyIik7CisJCXJldHVybjsKKwl9CisKKwlpZnIuaWZyX2J1ZmZlci5idWZm ZXIgPSBuZXdkZXNjcjsKKwlpZnIuaWZyX2J1ZmZlci5sZW5ndGggPSBzdHJsZW4obmV3ZGVz Y3IpICsgMTsKKwlpZiAoaW9jdGwocywgU0lPQ1NJRkRFU0NSLCAoY2FkZHJfdCkmaWZyKSA8 IDApCisJCXdhcm4oImlvY3RsIChzZXQgZGVzY3IpIik7CisKKwlmcmVlKG5ld2Rlc2NyKTsK K30KKworLyogQVJHU1VTRUQgKi8KK3N0YXRpYyB2b2lkCit1bnNldGlmZGVzY3IoY29uc3Qg Y2hhciAqdmFsLCBpbnQgdmFsdWUsIGludCBzLCBjb25zdCBzdHJ1Y3QgYWZzd3RjaCAqYWZw KQoreworCisJc2V0aWZkZXNjcigiIiwgMCwgcywgMCk7Cit9CisKICNkZWZpbmUJSUZGQklU UyBcCiAiXDAyMFwxVVBcMkJST0FEQ0FTVFwzREVCVUdcNExPT1BCQUNLXDVQT0lOVE9QT0lO VFw2U01BUlRcN1JVTk5JTkciIFwKICJcMTBOT0FSUFwxMVBST01JU0NcMTJBTExNVUxUSVwx M09BQ1RJVkVcMTRTSU1QTEVYXDE1TElOSzBcMTZMSU5LMVwxN0xJTksyIiBcCkBAIC04ODIs NiArOTEyLDIyIEBAIHN0YXR1cyhjb25zdCBzdHJ1Y3QgYWZzd3RjaCAqYWZwLCBjb25zdCBz dHJ1Y3Qgc29jCiAJCXByaW50ZigiIG10dSAlZCIsIGlmci5pZnJfbXR1KTsKIAlwdXRjaGFy KCdcbicpOwogCisJZG8geworCQlpZiAoKGRlc2NyID0gcmVhbGxvY2YoZGVzY3IsIGRlc2Ny bGVuKSkgIT0gTlVMTCkgeworCQkJaWZyLmlmcl9idWZmZXIuYnVmZmVyID0gZGVzY3I7CisJ CQlpZnIuaWZyX2J1ZmZlci5sZW5ndGggPSBkZXNjcmxlbjsKKwkJCWlmIChpb2N0bChzLCBT SU9DR0lGREVTQ1IsICZpZnIpID09IDApIHsKKwkJCSAgICBpZiAoc3RybGVuKGRlc2NyKSA+ IDApCisJCQkJcHJpbnRmKCJcdGRlc2NyaXB0aW9uOiAlc1xuIiwgZGVzY3IpOworCQkJfSBl bHNlIGlmIChlcnJubyA9PSBFTkFNRVRPT0xPTkcpIHsKKwkJCQlkZXNjcmxlbiAqPSAyOwor CQkJCWNvbnRpbnVlOworCQkJfQorCQl9IGVsc2UKKwkJCXdhcm4oInVuYWJsZSB0byBhbGxv Y2F0ZSBtZW1vcnkgZm9yIGludGVyZmFjZSIKKwkJCSAgICAiZGVzY3JpcHRpb24iKTsKKwl9 IHdoaWxlICgwKTsKKwogCWlmIChpb2N0bChzLCBTSU9DR0lGQ0FQLCAoY2FkZHJfdCkmaWZy KSA9PSAwKSB7CiAJCWlmIChpZnIuaWZyX2N1cmNhcCAhPSAwKSB7CiAJCQlwcmludGIoIlx0 b3B0aW9ucyIsIGlmci5pZnJfY3VyY2FwLCBJRkNBUEJJVFMpOwpAQCAtMTA1MSw2ICsxMDk3 LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgY21kIGJhc2ljX2NtZHNbXSA9IHsKIAlERUZfQ01EKCIt YXJwIiwJCUlGRl9OT0FSUCwJc2V0aWZmbGFncyksCiAJREVGX0NNRCgiZGVidWciLAlJRkZf REVCVUcsCXNldGlmZmxhZ3MpLAogCURFRl9DTUQoIi1kZWJ1ZyIsCS1JRkZfREVCVUcsCXNl dGlmZmxhZ3MpLAorCURFRl9DTURfQVJHKCJkZXNjcmlwdGlvbiIsCQlzZXRpZmRlc2NyKSwK KwlERUZfQ01EX0FSRygiZGVzY3IiLAkJCXNldGlmZGVzY3IpLAorCURFRl9DTUQoIi1kZXNj cmlwdGlvbiIsCTAsCQl1bnNldGlmZGVzY3IpLAorCURFRl9DTUQoIi1kZXNjciIsCTAsCQl1 bnNldGlmZGVzY3IpLAogCURFRl9DTUQoInByb21pc2MiLAlJRkZfUFBST01JU0MsCXNldGlm ZmxhZ3MpLAogCURFRl9DTUQoIi1wcm9taXNjIiwJLUlGRl9QUFJPTUlTQywJc2V0aWZmbGFn cyksCiAJREVGX0NNRCgiYWRkIiwJCUlGRl9VUCwJCW5vdGVhbGlhcyksCkluZGV4OiBzaGFy ZS9tYW4vbWFuNC9uZXRpbnRyby40Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNoYXJlL21hbi9tYW40 L25ldGludHJvLjQJKHJldmlzaW9uIDIwMjk3OSkKKysrIHNoYXJlL21hbi9tYW40L25ldGlu dHJvLjQJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIC5cIiAgICAgQCgjKW5l dGludHJvLjQJOC4yIChCZXJrZWxleSkgMTEvMzAvOTMKIC5cIiAkRnJlZUJTRCQKIC5cIgot LkRkIEp1bmUgMTgsIDIwMDQKKy5EZCBKYW51YXJ5IDI1LCAyMDEwCiAuRHQgTkVUSU5UUk8g NAogLk9zCiAuU2ggTkFNRQpAQCAtMjA0LDYgKzIwNCw3IEBAIHN0cnVjdAlpZnJlcSB7CiAg ICAgICAgIHN0cnVjdCAgICBzb2NrYWRkciBpZnJ1X2FkZHI7CiAgICAgICAgIHN0cnVjdCAg ICBzb2NrYWRkciBpZnJ1X2RzdGFkZHI7CiAgICAgICAgIHN0cnVjdCAgICBzb2NrYWRkciBp ZnJ1X2Jyb2FkYWRkcjsKKyAgICAgICAgc3RydWN0IHsgc2l6ZV90IGxlbmd0aDsgY2FkZHJf dCBidWZmZXI7IH0gaWZydV9idWZmZXI7CiAgICAgICAgIHNob3J0ICAgICBpZnJ1X2ZsYWdz WzJdOwogICAgICAgICBzaG9ydCAgICAgaWZydV9pbmRleDsKICAgICAgICAgaW50ICAgICAg IGlmcnVfbWV0cmljOwpAQCAtMjE2LDYgKzIxNyw3IEBAIHN0cnVjdAlpZnJlcSB7CiAjZGVm aW5lIGlmcl9hZGRyICAgICAgaWZyX2lmcnUuaWZydV9hZGRyICAgICAgLyogYWRkcmVzcyAq LwogI2RlZmluZSBpZnJfZHN0YWRkciAgIGlmcl9pZnJ1LmlmcnVfZHN0YWRkciAgIC8qIG90 aGVyIGVuZCBvZiBwLXRvLXAgbGluayAqLwogI2RlZmluZSBpZnJfYnJvYWRhZGRyIGlmcl9p ZnJ1LmlmcnVfYnJvYWRhZGRyIC8qIGJyb2FkY2FzdCBhZGRyZXNzICovCisjZGVmaW5lIGlm cl9idWZmZXIgICAgaWZyX2lmcnUuaWZydV9idWZmZXIgICAgLyogdXNlciBzdXBwbGllZCBi dWZmZXIgd2l0aCBpdHMgbGVuZ3RoICovCiAjZGVmaW5lIGlmcl9mbGFncyAgICAgaWZyX2lm cnUuaWZydV9mbGFnc1swXSAgLyogZmxhZ3MgKGxvdyAxNiBiaXRzKSAqLwogI2RlZmluZSBp ZnJfZmxhZ3NoaWdoIGlmcl9pZnJ1LmlmcnVfZmxhZ3NbMV0gIC8qIGZsYWdzIChoaWdoIDE2 IGJpdHMpICovCiAjZGVmaW5lIGlmcl9tZXRyaWMgICAgaWZyX2lmcnUuaWZydV9tZXRyaWMg ICAgLyogbWV0cmljICovCkBAIC0yNzcsNiArMjc5LDI2IEBAIGFuZAogZmllbGRzIG9mIHRo ZQogLlZ0IGlmcmVxCiBzdHJ1Y3R1cmUsIHJlc3BlY3RpdmVseS4KKy5JdCBEdiBTSU9DR0lG REVTQ1IKK0dldCB0aGUgaW50ZXJmYWNlIGRlc2NyaXB0aW9uLCByZXR1cm5lZCBpbiB0aGUK Ky5WYSBidWZmZXIKK2ZpZWxkIG9mCisuVmEgaWZydV9idWZmZXIKK3N0cnVjdC4KK1RoZSB1 c2VyIHN1cHBsaWVkIGJ1ZmZlciBsZW5ndGggc2hvdWxkIGJlIGRlZmluZWQgaW4gdGhlCisu VmEgbGVuZ3RoCitmaWVsZCBvZgorLlZhIGlmcnVfYnVmZmVyCitzdHJ1Y3QgcGFzc2VkIGlu IGFzIHBhcmFtZXRlciwgYW5kIHRoZSBsZW5ndGggd291bGQgaW5jbHVkZQordGhlIHRlcm1p bmF0aW5nIG51bCBjaGFyYWN0ZXIuCisuSXQgRHYgU0lPQ1NJRkRFU0NSCitTZXQgdGhlIGlu dGVyZmFjZSBkZXNjcmlwdGlvbiB0byB0aGUgdmFsdWUgb2YgdGhlCisuVmEgYnVmZmVyCitm aWVsZCBvZgorLlZhIGlmcnVfYnVmZmVyCitzdHJ1Y3QsIHdpdGgKKy5WYSBsZW5ndGgKK2Zp ZWxkIHNwZWNpZnlpbmcgaXRzIGxlbmd0aCAoY291bnRpbmcgdGhlIHRlcm1pbmF0aW5nIG51 bCkuCiAuSXQgRHYgU0lPQ1NJRkZMQUdTCiBTZXQgaW50ZXJmYWNlIGZsYWdzIGZpZWxkLgog SWYgdGhlIGludGVyZmFjZSBpcyBtYXJrZWQgZG93biwKSW5kZXg6IHN5cy9rZXJuL2tlcm5f amFpbC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9rZXJuL2tlcm5famFpbC5jCShyZXZpc2lv biAyMDI5NzkpCisrKyBzeXMva2Vybi9rZXJuX2phaWwuYwkod29ya2luZyBjb3B5KQpAQCAt MzU5Miw2ICszNTkyLDcgQEAgcHJpc29uX3ByaXZfY2hlY2soc3RydWN0IHVjcmVkICpjcmVk LCBpbnQgcHJpdikKIAljYXNlIFBSSVZfTkVUX1NFVElGTVRVOgogCWNhc2UgUFJJVl9ORVRf U0VUSUZGTEFHUzoKIAljYXNlIFBSSVZfTkVUX1NFVElGQ0FQOgorCWNhc2UgUFJJVl9ORVRf U0VUSUZERVNDUjoKIAljYXNlIFBSSVZfTkVUX1NFVElGTkFNRQk6CiAJY2FzZSBQUklWX05F VF9TRVRJRk1FVFJJQzoKIAljYXNlIFBSSVZfTkVUX1NFVElGUEhZUzoKSW5kZXg6IHN5cy9u ZXQvaWYuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbmV0L2lmLmMJKHJldmlzaW9uIDIwMjk3 OSkKKysrIHN5cy9uZXQvaWYuYwkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiwxOCBA QCBTWVNDVExfSU5UKF9uZXRfbGluaywgT0lEX0FVVE8sIGxvZ19saW5rX3N0YXRlX2NoYQog CSZsb2dfbGlua19zdGF0ZV9jaGFuZ2UsIDAsCiAJImxvZyBpbnRlcmZhY2UgbGluayBzdGF0 ZSBjaGFuZ2UgZXZlbnRzIik7CiAKKy8qIEludGVyZmFjZSBkZXNjcmlwdGlvbiAqLworc3Rh dGljIHVuc2lnbmVkIGludCBpZmRlc2NyX21heGxlbiA9IDEwMjQ7CitTWVNDVExfVUlOVChf bmV0LCBPSURfQVVUTywgaWZkZXNjcl9tYXhsZW4sIENUTEZMQUdfUlcsCisJJmlmZGVzY3Jf bWF4bGVuLCAwLAorCSJhZG1pbmlzdHJhdGl2ZSBtYXhpbXVtIGxlbmd0aCBmb3IgaW50ZXJm YWNlIGRlc2NyaXB0aW9uIik7CisKK01BTExPQ19ERUZJTkUoTV9JRkRFU0NSLCAiaWZkZXNj ciIsICJpZm5ldCBkZXNjcmlwdGlvbnMiKTsKKworLyogZ2xvYmFsIHN4IGZvciBub24tY3Jp dGljYWwgcGF0aCBpZmRlc2NyICovCitzdGF0aWMgc3RydWN0IHN4IGlmZGVzY3Jfc3g7CitT WF9TWVNJTklUKGlmZGVzY3Jfc3gsICZpZmRlc2NyX3N4LCAiaWZuZXQgZGVzY3IiKTsKKwog dm9pZAkoKmJzdHBfbGlua3N0YXRlX3ApKHN0cnVjdCBpZm5ldCAqaWZwLCBpbnQgc3RhdGUp Owogdm9pZAkoKm5nX2V0aGVyX2xpbmtfc3RhdGVfcCkoc3RydWN0IGlmbmV0ICppZnAsIGlu dCBzdGF0ZSk7CiB2b2lkCSgqbGFnZ19saW5rc3RhdGVfcCkoc3RydWN0IGlmbmV0ICppZnAs IGludCBzdGF0ZSk7CkBAIC00NDIsNiArNDU0LDggQEAgaWZfZnJlZV9pbnRlcm5hbChzdHJ1 Y3QgaWZuZXQgKmlmcCkKICNpZmRlZiBNQUMKIAltYWNfaWZuZXRfZGVzdHJveShpZnApOwog I2VuZGlmIC8qIE1BQyAqLworCWlmIChpZnAtPmlmX2Rlc2NyaXB0aW9uICE9IE5VTEwpCisJ CWZyZWUoaWZwLT5pZl9kZXNjcmlwdGlvbiwgTV9JRkRFU0NSKTsKIAlJRl9BRkRBVEFfREVT VFJPWShpZnApOwogCUlGX0FERFJfTE9DS19ERVNUUk9ZKGlmcCk7CiAJaWZxX2RlbGV0ZSgm aWZwLT5pZl9zbmQpOwpAQCAtMTk3OSw2ICsxOTkzLDggQEAgaWZod2lvY3RsKHVfbG9uZyBj bWQsIHN0cnVjdCBpZm5ldCAqaWZwLCBjYWRkcl90IGQKIAlpbnQgZXJyb3IgPSAwOwogCWlu dCBuZXdfZmxhZ3MsIHRlbXBfZmxhZ3M7CiAJc2l6ZV90IG5hbWVsZW4sIG9uYW1lbGVuOwor CXNpemVfdCBkZXNjcmxlbjsKKwljaGFyICpkZXNjcmJ1ZiwgKm9kZXNjcmJ1ZjsKIAljaGFy IG5ld19uYW1lW0lGTkFNU0laXTsKIAlzdHJ1Y3QgaWZhZGRyICppZmE7CiAJc3RydWN0IHNv Y2thZGRyX2RsICpzZGw7CkBAIC0yMDE4LDYgKzIwMzQsNTUgQEAgaWZod2lvY3RsKHVfbG9u ZyBjbWQsIHN0cnVjdCBpZm5ldCAqaWZwLCBjYWRkcl90IGQKIAkJaWZyLT5pZnJfcGh5cyA9 IGlmcC0+aWZfcGh5c2ljYWw7CiAJCWJyZWFrOwogCisJY2FzZSBTSU9DR0lGREVTQ1I6CisJ CWVycm9yID0gMDsKKwkJc3hfc2xvY2soJmlmZGVzY3Jfc3gpOworCQlpZiAoaWZwLT5pZl9k ZXNjcmlwdGlvbiA9PSBOVUxMKQorCQkJZXJyb3IgPSBFTk9NU0c7CisJCWVsc2UgeworCQkJ Lyogc3BhY2UgZm9yIHRlcm1pbmF0aW5nIG51bCAqLworCQkJZGVzY3JsZW4gPSBzdHJsZW4o aWZwLT5pZl9kZXNjcmlwdGlvbikgKyAxOworCQkJaWYgKGlmci0+aWZyX2J1ZmZlci5sZW5n dGggPCBkZXNjcmxlbikKKwkJCQllcnJvciA9IEVOQU1FVE9PTE9ORzsKKwkJCWVsc2UKKwkJ CQllcnJvciA9IGNvcHlvdXQoaWZwLT5pZl9kZXNjcmlwdGlvbiwKKwkJCQkgICAgaWZyLT5p ZnJfYnVmZmVyLmJ1ZmZlciwgZGVzY3JsZW4pOworCQl9CisJCXN4X3N1bmxvY2soJmlmZGVz Y3Jfc3gpOworCQlicmVhazsKKworCWNhc2UgU0lPQ1NJRkRFU0NSOgorCQllcnJvciA9IHBy aXZfY2hlY2sodGQsIFBSSVZfTkVUX1NFVElGREVTQ1IpOworCQlpZiAoZXJyb3IpCisJCQly ZXR1cm4gKGVycm9yKTsKKworCQkvKgorCQkgKiBDb3B5IG9ubHkgKGxlbmd0aC0xKSBieXRl cyB0byBtYWtlIHN1cmUgdGhhdAorCQkgKiBpZl9kZXNjcmlwdGlvbiBpcyBhbHdheXMgbnVs IHRlcm1pbmF0ZWQuICBUaGUKKwkJICogbGVuZ3RoIHBhcmFtZXRlciBpcyBzdXBwb3NlZCB0 byBjb3VudCB0aGUKKwkJICogdGVybWluYXRpbmcgbnVsIGluLgorCQkgKi8KKwkJaWYgKGlm ci0+aWZyX2J1ZmZlci5sZW5ndGggPiBpZmRlc2NyX21heGxlbikKKwkJCXJldHVybiAoRU5B TUVUT09MT05HKTsKKworCQlkZXNjcmJ1ZiA9IG1hbGxvYyhpZnItPmlmcl9idWZmZXIubGVu Z3RoLCBNX0lGREVTQ1IsCisJCSAgICBNX1dBSVRPSyB8IE1fWkVSTyk7CisJCWVycm9yID0g Y29weWluKGlmci0+aWZyX2J1ZmZlci5idWZmZXIsIGRlc2NyYnVmLAorCQkgICAgaWZyLT5p ZnJfYnVmZmVyLmxlbmd0aCAtIDEpOworCQlpZiAoZXJyb3IpIHsKKwkJCWZyZWUoZGVzY3Ji dWYsIE1fSUZERVNDUik7CisJCQlicmVhazsKKwkJfQorCisJCXN4X3hsb2NrKCZpZmRlc2Ny X3N4KTsKKwkJb2Rlc2NyYnVmID0gaWZwLT5pZl9kZXNjcmlwdGlvbjsKKwkJaWZwLT5pZl9k ZXNjcmlwdGlvbiA9IGRlc2NyYnVmOworCQlzeF94dW5sb2NrKCZpZmRlc2NyX3N4KTsKKwor CQlnZXRtaWNyb3RpbWUoJmlmcC0+aWZfbGFzdGNoYW5nZSk7CisJCWZyZWUob2Rlc2NyYnVm LCBNX0lGREVTQ1IpOworCQlicmVhazsKKwogCWNhc2UgU0lPQ1NJRkZMQUdTOgogCQllcnJv ciA9IHByaXZfY2hlY2sodGQsIFBSSVZfTkVUX1NFVElGRkxBR1MpOwogCQlpZiAoZXJyb3Ip CkluZGV4OiBzeXMvbmV0L2lmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL25ldC9pZi5oCShy ZXZpc2lvbiAyMDI5NzkpCisrKyBzeXMvbmV0L2lmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5 NSw2ICsyOTUsNyBAQCBzdHJ1Y3QJaWZyZXEgewogCQlzdHJ1Y3QJc29ja2FkZHIgaWZydV9h ZGRyOwogCQlzdHJ1Y3QJc29ja2FkZHIgaWZydV9kc3RhZGRyOwogCQlzdHJ1Y3QJc29ja2Fk ZHIgaWZydV9icm9hZGFkZHI7CisJCXN0cnVjdCB7IHNpemVfdCBsZW5ndGg7IGNhZGRyX3QJ YnVmZmVyOyB9IGlmcnVfYnVmZmVyOwogCQlzaG9ydAlpZnJ1X2ZsYWdzWzJdOwogCQlzaG9y dAlpZnJ1X2luZGV4OwogCQlpbnQJaWZydV9qaWQ7CkBAIC0zMDgsNiArMzA5LDcgQEAgc3Ry dWN0CWlmcmVxIHsKICNkZWZpbmUJaWZyX2FkZHIJaWZyX2lmcnUuaWZydV9hZGRyCS8qIGFk ZHJlc3MgKi8KICNkZWZpbmUJaWZyX2RzdGFkZHIJaWZyX2lmcnUuaWZydV9kc3RhZGRyCS8q IG90aGVyIGVuZCBvZiBwLXRvLXAgbGluayAqLwogI2RlZmluZQlpZnJfYnJvYWRhZGRyCWlm cl9pZnJ1LmlmcnVfYnJvYWRhZGRyCS8qIGJyb2FkY2FzdCBhZGRyZXNzICovCisjZGVmaW5l CWlmcl9idWZmZXIJaWZyX2lmcnUuaWZydV9idWZmZXIJLyogdXNlciBzdXBwbGllZCBidWZm ZXIgd2l0aCBpdHMgbGVuZ3RoICovCiAjZGVmaW5lCWlmcl9mbGFncwlpZnJfaWZydS5pZnJ1 X2ZsYWdzWzBdCS8qIGZsYWdzIChsb3cgMTYgYml0cykgKi8KICNkZWZpbmUJaWZyX2ZsYWdz aGlnaAlpZnJfaWZydS5pZnJ1X2ZsYWdzWzFdCS8qIGZsYWdzIChoaWdoIDE2IGJpdHMpICov CiAjZGVmaW5lCWlmcl9qaWQJCWlmcl9pZnJ1LmlmcnVfamlkCS8qIGphaWwvdm5ldCAqLwpJ bmRleDogc3lzL25ldC9pZl92YXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbmV0L2lmX3Zh ci5oCShyZXZpc2lvbiAyMDI5NzkpCisrKyBzeXMvbmV0L2lmX3Zhci5oCSh3b3JraW5nIGNv cHkpCkBAIC0yMDMsNyArMjAzLDggQEAgc3RydWN0IGlmbmV0IHsKIAkgKiBiZSB1c2VkIHdp dGggY2FyZSB3aGVyZSBiaW5hcnkgY29tcGF0aWJpbGl0eSBpcyByZXF1aXJlZC4KIAkgKi8K IAljaGFyCSBpZl9jc3BhcmVbM107Ci0Jdm9pZAkqaWZfcHNwYXJlWzhdOworCWNoYXIJKmlm X2Rlc2NyaXB0aW9uOwkvKiBpbnRlcmZhY2UgZGVzY3JpcHRpb24gKi8KKwl2b2lkCSppZl9w c3BhcmVbN107CiAJaW50CWlmX2lzcGFyZVs0XTsKIH07CiAKSW5kZXg6IHN5cy9zeXMvcHJp di5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9zeXMvcHJpdi5oCShyZXZpc2lvbiAyMDI5Nzkp CisrKyBzeXMvc3lzL3ByaXYuaAkod29ya2luZyBjb3B5KQpAQCAtMzM1LDYgKzMzNSw3IEBA CiAjZGVmaW5lCVBSSVZfTkVUX0xBR0cJCTQxNQkvKiBBZG1pbmlzdGVyIGxhZ2cgaW50ZXJm YWNlLiAqLwogI2RlZmluZQlQUklWX05FVF9HSUYJCTQxNgkvKiBBZG1pbmlzdGVyIGdpZiBp bnRlcmZhY2UuICovCiAjZGVmaW5lCVBSSVZfTkVUX1NFVElGVk5FVAk0MTcJLyogTW92ZSBp bnRlcmZhY2UgdG8gdm5ldC4gKi8KKyNkZWZpbmUJUFJJVl9ORVRfU0VUSUZERVNDUgk0MTgJ LyogU2V0IGludGVyZmFjZSBkZXNjcmlwdGlvbi4gKi8KIAogLyoKICAqIDgwMi4xMS1yZWxh dGVkIHByaXZpbGVnZXMuCkluZGV4OiBzeXMvc3lzL3NvY2tpby5oCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHN5cy9zeXMvc29ja2lvLmgJKHJldmlzaW9uIDIwMjk3OSkKKysrIHN5cy9zeXMvc29j a2lvLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDggQEAKICNkZWZpbmUJU0lPQ0dJ Rk1BQwlfSU9XUignaScsIDM4LCBzdHJ1Y3QgaWZyZXEpCS8qIGdldCBJRiBNQUMgbGFiZWwg Ki8KICNkZWZpbmUJU0lPQ1NJRk1BQwkgX0lPVygnaScsIDM5LCBzdHJ1Y3QgaWZyZXEpCS8q IHNldCBJRiBNQUMgbGFiZWwgKi8KICNkZWZpbmUJU0lPQ1NJRk5BTUUJIF9JT1coJ2knLCA0 MCwgc3RydWN0IGlmcmVxKQkvKiBzZXQgSUYgbmFtZSAqLworI2RlZmluZQlTSU9DU0lGREVT Q1IJIF9JT1coJ2knLCA0MSwgc3RydWN0IGlmcmVxKQkvKiBzZXQgaWZuZXQgZGVzY3IgKi8g CisjZGVmaW5lCVNJT0NHSUZERVNDUglfSU9XUignaScsIDQyLCBzdHJ1Y3QgaWZyZXEpCS8q IGdldCBpZm5ldCBkZXNjciAqLyAKIAogI2RlZmluZQlTSU9DQURETVVMVEkJIF9JT1coJ2kn LCA0OSwgc3RydWN0IGlmcmVxKQkvKiBhZGQgbSdjYXN0IGFkZHIgKi8KICNkZWZpbmUJU0lP Q0RFTE1VTFRJCSBfSU9XKCdpJywgNTAsIHN0cnVjdCBpZnJlcSkJLyogZGVsIG0nY2FzdCBh ZGRyICovCg== --------------090205010302020105020607--