Date: Tue, 26 Jan 2010 12:21:42 -0800 From: Xin LI <delphij@delphij.net> To: John Baldwin <jhb@freebsd.org> Cc: Robert Watson <rwatson@freebsd.org>, freebsd-net@freebsd.org, d@delphij.net, delphij@freebsd.org Subject: Re: [PATCH] Interface description Message-ID: <4B5F4ED6.1070400@delphij.net> In-Reply-To: <201001261140.51006.jhb@freebsd.org> References: <4B5E16DB.2080203@delphij.net> <201001261140.51006.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------010809040603030808010100 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 2010/01/26 08:40, John Baldwin wrote: > I just have two suggestions/comments: > @@ -295,6 +295,7 @@ struct ifreq { [...] > I prefer to not have this all on one line, but to instead be: [...] > Even better would be to actually define a separate type earlier > in the file I think: [...] > I think caddr_t is deprecated in favor of void * for new APIs at least. I have split it into another type and used void *, also updated the manual page. > Second, it would be nice if SIOCGIFDESCR provided length feedback to userland > similar to sysctl(3). Maybe change the code to set ifr.ifr_buffer.length to > the required length when returning ENAMETOOLONG. Userland can then just skip > to that length directly, or instead use an idiom similar to sysctl where it > does the following: Done in a slightly different way. It seems to be slightly wasteful (not a big deal, though) to ioctl every time to obtain the length, so I used an arbitrary number (2^6) and make the program to adapt to larger number if kernel gave feedback with ENAMETOOLONG, and the buffer/length would be used the next call. Cheers, - -- Xin LI <delphij@delphij.net> http://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iQEcBAEBAgAGBQJLX07VAAoJEATO+BI/yjfB23EIAJPNUBPSW7H1OEGMJgMvDnql 0m/RiZzjgnld5S380ijZNAw4f02ZTT8hUuMM6tHeiVaVwW9JciRlo4EOy6Y0pn8L yUBKN4XCkn1T1HPnBRrEkauFl0E/PwD9tdn0Y//qTO1TFyzCR0vqqg7bm1Fw7uEN dH0lYa4mlbgu47uXoJ/uAhqff0vAgIClthLv3EGX0yj6Kb/UBy9USLZfVP3JMMCJ sRqDZNO20phfa+B6jhsVNgFGorYgHrn/K4sr89b86a9ubCR/FtESfMVsqKvoFWLZ YHVq0IJ5GTpezkcN9aAqRb5hCdw09cGcufFZO6ByxksBDuBRQb9GyuS8w+l2TPk= =uWo0 -----END PGP SIGNATURE----- --------------010809040603030808010100 Content-Type: text/plain; name="ifdescr-20100126.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ifdescr-20100126.diff" SW5kZXg6IGNvbnRyaWIvbGlicGNhcC9pbmV0LmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY29udHJp Yi9saWJwY2FwL2luZXQuYwkocmV2aXNpb24gMjAzMDIxKQorKysgY29udHJpYi9saWJwY2Fw L2luZXQuYwkod29ya2luZyBjb3B5KQpAQCAtNDAxLDExICs0MDEsMTYgQEAgYWRkX2FkZHJf dG9faWZsaXN0KHBjYXBfaWZfdCAqKmFsbGRldnMsIGNvbnN0IGNoYXIKIAlwY2FwX2lmX3Qg KmN1cmRldjsKIAljaGFyICpkZXNjcmlwdGlvbiA9IE5VTEw7CiAJcGNhcF9hZGRyX3QgKmN1 cmFkZHIsICpwcmV2YWRkciwgKm5leHRhZGRyOworCWludCBzOwogI2lmZGVmIFNJT0NHSUZE RVNDUgogCXN0cnVjdCBpZnJlcSBpZnJkZXNjOworI2lmbmRlZiBJRkRFU0NSU0laRQorI2Rl ZmluZSBfSUZERVNDUlNJWkUgNjQKKwljaGFyIGlmZGVzY3JbX0lGREVTQ1JTSVpFXTsKKyNl bHNlCiAJY2hhciBpZmRlc2NyW0lGREVTQ1JTSVpFXTsKLQlpbnQgczsKICNlbmRpZgorI2Vu ZGlmCiAKICNpZmRlZiBTSU9DR0lGREVTQ1IKIAkvKgpAQCAtNDEzLDEyICs0MTgsMTcgQEAg YWRkX2FkZHJfdG9faWZsaXN0KHBjYXBfaWZfdCAqKmFsbGRldnMsIGNvbnN0IGNoYXIKIAkg Ki8KIAltZW1zZXQoJmlmcmRlc2MsIDAsIHNpemVvZiBpZnJkZXNjKTsKIAlzdHJsY3B5KGlm cmRlc2MuaWZyX25hbWUsIG5hbWUsIHNpemVvZiBpZnJkZXNjLmlmcl9uYW1lKTsKKyNpZmRl ZiBfX0ZyZWVCU0RfXworCWlmcmRlc2MuaWZyX2J1ZmZlci5idWZmZXIgPSBpZmRlc2NyOwor CWlmcmRlc2MuaWZyX2J1ZmZlci5sZW5ndGggPSBzaXplb2YoaWZkZXNjcik7CisjZWxzZQog CWlmcmRlc2MuaWZyX2RhdGEgPSAoY2FkZHJfdCkmaWZkZXNjcjsKKyNlbmRpZgogCXMgPSBz b2NrZXQoQUZfSU5FVCwgU09DS19ER1JBTSwgMCk7CiAJaWYgKHMgPj0gMCkgewogCQlpZiAo aW9jdGwocywgU0lPQ0dJRkRFU0NSLCAmaWZyZGVzYykgPT0gMCAmJgotCQkgICAgc3RybGVu KGlmcmRlc2MuaWZyX2RhdGEpICE9IDApCi0JCQlkZXNjcmlwdGlvbiA9IGlmcmRlc2MuaWZy X2RhdGE7CisJCSAgICBzdHJsZW4oaWZkZXNjcikgIT0gMCkKKwkJCWRlc2NyaXB0aW9uID0g aWZkZXNjcjsKIAkJY2xvc2Uocyk7CiAJfQogI2VuZGlmCkluZGV4OiBzYmluL2lmY29uZmln L2lmY29uZmlnLjgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc2Jpbi9pZmNvbmZpZy9pZmNvbmZpZy44 CShyZXZpc2lvbiAyMDMwMjEpCisrKyBzYmluL2lmY29uZmlnL2lmY29uZmlnLjgJKHdvcmtp bmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIC5cIiAgICAgRnJvbTogQCgjKWlmY29uZmln LjgJOC4zIChCZXJrZWxleSkgMS81Lzk0CiAuXCIgJEZyZWVCU0QkCiAuXCIKLS5EZCBTZXB0 ZW1iZXIgMjMsIDIwMDkKKy5EZCBKYW51YXJ5IDI2LCAyMDEwCiAuRHQgSUZDT05GSUcgOAog Lk9zCiAuU2ggTkFNRQpAQCAtMjU4LDYgKzI1OCwxMiBAQCBEaXNhYmxlIHBlcm1hbmVudGx5 IHByb21pc2N1b3VzIG1vZGUuCiBBbm90aGVyIG5hbWUgZm9yIHRoZQogLkZsIGFsaWFzCiBw YXJhbWV0ZXIuCisuSXQgQ20gZGVzY3JpcHRpb24gQXIgdmFsdWUgLCBDbSBkZXNjciBBciB2 YWx1ZQorU3BlY2lmeSBhIGRlc2NyaXB0aW9uIG9mIHRoZSBpbnRlcmZhY2UuCitUaGlzIGNh biBiZSB1c2VkIHRvIGxhYmVsIGludGVyZmFjZXMgaW4gc2l0dWF0aW9ucyB3aGVyZSB0aGV5 IG1heQorb3RoZXJ3aXNlIGJlIGRpZmZpY3VsdCB0byBkaXN0aW5ndWlzaC4KKy5JdCBDbSAt ZGVzY3JpcHRpb24gLCBDbSAtZGVzY3IKK0NsZWFyIHRoZSBpbnRlcmZhY2UgZGVzY3JpcHRp b24uCiAuSXQgQ20gZG93bgogTWFyayBhbiBpbnRlcmZhY2UKIC5EcSBkb3duIC4KQEAgLTI1 MTIsNiArMjUxOCwxMCBAQCBDb25maWd1cmUgdGhlIGludGVyZmFjZQogdG8gdXNlIDEwMGJh c2VUWCwgZnVsbCBkdXBsZXggRXRoZXJuZXQgbWVkaWEgb3B0aW9uczoKIC5EbCAjIGlmY29u ZmlnIHhsMCBtZWRpYSAxMDBiYXNlVFggbWVkaWFvcHQgZnVsbC1kdXBsZXgKIC5QcAorTGFi ZWwgdGhlIGVtMCBpbnRlcmZhY2UgYXMgYW4gdXBsaW5rOgorLlBwCisuRGwgIyBpZmNvbmZp ZyBlbTAgZGVzY3JpcHRpb24gXCYiVXBsaW5rIHRvIEdpZ2FiaXQgU3dpdGNoIDJcJiIKKy5Q cAogQ3JlYXRlIHRoZSBzb2Z0d2FyZSBuZXR3b3JrIGludGVyZmFjZQogLkxpIGdpZjEgOgog LkRsICMgaWZjb25maWcgZ2lmMSBjcmVhdGUKSW5kZXg6IHNiaW4vaWZjb25maWcvaWZjb25m aWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBzYmluL2lmY29uZmlnL2lmY29uZmlnLmMJKHJldmlz aW9uIDIwMzAyMSkKKysrIHNiaW4vaWZjb25maWcvaWZjb25maWcuYwkod29ya2luZyBjb3B5 KQpAQCAtNDQsNyArNDQsNiBAQCBzdGF0aWMgY29uc3QgY2hhciByY3NpZFtdID0KICNpbmNs dWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KICNpbmNsdWRlIDxz eXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgogI2luY2x1ZGUgPHN5cy90 aW1lLmg+CiAjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgogI2luY2x1ZGUgPHN5cy9saW5rZXIu aD4KQEAgLTgzLDYgKzgyLDggQEAgc3RhdGljIGNvbnN0IGNoYXIgcmNzaWRbXSA9CiBzdHJ1 Y3QJaWZyZXEgaWZyOwogCiBjaGFyCW5hbWVbSUZOQU1TSVpdOworY2hhcgkqZGVzY3IgPSBO VUxMOworc2l6ZV90CWRlc2NybGVuID0gNjQ7CiBpbnQJc2V0YWRkcjsKIGludAlzZXRtYXNr OwogaW50CWRvYWxpYXM7CkBAIC04MzgsNiArODM5LDQwIEBAIHNldGlmbmFtZShjb25zdCBj aGFyICp2YWwsIGludCBkdW1teSBfX3VudXNlZCwgaW50CiAJZnJlZShuZXduYW1lKTsKIH0K IAorLyogQVJHU1VTRUQgKi8KK3N0YXRpYyB2b2lkCitzZXRpZmRlc2NyKGNvbnN0IGNoYXIg KnZhbCwgaW50IGR1bW15IF9fdW51c2VkLCBpbnQgcywgCisgICAgY29uc3Qgc3RydWN0IGFm c3d0Y2ggKmFmcCkKK3sKKwljaGFyICpuZXdkZXNjcjsKKworCWlmci5pZnJfYnVmZmVyLmxl bmd0aCA9IHN0cmxlbih2YWwpICsgMTsKKwlpZiAoaWZyLmlmcl9idWZmZXIubGVuZ3RoID09 IDEpIHsKKwkJaWZyLmlmcl9idWZmZXIuYnVmZmVyID0gbmV3ZGVzY3IgPSBOVUxMOworCQlp ZnIuaWZyX2J1ZmZlci5sZW5ndGggPSAwOworCX0gZWxzZSB7CisJCW5ld2Rlc2NyID0gc3Ry ZHVwKHZhbCk7CisJCWlmci5pZnJfYnVmZmVyLmJ1ZmZlciA9IG5ld2Rlc2NyOworCQlpZiAo bmV3ZGVzY3IgPT0gTlVMTCkgeworCQkJd2Fybigibm8gbWVtb3J5IHRvIHNldCBpZmRlc2Ny Iik7CisJCQlyZXR1cm47CisJCX0KKwl9CisKKwlpZiAoaW9jdGwocywgU0lPQ1NJRkRFU0NS LCAoY2FkZHJfdCkmaWZyKSA8IDApCisJCXdhcm4oImlvY3RsIChzZXQgZGVzY3IpIik7CisK KwlmcmVlKG5ld2Rlc2NyKTsKK30KKworLyogQVJHU1VTRUQgKi8KK3N0YXRpYyB2b2lkCit1 bnNldGlmZGVzY3IoY29uc3QgY2hhciAqdmFsLCBpbnQgdmFsdWUsIGludCBzLCBjb25zdCBz dHJ1Y3QgYWZzd3RjaCAqYWZwKQoreworCisJc2V0aWZkZXNjcigiIiwgMCwgcywgMCk7Cit9 CisKICNkZWZpbmUJSUZGQklUUyBcCiAiXDAyMFwxVVBcMkJST0FEQ0FTVFwzREVCVUdcNExP T1BCQUNLXDVQT0lOVE9QT0lOVFw2U01BUlRcN1JVTk5JTkciIFwKICJcMTBOT0FSUFwxMVBS T01JU0NcMTJBTExNVUxUSVwxM09BQ1RJVkVcMTRTSU1QTEVYXDE1TElOSzBcMTZMSU5LMVwx N0xJTksyIiBcCkBAIC04ODIsNiArOTE3LDI1IEBAIHN0YXR1cyhjb25zdCBzdHJ1Y3QgYWZz d3RjaCAqYWZwLCBjb25zdCBzdHJ1Y3Qgc29jCiAJCXByaW50ZigiIG10dSAlZCIsIGlmci5p ZnJfbXR1KTsKIAlwdXRjaGFyKCdcbicpOwogCisJZm9yICg7OykgeworCQlpZiAoKGRlc2Ny ID0gcmVhbGxvY2YoZGVzY3IsIGRlc2NybGVuKSkgIT0gTlVMTCkgeworCQkJaWZyLmlmcl9i dWZmZXIuYnVmZmVyID0gZGVzY3I7CisJCQlpZnIuaWZyX2J1ZmZlci5sZW5ndGggPSBkZXNj cmxlbjsKKwkJCWlmIChpb2N0bChzLCBTSU9DR0lGREVTQ1IsICZpZnIpID09IDApIHsKKwkJ CQlpZiAoc3RybGVuKGRlc2NyKSA+IDApCisJCQkJCXByaW50ZigiXHRkZXNjcmlwdGlvbjog JXNcbiIsIGRlc2NyKTsKKwkJCQlicmVhazsKKwkJCX0gZWxzZSBpZiAoZXJybm8gPT0gRU5B TUVUT09MT05HKQorCQkJCWRlc2NybGVuID0gaWZyLmlmcl9idWZmZXIubGVuZ3RoOworCQkJ ZWxzZQorCQkJCWJyZWFrOworCQl9IGVsc2UgeworCQkJd2FybigidW5hYmxlIHRvIGFsbG9j YXRlIG1lbW9yeSBmb3IgaW50ZXJmYWNlIgorCQkJICAgICJkZXNjcmlwdGlvbiIpOworCQkJ YnJlYWs7CisJCX0KKwl9OworCiAJaWYgKGlvY3RsKHMsIFNJT0NHSUZDQVAsIChjYWRkcl90 KSZpZnIpID09IDApIHsKIAkJaWYgKGlmci5pZnJfY3VyY2FwICE9IDApIHsKIAkJCXByaW50 YigiXHRvcHRpb25zIiwgaWZyLmlmcl9jdXJjYXAsIElGQ0FQQklUUyk7CkBAIC0xMDUxLDYg KzExMDUsMTAgQEAgc3RhdGljIHN0cnVjdCBjbWQgYmFzaWNfY21kc1tdID0gewogCURFRl9D TUQoIi1hcnAiLAkJSUZGX05PQVJQLAlzZXRpZmZsYWdzKSwKIAlERUZfQ01EKCJkZWJ1ZyIs CUlGRl9ERUJVRywJc2V0aWZmbGFncyksCiAJREVGX0NNRCgiLWRlYnVnIiwJLUlGRl9ERUJV RywJc2V0aWZmbGFncyksCisJREVGX0NNRF9BUkcoImRlc2NyaXB0aW9uIiwJCXNldGlmZGVz Y3IpLAorCURFRl9DTURfQVJHKCJkZXNjciIsCQkJc2V0aWZkZXNjciksCisJREVGX0NNRCgi LWRlc2NyaXB0aW9uIiwJMCwJCXVuc2V0aWZkZXNjciksCisJREVGX0NNRCgiLWRlc2NyIiwJ MCwJCXVuc2V0aWZkZXNjciksCiAJREVGX0NNRCgicHJvbWlzYyIsCUlGRl9QUFJPTUlTQywJ c2V0aWZmbGFncyksCiAJREVGX0NNRCgiLXByb21pc2MiLAktSUZGX1BQUk9NSVNDLAlzZXRp ZmZsYWdzKSwKIAlERUZfQ01EKCJhZGQiLAkJSUZGX1VQLAkJbm90ZWFsaWFzKSwKSW5kZXg6 IHNoYXJlL21hbi9tYW40L25ldGludHJvLjQKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc2hhcmUvbWFu L21hbjQvbmV0aW50cm8uNAkocmV2aXNpb24gMjAzMDIxKQorKysgc2hhcmUvbWFuL21hbjQv bmV0aW50cm8uNAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogLlwiICAgICBA KCMpbmV0aW50cm8uNAk4LjIgKEJlcmtlbGV5KSAxMS8zMC85MwogLlwiICRGcmVlQlNEJAog LlwiCi0uRGQgSnVuZSAxOCwgMjAwNAorLkRkIEphbnVhcnkgMjYsIDIwMTAKIC5EdCBORVRJ TlRSTyA0CiAuT3MKIC5TaCBOQU1FCkBAIC0yMDQsNiArMjA0LDcgQEAgc3RydWN0CWlmcmVx IHsKICAgICAgICAgc3RydWN0ICAgIHNvY2thZGRyIGlmcnVfYWRkcjsKICAgICAgICAgc3Ry dWN0ICAgIHNvY2thZGRyIGlmcnVfZHN0YWRkcjsKICAgICAgICAgc3RydWN0ICAgIHNvY2th ZGRyIGlmcnVfYnJvYWRhZGRyOworICAgICAgICBzdHJ1Y3QgICAgaWZyZXFfYnVmZmVyIGlm cnVfYnVmZmVyOwogICAgICAgICBzaG9ydCAgICAgaWZydV9mbGFnc1syXTsKICAgICAgICAg c2hvcnQgICAgIGlmcnVfaW5kZXg7CiAgICAgICAgIGludCAgICAgICBpZnJ1X21ldHJpYzsK QEAgLTIxNiw2ICsyMTcsNyBAQCBzdHJ1Y3QJaWZyZXEgewogI2RlZmluZSBpZnJfYWRkciAg ICAgIGlmcl9pZnJ1LmlmcnVfYWRkciAgICAgIC8qIGFkZHJlc3MgKi8KICNkZWZpbmUgaWZy X2RzdGFkZHIgICBpZnJfaWZydS5pZnJ1X2RzdGFkZHIgICAvKiBvdGhlciBlbmQgb2YgcC10 by1wIGxpbmsgKi8KICNkZWZpbmUgaWZyX2Jyb2FkYWRkciBpZnJfaWZydS5pZnJ1X2Jyb2Fk YWRkciAvKiBicm9hZGNhc3QgYWRkcmVzcyAqLworI2RlZmluZSBpZnJfYnVmZmVyICAgIGlm cl9pZnJ1LmlmcnVfYnVmZmVyICAgIC8qIHVzZXIgc3VwcGxpZWQgYnVmZmVyIHdpdGggaXRz IGxlbmd0aCAqLwogI2RlZmluZSBpZnJfZmxhZ3MgICAgIGlmcl9pZnJ1LmlmcnVfZmxhZ3Nb MF0gIC8qIGZsYWdzIChsb3cgMTYgYml0cykgKi8KICNkZWZpbmUgaWZyX2ZsYWdzaGlnaCBp ZnJfaWZydS5pZnJ1X2ZsYWdzWzFdICAvKiBmbGFncyAoaGlnaCAxNiBiaXRzKSAqLwogI2Rl ZmluZSBpZnJfbWV0cmljICAgIGlmcl9pZnJ1LmlmcnVfbWV0cmljICAgIC8qIG1ldHJpYyAq LwpAQCAtMjc3LDYgKzI3OSwzMiBAQCBhbmQKIGZpZWxkcyBvZiB0aGUKIC5WdCBpZnJlcQog c3RydWN0dXJlLCByZXNwZWN0aXZlbHkuCisuSXQgRHYgU0lPQ0dJRkRFU0NSCitHZXQgdGhl IGludGVyZmFjZSBkZXNjcmlwdGlvbiwgcmV0dXJuZWQgaW4gdGhlCisuVmEgYnVmZmVyCitm aWVsZCBvZgorLlZhIGlmcnVfYnVmZmVyCitzdHJ1Y3QuCitUaGUgdXNlciBzdXBwbGllZCBi dWZmZXIgbGVuZ3RoIHNob3VsZCBiZSBkZWZpbmVkIGluIHRoZQorLlZhIGxlbmd0aAorZmll bGQgb2YKKy5WYSBpZnJ1X2J1ZmZlcgorc3RydWN0IHBhc3NlZCBpbiBhcyBwYXJhbWV0ZXIs IGFuZCB0aGUgbGVuZ3RoIHdvdWxkIGluY2x1ZGUKK3RoZSB0ZXJtaW5hdGluZyBudWwgY2hh cmFjdGVyLiAgSWYgdGhlcmUgaXMgbm90IGVub3VnaCBzcGFjZQordG8gaG9sZCB0aGUgaW50 ZXJmYWNlIGxlbmd0aCwgbm8gY29weSB3b3VsZCBiZSBkb25lIGFuZCBhbgorZXJyb3Igd291 bGQgYmUgcmV0dXJuZWQuICBUaGUga2VybmVsIHdpbGwgc3RvcmUgdGhlIGJ1ZmZlcgorbGVu Z3RoIGluIHRoZQorLlZhIGxlbmd0aAorZmllbGQgdXBvbiByZXR1cm4sIHJlZ2FyZGxlc3Mg d2hldGhlciB0aGUgYnVmZmVyIGl0c2VsZiBpcworc3VmZmljaWVudCB0byBob2xkIHRoZSBk YXRhLgorLkl0IER2IFNJT0NTSUZERVNDUgorU2V0IHRoZSBpbnRlcmZhY2UgZGVzY3JpcHRp b24gdG8gdGhlIHZhbHVlIG9mIHRoZQorLlZhIGJ1ZmZlcgorZmllbGQgb2YKKy5WYSBpZnJ1 X2J1ZmZlcgorc3RydWN0LCB3aXRoCisuVmEgbGVuZ3RoCitmaWVsZCBzcGVjaWZ5aW5nIGl0 cyBsZW5ndGggKGNvdW50aW5nIHRoZSB0ZXJtaW5hdGluZyBudWwpLgogLkl0IER2IFNJT0NT SUZGTEFHUwogU2V0IGludGVyZmFjZSBmbGFncyBmaWVsZC4KIElmIHRoZSBpbnRlcmZhY2Ug aXMgbWFya2VkIGRvd24sCkBAIC00MDQsNiArNDMyLDEzIEBAIHN0cnVjdCBpZl9jbG9uZXJl cSB7CiAgICAgICAgIGNoYXIgICAgKmlmY3JfYnVmZmVyOyAgIC8qIGJ1ZmZlciBmb3IgY2xv bmVyIG5hbWVzICovCiB9OwogLkVkCisuQmQgLWxpdGVyYWwKKy8qIFN0cnVjdHVyZSB1c2Vk IGluIFNJT0NHSUZERVNDUiBhbmQgU0lPQ1NJRkRFU0NSIHJlcXVlc3RzICovCitzdHJ1Y3Qg aWZyZXFfYnVmZmVyIHsKKyAgICAgICAgc2l6ZV90ICBsZW5ndGg7ICAgICAgICAgLyogbGVu Z3RoIG9mIHRoZSBidWZmZXIgKi8KKyAgICAgICAgdm9pZCAgICpidWZmZXI7ICAgICAgICAg LyogcG9pbnRlciB0byB1c2VybGFuZCBzcGFjZSBidWZmZXIgKi8KK307CisuRWQKIC5TaCBT RUUgQUxTTwogLlhyIGlvY3RsIDIgLAogLlhyIHNvY2tldCAyICwKSW5kZXg6IHN5cy9rZXJu L2tlcm5famFpbC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9rZXJuL2tlcm5famFpbC5jCShy ZXZpc2lvbiAyMDMwMjEpCisrKyBzeXMva2Vybi9rZXJuX2phaWwuYwkod29ya2luZyBjb3B5 KQpAQCAtMzU5Miw2ICszNTkyLDcgQEAgcHJpc29uX3ByaXZfY2hlY2soc3RydWN0IHVjcmVk ICpjcmVkLCBpbnQgcHJpdikKIAljYXNlIFBSSVZfTkVUX1NFVElGTVRVOgogCWNhc2UgUFJJ Vl9ORVRfU0VUSUZGTEFHUzoKIAljYXNlIFBSSVZfTkVUX1NFVElGQ0FQOgorCWNhc2UgUFJJ Vl9ORVRfU0VUSUZERVNDUjoKIAljYXNlIFBSSVZfTkVUX1NFVElGTkFNRQk6CiAJY2FzZSBQ UklWX05FVF9TRVRJRk1FVFJJQzoKIAljYXNlIFBSSVZfTkVUX1NFVElGUEhZUzoKSW5kZXg6 IHN5cy9uZXQvaWYuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbmV0L2lmLmMJKHJldmlzaW9u IDIwMzAyMSkKKysrIHN5cy9uZXQvaWYuYwkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEw NiwxOCBAQCBTWVNDVExfSU5UKF9uZXRfbGluaywgT0lEX0FVVE8sIGxvZ19saW5rX3N0YXRl X2NoYQogCSZsb2dfbGlua19zdGF0ZV9jaGFuZ2UsIDAsCiAJImxvZyBpbnRlcmZhY2UgbGlu ayBzdGF0ZSBjaGFuZ2UgZXZlbnRzIik7CiAKKy8qIEludGVyZmFjZSBkZXNjcmlwdGlvbiAq Lworc3RhdGljIHVuc2lnbmVkIGludCBpZmRlc2NyX21heGxlbiA9IDEwMjQ7CitTWVNDVExf VUlOVChfbmV0LCBPSURfQVVUTywgaWZkZXNjcl9tYXhsZW4sIENUTEZMQUdfUlcsCisJJmlm ZGVzY3JfbWF4bGVuLCAwLAorCSJhZG1pbmlzdHJhdGl2ZSBtYXhpbXVtIGxlbmd0aCBmb3Ig aW50ZXJmYWNlIGRlc2NyaXB0aW9uIik7CisKK01BTExPQ19ERUZJTkUoTV9JRkRFU0NSLCAi aWZkZXNjciIsICJpZm5ldCBkZXNjcmlwdGlvbnMiKTsKKworLyogZ2xvYmFsIHN4IGZvciBu b24tY3JpdGljYWwgcGF0aCBpZmRlc2NyICovCitzdGF0aWMgc3RydWN0IHN4IGlmZGVzY3Jf c3g7CitTWF9TWVNJTklUKGlmZGVzY3Jfc3gsICZpZmRlc2NyX3N4LCAiaWZuZXQgZGVzY3Ii KTsKKwogdm9pZAkoKmJzdHBfbGlua3N0YXRlX3ApKHN0cnVjdCBpZm5ldCAqaWZwLCBpbnQg c3RhdGUpOwogdm9pZAkoKm5nX2V0aGVyX2xpbmtfc3RhdGVfcCkoc3RydWN0IGlmbmV0ICpp ZnAsIGludCBzdGF0ZSk7CiB2b2lkCSgqbGFnZ19saW5rc3RhdGVfcCkoc3RydWN0IGlmbmV0 ICppZnAsIGludCBzdGF0ZSk7CkBAIC00NDIsNiArNDU0LDggQEAgaWZfZnJlZV9pbnRlcm5h bChzdHJ1Y3QgaWZuZXQgKmlmcCkKICNpZmRlZiBNQUMKIAltYWNfaWZuZXRfZGVzdHJveShp ZnApOwogI2VuZGlmIC8qIE1BQyAqLworCWlmIChpZnAtPmlmX2Rlc2NyaXB0aW9uICE9IE5V TEwpCisJCWZyZWUoaWZwLT5pZl9kZXNjcmlwdGlvbiwgTV9JRkRFU0NSKTsKIAlJRl9BRkRB VEFfREVTVFJPWShpZnApOwogCUlGX0FERFJfTE9DS19ERVNUUk9ZKGlmcCk7CiAJaWZxX2Rl bGV0ZSgmaWZwLT5pZl9zbmQpOwpAQCAtMTk3OSw2ICsxOTkzLDggQEAgaWZod2lvY3RsKHVf bG9uZyBjbWQsIHN0cnVjdCBpZm5ldCAqaWZwLCBjYWRkcl90IGQKIAlpbnQgZXJyb3IgPSAw OwogCWludCBuZXdfZmxhZ3MsIHRlbXBfZmxhZ3M7CiAJc2l6ZV90IG5hbWVsZW4sIG9uYW1l bGVuOworCXNpemVfdCBkZXNjcmxlbjsKKwljaGFyICpkZXNjcmJ1ZiwgKm9kZXNjcmJ1ZjsK IAljaGFyIG5ld19uYW1lW0lGTkFNU0laXTsKIAlzdHJ1Y3QgaWZhZGRyICppZmE7CiAJc3Ry dWN0IHNvY2thZGRyX2RsICpzZGw7CkBAIC0yMDE4LDYgKzIwMzQsNjAgQEAgaWZod2lvY3Rs KHVfbG9uZyBjbWQsIHN0cnVjdCBpZm5ldCAqaWZwLCBjYWRkcl90IGQKIAkJaWZyLT5pZnJf cGh5cyA9IGlmcC0+aWZfcGh5c2ljYWw7CiAJCWJyZWFrOwogCisJY2FzZSBTSU9DR0lGREVT Q1I6CisJCWVycm9yID0gMDsKKwkJc3hfc2xvY2soJmlmZGVzY3Jfc3gpOworCQlpZiAoaWZw LT5pZl9kZXNjcmlwdGlvbiA9PSBOVUxMKSB7CisJCQlpZnItPmlmcl9idWZmZXIubGVuZ3Ro ID0gMDsKKwkJCWVycm9yID0gRU5PTVNHOworCQl9IGVsc2UgeworCQkJLyogc3BhY2UgZm9y IHRlcm1pbmF0aW5nIG51bCAqLworCQkJZGVzY3JsZW4gPSBzdHJsZW4oaWZwLT5pZl9kZXNj cmlwdGlvbikgKyAxOworCQkJaWYgKGlmci0+aWZyX2J1ZmZlci5sZW5ndGggPCBkZXNjcmxl bikKKwkJCQllcnJvciA9IEVOQU1FVE9PTE9ORzsKKwkJCWVsc2UKKwkJCQllcnJvciA9IGNv cHlvdXQoaWZwLT5pZl9kZXNjcmlwdGlvbiwKKwkJCQkgICAgaWZyLT5pZnJfYnVmZmVyLmJ1 ZmZlciwgZGVzY3JsZW4pOworCQkJaWZyLT5pZnJfYnVmZmVyLmxlbmd0aCA9IGRlc2NybGVu OworCQl9CisJCXN4X3N1bmxvY2soJmlmZGVzY3Jfc3gpOworCQlicmVhazsKKworCWNhc2Ug U0lPQ1NJRkRFU0NSOgorCQllcnJvciA9IHByaXZfY2hlY2sodGQsIFBSSVZfTkVUX1NFVElG REVTQ1IpOworCQlpZiAoZXJyb3IpCisJCQlyZXR1cm4gKGVycm9yKTsKKworCQkvKgorCQkg KiBDb3B5IG9ubHkgKGxlbmd0aC0xKSBieXRlcyB0byBtYWtlIHN1cmUgdGhhdAorCQkgKiBp Zl9kZXNjcmlwdGlvbiBpcyBhbHdheXMgbnVsIHRlcm1pbmF0ZWQuICBUaGUKKwkJICogbGVu Z3RoIHBhcmFtZXRlciBpcyBzdXBwb3NlZCB0byBjb3VudCB0aGUKKwkJICogdGVybWluYXRp bmcgbnVsIGluLgorCQkgKi8KKwkJaWYgKGlmci0+aWZyX2J1ZmZlci5sZW5ndGggPiBpZmRl c2NyX21heGxlbikKKwkJCXJldHVybiAoRU5BTUVUT09MT05HKTsKKwkJZWxzZSBpZiAoaWZy LT5pZnJfYnVmZmVyLmxlbmd0aCA9PSAwKQorCQkJZGVzY3JidWYgPSBOVUxMOworCQllbHNl IHsKKwkJCWRlc2NyYnVmID0gbWFsbG9jKGlmci0+aWZyX2J1ZmZlci5sZW5ndGgsIE1fSUZE RVNDUiwKKwkJCSAgICBNX1dBSVRPSyB8IE1fWkVSTyk7CisJCQllcnJvciA9IGNvcHlpbihp ZnItPmlmcl9idWZmZXIuYnVmZmVyLCBkZXNjcmJ1ZiwKKwkJCSAgICBpZnItPmlmcl9idWZm ZXIubGVuZ3RoIC0gMSk7CisJCQlpZiAoZXJyb3IpIHsKKwkJCQlmcmVlKGRlc2NyYnVmLCBN X0lGREVTQ1IpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisKKwkJc3hfeGxvY2soJmlmZGVz Y3Jfc3gpOworCQlvZGVzY3JidWYgPSBpZnAtPmlmX2Rlc2NyaXB0aW9uOworCQlpZnAtPmlm X2Rlc2NyaXB0aW9uID0gZGVzY3JidWY7CisJCXN4X3h1bmxvY2soJmlmZGVzY3Jfc3gpOwor CisJCWdldG1pY3JvdGltZSgmaWZwLT5pZl9sYXN0Y2hhbmdlKTsKKwkJZnJlZShvZGVzY3Ji dWYsIE1fSUZERVNDUik7CisJCWJyZWFrOworCiAJY2FzZSBTSU9DU0lGRkxBR1M6CiAJCWVy cm9yID0gcHJpdl9jaGVjayh0ZCwgUFJJVl9ORVRfU0VUSUZGTEFHUyk7CiAJCWlmIChlcnJv cikKSW5kZXg6IHN5cy9uZXQvaWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbmV0L2lmLmgJ KHJldmlzaW9uIDIwMzAyMSkKKysrIHN5cy9uZXQvaWYuaAkod29ya2luZyBjb3B5KQpAQCAt Mjg0LDYgKzI4NCwxNCBAQCBzdHJ1Y3QgaWZfYW5ub3VuY2Vtc2doZHIgewogI2RlZmluZQlJ RkFOX0RFUEFSVFVSRQkxCS8qIGludGVyZmFjZSBkZXBhcnR1cmUgKi8KIAogLyoKKyAqIEJ1 ZmZlciB3aXRoIGxlbmd0aCB0byBiZSB1c2VkIGluIFNJT0NHSUZERVNDUi9TSU9DU0lGREVT Q1IgcmVxdWVzdHMKKyAqLworc3RydWN0IGlmcmVxX2J1ZmZlciB7CisJc2l6ZV90CWxlbmd0 aDsKKwl2b2lkCSpidWZmZXI7Cit9OworCisvKgogICogSW50ZXJmYWNlIHJlcXVlc3Qgc3Ry dWN0dXJlIHVzZWQgZm9yIHNvY2tldAogICogaW9jdGwncy4gIEFsbCBpbnRlcmZhY2UgaW9j dGwncyBtdXN0IGhhdmUgcGFyYW1ldGVyCiAgKiBkZWZpbml0aW9ucyB3aGljaCBiZWdpbiB3 aXRoIGlmcl9uYW1lLiAgVGhlCkBAIC0yOTUsNiArMzAzLDcgQEAgc3RydWN0CWlmcmVxIHsK IAkJc3RydWN0CXNvY2thZGRyIGlmcnVfYWRkcjsKIAkJc3RydWN0CXNvY2thZGRyIGlmcnVf ZHN0YWRkcjsKIAkJc3RydWN0CXNvY2thZGRyIGlmcnVfYnJvYWRhZGRyOworCQlzdHJ1Y3QJ aWZyZXFfYnVmZmVyIGlmcnVfYnVmZmVyOwogCQlzaG9ydAlpZnJ1X2ZsYWdzWzJdOwogCQlz aG9ydAlpZnJ1X2luZGV4OwogCQlpbnQJaWZydV9qaWQ7CkBAIC0zMDgsNiArMzE3LDcgQEAg c3RydWN0CWlmcmVxIHsKICNkZWZpbmUJaWZyX2FkZHIJaWZyX2lmcnUuaWZydV9hZGRyCS8q IGFkZHJlc3MgKi8KICNkZWZpbmUJaWZyX2RzdGFkZHIJaWZyX2lmcnUuaWZydV9kc3RhZGRy CS8qIG90aGVyIGVuZCBvZiBwLXRvLXAgbGluayAqLwogI2RlZmluZQlpZnJfYnJvYWRhZGRy CWlmcl9pZnJ1LmlmcnVfYnJvYWRhZGRyCS8qIGJyb2FkY2FzdCBhZGRyZXNzICovCisjZGVm aW5lCWlmcl9idWZmZXIJaWZyX2lmcnUuaWZydV9idWZmZXIJLyogdXNlciBzdXBwbGllZCBi dWZmZXIgd2l0aCBpdHMgbGVuZ3RoICovCiAjZGVmaW5lCWlmcl9mbGFncwlpZnJfaWZydS5p ZnJ1X2ZsYWdzWzBdCS8qIGZsYWdzIChsb3cgMTYgYml0cykgKi8KICNkZWZpbmUJaWZyX2Zs YWdzaGlnaAlpZnJfaWZydS5pZnJ1X2ZsYWdzWzFdCS8qIGZsYWdzIChoaWdoIDE2IGJpdHMp ICovCiAjZGVmaW5lCWlmcl9qaWQJCWlmcl9pZnJ1LmlmcnVfamlkCS8qIGphaWwvdm5ldCAq LwpJbmRleDogc3lzL25ldC9pZl92YXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbmV0L2lm X3Zhci5oCShyZXZpc2lvbiAyMDMwMjEpCisrKyBzeXMvbmV0L2lmX3Zhci5oCSh3b3JraW5n IGNvcHkpCkBAIC0yMDMsNyArMjAzLDggQEAgc3RydWN0IGlmbmV0IHsKIAkgKiBiZSB1c2Vk IHdpdGggY2FyZSB3aGVyZSBiaW5hcnkgY29tcGF0aWJpbGl0eSBpcyByZXF1aXJlZC4KIAkg Ki8KIAljaGFyCSBpZl9jc3BhcmVbM107Ci0Jdm9pZAkqaWZfcHNwYXJlWzhdOworCWNoYXIJ KmlmX2Rlc2NyaXB0aW9uOwkvKiBpbnRlcmZhY2UgZGVzY3JpcHRpb24gKi8KKwl2b2lkCSpp Zl9wc3BhcmVbN107CiAJaW50CWlmX2lzcGFyZVs0XTsKIH07CiAKSW5kZXg6IHN5cy9zeXMv cGFyYW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvc3lzL3BhcmFtLmgJKHJldmlzaW9uIDIw MzAyMSkKKysrIHN5cy9zeXMvcGFyYW0uaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgs NyBAQAogICoJCWluIHRoZSByYW5nZSA1IHRvIDkuCiAgKi8KICN1bmRlZiBfX0ZyZWVCU0Rf dmVyc2lvbgotI2RlZmluZSBfX0ZyZWVCU0RfdmVyc2lvbiA5MDAwMDgJLyogTWFzdGVyLCBw cm9wYWdhdGVkIHRvIG5ld3ZlcnMgKi8KKyNkZWZpbmUgX19GcmVlQlNEX3ZlcnNpb24gOTAw MDA5CS8qIE1hc3RlciwgcHJvcGFnYXRlZCB0byBuZXd2ZXJzICovCiAKICNpZm5kZWYgTE9D T1JFCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CkluZGV4OiBzeXMvc3lzL3ByaXYuaAo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBzeXMvc3lzL3ByaXYuaAkocmV2aXNpb24gMjAzMDIxKQorKysgc3lz L3N5cy9wcml2LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzNSw2ICszMzUsNyBAQAogI2RlZmlu ZQlQUklWX05FVF9MQUdHCQk0MTUJLyogQWRtaW5pc3RlciBsYWdnIGludGVyZmFjZS4gKi8K ICNkZWZpbmUJUFJJVl9ORVRfR0lGCQk0MTYJLyogQWRtaW5pc3RlciBnaWYgaW50ZXJmYWNl LiAqLwogI2RlZmluZQlQUklWX05FVF9TRVRJRlZORVQJNDE3CS8qIE1vdmUgaW50ZXJmYWNl IHRvIHZuZXQuICovCisjZGVmaW5lCVBSSVZfTkVUX1NFVElGREVTQ1IJNDE4CS8qIFNldCBp bnRlcmZhY2UgZGVzY3JpcHRpb24uICovCiAKIC8qCiAgKiA4MDIuMTEtcmVsYXRlZCBwcml2 aWxlZ2VzLgpJbmRleDogc3lzL3N5cy9zb2NraW8uaAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMv c3lzL3NvY2tpby5oCShyZXZpc2lvbiAyMDMwMjEpCisrKyBzeXMvc3lzL3NvY2tpby5oCSh3 b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4Miw4IEBACiAjZGVmaW5lCVNJT0NHSUZNQUMJX0lP V1IoJ2knLCAzOCwgc3RydWN0IGlmcmVxKQkvKiBnZXQgSUYgTUFDIGxhYmVsICovCiAjZGVm aW5lCVNJT0NTSUZNQUMJIF9JT1coJ2knLCAzOSwgc3RydWN0IGlmcmVxKQkvKiBzZXQgSUYg TUFDIGxhYmVsICovCiAjZGVmaW5lCVNJT0NTSUZOQU1FCSBfSU9XKCdpJywgNDAsIHN0cnVj dCBpZnJlcSkJLyogc2V0IElGIG5hbWUgKi8KKyNkZWZpbmUJU0lPQ1NJRkRFU0NSCSBfSU9X KCdpJywgNDEsIHN0cnVjdCBpZnJlcSkJLyogc2V0IGlmbmV0IGRlc2NyICovIAorI2RlZmlu ZQlTSU9DR0lGREVTQ1IJX0lPV1IoJ2knLCA0Miwgc3RydWN0IGlmcmVxKQkvKiBnZXQgaWZu ZXQgZGVzY3IgKi8gCiAKICNkZWZpbmUJU0lPQ0FERE1VTFRJCSBfSU9XKCdpJywgNDksIHN0 cnVjdCBpZnJlcSkJLyogYWRkIG0nY2FzdCBhZGRyICovCiAjZGVmaW5lCVNJT0NERUxNVUxU SQkgX0lPVygnaScsIDUwLCBzdHJ1Y3QgaWZyZXEpCS8qIGRlbCBtJ2Nhc3QgYWRkciAqLwo= --------------010809040603030808010100--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B5F4ED6.1070400>