Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Nov 2009 18:39:23 -0800
From:      Xin LI <delphij@gmail.com>
To:        freebsd-net@FreeBSD.org
Cc:        rwatson@freebsd.org, jhb@FreeBSD.org, "M. Warner Losh" <imp@bsdimp.com>, Antoine Brodin <antoine.brodin@laposte.net>
Subject:   [PATCH FOR REVIEW] interface description (revised)
Message-ID:  <a78074950911171839u3e3fb4f1oae4aa3fc79f1b152@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--000e0cd6ea5881848104789c265f
Content-Type: text/plain; charset=UTF-8

Hi,

Here is the revised implementation for the interface description
feature, based on feedback from src-all@.

Some limitations:
 * Not yet able to send announce through route socket.  I need to
figure out a proper way to do this, maybe a future feature;
 * 32-bit vs 64-bit API compatibility.  Since the kernel has to copy
in a string, is there a clean way to do this?  I think we will also
need to deal with similar issue with SIOCSIFNAME as well.

Cheers,
-- 
Xin LI <delphij@delphij.net> http://www.delphij.net

--000e0cd6ea5881848104789c265f
Content-Type: application/octet-stream; name="ifdescr.diff"
Content-Disposition: attachment; filename="ifdescr.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g25gw3uc1

SW5kZXg6IGNvbnRyaWIvbGlicGNhcC9pbmV0LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY29udHJpYi9saWJw
Y2FwL2luZXQuYwkocmV2aXNpb24gMTk5NDYzKQorKysgY29udHJpYi9saWJwY2FwL2luZXQuYwko
d29ya2luZyBjb3B5KQpAQCAtNDAzLDIyICs0MDMsMzAgQEAgYWRkX2FkZHJfdG9faWZsaXN0KHBj
YXBfaWZfdCAqKmFsbGRldnMsIGNvbnN0IGNoYXIKIAlwY2FwX2FkZHJfdCAqY3VyYWRkciwgKnBy
ZXZhZGRyLCAqbmV4dGFkZHI7CiAjaWZkZWYgU0lPQ0dJRkRFU0NSCiAJc3RydWN0IGlmcmVxIGlm
cmRlc2M7CisjaWZuZGVmIElGREVTQ1JTSVpFCisjZGVmaW5lIF9JRkRFU0NSU0laRSA2NAorCWNo
YXIgaWZkZXNjcltfSUZERVNDUlNJWkVdOworI2Vsc2UKIAljaGFyIGlmZGVzY3JbSUZERVNDUlNJ
WkVdOworI2VuZGlmCiAJaW50IHM7Ci0jZW5kaWYKIAotI2lmZGVmIFNJT0NHSUZERVNDUgogCS8q
CiAJICogR2V0IHRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIGludGVyZmFjZS4KIAkgKi8KIAltZW1z
ZXQoJmlmcmRlc2MsIDAsIHNpemVvZiBpZnJkZXNjKTsKIAlzdHJsY3B5KGlmcmRlc2MuaWZyX25h
bWUsIG5hbWUsIHNpemVvZiBpZnJkZXNjLmlmcl9uYW1lKTsKKyNpZmRlZiBfX0ZyZWVCU0RfXwor
CWlmcmRlc2MuaWZyX2J1ZmZlci5idWZmZXIgPSBpZmRlc2NyOworCWlmcmRlc2MuaWZyX2J1ZmZl
ci5sZW5ndGggPSBzaXplb2YoaWZkZXNjcik7CisjZWxzZQogCWlmcmRlc2MuaWZyX2RhdGEgPSAo
Y2FkZHJfdCkmaWZkZXNjcjsKKyNlbmRpZgogCXMgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19ER1JB
TSwgMCk7CiAJaWYgKHMgPj0gMCkgewogCQlpZiAoaW9jdGwocywgU0lPQ0dJRkRFU0NSLCAmaWZy
ZGVzYykgPT0gMCAmJgotCQkgICAgc3RybGVuKGlmcmRlc2MuaWZyX2RhdGEpICE9IDApCi0JCQlk
ZXNjcmlwdGlvbiA9IGlmcmRlc2MuaWZyX2RhdGE7CisJCSAgICBzdHJsZW4oaWZkZXNjcikgIT0g
MCkKKwkJCWRlc2NyaXB0aW9uID0gaWZkZXNjcjsKIAkJY2xvc2Uocyk7CiAJfQogI2VuZGlmCklu
ZGV4OiBzYmluL2lmY29uZmlnL2lmY29uZmlnLjgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc2Jpbi9pZmNvbmZp
Zy9pZmNvbmZpZy44CShyZXZpc2lvbiAxOTk0NjMpCisrKyBzYmluL2lmY29uZmlnL2lmY29uZmln
LjgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIC5cIiAgICAgRnJvbTogQCgjKWlm
Y29uZmlnLjgJOC4zIChCZXJrZWxleSkgMS81Lzk0CiAuXCIgJEZyZWVCU0QkCiAuXCIKLS5EZCBT
ZXB0ZW1iZXIgMjMsIDIwMDkKKy5EZCBOb3ZlbWJlciAyNiwgMjAwOQogLkR0IElGQ09ORklHIDgK
IC5PcwogLlNoIE5BTUUKQEAgLTI1OCw2ICsyNTgsMTIgQEAgRGlzYWJsZSBwZXJtYW5lbnRseSBw
cm9taXNjdW91cyBtb2RlLgogQW5vdGhlciBuYW1lIGZvciB0aGUKIC5GbCBhbGlhcwogcGFyYW1l
dGVyLgorLkl0IENtIGRlc2NyaXB0aW9uIEFyIHZhbHVlCitTcGVjaWZ5IGEgZGVzY3JpcHRpb24g
b2YgdGhlIGludGVyZmFjZS4KK1RoaXMgY2FuIGJlIHVzZWQgdG8gbGFiZWwgaW50ZXJmYWNlcyBp
biBzaXR1YXRpb25zIHdoZXJlIHRoZXkgbWF5CitvdGhlcndpc2UgYmUgZGlmZmljdWx0IHRvIGRp
c3Rpbmd1aXNoLgorLkl0IENtIC1kZXNjcmlwdGlvbgorQ2xlYXIgdGhlIGludGVyZmFjZSBkZXNj
cmlwdGlvbi4KIC5JdCBDbSBkb3duCiBNYXJrIGFuIGludGVyZmFjZQogLkRxIGRvd24gLgpAQCAt
MjUxMiw2ICsyNTE4LDEwIEBAIENvbmZpZ3VyZSB0aGUgaW50ZXJmYWNlCiB0byB1c2UgMTAwYmFz
ZVRYLCBmdWxsIGR1cGxleCBFdGhlcm5ldCBtZWRpYSBvcHRpb25zOgogLkRsICMgaWZjb25maWcg
eGwwIG1lZGlhIDEwMGJhc2VUWCBtZWRpYW9wdCBmdWxsLWR1cGxleAogLlBwCitMYWJlbCB0aGUg
ZW0wIGludGVyZmFjZSBhcyBhbiB1cGxpbms6CisuUHAKKy5EbCAjIGlmY29uZmlnIGVtMCBkZXNj
cmlwdGlvbiBcJiJVcGxpbmsgdG8gR2lnYWJpdCBTd2l0Y2ggMlwmIgorLlBwCiBDcmVhdGUgdGhl
IHNvZnR3YXJlIG5ldHdvcmsgaW50ZXJmYWNlCiAuTGkgZ2lmMSA6CiAuRGwgIyBpZmNvbmZpZyBn
aWYxIGNyZWF0ZQpJbmRleDogc2Jpbi9pZmNvbmZpZy9pZmNvbmZpZy5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHNiaW4vaWZjb25maWcvaWZjb25maWcuYwkocmV2aXNpb24gMTk5NDYzKQorKysgc2Jpbi9pZmNv
bmZpZy9pZmNvbmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw2IEBAIHN0YXRpYyBj
b25zdCBjaGFyIHJjc2lkW10gPQogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogI2luY2x1ZGUgPHN5
cy9pb2N0bC5oPgogI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxzeXMvc3lzY3Rs
Lmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KICNpbmNsdWRlIDxzeXMvbW9kdWxlLmg+CiAjaW5j
bHVkZSA8c3lzL2xpbmtlci5oPgpAQCAtODMsNiArODIsOCBAQCBzdGF0aWMgY29uc3QgY2hhciBy
Y3NpZFtdID0KIHN0cnVjdAlpZnJlcSBpZnI7CiAKIGNoYXIJbmFtZVtJRk5BTVNJWl07CitjaGFy
CSpkZXNjciA9IE5VTEw7CitzaXplX3QJZGVzY3JsZW4gPSA2NDsKIGludAlzZXRhZGRyOwogaW50
CXNldG1hc2s7CiBpbnQJZG9hbGlhczsKQEAgLTgyMiw2ICs4MjMsMzUgQEAgc2V0aWZuYW1lKGNv
bnN0IGNoYXIgKnZhbCwgaW50IGR1bW15IF9fdW51c2VkLCBpbnQKIAlmcmVlKG5ld25hbWUpOwog
fQogCisvKiBBUkdTVVNFRCAqLworc3RhdGljIHZvaWQKK3NldGlmZGVzY3IoY29uc3QgY2hhciAq
dmFsLCBpbnQgZHVtbXkgX191bnVzZWQsIGludCBzLCAKKyAgICBjb25zdCBzdHJ1Y3QgYWZzd3Rj
aCAqYWZwKQoreworCWNoYXIgKm5ld2Rlc2NyOworCisJbmV3ZGVzY3IgPSBzdHJkdXAodmFsKTsK
KwlpZiAobmV3ZGVzY3IgPT0gTlVMTCkgeworCQl3YXJuKCJubyBtZW1vcnkgdG8gc2V0IGlmZGVz
Y3IiKTsKKwkJcmV0dXJuOworCX0KKworCWlmci5pZnJfYnVmZmVyLmJ1ZmZlciA9IG5ld2Rlc2Ny
OworCWlmci5pZnJfYnVmZmVyLmxlbmd0aCA9IHN0cmxlbihuZXdkZXNjcikgKyAxOworCWlmIChp
b2N0bChzLCBTSU9DU0lGREVTQ1IsIChjYWRkcl90KSZpZnIpIDwgMCkKKwkJd2FybigiaW9jdGwg
KHNldCBkZXNjcikiKTsKKworCWZyZWUobmV3ZGVzY3IpOworfQorCisvKiBBUkdTVVNFRCAqLwor
c3RhdGljIHZvaWQKK3Vuc2V0aWZkZXNjcihjb25zdCBjaGFyICp2YWwsIGludCB2YWx1ZSwgaW50
IHMsIGNvbnN0IHN0cnVjdCBhZnN3dGNoICphZnApCit7CisKKwlzZXRpZmRlc2NyKCIiLCAwLCBz
LCAwKTsKK30KKwogI2RlZmluZQlJRkZCSVRTIFwKICJcMDIwXDFVUFwyQlJPQURDQVNUXDNERUJV
R1w0TE9PUEJBQ0tcNVBPSU5UT1BPSU5UXDZTTUFSVFw3UlVOTklORyIgXAogIlwxME5PQVJQXDEx
UFJPTUlTQ1wxMkFMTE1VTFRJXDEzT0FDVElWRVwxNFNJTVBMRVhcMTVMSU5LMFwxNkxJTksxXDE3
TElOSzIiIFwKQEAgLTg2Niw2ICs4OTYsMjMgQEAgc3RhdHVzKGNvbnN0IHN0cnVjdCBhZnN3dGNo
ICphZnAsIGNvbnN0IHN0cnVjdCBzb2MKIAkJcHJpbnRmKCIgbXR1ICVkIiwgaWZyLmlmcl9tdHUp
OwogCXB1dGNoYXIoJ1xuJyk7CiAKKwlkZXNjciA9IHJlYWxsb2NmKGRlc2NyLCBkZXNjcmxlbik7
CisJaWYgKGRlc2NyICE9IE5VTEwpIHsKKwkJZG8geworCQkJaWZyLmlmcl9idWZmZXIuYnVmZmVy
ID0gZGVzY3I7CisJCQlpZnIuaWZyX2J1ZmZlci5sZW5ndGggPSBkZXNjcmxlbjsKKwkJCWlmIChp
b2N0bChzLCBTSU9DR0lGREVTQ1IsICZpZnIpID09IDApIHsKKwkJCSAgICBpZiAoc3RybGVuKGRl
c2NyKSA+IDApCisJCQkJcHJpbnRmKCJcdGRlc2NyaXB0aW9uOiAlc1xuIiwgZGVzY3IpOworCQkJ
ICAgIGJyZWFrOworCQkJfQorCQkJaWYgKGVycm5vID09IEVOQU1FVE9PTE9ORykgeworCQkJCWRl
c2NybGVuICo9IDI7CisJCQkJZGVzY3IgPSByZWFsbG9jZihkZXNjciwgZGVzY3JsZW4pOworCQkJ
fQorCQl9IHdoaWxlICgoZXJybm8gPT0gRU5BTUVUT09MT05HKSAmJiAoZGVzY3IgIT0gTlVMTCkp
OworCX0KKwogCWlmIChpb2N0bChzLCBTSU9DR0lGQ0FQLCAoY2FkZHJfdCkmaWZyKSA9PSAwKSB7
CiAJCWlmIChpZnIuaWZyX2N1cmNhcCAhPSAwKSB7CiAJCQlwcmludGIoIlx0b3B0aW9ucyIsIGlm
ci5pZnJfY3VyY2FwLCBJRkNBUEJJVFMpOwpAQCAtMTAzNSw2ICsxMDgyLDEwIEBAIHN0YXRpYyBz
dHJ1Y3QgY21kIGJhc2ljX2NtZHNbXSA9IHsKIAlERUZfQ01EKCItYXJwIiwJCUlGRl9OT0FSUCwJ
c2V0aWZmbGFncyksCiAJREVGX0NNRCgiZGVidWciLAlJRkZfREVCVUcsCXNldGlmZmxhZ3MpLAog
CURFRl9DTUQoIi1kZWJ1ZyIsCS1JRkZfREVCVUcsCXNldGlmZmxhZ3MpLAorCURFRl9DTURfQVJH
KCJkZXNjcmlwdGlvbiIsCQlzZXRpZmRlc2NyKSwKKwlERUZfQ01EX0FSRygiZGVzY3IiLAkJCXNl
dGlmZGVzY3IpLAorCURFRl9DTUQoIi1kZXNjcmlwdGlvbiIsCTAsCQl1bnNldGlmZGVzY3IpLAor
CURFRl9DTUQoIi1kZXNjciIsCTAsCQl1bnNldGlmZGVzY3IpLAogCURFRl9DTUQoInByb21pc2Mi
LAlJRkZfUFBST01JU0MsCXNldGlmZmxhZ3MpLAogCURFRl9DTUQoIi1wcm9taXNjIiwJLUlGRl9Q
UFJPTUlTQywJc2V0aWZmbGFncyksCiAJREVGX0NNRCgiYWRkIiwJCUlGRl9VUCwJCW5vdGVhbGlh
cyksCkluZGV4OiBzaGFyZS9tYW4vbWFuNC9uZXRpbnRyby40Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNoYXJl
L21hbi9tYW40L25ldGludHJvLjQJKHJldmlzaW9uIDE5OTQ2MykKKysrIHNoYXJlL21hbi9tYW40
L25ldGludHJvLjQJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIC5cIiAgICAgQCgj
KW5ldGludHJvLjQJOC4yIChCZXJrZWxleSkgMTEvMzAvOTMKIC5cIiAkRnJlZUJTRCQKIC5cIgot
LkRkIEp1bmUgMTgsIDIwMDQKKy5EZCBOb3ZlbWJlciAyNiwgMjAwOQogLkR0IE5FVElOVFJPIDQK
IC5PcwogLlNoIE5BTUUKQEAgLTIwNCw2ICsyMDQsNyBAQCBzdHJ1Y3QJaWZyZXEgewogICAgICAg
ICBzdHJ1Y3QgICAgc29ja2FkZHIgaWZydV9hZGRyOwogICAgICAgICBzdHJ1Y3QgICAgc29ja2Fk
ZHIgaWZydV9kc3RhZGRyOwogICAgICAgICBzdHJ1Y3QgICAgc29ja2FkZHIgaWZydV9icm9hZGFk
ZHI7CisgICAgICAgIHN0cnVjdCB7IHNpemVfdCBsZW5ndGg7IGNhZGRyX3QgYnVmZmVyOyB9IGlm
cnVfYnVmZmVyOwogICAgICAgICBzaG9ydCAgICAgaWZydV9mbGFnc1syXTsKICAgICAgICAgc2hv
cnQgICAgIGlmcnVfaW5kZXg7CiAgICAgICAgIGludCAgICAgICBpZnJ1X21ldHJpYzsKQEAgLTIx
Niw2ICsyMTcsNyBAQCBzdHJ1Y3QJaWZyZXEgewogI2RlZmluZSBpZnJfYWRkciAgICAgIGlmcl9p
ZnJ1LmlmcnVfYWRkciAgICAgIC8qIGFkZHJlc3MgKi8KICNkZWZpbmUgaWZyX2RzdGFkZHIgICBp
ZnJfaWZydS5pZnJ1X2RzdGFkZHIgICAvKiBvdGhlciBlbmQgb2YgcC10by1wIGxpbmsgKi8KICNk
ZWZpbmUgaWZyX2Jyb2FkYWRkciBpZnJfaWZydS5pZnJ1X2Jyb2FkYWRkciAvKiBicm9hZGNhc3Qg
YWRkcmVzcyAqLworI2RlZmluZSBpZnJfYnVmZmVyICAgIGlmcl9pZnJ1LmlmcnVfYnVmZmVyICAg
IC8qIHVzZXIgc3VwcGxpZWQgYnVmZmVyIHdpdGggaXRzIGxlbmd0aCAqLwogI2RlZmluZSBpZnJf
ZmxhZ3MgICAgIGlmcl9pZnJ1LmlmcnVfZmxhZ3NbMF0gIC8qIGZsYWdzIChsb3cgMTYgYml0cykg
Ki8KICNkZWZpbmUgaWZyX2ZsYWdzaGlnaCBpZnJfaWZydS5pZnJ1X2ZsYWdzWzFdICAvKiBmbGFn
cyAoaGlnaCAxNiBiaXRzKSAqLwogI2RlZmluZSBpZnJfbWV0cmljICAgIGlmcl9pZnJ1LmlmcnVf
bWV0cmljICAgIC8qIG1ldHJpYyAqLwpAQCAtMjc3LDYgKzI3OSwyNSBAQCBhbmQKIGZpZWxkcyBv
ZiB0aGUKIC5WdCBpZnJlcQogc3RydWN0dXJlLCByZXNwZWN0aXZlbHkuCisuSXQgRHYgU0lPQ0dJ
RkRFU0NSCitHZXQgdGhlIGludGVyZmFjZSBkZXNjcmlwdGlvbiwgcmV0dXJuZWQgaW4gdGhlCisu
VmEgYnVmZmVyCitmaWVsZCBvZgorLlZhIGlmcnVfYnVmZmVyCitzdHJ1Y3QuCitUaGUgdXNlciBz
dXBwbGllZCBidWZmZXIgbGVuZ3RoIHNob3VsZCBkZWZpbmVkIGluIHRoZQorLlZhIGxlbmd0aAor
ZmllbGQgb2YKKy5WYSBpZnJ1X2J1ZmZlcgorc3RydWN0IHBhc3NlZCBpbiBhcyBwYXJhbWV0ZXIu
CisuSXQgRHYgU0lPQ1NJRkRFU0NSCitTZXQgdGhlIGludGVyZmFjZSBkZXNjcmlwdGlvbiB0byB0
aGUgdmFsdWUgb2YgdGhlCisuVmEgYnVmZmVyCitmaWVsZCBvZgorLlZhIGlmcnVfYnVmZmVyCitz
dHJ1Y3QsIHdpdGgKKy5WYSBsZW5ndGgKK2ZpZWxkIHNwZWNpZnlpbmcgaXRzIGxlbmd0aC4KIC5J
dCBEdiBTSU9DU0lGRkxBR1MKIFNldCBpbnRlcmZhY2UgZmxhZ3MgZmllbGQuCiBJZiB0aGUgaW50
ZXJmYWNlIGlzIG1hcmtlZCBkb3duLApJbmRleDogc2hhcmUvbWFuL21hbjQvbmV0aW50cm8uNAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBzaGFyZS9tYW4vbWFuNC9uZXRpbnRyby40CShyZXZpc2lvbiAxOTk0NjMp
CisrKyBzaGFyZS9tYW4vbWFuNC9uZXRpbnRyby40CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICsz
Miw3IEBACiAuXCIgICAgIEAoIyluZXRpbnRyby40CTguMiAoQmVya2VsZXkpIDExLzMwLzkzCiAu
XCIgJEZyZWVCU0QkCiAuXCIKLS5EZCBKdW5lIDE4LCAyMDA0CisuRGQgTm92ZW1iZXIgMjYsIDIw
MDkKIC5EdCBORVRJTlRSTyA0CiAuT3MKIC5TaCBOQU1FCkBAIC0yMDQsNiArMjA0LDcgQEAgc3Ry
dWN0CWlmcmVxIHsKICAgICAgICAgc3RydWN0ICAgIHNvY2thZGRyIGlmcnVfYWRkcjsKICAgICAg
ICAgc3RydWN0ICAgIHNvY2thZGRyIGlmcnVfZHN0YWRkcjsKICAgICAgICAgc3RydWN0ICAgIHNv
Y2thZGRyIGlmcnVfYnJvYWRhZGRyOworICAgICAgICBzdHJ1Y3QgeyBzaXplX3QgbGVuZ3RoOyBj
YWRkcl90IGJ1ZmZlcjsgfSBpZnJ1X2J1ZmZlcjsKICAgICAgICAgc2hvcnQgICAgIGlmcnVfZmxh
Z3NbMl07CiAgICAgICAgIHNob3J0ICAgICBpZnJ1X2luZGV4OwogICAgICAgICBpbnQgICAgICAg
aWZydV9tZXRyaWM7CkBAIC0yMTYsNiArMjE3LDcgQEAgc3RydWN0CWlmcmVxIHsKICNkZWZpbmUg
aWZyX2FkZHIgICAgICBpZnJfaWZydS5pZnJ1X2FkZHIgICAgICAvKiBhZGRyZXNzICovCiAjZGVm
aW5lIGlmcl9kc3RhZGRyICAgaWZyX2lmcnUuaWZydV9kc3RhZGRyICAgLyogb3RoZXIgZW5kIG9m
IHAtdG8tcCBsaW5rICovCiAjZGVmaW5lIGlmcl9icm9hZGFkZHIgaWZyX2lmcnUuaWZydV9icm9h
ZGFkZHIgLyogYnJvYWRjYXN0IGFkZHJlc3MgKi8KKyNkZWZpbmUgaWZyX2J1ZmZlciAgICBpZnJf
aWZydS5pZnJ1X2J1ZmZlciAgICAvKiB1c2VyIHN1cHBsaWVkIGJ1ZmZlciB3aXRoIGl0cyBsZW5n
dGggKi8KICNkZWZpbmUgaWZyX2ZsYWdzICAgICBpZnJfaWZydS5pZnJ1X2ZsYWdzWzBdICAvKiBm
bGFncyAobG93IDE2IGJpdHMpICovCiAjZGVmaW5lIGlmcl9mbGFnc2hpZ2ggaWZyX2lmcnUuaWZy
dV9mbGFnc1sxXSAgLyogZmxhZ3MgKGhpZ2ggMTYgYml0cykgKi8KICNkZWZpbmUgaWZyX21ldHJp
YyAgICBpZnJfaWZydS5pZnJ1X21ldHJpYyAgICAvKiBtZXRyaWMgKi8KQEAgLTI3Nyw2ICsyNzks
MjUgQEAgYW5kCiBmaWVsZHMgb2YgdGhlCiAuVnQgaWZyZXEKIHN0cnVjdHVyZSwgcmVzcGVjdGl2
ZWx5LgorLkl0IER2IFNJT0NHSUZERVNDUgorR2V0IHRoZSBpbnRlcmZhY2UgZGVzY3JpcHRpb24s
IHJldHVybmVkIGluIHRoZQorLlZhIGJ1ZmZlcgorZmllbGQgb2YKKy5WYSBpZnJ1X2J1ZmZlcgor
c3RydWN0LgorVGhlIHVzZXIgc3VwcGxpZWQgYnVmZmVyIGxlbmd0aCBzaG91bGQgZGVmaW5lZCBp
biB0aGUKKy5WYSBsZW5ndGgKK2ZpZWxkIG9mCisuVmEgaWZydV9idWZmZXIKK3N0cnVjdCBwYXNz
ZWQgaW4gYXMgcGFyYW1ldGVyLgorLkl0IER2IFNJT0NTSUZERVNDUgorU2V0IHRoZSBpbnRlcmZh
Y2UgZGVzY3JpcHRpb24gdG8gdGhlIHZhbHVlIG9mIHRoZQorLlZhIGJ1ZmZlcgorZmllbGQgb2YK
Ky5WYSBpZnJ1X2J1ZmZlcgorc3RydWN0LCB3aXRoCisuVmEgbGVuZ3RoCitmaWVsZCBzcGVjaWZ5
aW5nIGl0cyBsZW5ndGguCiAuSXQgRHYgU0lPQ1NJRkZMQUdTCiBTZXQgaW50ZXJmYWNlIGZsYWdz
IGZpZWxkLgogSWYgdGhlIGludGVyZmFjZSBpcyBtYXJrZWQgZG93biwKSW5kZXg6IHN5cy9rZXJu
L2tlcm5famFpbC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9rZXJuL2tlcm5famFpbC5jCShyZXZpc2lv
biAxOTk0NjMpCisrKyBzeXMva2Vybi9rZXJuX2phaWwuYwkod29ya2luZyBjb3B5KQpAQCAtMzQ2
Nyw2ICszNDY3LDcgQEAgcHJpc29uX3ByaXZfY2hlY2soc3RydWN0IHVjcmVkICpjcmVkLCBpbnQg
cHJpdikKIAljYXNlIFBSSVZfTkVUX1NFVElGTVRVOgogCWNhc2UgUFJJVl9ORVRfU0VUSUZGTEFH
UzoKIAljYXNlIFBSSVZfTkVUX1NFVElGQ0FQOgorCWNhc2UgUFJJVl9ORVRfU0VUSUZERVNDUjoK
IAljYXNlIFBSSVZfTkVUX1NFVElGTkFNRQk6CiAJY2FzZSBQUklWX05FVF9TRVRJRk1FVFJJQzoK
IAljYXNlIFBSSVZfTkVUX1NFVElGUEhZUzoKSW5kZXg6IHN5cy9uZXQvaWYuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBzeXMvbmV0L2lmLmMJKHJldmlzaW9uIDE5OTQ2MykKKysrIHN5cy9uZXQvaWYuYwkod29y
a2luZyBjb3B5KQpAQCAtMTA4LDYgKzEwOCwxMyBAQCBTWVNDVExfSU5UKF9uZXRfbGluaywgT0lE
X0FVVE8sIGxvZ19saW5rX3N0YXRlX2NoYQogCSZsb2dfbGlua19zdGF0ZV9jaGFuZ2UsIDAsCiAJ
ImxvZyBpbnRlcmZhY2UgbGluayBzdGF0ZSBjaGFuZ2UgZXZlbnRzIik7CiAKKy8qIEludGVyZmFj
ZSBkZXNjcmlwdGlvbiAqLworc3RhdGljIGludCBpZmRlc2NyX21heGxlbiA9IDEwMjQ7CisKK1NZ
U0NUTF9JTlQoX25ldCwgT0lEX0FVVE8sIGlmZGVzY3JfbWF4bGVuLCBDVExGTEFHX1JXLAorCSZp
ZmRlc2NyX21heGxlbiwgMCwKKwkiYWRtaW5pc3RyYXRpdmUgbWF4aW11bSBsZW5ndGggZm9yIGlu
dGVyZmFjZSBkZXNjcmlwdGlvbiIpOworCiB2b2lkCSgqYnN0cF9saW5rc3RhdGVfcCkoc3RydWN0
IGlmbmV0ICppZnAsIGludCBzdGF0ZSk7CiB2b2lkCSgqbmdfZXRoZXJfbGlua19zdGF0ZV9wKShz
dHJ1Y3QgaWZuZXQgKmlmcCwgaW50IHN0YXRlKTsKIHZvaWQJKCpsYWdnX2xpbmtzdGF0ZV9wKShz
dHJ1Y3QgaWZuZXQgKmlmcCwgaW50IHN0YXRlKTsKQEAgLTQ2Myw2ICs0NzAsOCBAQCBpZl9mcmVl
X2ludGVybmFsKHN0cnVjdCBpZm5ldCAqaWZwKQogI2lmZGVmIE1BQwogCW1hY19pZm5ldF9kZXN0
cm95KGlmcCk7CiAjZW5kaWYgLyogTUFDICovCisJaWYgKGlmcC0+aWZfZGVzY3JpcHRpb24gIT0g
TlVMTCkKKwkJc2J1Zl9kZWxldGUoaWZwLT5pZl9kZXNjcmlwdGlvbik7CiAJSUZfQUZEQVRBX0RF
U1RST1koaWZwKTsKIAlJRl9BRERSX0xPQ0tfREVTVFJPWShpZnApOwogCWlmcV9kZWxldGUoJmlm
cC0+aWZfc25kKTsKQEAgLTIwNTQsNiArMjA2Myw3IEBAIGlmaHdpb2N0bCh1X2xvbmcgY21kLCBz
dHJ1Y3QgaWZuZXQgKmlmcCwgY2FkZHJfdCBkCiAJY2hhciBuZXdfbmFtZVtJRk5BTVNJWl07CiAJ
c3RydWN0IGlmYWRkciAqaWZhOwogCXN0cnVjdCBzb2NrYWRkcl9kbCAqc2RsOworCXN0cnVjdCBz
YnVmICpvbGQsICpuZXc7CiAKIAlpZnIgPSAoc3RydWN0IGlmcmVxICopZGF0YTsKIAlzd2l0Y2gg
KGNtZCkgewpAQCAtMjA5MCw2ICsyMTAwLDc0IEBAIGlmaHdpb2N0bCh1X2xvbmcgY21kLCBzdHJ1
Y3QgaWZuZXQgKmlmcCwgY2FkZHJfdCBkCiAJCWlmci0+aWZyX3BoeXMgPSBpZnAtPmlmX3BoeXNp
Y2FsOwogCQlicmVhazsKIAorCWNhc2UgU0lPQ0dJRkRFU0NSOgorCQllcnJvciA9IDA7CisJCWlm
IChpZnItPmlmcl9idWZmZXIubGVuZ3RoID4gaWZkZXNjcl9tYXhsZW4pIHsKKwkJCWVycm9yID0g
RU5PTUVNOworCQkJYnJlYWs7CisJCX0KKwkJbmV3ID0gc2J1Zl9uZXcoTlVMTCwgTlVMTCwgaWZy
LT5pZnJfYnVmZmVyLmxlbmd0aCwgU0JVRl9GSVhFRExFTik7CisJCWlmIChuZXcgPT0gTlVMTCkg
eworCQkJZXJyb3IgPSBFTk9NRU07CisJCQlicmVhazsKKwkJfQorCisJCUlGX0FGREFUQV9STE9D
SyhpZnApOworCQlpZiAoaWZwLT5pZl9kZXNjcmlwdGlvbiA9PSBOVUxMKQorCQkJZXJyb3IgPSBF
Tk9NU0c7CisJCWVsc2UgeworCQkJaWYgKGlmci0+aWZyX2J1ZmZlci5sZW5ndGggPD0gc2J1Zl9s
ZW4oaWZwLT5pZl9kZXNjcmlwdGlvbikpCisJCQkJZXJyb3IgPSBFTkFNRVRPT0xPTkc7CisJCQlp
ZiAoc2J1Zl9jcHkobmV3LCBzYnVmX2RhdGEoaWZwLT5pZl9kZXNjcmlwdGlvbikpICE9IDApCisJ
CQkJZXJyb3IgPSBFTkFNRVRPT0xPTkc7CisJCX0KKwkJSUZfQUZEQVRBX1JVTkxPQ0soaWZwKTsK
KworCQlpZiAoZXJyb3IgPT0gMCkgeworCQkJc2J1Zl9maW5pc2gobmV3KTsKKwkJCS8qCisJCQkg
KiBDb3B5IDEgbW9yZSBieXRlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjb3B5b3V0IGlzIE5VTAor
CQkJICogdGVybWluYXRlZC4KKwkJCSAqLworCQkJZXJyb3IgPSBjb3B5b3V0KHNidWZfZGF0YShu
ZXcpLCBpZnItPmlmcl9idWZmZXIuYnVmZmVyLAorCQkJCQlzYnVmX2xlbihuZXcpICsgMSk7CisJ
CX0KKworCQlzYnVmX2RlbGV0ZShuZXcpOworCisJCWJyZWFrOworCisJY2FzZSBTSU9DU0lGREVT
Q1I6CisJCWVycm9yID0gcHJpdl9jaGVjayh0ZCwgUFJJVl9ORVRfU0VUSUZERVNDUik7CisJCWlm
IChlcnJvcikKKwkJCXJldHVybiAoZXJyb3IpOworCisJCWlmIChpZnItPmlmcl9idWZmZXIubGVu
Z3RoID4gaWZkZXNjcl9tYXhsZW4pCisJCQlyZXR1cm4gKEVOQU1FVE9PTE9ORyk7CisKKwkJbmV3
ID0gc2J1Zl9uZXcoTlVMTCwgTlVMTCwgaWZyLT5pZnJfYnVmZmVyLmxlbmd0aCwgU0JVRl9GSVhF
RExFTik7CisJCWlmIChuZXcgPT0gTlVMTCkKKwkJCXJldHVybiAoRU5PTUVNKTsKKworCQlpZiAo
c2J1Zl9jb3B5aW4obmV3LCBpZnItPmlmcl9idWZmZXIuYnVmZmVyLAorCQkJCWlmci0+aWZyX2J1
ZmZlci5sZW5ndGgpID09IC0xKSB7CisJCQlzYnVmX2RlbGV0ZShuZXcpOworCQkJcmV0dXJuIChF
RkFVTFQpOworCQl9CisKKwkJc2J1Zl9maW5pc2gobmV3KTsKKworCQlJRl9BRkRBVEFfV0xPQ0so
aWZwKTsKKwkJb2xkID0gaWZwLT5pZl9kZXNjcmlwdGlvbjsKKwkJaWZwLT5pZl9kZXNjcmlwdGlv
biA9IG5ldzsKKwkJZ2V0bWljcm90aW1lKCZpZnAtPmlmX2xhc3RjaGFuZ2UpOworCQlJRl9BRkRB
VEFfV1VOTE9DSyhpZnApOworCisJCWlmIChvbGQgIT0gTlVMTCkKKwkJCXNidWZfZGVsZXRlKG9s
ZCk7CisKKwkJYnJlYWs7CisKIAljYXNlIFNJT0NTSUZGTEFHUzoKIAkJZXJyb3IgPSBwcml2X2No
ZWNrKHRkLCBQUklWX05FVF9TRVRJRkZMQUdTKTsKIAkJaWYgKGVycm9yKQpJbmRleDogc3lzL25l
dC9pZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9uZXQvaWYuaAkocmV2aXNpb24gMTk5NDYzKQorKysg
c3lzL25ldC9pZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsNiArMjk0LDcgQEAgc3RydWN0CWlm
cmVxIHsKIAkJc3RydWN0CXNvY2thZGRyIGlmcnVfYWRkcjsKIAkJc3RydWN0CXNvY2thZGRyIGlm
cnVfZHN0YWRkcjsKIAkJc3RydWN0CXNvY2thZGRyIGlmcnVfYnJvYWRhZGRyOworCQlzdHJ1Y3Qg
eyBzaXplX3QgbGVuZ3RoOyBjYWRkcl90CWJ1ZmZlcjsgfSBpZnJ1X2J1ZmZlcjsKIAkJc2hvcnQJ
aWZydV9mbGFnc1syXTsKIAkJc2hvcnQJaWZydV9pbmRleDsKIAkJaW50CWlmcnVfamlkOwpAQCAt
MzA3LDYgKzMwOCw3IEBAIHN0cnVjdAlpZnJlcSB7CiAjZGVmaW5lCWlmcl9hZGRyCWlmcl9pZnJ1
LmlmcnVfYWRkcgkvKiBhZGRyZXNzICovCiAjZGVmaW5lCWlmcl9kc3RhZGRyCWlmcl9pZnJ1Lmlm
cnVfZHN0YWRkcgkvKiBvdGhlciBlbmQgb2YgcC10by1wIGxpbmsgKi8KICNkZWZpbmUJaWZyX2Jy
b2FkYWRkcglpZnJfaWZydS5pZnJ1X2Jyb2FkYWRkcgkvKiBicm9hZGNhc3QgYWRkcmVzcyAqLwor
I2RlZmluZQlpZnJfYnVmZmVyCWlmcl9pZnJ1LmlmcnVfYnVmZmVyCS8qIHVzZXIgc3VwcGxpZWQg
YnVmZmVyIHdpdGggaXRzIGxlbmd0aCAqLwogI2RlZmluZQlpZnJfZmxhZ3MJaWZyX2lmcnUuaWZy
dV9mbGFnc1swXQkvKiBmbGFncyAobG93IDE2IGJpdHMpICovCiAjZGVmaW5lCWlmcl9mbGFnc2hp
Z2gJaWZyX2lmcnUuaWZydV9mbGFnc1sxXQkvKiBmbGFncyAoaGlnaCAxNiBiaXRzKSAqLwogI2Rl
ZmluZQlpZnJfamlkCQlpZnJfaWZydS5pZnJ1X2ppZAkvKiBqYWlsL3ZuZXQgKi8KSW5kZXg6IHN5
cy9uZXQvaWZfdmFyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL25ldC9pZl92YXIuaAkocmV2aXNpb24g
MTk5NDYzKQorKysgc3lzL25ldC9pZl92YXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjA1LDcgKzIw
NSw4IEBAIHN0cnVjdCBpZm5ldCB7CiAJICogYmUgdXNlZCB3aXRoIGNhcmUgd2hlcmUgYmluYXJ5
IGNvbXBhdGliaWxpdHkgaXMgcmVxdWlyZWQuCiAJICovCiAJY2hhcgkgaWZfY3NwYXJlWzNdOwot
CXZvaWQJKmlmX3BzcGFyZVs4XTsKKwl2b2lkCSppZl9wc3BhcmVbN107CisJc3RydWN0IHNidWYg
KmlmX2Rlc2NyaXB0aW9uOwkvKiBpbnRlcmZhY2UgZGVzY3JpcHRpb24gKi8KIAlpbnQJaWZfaXNw
YXJlWzRdOwogfTsKIApJbmRleDogc3lzL3N5cy9wcml2LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL3N5
cy9wcml2LmgJKHJldmlzaW9uIDE5OTQ2MykKKysrIHN5cy9zeXMvcHJpdi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMzUsNiArMzM1LDcgQEAKICNkZWZpbmUJUFJJVl9ORVRfTEFHRwkJNDE1CS8qIEFk
bWluaXN0ZXIgbGFnZyBpbnRlcmZhY2UuICovCiAjZGVmaW5lCVBSSVZfTkVUX0dJRgkJNDE2CS8q
IEFkbWluaXN0ZXIgZ2lmIGludGVyZmFjZS4gKi8KICNkZWZpbmUJUFJJVl9ORVRfU0VUSUZWTkVU
CTQxNwkvKiBNb3ZlIGludGVyZmFjZSB0byB2bmV0LiAqLworI2RlZmluZQlQUklWX05FVF9TRVRJ
RkRFU0NSCTQxOAkvKiBTZXQgaW50ZXJmYWNlIGRlc2NyaXB0aW9uLiAqLwogCiAvKgogICogODAy
LjExLXJlbGF0ZWQgcHJpdmlsZWdlcy4KSW5kZXg6IHN5cy9zeXMvc29ja2lvLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gc3lzL3N5cy9zb2NraW8uaAkocmV2aXNpb24gMTk5NDYzKQorKysgc3lzL3N5cy9zb2Nr
aW8uaAkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsOCBAQAogI2RlZmluZQlTSU9DR0lGTUFD
CV9JT1dSKCdpJywgMzgsIHN0cnVjdCBpZnJlcSkJLyogZ2V0IElGIE1BQyBsYWJlbCAqLwogI2Rl
ZmluZQlTSU9DU0lGTUFDCSBfSU9XKCdpJywgMzksIHN0cnVjdCBpZnJlcSkJLyogc2V0IElGIE1B
QyBsYWJlbCAqLwogI2RlZmluZQlTSU9DU0lGTkFNRQkgX0lPVygnaScsIDQwLCBzdHJ1Y3QgaWZy
ZXEpCS8qIHNldCBJRiBuYW1lICovCisjZGVmaW5lCVNJT0NTSUZERVNDUgkgX0lPVygnaScsIDQx
LCBzdHJ1Y3QgaWZyZXEpCS8qIHNldCBpZm5ldCBkZXNjciAqLyAKKyNkZWZpbmUJU0lPQ0dJRkRF
U0NSCV9JT1dSKCdpJywgNDIsIHN0cnVjdCBpZnJlcSkJLyogZ2V0IGlmbmV0IGRlc2NyICovIAog
CiAjZGVmaW5lCVNJT0NBRERNVUxUSQkgX0lPVygnaScsIDQ5LCBzdHJ1Y3QgaWZyZXEpCS8qIGFk
ZCBtJ2Nhc3QgYWRkciAqLwogI2RlZmluZQlTSU9DREVMTVVMVEkJIF9JT1coJ2knLCA1MCwgc3Ry
dWN0IGlmcmVxKQkvKiBkZWwgbSdjYXN0IGFkZHIgKi8K
--000e0cd6ea5881848104789c265f--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a78074950911171839u3e3fb4f1oae4aa3fc79f1b152>