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>