Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Mar 2001 05:38:06 -0500 (EST)
From:      "Matthew N. Dodd" <winter@jurai.net>
To:        freebsd-tokenring@freebsd.org, freebsd-net@freebsd.org
Subject:   Token Ring and IPX.
Message-ID:  <Pine.BSF.4.21.0103090529280.54019-200000@sasami.jurai.net>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-1205283771-984134286=:54019
Content-Type: TEXT/PLAIN; charset=US-ASCII

I've got a patch against -CURRENT to get our token ring code working
against Novell 802.2 style IPX.

This patch also may enable IPv6, however additional patches (not included)
are required.

I also took the time to do some code cleanups.  :/

Anyhow, please find attached.

My test consisted of mounting a Netware share using NWFS.

# mount -a
Filesystem             1K-blocks     Used    Avail Capacity  Mounted on
...
/SEX_KITTEN:WINTER/SYS     91980    28256    63724    31%    /mnt
# cd /mnt
# du -s .
24642   .
#

Interested parties will also note that tcpdump is unable to properly
decode IPX packets over token ring; I've got a fix for this too...

-- 
| Matthew N. Dodd  | '78 Datsun 280Z | '75 Volvo 164E | FreeBSD/NetBSD  |
| winter@jurai.net |       2 x '84 Volvo 245DL        | ix86,sparc,pmax |
| http://www.jurai.net/~winter | This Space For Rent  | ISO8802.5 4ever |

--0-1205283771-984134286=:54019
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="tr-ipx.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.21.0103090538060.54019@sasami.jurai.net>
Content-Description: 
Content-Disposition: attachment; filename="tr-ipx.patch"

SW5kZXg6IGlmX2lzbzg4MDI1c3Vici5jDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQpSQ1MgZmlsZTogL2N2cy9zcmMvc3lzL25ldC9pZl9pc284ODAyNXN1
YnIuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTQNCmRpZmYgLXUgLXIx
LjE0IGlmX2lzbzg4MDI1c3Vici5jDQotLS0gaWZfaXNvODgwMjVzdWJyLmMJ
MjAwMC8xMS8yNSAwNzozNTozMQkxLjE0DQorKysgaWZfaXNvODgwMjVzdWJy
LmMJMjAwMS8wMy8wOSAxMDoxODo0Nw0KQEAgLTQxLDYgKzQxLDggQEANCiAg
Ki8NCiANCiAjaW5jbHVkZSAib3B0X2luZXQuaCINCisjaW5jbHVkZSAib3B0
X2luZXQ2LmgiDQorI2luY2x1ZGUgIm9wdF9pcHguaCINCiANCiAjaW5jbHVk
ZSA8c3lzL3BhcmFtLmg+DQogI2luY2x1ZGUgPHN5cy9zeXN0bS5oPg0KQEAg
LTYwLDExICs2MiwxOSBAQA0KIA0KICNpbmNsdWRlIDxuZXQvaXNvODgwMjUu
aD4NCiANCi0jaWZkZWYgSU5FVA0KKyNpZiBkZWZpbmVkKElORVQpIHx8IGRl
ZmluZWQoSU5FVDYpDQogI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCiAjaW5j
bHVkZSA8bmV0aW5ldC9pbl92YXIuaD4NCiAjaW5jbHVkZSA8bmV0aW5ldC9p
Zl9ldGhlci5oPg0KICNlbmRpZg0KKyNpZmRlZiBJTkVUNg0KKyNpbmNsdWRl
IDxuZXRpbmV0Ni9uZDYuaD4NCisjZW5kaWYNCisNCisjaWZkZWYgSVBYDQor
I2luY2x1ZGUgPG5ldGlweC9pcHguaD4NCisjaW5jbHVkZSA8bmV0aXB4L2lw
eF9pZi5oPg0KKyNlbmRpZg0KIA0KICNpbmNsdWRlIDxuZXQvYnBmLmg+DQog
DQpAQCAtNzgsNiArODgsOCBAQA0KIA0KICNpbmNsdWRlIDxuZXQvaXNvODgw
MjUuaD4NCiANCisjZGVmaW5lIElGUDJBQyhJRlApICgoc3RydWN0IGFycGNv
bSAqKUlGUCkNCisNCiB2b2lkDQogaXNvODgwMjVfaWZhdHRhY2goc3RydWN0
IGlmbmV0ICppZnApDQogew0KQEAgLTEwMyw2ICsxMTUsMjAgQEANCiAgICAg
ICAgIGJjb3B5KCgoc3RydWN0IGFycGNvbSAqKWlmcCktPmFjX2VuYWRkciwg
TExBRERSKHNkbCksIGlmcC0+aWZfYWRkcmxlbik7DQogfQ0KIA0KKy8qDQor
ICogUGVyZm9ybSBjb21tb24gZHV0aWVzIHdoaWxlIGRldGFjaGluZyBhIFRv
a2VuIFJpbmcgaW50ZXJmYWNlDQorICovDQordm9pZA0KK2lzbzg4MDI1X2lm
ZGV0YWNoKGlmcCwgYnBmKQ0KKyAgICAgICAgc3RydWN0IGlmbmV0ICppZnA7
DQorICAgICAgICBpbnQgYnBmOw0KK3sNCisJaWYgKGJwZikNCisgICAgICAg
ICAgICAgICAgYnBmZGV0YWNoKGlmcCk7DQorCWlmX2RldGFjaChpZnApOw0K
K30NCisNCisNCiBpbnQNCiBpc284ODAyNV9pb2N0bChzdHJ1Y3QgaWZuZXQg
KmlmcCwgaW50IGNvbW1hbmQsIGNhZGRyX3QgZGF0YSkNCiB7DQpAQCAtMTIx
LDYgKzE0NywzMiBAQA0KICAgICAgICAgICAgICAgICAgICAgICAgIGFycF9p
ZmluaXQoKHN0cnVjdCBhcnBjb20gKilpZnAsIGlmYSk7DQogICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7DQogI2VuZGlmDQorI2lmZGVmIElQWA0K
KyAgICAgICAgICAgICAgICAvKg0KKyAgICAgICAgICAgICAgICAgKiBYWFgg
LSBUaGlzIGNvZGUgaXMgcHJvYmFibHkgd3JvbmcNCisgICAgICAgICAgICAg
ICAgICovDQorICAgICAgICAgICAgICAgIGNhc2UgQUZfSVBYOg0KKyAgICAg
ICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAg
ICByZWdpc3RlciBzdHJ1Y3QgaXB4X2FkZHIgKmluYSA9ICYoSUFfU0lQWChp
ZmEpLT5zaXB4X2FkZHIpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0
cnVjdCBhcnBjb20gKmFjID0gSUZQMkFDKGlmcCk7DQorDQorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGlweF9udWxsaG9zdCgqaW5hKSkNCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluYS0+eF9ob3N0ID0NCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKHVuaW9uIGlw
eF9ob3N0ICopDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWMtPmFjX2VuYWRkcjsNCisgICAgICAgICAgICAgICAgICAgICAgICBl
bHNlIHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJjb3B5
KChjYWRkcl90KSBpbmEtPnhfaG9zdC5jX2hvc3QsDQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FkZHJfdCkgYWMtPmFjX2Vu
YWRkciwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVvZihhYy0+YWNfZW5hZGRyKSk7DQorICAgICAgICAgICAgICAgICAg
ICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qDQorICAg
ICAgICAgICAgICAgICAgICAgICAgICogU2V0IG5ldyBhZGRyZXNzDQorICAg
ICAgICAgICAgICAgICAgICAgICAgICovDQorICAgICAgICAgICAgICAgICAg
ICAgICAgaWZwLT5pZl9pbml0KGlmcC0+aWZfc29mdGMpOw0KKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0NCisjZW5kaWYNCiAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAg
ICAgICAgICAgICAgICAgICAgICAgICBpZnAtPmlmX2luaXQoaWZwLT5pZl9z
b2Z0Yyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQpAQCAt
MTU1LDIzICsyMDcsMjcgQEANCiAgKiBJU084ODAyNSBlbmNhcHN1bGF0aW9u
DQogICovDQogaW50DQotaXNvODgwMjVfb3V0cHV0KHN0cnVjdCBpZm5ldCAq
aWZwLCBzdHJ1Y3QgbWJ1ZiAqbSwgc3RydWN0IHNvY2thZGRyICpkc3QsIHN0
cnVjdCBydGVudHJ5ICpydDApDQoraXNvODgwMjVfb3V0cHV0KGlmcCwgbSwg
ZHN0LCBydDApDQorCXN0cnVjdCBpZm5ldCAqaWZwOw0KKwlzdHJ1Y3QgbWJ1
ZiAqbTsNCisJc3RydWN0IHNvY2thZGRyICpkc3Q7DQorCXN0cnVjdCBydGVu
dHJ5ICpydDA7DQogew0KLQlyZWdpc3RlciBzdHJ1Y3QgaXNvODgwMjVfaGVh
ZGVyICp0aDsNCisJdV9pbnQxNl90IHR5cGUgPSAwOw0KKyAgICAgICAgaW50
IGxvb3BfY29weSA9IDAsIGVycm9yID0gMCwgcmlmX2xlbiA9IDA7DQorIAl1
X2NoYXIgZWRzdFtJU084ODAyNV9BRERSX0xFTl07DQorCXN0cnVjdCBpc284
ODAyNV9oZWFkZXIgKnRoOw0KIAlzdHJ1Y3QgaXNvODgwMjVfaGVhZGVyIGdl
bl90aDsNCi0JcmVnaXN0ZXIgc3RydWN0IGlzbzg4MDI1X3NvY2thZGRyX2Rh
dGEgKnNkID0gKHN0cnVjdCBpc284ODAyNV9zb2NrYWRkcl9kYXRhICopZHN0
LT5zYV9kYXRhOw0KLSAgICAgICAgcmVnaXN0ZXIgc3RydWN0IGxsYyAqbDsN
Ci0JcmVnaXN0ZXIgc3RydWN0IHNvY2thZGRyX2RsICpzZGwgPSBOVUxMOw0K
LSAgICAgICAgaW50IGVycm9yID0gMCwgcmlmX2xlbiA9IDA7DQotIAl1X2No
YXIgZWRzdFs2XTsNCi0JcmVnaXN0ZXIgc3RydWN0IHJ0ZW50cnkgKnJ0Ow0K
LQlpbnQgbG9vcF9jb3B5ID0gMDsNCisJc3RydWN0IHNvY2thZGRyX2RsICpz
ZGwgPSBOVUxMOw0KKwlzdHJ1Y3QgcnRlbnRyeSAqcnQ7DQogCXN0cnVjdCBh
cnBjb20gKmFjID0gKHN0cnVjdCBhcnBjb20gKilpZnA7DQogDQogCWlmICgo
aWZwLT5pZl9mbGFncyAmIChJRkZfVVB8SUZGX1JVTk5JTkcpKSAhPSAoSUZG
X1VQfElGRl9SVU5OSU5HKSkNCiAJCXNlbmRlcnIoRU5FVERPV04pOw0KKwln
ZXRtaWNyb3RpbWUoJmlmcC0+aWZfbGFzdGNoYW5nZSk7DQorDQogCXJ0ID0g
cnQwOw0KLQlpZiAocnQpIHsNCisJaWYgKHJ0ICE9IE5VTEwpIHsNCiAJCWlm
ICgocnQtPnJ0X2ZsYWdzICYgUlRGX1VQKSA9PSAwKSB7DQogCQkJcnQwID0g
cnQgPSBydGFsbG9jMShkc3QsIDEsIDBVTCk7DQogCQkJaWYgKHJ0MCkNCkBA
IC0yMDQsMzcgKzI2MCw2MSBAQA0KIAkvKiBHZW5lcmF0ZSBhIGdlbmVyaWMg
ODAyLjUgaGVhZGVyIGZvciB0aGUgcGFja2V0ICovDQogCWdlbl90aC5hYyA9
IFRSX0FDOw0KIAlnZW5fdGguZmMgPSBUUl9MTENfRlJBTUU7DQotCW1lbWNw
eShnZW5fdGguaXNvODgwMjVfc2hvc3QsIGFjLT5hY19lbmFkZHIsIHNpemVv
ZihhYy0+YWNfZW5hZGRyKSk7DQorCSh2b2lkKW1lbWNweSgoY2FkZHJfdCln
ZW5fdGguaXNvODgwMjVfc2hvc3QsIChjYWRkcl90KWFjLT5hY19lbmFkZHIs
DQorCQlzaXplb2YoYWMtPmFjX2VuYWRkcikpOw0KIAlpZiAocmlmX2xlbikg
ew0KIAkJZ2VuX3RoLmlzbzg4MDI1X3Nob3N0WzBdIHw9IFRSX1JJSTsNCiAJ
CWlmIChyaWZfbGVuID4gMikgew0KIAkJCWdlbl90aC5yY2YgPSBzZGwtPnNk
bF9yY2Y7DQotCQkJbWVtY3B5KGdlbl90aC5yZCwgc2RsLT5zZGxfcm91dGUs
IHJpZl9sZW4gLSAyKTsNCisJCQkodm9pZCltZW1jcHkoKGNhZGRyX3QpZ2Vu
X3RoLnJkLA0KKwkJCQkoY2FkZHJfdClzZGwtPnNkbF9yb3V0ZSwgcmlmX2xl
biAtIDIpOw0KIAkJfQ0KIAl9DQogCQ0KLQ0KIAlzd2l0Y2ggKGRzdC0+c2Ff
ZmFtaWx5KSB7DQogI2lmZGVmIElORVQNCiAJY2FzZSBBRl9JTkVUOg0KIAkJ
aWYgKCFhcnByZXNvbHZlKGFjLCBydCwgbSwgZHN0LCBlZHN0LCBydDApKQ0K
IAkJCXJldHVybiAoMCk7CS8qIGlmIG5vdCB5ZXQgcmVzb2x2ZWQgKi8NCi0J
CS8qIEFkZCBMTEMgYW5kIFNOQVAgaGVhZGVycyAqLw0KLQkJTV9QUkVQRU5E
KG0sIDgsIE1fRE9OVFdBSVQpOw0KLQkJaWYgKG0gPT0gMCkNCi0JCQlzZW5k
ZXJyKEVOT0JVRlMpOw0KLQkJbCA9IG10b2QobSwgc3RydWN0IGxsYyAqKTsN
Ci0JICAgICAgICBsLT5sbGNfdW4udHlwZV9zbmFwLmV0aGVyX3R5cGUgPSBo
dG9ucyhFVEhFUlRZUEVfSVApOw0KLQkgICAgICAgIGwtPmxsY19kc2FwID0g
bC0+bGxjX3NzYXAgPSBMTENfU05BUF9MU0FQOw0KLQkJbC0+bGxjX3VuLnR5
cGVfc25hcC5jb250cm9sID0gTExDX1VJOw0KLQkJbC0+bGxjX3VuLnR5cGVf
c25hcC5vcmdfY29kZVswXSA9IDB4MDsNCi0JCWwtPmxsY191bi50eXBlX3Nu
YXAub3JnX2NvZGVbMV0gPSAweDA7DQotCQlsLT5sbGNfdW4udHlwZV9zbmFw
Lm9yZ19jb2RlWzJdID0gMHgwOw0KLQkJbWVtY3B5KGdlbl90aC5pc284ODAy
NV9kaG9zdCwgZWRzdCwgc2l6ZW9mKGVkc3QpKTsNCisJCXR5cGUgPSBFVEhF
UlRZUEVfSVA7DQorCQlicmVhazsNCisjZW5kaWYNCisjaWZkZWYgSU5FVDYN
CisJY2FzZSBBRl9JTkVUNjoNCisJCWlmICghbmQ2X3N0b3JlbGxhZGRyKCZh
Yy0+YWNfaWYsIHJ0LCBtLCBkc3QsICh1X2NoYXIgKillZHN0KSkgew0KKwkJ
CS8qIHRoaXMgbXVzdCBiZSBpbXBvc3NpYmxlLCBzbyB3ZSBiYXJrICovDQor
CQkJcHJpbnRmKCJuZDZfc3RvcmVsbGFkZHIgZmFpbGVkXG4iKTsNCisJCQly
ZXR1cm4oMCk7DQorCQl9DQorCQl0eXBlID0gRVRIRVJUWVBFX0lQVjY7DQog
CQlicmVhazsNCiAjZW5kaWYNCisjaWZkZWYgSVBYDQorCWNhc2UgQUZfSVBY
Og0KKwl7DQorCQl1X2ludDhfdAkqY3A7DQogDQorCQl0eXBlID0gMDsNCisJ
CWJjb3B5KChjYWRkcl90KSYoc2F0b2lweF9hZGRyKGRzdCkueF9ob3N0KSwg
KGNhZGRyX3QpZWRzdCwNCisJCQlzaXplb2YgKGVkc3QpKTsNCisvKiAmKCgo
c3RydWN0IHNvY2thZGRyX2lweCAqKWRzdCktPnNpcHhfYWRkci54X2hvc3Qp
LCAqLw0KKw0KKwkJTV9QUkVQRU5EKG0sIDMsIE1fVFJZV0FJVCk7DQorCQlp
ZiAobSA9PSAwKQ0KKwkJCXNlbmRlcnIoRU5PQlVGUyk7DQorCQltID0gbV9w
dWxsdXAobSwgMyk7DQorCQlpZiAobSA9PSAwKQ0KKwkJCXNlbmRlcnIoRU5P
QlVGUyk7DQorCQljcCA9IG10b2QobSwgdV9pbnQ4X3QgKik7DQorCQkqY3Ar
KyA9IEVUSEVSVFlQRV9JUFhfODAyMjsNCisJCSpjcCsrID0gRVRIRVJUWVBF
X0lQWF84MDIyOw0KKwkJKmNwKysgPSAweDAzOw0KKwl9DQorCWJyZWFrOw0K
KyNlbmRpZg0KIAljYXNlIEFGX1VOU1BFQzoNCisJew0KKwkJc3RydWN0IGlz
bzg4MDI1X3NvY2thZGRyX2RhdGEgKnNkOw0KIAkJLyoNCiAJCSAqIEZvciBB
Rl9VTlNQRUMgc29ja2FkZHIuc2FfZGF0YSBtdXN0IGNvbnRhaW4gYWxsIG9m
IHRoZQ0KIAkJICogbWFjIGluZm9ybWF0aW9uIG5lZWRlZCB0byBzZW5kIHRo
ZSBwYWNrZXQuICBUaGlzIGFsbG93cw0KQEAgLTI0NywyNiArMzI3LDQ1IEBA
DQogCQlzZCA9IChzdHJ1Y3QgaXNvODgwMjVfc29ja2FkZHJfZGF0YSAqKWRz
dC0+c2FfZGF0YTsNCiAJCWdlbl90aC5hYyA9IHNkLT5hYzsNCiAJCWdlbl90
aC5mYyA9IHNkLT5mYzsNCi0JCW1lbWNweShnZW5fdGguaXNvODgwMjVfZGhv
c3QsIHNkLT5ldGhlcl9kaG9zdCwgc2l6ZW9mKHNkLT5ldGhlcl9kaG9zdCkp
Ow0KLQkJbWVtY3B5KGdlbl90aC5pc284ODAyNV9zaG9zdCwgc2QtPmV0aGVy
X3Nob3N0LCBzaXplb2Yoc2QtPmV0aGVyX3Nob3N0KSk7DQorCQkodm9pZClt
ZW1jcHkoKGNhZGRyX3QpZWRzdCwgKGNhZGRyX3Qpc2QtPmV0aGVyX2Rob3N0
LA0KKwkJCXNpemVvZihzZC0+ZXRoZXJfZGhvc3QpKTsNCisJCSh2b2lkKW1l
bWNweSgoY2FkZHJfdClnZW5fdGguaXNvODgwMjVfc2hvc3QsDQorCQkJKGNh
ZGRyX3Qpc2QtPmV0aGVyX3Nob3N0LCBzaXplb2Yoc2QtPmV0aGVyX3Nob3N0
KSk7DQogCQlyaWZfbGVuID0gMDsNCiAJCWJyZWFrOw0KLQ0KKwl9DQogCWRl
ZmF1bHQ6DQogCQlwcmludGYoIiVzJWQ6IGNhbid0IGhhbmRsZSBhZiVkXG4i
LCBpZnAtPmlmX25hbWUsIGlmcC0+aWZfdW5pdCwNCiAJCQlkc3QtPnNhX2Zh
bWlseSk7DQogCQlzZW5kZXJyKEVBRk5PU1VQUE9SVCk7DQorCQlicmVhazsN
CiAJfQ0KIA0KKwlpZiAodHlwZSAhPSAwKSB7DQorICAgICAgICAJc3RydWN0
IGxsYyAqbDsNCisJCU1fUFJFUEVORChtLCBzaXplb2YgKHN0cnVjdCBsbGMp
LCBNX0RPTlRXQUlUKTsNCisJCWlmIChtID09IDApDQorCQkJc2VuZGVycihF
Tk9CVUZTKTsNCisJCWwgPSBtdG9kKG0sIHN0cnVjdCBsbGMgKik7DQorCQls
LT5sbGNfdW4udHlwZV9zbmFwLmV0aGVyX3R5cGUgPSBodG9ucyh0eXBlKTsN
CisJCWwtPmxsY19kc2FwID0gbC0+bGxjX3NzYXAgPSBMTENfU05BUF9MU0FQ
Ow0KKwkJbC0+bGxjX3VuLnR5cGVfc25hcC5jb250cm9sID0gTExDX1VJOw0K
KwkJbC0+bGxjX3VuLnR5cGVfc25hcC5vcmdfY29kZVswXSA9DQorCQkJbC0+
bGxjX3VuLnR5cGVfc25hcC5vcmdfY29kZVsxXSA9DQorCQkJbC0+bGxjX3Vu
LnR5cGVfc25hcC5vcmdfY29kZVsyXSA9IDA7DQorCX0NCisNCiAJLyoNCiAJ
ICogQWRkIGxvY2FsIG5ldCBoZWFkZXIuICBJZiBubyBzcGFjZSBpbiBmaXJz
dCBtYnVmLA0KIAkgKiBhbGxvY2F0ZSBhbm90aGVyLg0KIAkgKi8NCi0JDQog
CU1fUFJFUEVORChtLCBJU084ODAyNV9IRFJfTEVOICsgcmlmX2xlbiwgTV9E
T05UV0FJVCk7DQogCWlmIChtID09IDApDQogCQlzZW5kZXJyKEVOT0JVRlMp
Ow0KIA0KKwkodm9pZCltZW1jcHkoKGNhZGRyX3QpJmdlbl90aC5pc284ODAy
NV9kaG9zdCwgKGNhZGRyX3QpZWRzdCwNCisJCSAgICAgc2l6ZW9mKGVkc3Qp
KTsNCisNCiAJLyogQ29weSBhcyBtdWNoIG9mIHRoZSBnZW5lcmljIGhlYWRl
ciBhcyBpcyBuZWVkZWQgaW50byB0aGUgbWJ1ZiAqLw0KIAl0aCA9IG10b2Qo
bSwgc3RydWN0IGlzbzg4MDI1X2hlYWRlciAqKTsNCiAJbWVtY3B5KHRoLCAm
Z2VuX3RoLCBJU084ODAyNV9IRFJfTEVOICsgcmlmX2xlbik7DQpAQCAtMjgw
LDIxICszNzksMjIgQEANCiAgICAgICAgICAqIG9uIHRoZSB3aXJlKS4gSG93
ZXZlciwgd2UgZG9uJ3QgZG8gdGhhdCBoZXJlIGZvciBzZWN1cml0eQ0KICAg
ICAgICAgICogcmVhc29ucyBhbmQgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBv
cmlnaW5hbCBiZWhhdmlvci4NCiAgICAgICAgICAqLyAgICAgDQotICAgICAg
ICBpZiAoKGlmcC0+aWZfZmxhZ3MgJiBJRkZfU0lNUExFWCkgJiYNCi0gICAg
ICAgICAgIChsb29wX2NvcHkgIT0gLTEpKSB7DQorICAgICAgICBpZiAoKGlm
cC0+aWZfZmxhZ3MgJiBJRkZfU0lNUExFWCkgJiYgKGxvb3BfY29weSAhPSAt
MSkpIHsNCiAgICAgICAgICAgICAgICAgaWYgKChtLT5tX2ZsYWdzICYgTV9C
Q0FTVCkgfHwgKGxvb3BfY29weSA+IDApKSB7IA0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBtYnVmICpuID0gbV9jb3B5KG0sIDAsIChpbnQp
TV9DT1BZQUxMKTsNCi0gICAgICAgICAgICAgICAgICAgICAgICAodm9pZCkg
aWZfc2ltbG9vcChpZnAsDQotCQkJICAgIG4sIGRzdC0+c2FfZmFtaWx5LCBJ
U084ODAyNV9IRFJfTEVOKTsNCi0gICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChiY21wKHRoLT5pc284ODAyNV9kaG9zdCwNCi0gICAgICAgICAgICAgICAg
ICAgIHRoLT5pc284ODAyNV9zaG9zdCwgRVRIRVJfQUREUl9MRU4pID09IDAp
IHsNCi0gICAgICAgICAgICAgICAgICAgICAgICAodm9pZCkgaWZfc2ltbG9v
cChpZnAsDQotCQkJICAgIG0sIGRzdC0+c2FfZmFtaWx5LCBJU084ODAyNV9I
RFJfTEVOKTsNCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4oMCk7
ICAgICAgLyogWFhYICovDQotICAgICAgICAgICAgICAgIH0gICAgICAgDQor
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG1idWYgKm47DQorCQkJ
biA9IG1fY29weShtLCAwLCAoaW50KU1fQ09QWUFMTCk7DQorICAgICAgICAg
ICAgICAgICAgICAgICAgKHZvaWQpaWZfc2ltbG9vcChpZnAsIG4sIGRzdC0+
c2FfZmFtaWx5LA0KKwkJCQkJICBJU084ODAyNV9IRFJfTEVOKTsNCisgICAg
ICAgICAgICAgICAgfSBlbHNlDQorCQkJaWYgKGJjbXAodGgtPmlzbzg4MDI1
X2Rob3N0LCB0aC0+aXNvODgwMjVfc2hvc3QsDQorCQkJCSBFVEhFUl9BRERS
X0xFTikgPT0gMCkgew0KKwkJCQkodm9pZClpZl9zaW1sb29wKGlmcCwgbSwg
ZHN0LT5zYV9mYW1pbHksDQorCQkJCQkJIElTTzg4MDI1X0hEUl9MRU4pOw0K
KyAgICAgICAgICAgICAgICAgICAgICAgIAlyZXR1cm4oMCk7ICAgICAgLyog
WFhYICovDQorCQkJfSAgICAgICANCiAgICAgICAgIH0gICAgICANCiANCi0J
aWYgKCEgSUZfSEFORE9GRl9BREooJmlmcC0+aWZfc25kLCBtLCBpZnAsIElT
Tzg4MDI1X0hEUl9MRU4gKyA4KSkgew0KKwlpZiAoISBJRl9IQU5ET0ZGX0FE
SigmaWZwLT5pZl9zbmQsIG0sIGlmcCwgSVNPODgwMjVfSERSX0xFTiArIChz
aXplb2Yoc3RydWN0IGxsYykpKSApIHsNCiAJCXByaW50ZigiaXNvODgwMjVf
b3V0cHV0OiBwYWNrZXQgZHJvcHBlZCBRRlVMTC5cbiIpOw0KIAkJc2VuZGVy
cihFTk9CVUZTKTsNCiAJfQ0KQEAgLTMxMCw5MiArNDEwLDE1MSBAQA0KICAq
IElTTyA4ODAyNSBkZS1lbmNhcHN1bGF0aW9uDQogICovDQogdm9pZA0KLWlz
bzg4MDI1X2lucHV0KHN0cnVjdCBpZm5ldCAqaWZwLCBzdHJ1Y3QgaXNvODgw
MjVfaGVhZGVyICp0aCwgc3RydWN0IG1idWYgKm0pDQoraXNvODgwMjVfaW5w
dXQoaWZwLCB0aCwgbSkNCisJc3RydWN0IGlmbmV0ICppZnA7DQorCXN0cnVj
dCBpc284ODAyNV9oZWFkZXIgKnRoOw0KKwlzdHJ1Y3QgbWJ1ZiAqbTsNCiB7
DQogCXJlZ2lzdGVyIHN0cnVjdCBpZnF1ZXVlICppbnE7DQotCXVfc2hvcnQg
ZXRoZXJfdHlwZTsNCi0JcmVnaXN0ZXIgc3RydWN0IGxsYyAqbCA9IG10b2Qo
bSwgc3RydWN0IGxsYyAqKTsNCisJcmVnaXN0ZXIgc3RydWN0IGxsYyAqbDsN
CiANCiAJaWYgKChpZnAtPmlmX2ZsYWdzICYgSUZGX1VQKSA9PSAwKSB7DQog
CQltX2ZyZWVtKG0pOw0KIAkJcmV0dXJuOw0KIAl9DQogDQotCXN3aXRjaCAo
bC0+bGxjX2NvbnRyb2wpIHsNCi0JY2FzZSBMTENfVUk6DQotCQlicmVhazsN
Ci0JY2FzZSBMTENfVEVTVDoNCi0JY2FzZSBMTENfVEVTVF9QOg0KLQl7DQot
CQlzdHJ1Y3Qgc29ja2FkZHIgc2E7DQotCQlzdHJ1Y3QgYXJwY29tICphYyA9
IChzdHJ1Y3QgYXJwY29tICopaWZwOw0KLQkJc3RydWN0IGlzbzg4MDI1X3Nv
Y2thZGRyX2RhdGEgKnRoMjsNCi0JCWludCBpOw0KLQkJdV9jaGFyIGMgPSBs
LT5sbGNfZHNhcDsNCi0NCi0JCWlmICh0aC0+aXNvODgwMjVfc2hvc3RbMF0g
JiBUUl9SSUkpIHsgLyogWFhYICovDQotCQkJcHJpbnRmKCJpc284ODAyNV9p
bnB1dDogZHJvcHBpbmcgc291cmNlIHJvdXRlZCBMTENfVEVTVFxuIik7DQot
CQkJbV9mcmVlKG0pOw0KLQkJCXJldHVybjsNCi0JCX0NCi0JCWwtPmxsY19k
c2FwID0gbC0+bGxjX3NzYXA7DQotCQlsLT5sbGNfc3NhcCA9IGM7DQotCQlp
ZiAobS0+bV9mbGFncyAmIChNX0JDQVNUIHwgTV9NQ0FTVCkpDQotCQkJYmNv
cHkoKGNhZGRyX3QpYWMtPmFjX2VuYWRkciwgDQotCQkJICAgICAgKGNhZGRy
X3QpdGgtPmlzbzg4MDI1X2Rob3N0LCBJU084ODAyNV9BRERSX0xFTik7DQot
CQlzYS5zYV9mYW1pbHkgPSBBRl9VTlNQRUM7DQotCQlzYS5zYV9sZW4gPSBz
aXplb2Yoc2EpOw0KLQkJdGgyID0gKHN0cnVjdCBpc284ODAyNV9zb2NrYWRk
cl9kYXRhICopc2Euc2FfZGF0YTsNCi0JCWZvciAoaSA9IDA7IGkgPCBJU084
ODAyNV9BRERSX0xFTjsgaSsrKSB7DQotCQkJdGgyLT5ldGhlcl9zaG9zdFtp
XSA9IGMgPSB0aC0+aXNvODgwMjVfZGhvc3RbaV07DQotCQkJdGgyLT5ldGhl
cl9kaG9zdFtpXSA9IHRoLT5pc284ODAyNV9kaG9zdFtpXSA9IHRoLT5pc284
ODAyNV9zaG9zdFtpXTsNCi0JCQl0aC0+aXNvODgwMjVfc2hvc3RbaV0gPSBj
Ow0KLQkJfQ0KLQkJdGgyLT5hYyA9IFRSX0FDOw0KLQkJdGgyLT5mYyA9IFRS
X0xMQ19GUkFNRTsNCi0JCWlmcC0+aWZfb3V0cHV0KGlmcCwgbSwgJnNhLCBO
VUxMKTsNCi0JCXJldHVybjsNCi0JfQ0KLQlkZWZhdWx0Og0KLQkJcHJpbnRm
KCJpc284ODAyNV9pbnB1dDogdW5leHBlY3RlZCBsbGMgY29udHJvbCAweCUw
MnhcbiIsIGwtPmxsY19jb250cm9sKTsNCi0JCW1fZnJlZW0obSk7DQotCQly
ZXR1cm47DQotCX0NCi0NCi0gICAgICAgIG0tPm1fcGt0aGRyLmxlbiAtPSA4
Ow0KLSAgICAgICAgbS0+bV9sZW4gLT0gODsNCi0gICAgICAgIG0tPm1fZGF0
YSArPSA4OyAvKiBMZW5ndGggb2YgTExDIGhlYWRlciBpbiBvdXIgY2FzZSAq
Lw0KLQ0KKwlnZXRtaWNyb3RpbWUoJmlmcC0+aWZfbGFzdGNoYW5nZSk7DQog
CWlmcC0+aWZfaWJ5dGVzICs9IG0tPm1fcGt0aGRyLmxlbiArIHNpemVvZigq
dGgpOw0KKw0KIAlpZiAodGgtPmlzbzg4MDI1X2Rob3N0WzBdICYgMSkgew0K
LQkJaWYgKGJjbXAoKGNhZGRyX3QpZXRoZXJicm9hZGNhc3RhZGRyLCAoY2Fk
ZHJfdCl0aC0+aXNvODgwMjVfZGhvc3QsIHNpemVvZihldGhlcmJyb2FkY2Fz
dGFkZHIpKSA9PSAwKQ0KKwkJaWYgKGJjbXAoKGNhZGRyX3QpZXRoZXJicm9h
ZGNhc3RhZGRyLA0KKwkJCSAoY2FkZHJfdCl0aC0+aXNvODgwMjVfZGhvc3Qs
DQorCQkJIHNpemVvZihldGhlcmJyb2FkY2FzdGFkZHIpKSA9PSAwKQ0KIAkJ
CW0tPm1fZmxhZ3MgfD0gTV9CQ0FTVDsNCiAJCWVsc2UNCiAJCQltLT5tX2Zs
YWdzIHw9IE1fTUNBU1Q7DQotCX0gDQotCWlmIChtLT5tX2ZsYWdzICYgKE1f
QkNBU1R8TV9NQ0FTVCkpDQogCQlpZnAtPmlmX2ltY2FzdHMrKzsNCisJfSAN
CiANCi0JZXRoZXJfdHlwZSA9IG50b2hzKGwtPmxsY191bi50eXBlX3NuYXAu
ZXRoZXJfdHlwZSk7DQorCWwgPSBtdG9kKG0sIHN0cnVjdCBsbGMgKik7DQog
DQotCXN3aXRjaCAoZXRoZXJfdHlwZSkgew0KLSNpZmRlZiBJTkVUDQotCWNh
c2UgRVRIRVJUWVBFX0lQOg0KKwlzd2l0Y2ggKGwtPmxsY19kc2FwKSB7DQor
I2lmZGVmIElQWA0KKwljYXNlIEVUSEVSVFlQRV9JUFhfODAyMjoJLyogVGhh
bmtzIGEgYnVuY2ggTm92ZWxsICovDQorCQlpZiAobC0+bGxjX3NzYXAgIT0g
RVRIRVJUWVBFX0lQWF84MDIyKQ0KKwkJCWdvdG8gZHJvcGFueXdheTsNCiAJ
CXRoLT5pc284ODAyNV9zaG9zdFswXSAmPSB+KFRSX1JJSSk7IA0KLQkJaWYg
KGlwZmxvd19mYXN0Zm9yd2FyZChtKSkNCi0JCQlyZXR1cm47DQotCQlzY2hl
ZG5ldGlzcihORVRJU1JfSVApOw0KLQkJaW5xID0gJmlwaW50cnE7DQorCQlt
X2FkaihtLCAzKTsNCisJCXNjaGVkbmV0aXNyKE5FVElTUl9JUFgpOw0KKwkJ
aW5xID0gJmlweGludHJxOw0KIAkJYnJlYWs7DQotDQotCWNhc2UgRVRIRVJU
WVBFX0FSUDoNCi0JCXNjaGVkbmV0aXNyKE5FVElTUl9BUlApOw0KLQkJaW5x
ID0gJmFycGludHJxOw0KLSAgICAgICAgICAgICAgICBicmVhazsNCiAjZW5k
aWYNCisJY2FzZSBMTENfU05BUF9MU0FQOiB7DQorCQl1X2ludDE2X3QgdHlw
ZTsNCisJCWlmIChsLT5sbGNfY29udHJvbCAhPSBMTENfVUkgfHwgbC0+bGxj
X3NzYXAgIT0gTExDX1NOQVBfTFNBUCkNCisJCQlnb3RvIGRyb3Bhbnl3YXk7
DQorCQlpZiAobC0+bGxjX3VuLnR5cGVfc25hcC5vcmdfY29kZVswXSAhPSAw
IHx8DQorCQkgICAgbC0+bGxjX3VuLnR5cGVfc25hcC5vcmdfY29kZVsxXSAh
PSAwIHx8DQorCQkgICAgbC0+bGxjX3VuLnR5cGVfc25hcC5vcmdfY29kZVsy
XSAhPSAwKQ0KKwkJCWdvdG8gZHJvcGFueXdheTsNCisJCXR5cGUgPSBudG9o
cyhsLT5sbGNfdW4udHlwZV9zbmFwLmV0aGVyX3R5cGUpOw0KKwkJbV9hZGoo
bSwgc2l6ZW9mKHN0cnVjdCBsbGMpKTsNCisJCXN3aXRjaCAodHlwZSkgew0K
KyNpZmRlZiBJTkVUDQorCQljYXNlIEVUSEVSVFlQRV9JUDoNCisJCQl0aC0+
aXNvODgwMjVfc2hvc3RbMF0gJj0gfihUUl9SSUkpOyANCisJCQlpZiAoaXBm
bG93X2Zhc3Rmb3J3YXJkKG0pKQ0KKwkJCQlyZXR1cm47DQorCQkJc2NoZWRu
ZXRpc3IoTkVUSVNSX0lQKTsNCisJCQlpbnEgPSAmaXBpbnRycTsNCisJCQli
cmVhazsNCisNCisJCWNhc2UgRVRIRVJUWVBFX0FSUDoNCisJCQlzY2hlZG5l
dGlzcihORVRJU1JfQVJQKTsNCisJCQlpbnEgPSAmYXJwaW50cnE7DQorCQkJ
YnJlYWs7DQorI2VuZGlmDQorI2lmZGVmIElQWAkvKiBYWFg6IHRoaXMsIEkg
dGhpbmssIGlzIGJvZ3VzLiAqLw0KKwkJY2FzZSBFVEhFUlRZUEVfSVBYOg0K
KwkJCXRoLT5pc284ODAyNV9zaG9zdFswXSAmPSB+KFRSX1JJSSk7IA0KKwkJ
CXNjaGVkbmV0aXNyKE5FVElTUl9JUFgpOw0KKwkJCWlucSA9ICZpcHhpbnRy
cTsNCisJCQlicmVhazsNCisjZW5kaWYNCisjaWZkZWYgSU5FVDYNCisJCWNh
c2UgRVRIRVJUWVBFX0lQVjY6DQorCQkJdGgtPmlzbzg4MDI1X3Nob3N0WzBd
ICY9IH4oVFJfUklJKTsgDQorCQkJc2NoZWRuZXRpc3IoTkVUSVNSX0lQVjYp
Ow0KKwkJCWlucSA9ICZpcDZpbnRycTsNCisJCQlicmVhazsNCisjZW5kaWYN
CisJCWRlZmF1bHQ6DQorCQkJcHJpbnRmKCJpc284ODAyNV9pbnB1dDogdW5l
eHBlY3RlZCBsbGNfc25hcCBldGhlcl90eXBlICAweCUwMnhcbiIsIHR5cGUp
Ow0KKwkJCW1fZnJlZW0obSk7DQorCQkJcmV0dXJuOw0KKwkJfQ0KKwkJYnJl
YWs7DQorCX0NCisJY2FzZSBMTENfSVNPX0xTQVA6DQorCQlzd2l0Y2ggKGwt
PmxsY19jb250cm9sKSB7DQorCQljYXNlIExMQ19VSToNCisJCQlnb3RvIGRy
b3Bhbnl3YXk7DQorCQkJYnJlYWs7DQorICAgICAgICAgICAgICAgIGNhc2Ug
TExDX1hJRDoNCisgICAgICAgICAgICAgICAgY2FzZSBMTENfWElEX1A6DQor
CQkJaWYobS0+bV9sZW4gPCBJU084ODAyNV9BRERSX0xFTikNCisJCQkJZ290
byBkcm9wYW55d2F5Ow0KKwkJCWwtPmxsY193aW5kb3cgPSAwOw0KKwkJCWwt
PmxsY19maWQgPSA5OyAgDQorCQkJbC0+bGxjX2NsYXNzID0gMTsNCisJCQls
LT5sbGNfZHNhcCA9IGwtPmxsY19zc2FwID0gMDsNCisJCQkvKiBGYWxsIHRo
cm91Z2ggdG8gKi8gIA0KKwkJY2FzZSBMTENfVEVTVDoNCisJCWNhc2UgTExD
X1RFU1RfUDoNCisJCXsNCisJCQlzdHJ1Y3Qgc29ja2FkZHIgc2E7DQorCQkJ
c3RydWN0IGFycGNvbSAqYWMgPSAoc3RydWN0IGFycGNvbSAqKWlmcDsNCisJ
CQlzdHJ1Y3QgaXNvODgwMjVfc29ja2FkZHJfZGF0YSAqdGgyOw0KKwkJCWlu
dCBpOw0KKwkJCXVfY2hhciBjID0gbC0+bGxjX2RzYXA7DQorDQorCQkJaWYg
KHRoLT5pc284ODAyNV9zaG9zdFswXSAmIFRSX1JJSSkgeyAvKiBYWFggKi8N
CisJCQkJcHJpbnRmKCJpc284ODAyNV9pbnB1dDogZHJvcHBpbmcgc291cmNl
IHJvdXRlZCBMTENfVEVTVFxuIik7DQorCQkJCW1fZnJlZShtKTsNCisJCQkJ
cmV0dXJuOw0KKwkJCX0NCisJCQlsLT5sbGNfZHNhcCA9IGwtPmxsY19zc2Fw
Ow0KKwkJCWwtPmxsY19zc2FwID0gYzsNCisJCQlpZiAobS0+bV9mbGFncyAm
IChNX0JDQVNUIHwgTV9NQ0FTVCkpDQorCQkJCWJjb3B5KChjYWRkcl90KWFj
LT5hY19lbmFkZHIsIA0KKwkJCSAgICAgIAkJKGNhZGRyX3QpdGgtPmlzbzg4
MDI1X2Rob3N0LA0KKwkJCQkJSVNPODgwMjVfQUREUl9MRU4pOw0KKwkJCXNh
LnNhX2ZhbWlseSA9IEFGX1VOU1BFQzsNCisJCQlzYS5zYV9sZW4gPSBzaXpl
b2Yoc2EpOw0KKwkJCXRoMiA9IChzdHJ1Y3QgaXNvODgwMjVfc29ja2FkZHJf
ZGF0YSAqKXNhLnNhX2RhdGE7DQorCQkJZm9yIChpID0gMDsgaSA8IElTTzg4
MDI1X0FERFJfTEVOOyBpKyspIHsNCisJCQkJdGgyLT5ldGhlcl9zaG9zdFtp
XSA9IGMgPSB0aC0+aXNvODgwMjVfZGhvc3RbaV07DQorCQkJCXRoMi0+ZXRo
ZXJfZGhvc3RbaV0gPSB0aC0+aXNvODgwMjVfZGhvc3RbaV0gPQ0KKwkJCQkJ
dGgtPmlzbzg4MDI1X3Nob3N0W2ldOw0KKwkJCQl0aC0+aXNvODgwMjVfc2hv
c3RbaV0gPSBjOw0KKwkJCX0NCisJCQl0aDItPmFjID0gVFJfQUM7DQorCQkJ
dGgyLT5mYyA9IFRSX0xMQ19GUkFNRTsNCisJCQlpZnAtPmlmX291dHB1dChp
ZnAsIG0sICZzYSwgTlVMTCk7DQorCQkJcmV0dXJuOw0KKwkJfQ0KKwkJZGVm
YXVsdDoNCisJCQlwcmludGYoImlzbzg4MDI1X2lucHV0OiB1bmV4cGVjdGVk
IGxsYyBjb250cm9sIDB4JTAyeFxuIiwgbC0+bGxjX2NvbnRyb2wpOw0KKwkJ
CW1fZnJlZW0obSk7DQorCQkJcmV0dXJuOw0KKwkJfQ0KKwkJYnJlYWs7DQog
CWRlZmF1bHQ6DQotCSAgICBtX2ZyZWVtKG0pOw0KLQkgICAgcmV0dXJuOw0K
KwkJcHJpbnRmKCJpc284ODAyNV9pbnB1dDogdW5rbm93biBkc2FwIDB4JXhc
biIsIGwtPmxsY19kc2FwKTsNCisJCWlmcC0+aWZfbm9wcm90bysrOw0KKwlk
cm9wYW55d2F5Og0KKwkJbV9mcmVlbShtKTsNCisJCXJldHVybjsNCiAJfQ0K
IA0KIAlpZiAoISBJRl9IQU5ET0ZGKGlucSwgbSwgTlVMTCkpDQpJbmRleDog
aXNvODgwMjUuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6
IC9jdnMvc3JjL3N5cy9uZXQvaXNvODgwMjUuaCx2DQpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNA0KZGlmZiAtdSAtcjEuNCBpc284ODAyNS5oDQotLS0gaXNv
ODgwMjUuaAkyMDAwLzAzLzE5IDIxOjM0OjM3CTEuNA0KKysrIGlzbzg4MDI1
LmgJMjAwMS8wMy8wOCAwMjowMTo0Mw0KQEAgLTc1LDYgKzc1LDggQEANCiAg
KiBNaW5pbXVtIGFuZCBtYXhpbXVtIHBhY2tldCBwYXlsb2FkIGxlbmd0aHMu
DQogICovDQogI2RlZmluZQlJU084ODAyNV9NSU5fTEVOCTAgDQorI2RlZmlu
ZSBJU084ODAyNV9NQVhfTEVOXzQJNDQ2NA0KKyNkZWZpbmUJSVNPODgwMjVf
TUFYX0xFTl8xNgkxNzk2MAkNCiAjZGVmaW5lCUlTTzg4MDI1X01BWF9MRU4J
MTc5NjAJDQogDQogLyoNCkBAIC04NywxMyArODksMTggQEANCiAgKiBJU08g
ODAyLjUgcGh5c2ljYWwgaGVhZGVyDQogICovDQogc3RydWN0IGlzbzg4MDI1
X2hlYWRlciB7DQotCXVfY2hhcglhYzsJCQkJICAgIC8qIGFjY2VzcyBjb250
cm9sIGZpZWxkICovDQotCXVfY2hhcglmYzsJCQkJICAgIC8qIGZyYW1lIGNv
bnRyb2wgZmllbGQgKi8NCi0JdV9jaGFyCWlzbzg4MDI1X2Rob3N0W0lTTzg4
MDI1X0FERFJfTEVOXTsgIC8qIGRlc3RpbmF0aW9uIGFkZHJlc3MgKi8NCi0J
dV9jaGFyCWlzbzg4MDI1X3Nob3N0W0lTTzg4MDI1X0FERFJfTEVOXTsgIC8q
IHNvdXJjZSBhZGRyZXNzICovDQotCXVfc2hvcnQJcmNmOwkJCQkgICAgLyog
cm91dGUgY29udHJvbCBmaWVsZCAqLw0KLQl1X3Nob3J0CXJkW1JJRl9NQVhf
UkRdOwkJCSAgICAvKiByb3V0aW5nIGRlc2lnbmF0b3JzICovDQotfTsNCisJ
dV9pbnQ4X3QJYWM7CQkJCSAgICAvKiBhY2Nlc3MgY29udHJvbCBmaWVsZCAq
Lw0KKwl1X2ludDhfdAlmYzsJCQkJICAgIC8qIGZyYW1lIGNvbnRyb2wgZmll
bGQgKi8NCisJdV9pbnQ4X3QJaXNvODgwMjVfZGhvc3RbSVNPODgwMjVfQURE
Ul9MRU5dOyAgLyogZGVzdGluYXRpb24gYWRkcmVzcyAqLw0KKwl1X2ludDhf
dAlpc284ODAyNV9zaG9zdFtJU084ODAyNV9BRERSX0xFTl07ICAvKiBzb3Vy
Y2UgYWRkcmVzcyAqLw0KKwl1X2ludDE2X3QJcmNmOwkJCQkgICAgLyogcm91
dGUgY29udHJvbCBmaWVsZCAqLw0KKwl1X2ludDE2X3QJcmRbUklGX01BWF9S
RF07CQkJICAgIC8qIHJvdXRpbmcgZGVzaWduYXRvcnMgKi8NCit9IF9fYXR0
cmlidXRlX18gKChfX3BhY2tlZF9fKSk7DQorDQorc3RydWN0IGlzbzg4MDI1
X3JpZiB7DQorCXVfaW50MTZfdAlyY2Y7CQkJCSAgICAvKiByb3V0ZSBjb250
cm9sIGZpZWxkICovDQorCXVfaW50MTZfdAlyZFtSSUZfTUFYX1JEXTsJCQkg
ICAgLyogcm91dGluZyBkZXNpZ25hdG9ycyAqLw0KK30gX19hdHRyaWJ1dGVf
XyAoKF9fcGFja2VkX18pKTsNCiANCiBzdHJ1Y3QgaXNvODgwMjVfc29ja2Fk
ZHJfZGF0YSB7DQogCXVfY2hhciBldGhlcl9kaG9zdFtJU084ODAyNV9BRERS
X0xFTl07DQpJbmRleDogaWZfbGxjLmgNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NClJDUyBmaWxlOiAvY3ZzL3NyYy9zeXMvbmV0L2lmX2xsYy5oLHYNCnJl
dHJpZXZpbmcgcmV2aXNpb24gMS43DQpkaWZmIC11IC1yMS43IGlmX2xsYy5o
DQotLS0gaWZfbGxjLmgJMTk5OS8wOC8yOCAwMDo0ODoxOAkxLjcNCisrKyBp
Zl9sbGMuaAkyMDAxLzAzLzA5IDA5OjE0OjAzDQpAQCAtNDYsNDQgKzQ2LDQ1
IEBADQogICovDQogDQogc3RydWN0IGxsYyB7DQotCXVfY2hhcglsbGNfZHNh
cDsNCi0JdV9jaGFyCWxsY19zc2FwOw0KKwl1X2ludDhfdAlsbGNfZHNhcDsN
CisJdV9pbnQ4X3QJbGxjX3NzYXA7DQogCXVuaW9uIHsNCiAJICAgIHN0cnVj
dCB7DQotCQl1X2NoYXIgY29udHJvbDsNCi0JCXVfY2hhciBmb3JtYXRfaWQ7
DQotCQl1X2NoYXIgY2xhc3M7DQotCQl1X2NoYXIgd2luZG93X3gyOw0KLQkg
ICAgfSB0eXBlX3U7DQotCSAgICBzdHJ1Y3Qgew0KLQkJdV9jaGFyIG51bV9z
bmRfeDI7DQotCQl1X2NoYXIgbnVtX3Jjdl94MjsNCi0JICAgIH0gdHlwZV9p
Ow0KLQkgICAgc3RydWN0IHsNCi0JCXVfY2hhciBjb250cm9sOw0KLQkJdV9j
aGFyIG51bV9yY3ZfeDI7DQotCSAgICB9IHR5cGVfczsNCisJCXVfaW50OF90
IGNvbnRyb2w7DQorCQl1X2ludDhfdCBmb3JtYXRfaWQ7DQorCQl1X2ludDhf
dCBjbGFzczsNCisJCXVfaW50OF90IHdpbmRvd194MjsNCisJICAgIH0gdHlw
ZV91IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsNCisJICAgIHN0cnVj
dCB7DQorCQl1X2ludDhfdCBudW1fc25kX3gyOw0KKwkJdV9pbnQ4X3QgbnVt
X3Jjdl94MjsNCisJICAgIH0gdHlwZV9pIF9fYXR0cmlidXRlX18oKF9fcGFj
a2VkX18pKTsNCisJICAgIHN0cnVjdCB7DQorCQl1X2ludDhfdCBjb250cm9s
Ow0KKwkJdV9pbnQ4X3QgbnVtX3Jjdl94MjsNCisJICAgIH0gdHlwZV9zIF9f
YXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsNCiAJICAgIHN0cnVjdCB7DQot
CSAgICAgICAgdV9jaGFyIGNvbnRyb2w7DQorCSAgICAgICAgdV9pbnQ4X3Qg
Y29udHJvbDsNCiAJCXN0cnVjdCBmcm1yaW5mbyB7DQotCQkJdV9jaGFyIHJl
al9wZHVfMDsNCi0JCQl1X2NoYXIgcmVqX3BkdV8xOw0KLQkJCXVfY2hhciBm
cm1yX2NvbnRyb2w7DQotCQkJdV9jaGFyIGZybXJfY29udHJvbF9leHQ7DQot
CQkJdV9jaGFyIGZybXJfY2F1c2U7DQotCQl9IGZybXJpbmZvOw0KLQkgICAg
fSB0eXBlX2ZybXI7DQorCQkJdV9pbnQ4X3QgcmVqX3BkdV8wOw0KKwkJCXVf
aW50OF90IHJlal9wZHVfMTsNCisJCQl1X2ludDhfdCBmcm1yX2NvbnRyb2w7
DQorCQkJdV9pbnQ4X3QgZnJtcl9jb250cm9sX2V4dDsNCisJCQl1X2ludDhf
dCBmcm1yX2NhdXNlOw0KKwkJfSBmcm1yaW5mbyBfX2F0dHJpYnV0ZV9fKChf
X3BhY2tlZF9fKSk7DQorCSAgICB9IHR5cGVfZnJtciBfX2F0dHJpYnV0ZV9f
KChfX3BhY2tlZF9fKSk7DQogCSAgICBzdHJ1Y3Qgew0KLQkJdV9jaGFyIGNv
bnRyb2w7DQotCQl1X2NoYXIgb3JnX2NvZGVbM107DQorCQl1X2ludDhfdCBj
b250cm9sOw0KKwkJdV9pbnQ4X3Qgb3JnX2NvZGVbM107DQogCQl1X3Nob3J0
IGV0aGVyX3R5cGU7DQotCSAgICB9IHR5cGVfc25hcDsNCisJICAgIH0gdHlw
ZV9zbmFwIF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsNCiAJICAgIHN0
cnVjdCB7DQotCQl1X2NoYXIgY29udHJvbDsNCi0JCXVfY2hhciBjb250cm9s
X2V4dDsNCi0JICAgIH0gdHlwZV9yYXc7DQotCX0gbGxjX3VuOw0KLX07DQor
CQl1X2ludDhfdCBjb250cm9sOw0KKwkJdV9pbnQ4X3QgY29udHJvbF9leHQ7
DQorCSAgICB9IHR5cGVfcmF3IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18p
KTsNCisJfSBsbGNfdW4gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOw0K
K30gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOw0KKw0KICNkZWZpbmUg
bGxjX2NvbnRyb2wgICAgICAgICAgICBsbGNfdW4udHlwZV91LmNvbnRyb2wN
CiAjZGVmaW5lCWxsY19jb250cm9sX2V4dCAgICAgICAgbGxjX3VuLnR5cGVf
cmF3LmNvbnRyb2xfZXh0DQogI2RlZmluZSBsbGNfZmlkICAgICAgICAgICAg
ICAgIGxsY191bi50eXBlX3UuZm9ybWF0X2lkDQpAQCAtMTAyLDYgKzEwMyw4
IEBADQogI2RlZmluZSBMTENfSVNGUkFNRUxFTiA0DQogI2RlZmluZSBMTENf
VUZSQU1FTEVOICAzDQogI2RlZmluZSBMTENfRlJNUkxFTiAgICA3DQorI2Rl
ZmluZSBMTENfU05BUEZSQU1FTEVOIDgNCisNCiANCiAvKg0KICAqIFVubnVt
YmVyZWQgTExDIGZvcm1hdCBjb21tYW5kcw0K
--0-1205283771-984134286=:54019--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




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