Skip site navigation (1)Skip section navigation (2)
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>