Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Oct 2007 22:56:58 -0500
From:      "Scot Hetzel" <swhetzel@gmail.com>
To:        "Mike Pumford" <mpumford@mpc-data.co.uk>
Cc:        freebsd-mobile@freebsd.org, freebsd-stable@freebsd.org, Abdullah Ibn Hamad Al-Marri <wearabnet@yahoo.ca>
Subject:   Re: 7.0 BETA1 and Thinkpad T61p : Wireless misadventure
Message-ID:  <790a9fff0710302056m60167d70lcf94a9774c06d09@mail.gmail.com>
In-Reply-To: <472751B7.9040505@mpc-data.co.uk>
References:  <461307.47075.qm@web33709.mail.mud.yahoo.com> <472751B7.9040505@mpc-data.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_4198_9968625.1193803018076
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 10/30/07, Mike Pumford <mpumford@mpc-data.co.uk> wrote:
> Abdullah Ibn Hamad Al-Marri wrote:
>
> >
> > Previously I didn't mention that there are some functions missing from
> >
> > the FreeBSD's NDIS api. These are:
> >
> > With the help of NDIS reference and Linux ndiswrapper I have been able
> >
> > to implement all but KeBugCheckEx (they are all rather simple but I
> >
> Can help you with this one. This is the Windows equivalent of panic().
> So just call panic with an appropriate string. If the string includes
> the bugcheck code and parameters so much the better.
>
Thanks for your hint to use panic() in the KeBugCheckEx function.
I have KeBugCheckEx partially implemented.  It currently prints the
bugcheck code
and the 4 paramators that are sent to KeBugCheckEx.

The KeBugCheckEx function still needs to be changed to display
the right information depending on the bugcheck code.



Abdullah, I made a minor change to your patch, strncat should be
prefixed with ntoskrnl_strncat.
changed IMPORT_CFUNC(strncat..) to IMPORT_CFUNC_MAP(ntoskrnl_strncat..).

Scot

------=_Part_4198_9968625.1193803018076
Content-Type: text/plain; name=ndis.patch
Content-Transfer-Encoding: base64
X-Attachment-Id: file0
Content-Disposition: attachment; filename=ndis.patch

SW5kZXg6IG5kaXNfdmFyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lz
L2NvbXBhdC9uZGlzL25kaXNfdmFyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDcKZGlmZiAt
dSAtcjEuNDcgbmRpc192YXIuaAotLS0gbmRpc192YXIuaAk2IEFwciAyMDA3IDExOjE4OjU3IC0w
MDAwCTEuNDcKKysrIG5kaXNfdmFyLmgJMzEgT2N0IDIwMDcgMDM6MzE6MjQgLTAwMDAKQEAgLTQ5
LDYgKzQ5LDEwIEBACiB0eXBlZGVmIHJlZ2lzdGVyX3QgbmRpc19rc3Bpbl9sb2NrOwogdHlwZWRl
ZiB1aW50OF90IG5kaXNfa2lycWw7CiAKKy8qIFZlcnNpb24gb2YgTkRJUyBzdXBwb3J0ZWQgYnkg
RnJlZUJTRCAqLworI2RlZmluZQlORElTX1ZFUlNJT05fNTEJCQkweDAwMDUwMDAxCisjZGVmaW5l
CU5ESVNfVkVSU0lPTgkJCU5ESVNfVkVSU0lPTl81MQorCiAvKgogICogTkRJUyBzdGF0dXMgY29k
ZXMgKHRoZXJlIGFyZSBsb3RzIG9mIHRoZW0pLiBUaGUgb25lcyB0aGF0CiAgKiBkb24ndCBzZWVt
IHRvIGZpdCB0aGUgcGF0dGVybiBhcmUgYWN0dWFsbHkgbWFwcGVkIHRvIGdlbmVyaWMKSW5kZXg6
IG50b3Nrcm5sX3Zhci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9j
b21wYXQvbmRpcy9udG9za3JubF92YXIuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MwpkaWZm
IC11IC1yMS40MyBudG9za3JubF92YXIuaAotLS0gbnRvc2tybmxfdmFyLmgJMTcgQXVnIDIwMDYg
MjI6NTA6MzIgLTAwMDAJMS40MworKysgbnRvc2tybmxfdmFyLmgJMzEgT2N0IDIwMDcgMDM6MzE6
MjQgLTAwMDAKQEAgLTEyMDIsMTQgKzEyMDIsMjIgQEAKIAogLyogTWVtb3J5IHBvb2wgdHlwZXMs
IGZvciBFeEFsbG9jYXRlUG9vbFdpdGhUYWcoKSAqLwogCi0jZGVmaW5lIE5vblBhZ2VkUG9vbAkJ
CTB4MDAwMDAwMDAKLSNkZWZpbmUgUGFnZWRQb29sCQkJMHgwMDAwMDAwMQotI2RlZmluZSBOb25Q
YWdlZFBvb2xNdXN0U3VjY2VlZAkJMHgwMDAwMDAwMgotI2RlZmluZSBEb250VXNlVGhpc1R5cGUJ
CQkweDAwMDAwMDAzCi0jZGVmaW5lIE5vblBhZ2VkUG9vbENhY2hlQWxpZ25lZAkweDAwMDAwMDA0
Ci0jZGVmaW5lIFBhZ2VkUG9vbENhY2hlQWxpZ25lZAkJMHgwMDAwMDAwNQotI2RlZmluZSBOb25Q
YWdlZFBvb2xDYWNoZUFsaWduZWRNdXN0UwkweDAwMDAwMDA2Ci0jZGVmaW5lIE1heFBvb2xUeXBl
CQkJMHgwMDAwMDAwNworI2RlZmluZQlOb25QYWdlZFBvb2wJCQkJMHgwMDAwMDAwMAorI2RlZmlu
ZQlQYWdlZFBvb2wJCQkJMHgwMDAwMDAwMQorI2RlZmluZQlOb25QYWdlZFBvb2xNdXN0U3VjY2Vl
ZAkJCTB4MDAwMDAwMDIKKyNkZWZpbmUJRG9udFVzZVRoaXNUeXBlCQkJCTB4MDAwMDAwMDMKKyNk
ZWZpbmUJTm9uUGFnZWRQb29sQ2FjaGVBbGlnbmVkCQkweDAwMDAwMDA0CisjZGVmaW5lCVBhZ2Vk
UG9vbENhY2hlQWxpZ25lZAkJCTB4MDAwMDAwMDUKKyNkZWZpbmUJTm9uUGFnZWRQb29sQ2FjaGVB
bGlnbmVkTXVzdFMJCTB4MDAwMDAwMDYKKyNkZWZpbmUJTWF4UG9vbFR5cGUJCQkJMHgwMDAwMDAw
NworCisjZGVmaW5lCU5vblBhZ2VkUG9vbFNlc3Npb24JCQkweDAwMDAwMDIwCisjZGVmaW5lCVBh
Z2VkUG9vbFNlc3Npb24JCQkweDAwMDAwMDIxCisjZGVmaW5lCU5vblBhZ2VkUG9vbE11c3RTdWNj
ZWVkU2Vzc2lvbgkJMHgwMDAwMDAyMgorI2RlZmluZQlEb250VXNlVGhpc1R5cGVTZXNzaW9uCQkJ
MHgwMDAwMDAyMworI2RlZmluZQlOb25QYWdlZFBvb2xDYWNoZUFsaWduZWRTZXNzaW9uCQkweDAw
MDAwMDI0CisjZGVmaW5lCVBhZ2VkUG9vbENhY2hlQWxpZ25lZFNlc3Npb24JCTB4MDAwMDAwMjUK
KyNkZWZpbmUJTm9uUGFnZWRQb29sQ2FjaGVBbGlnbmVkTXVzdFNTZXNzaW9uCTB4MDAwMDAwMjYK
IAogLyoKICAqIElPX1dPUktJVEVNIGlzIGFuIG9wYXF1ZSBzdHJ1Y3R1cmVzIHRoYXQgbXVzdCBi
ZSBhbGxvY2F0ZWQKQEAgLTEzNTcsOCArMTM2NSwxMiBAQAogZXh0ZXJuIHVpbnQ4X3QgS2VTeW5j
aHJvbml6ZUV4ZWN1dGlvbihraW50ZXJydXB0ICosIHZvaWQgKiwgdm9pZCAqKTsKIGV4dGVybiB1
aW50cHRyX3QgSW50ZXJsb2NrZWRFeGNoYW5nZSh2b2xhdGlsZSB1aW50MzJfdCAqLAogCXVpbnRw
dHJfdCk7CitleHRlcm4gdm9pZCAqRXhBbGxvY2F0ZVBvb2wodWludDMyX3QsIHNpemVfdCk7Citl
eHRlcm4gdm9pZCAqRXhBbGxvY2F0ZVBvb2xXaXRoUXVvdGEodWludDMyX3QsIHNpemVfdCk7Citl
eHRlcm4gdm9pZCAqRXhBbGxvY2F0ZVBvb2xXaXRoUXVvdGFUYWcodWludDMyX3QsIHNpemVfdCwg
dWludDMyX3QpOwogZXh0ZXJuIHZvaWQgKkV4QWxsb2NhdGVQb29sV2l0aFRhZyh1aW50MzJfdCwg
c2l6ZV90LCB1aW50MzJfdCk7CiBleHRlcm4gdm9pZCBFeEZyZWVQb29sKHZvaWQgKik7CitleHRl
cm4gdm9pZCBFeEZyZWVQb29sV2l0aFRhZyh2b2lkICosIHVpbnQzMl90KTsKIGV4dGVybiB1aW50
MzJfdCBJb0Nvbm5lY3RJbnRlcnJ1cHQoa2ludGVycnVwdCAqKiwgdm9pZCAqLCB2b2lkICosCiAJ
a3NwaW5fbG9jayAqLCB1aW50MzJfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhf
dCwKIAl1aW50MzJfdCwgdWludDhfdCk7CkluZGV4OiBzdWJyX25kaXMuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMvY29tcGF0L25kaXMvc3Vicl9uZGlzLmMsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMTA4CmRpZmYgLXUgLXIxLjEwOCBzdWJyX25kaXMuYwotLS0gc3Vi
cl9uZGlzLmMJMzEgTWF5IDIwMDcgMTE6NTE6NDkgLTAwMDAJMS4xMDgKKysrIHN1YnJfbmRpcy5j
CTMxIE9jdCAyMDA3IDAzOjMxOjI0IC0wMDAwCkBAIC0yNzIsNiArMjcyLDcgQEAKIHN0YXRpYyB2
b2lkIE5kaXNVbm1hcEZpbGUobmRpc19oYW5kbGUpOwogc3RhdGljIHZvaWQgTmRpc0Nsb3NlRmls
ZShuZGlzX2hhbmRsZSk7CiBzdGF0aWMgdWludDhfdCBOZGlzU3lzdGVtUHJvY2Vzc29yQ291bnQo
dm9pZCk7CitzdGF0aWMgdm9pZCBOZGlzR2V0Q3VycmVudFByb2Nlc3NvckNvdW50cyh1aW50MzJf
dCAqLCB1aW50MzJfdCAqLCB1aW50MzJfdCopOwogc3RhdGljIHZvaWQgTmRpc01JbmRpY2F0ZVN0
YXR1c0NvbXBsZXRlKG5kaXNfaGFuZGxlKTsKIHN0YXRpYyB2b2lkIE5kaXNNSW5kaWNhdGVTdGF0
dXMobmRpc19oYW5kbGUsIG5kaXNfc3RhdHVzLAogICAgICAgICB2b2lkICosIHVpbnQzMl90KTsK
QEAgLTI4Miw2ICsyODMsNyBAQAogCXVpbnQzMl90LCB1aW50MzJfdCwgbmRpc19wYWNrZXQgKiwg
dWludDMyX3QsIHVpbnQzMl90ICopOwogc3RhdGljIHZvaWQgTmRpc0NvcHlGcm9tUGFja2V0VG9Q
YWNrZXRTYWZlKG5kaXNfcGFja2V0ICosCiAJdWludDMyX3QsIHVpbnQzMl90LCBuZGlzX3BhY2tl
dCAqLCB1aW50MzJfdCwgdWludDMyX3QgKiwgdWludDMyX3QpOworc3RhdGljIHZvaWQgTmRpc0lN
Q29weVNlbmRQZXJQYWNrZXRJbmZvKG5kaXNfcGFja2V0ICosIG5kaXNfcGFja2V0ICopOwogc3Rh
dGljIG5kaXNfc3RhdHVzIE5kaXNNUmVnaXN0ZXJEZXZpY2UobmRpc19oYW5kbGUsCiAJdW5pY29k
ZV9zdHJpbmcgKiwgdW5pY29kZV9zdHJpbmcgKiwgZHJpdmVyX2Rpc3BhdGNoICoqLAogCXZvaWQg
KiosIG5kaXNfaGFuZGxlICopOwpAQCAtMzExNSw2ICszMTE3LDIwIEBACiAJcmV0dXJuKG1wX25j
cHVzKTsKIH0KIAorc3RhdGljIHZvaWQKK05kaXNHZXRDdXJyZW50UHJvY2Vzc29yQ291bnRzKGlk
bGVjb3VudCwga2VybmVsdXNlciwgaW5kZXgpCisJdWludDMyX3QJCSppZGxlY291bnQ7CisJdWlu
dDMyX3QJCSprZXJuZWx1c2VyOworCXVpbnQzMl90CQkqaW5kZXg7Cit7CisJaW50IGNwdSA9IDA7
IC8qIEN1cnJlbnQgQ1BVICovCisKKwkqaWRsZWNvdW50ID0gY3BfdGltZVtDUF9JRExFXTsKKwkq
a2VybmVsdXNlciA9CShjcF90aW1lW0NQX1VTRVJdICsgY3BfdGltZVtDUF9OSUNFXSkgKyBcCisJ
CQkoY3BfdGltZVtDUF9TWVNdICsgY3BfdGltZVtDUF9JTlRSXSk7CisJKmluZGV4ID0gY3B1Owor
fQorCiB0eXBlZGVmIHZvaWQgKCpuZGlzX3N0YXR1c2RvbmVfaGFuZGxlcikobmRpc19oYW5kbGUp
OwogdHlwZWRlZiB2b2lkICgqbmRpc19zdGF0dXNfaGFuZGxlcikobmRpc19oYW5kbGUsIG5kaXNf
c3RhdHVzLAogICAgICAgICB2b2lkICosIHVpbnQzMl90KTsKQEAgLTMyODgsNiArMzMwNCwxNCBA
QAogCXJldHVybjsKIH0KIAorc3RhdGljIHZvaWQKK05kaXNJTUNvcHlTZW5kUGVyUGFja2V0SW5m
byhkcGt0LCBzcGt0KQorCW5kaXNfcGFja2V0CQkqZHBrdDsKKwluZGlzX3BhY2tldAkJKnNwa3Q7
Cit7CisJbWVtY3B5KCZkcGt0LT5ucF9leHQsICZzcGt0LT5ucF9leHQsIHNpemVvZihuZGlzX3Bh
Y2tldF9leHRlbnNpb24pKTsKK30KKwogc3RhdGljIG5kaXNfc3RhdHVzCiBOZGlzTVJlZ2lzdGVy
RGV2aWNlKGhhbmRsZSwgZGV2bmFtZSwgc3ltbmFtZSwgbWFqb3JmdW5jcywgZGV2b2JqLCBkZXZo
YW5kbGUpCiAJbmRpc19oYW5kbGUJCWhhbmRsZTsKQEAgLTMzNDYsNiArMzM3MCwxMiBAQAogCXJl
dHVybjsKIH0KIAorc3RhdGljIHVpbnQzMl90CitOZGlzR2V0VmVyc2lvbigpCit7CisJcmV0dXJu
KE5ESVNfVkVSU0lPTik7Cit9CisKIHN0YXRpYyB2b2lkCiBkdW1teSgpCiB7CkBAIC0zMzY1LDEw
ICszMzk1LDEyIEBACiBpbWFnZV9wYXRjaF90YWJsZSBuZGlzX2Z1bmN0YmxbXSA9IHsKIAlJTVBP
UlRfU0ZVTkMoTmRpc0NvcHlGcm9tUGFja2V0VG9QYWNrZXQsIDYpLAogCUlNUE9SVF9TRlVOQyhO
ZGlzQ29weUZyb21QYWNrZXRUb1BhY2tldFNhZmUsIDcpLAorCUlNUE9SVF9TRlVOQyhOZGlzSU1D
b3B5U2VuZFBlclBhY2tldEluZm8sIDIpLAogCUlNUE9SVF9TRlVOQyhOZGlzU2NoZWR1bGVXb3Jr
SXRlbSwgMSksCiAJSU1QT1JUX1NGVU5DKE5kaXNNSW5kaWNhdGVTdGF0dXNDb21wbGV0ZSwgMSks
CiAJSU1QT1JUX1NGVU5DKE5kaXNNSW5kaWNhdGVTdGF0dXMsIDQpLAogCUlNUE9SVF9TRlVOQyhO
ZGlzU3lzdGVtUHJvY2Vzc29yQ291bnQsIDApLAorCUlNUE9SVF9TRlVOQyhOZGlzR2V0Q3VycmVu
dFByb2Nlc3NvckNvdW50cywgMyksCiAJSU1QT1JUX1NGVU5DKE5kaXNVbmNoYWluQnVmZmVyQXRC
YWNrLCAyKSwKIAlJTVBPUlRfU0ZVTkMoTmRpc0dldEZpcnN0QnVmZmVyRnJvbVBhY2tldCwgNSks
CiAJSU1QT1JUX1NGVU5DKE5kaXNHZXRGaXJzdEJ1ZmZlckZyb21QYWNrZXRTYWZlLCA2KSwKQEAg
LTM0ODIsNiArMzUxNCw3IEBACiAJSU1QT1JUX1NGVU5DKE5kaXNNRGVyZWdpc3RlckRldmljZSwg
MSksCiAJSU1QT1JUX1NGVU5DKE5kaXNNUXVlcnlBZGFwdGVySW5zdGFuY2VOYW1lLCAyKSwKIAlJ
TVBPUlRfU0ZVTkMoTmRpc01SZWdpc3RlclVubG9hZEhhbmRsZXIsIDIpLAorCUlNUE9SVF9TRlVO
QyhOZGlzR2V0VmVyc2lvbiwgMCksCiAJSU1QT1JUX1NGVU5DKG5kaXNfdGltZXJjYWxsLCA0KSwK
IAlJTVBPUlRfU0ZVTkMobmRpc19hc3luY21lbV9jb21wbGV0ZSwgMiksCiAJSU1QT1JUX1NGVU5D
KG5kaXNfaW50ciwgMiksCkluZGV4OiBzdWJyX250b3Nrcm5sLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2hvbWUvbmN2cy9zcmMvc3lzL2NvbXBhdC9uZGlzL3N1YnJfbnRvc2tybmwuYyx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS45MQpkaWZmIC11IC1yMS45MSBzdWJyX250b3Nrcm5sLmMKLS0tIHN1
YnJfbnRvc2tybmwuYwkyMCBPY3QgMjAwNyAyMzoyMzoxMiAtMDAwMAkxLjkxCisrKyBzdWJyX250
b3Nrcm5sLmMJMzEgT2N0IDIwMDcgMDM6MzE6MjQgLTAwMDAKQEAgLTIxOSw2ICsyMTksOCBAQAog
c3RhdGljIGludCByYW5kKHZvaWQpOwogc3RhdGljIHZvaWQgc3JhbmQodW5zaWduZWQgaW50KTsK
IHN0YXRpYyB2b2lkIG50b3Nrcm5sX3RpbWUodWludDY0X3QgKik7CitzdGF0aWMgdm9pZCBLZVF1
ZXJ5U3lzdGVtVGltZSh1aW50NjRfdCAqKTsKK3N0YXRpYyB1aW50MzJfdCBLZVRpY2tDb3VudCh2
b2lkKTsKIHN0YXRpYyB1aW50OF90IElvSXNXZG1WZXJzaW9uQXZhaWxhYmxlKHVpbnQ4X3QsIHVp
bnQ4X3QpOwogc3RhdGljIHZvaWQgbnRvc2tybmxfdGhyZnVuYyh2b2lkICopOwogc3RhdGljIG5k
aXNfc3RhdHVzIFBzQ3JlYXRlU3lzdGVtVGhyZWFkKG5kaXNfaGFuZGxlICosCkBAIC0yMjYsNiAr
MjI4LDggQEAKIHN0YXRpYyBuZGlzX3N0YXR1cyBQc1Rlcm1pbmF0ZVN5c3RlbVRocmVhZChuZGlz
X3N0YXR1cyk7CiBzdGF0aWMgbmRpc19zdGF0dXMgSW9HZXREZXZpY2VQcm9wZXJ0eShkZXZpY2Vf
b2JqZWN0ICosIHVpbnQzMl90LAogCXVpbnQzMl90LCB2b2lkICosIHVpbnQzMl90ICopOworc3Rh
dGljIHZvaWQgS2VCdWdDaGVja0V4KHVpbnQzMl90ICwgdWludDMyX3QgKiwgdWludDMyX3QgKiwg
dWludDMyX3QgKiwKKwl1aW50MzJfdCAqKTsKIHN0YXRpYyB2b2lkIEtlSW5pdGlhbGl6ZU11dGV4
KGttdXRhbnQgKiwgdWludDMyX3QpOwogc3RhdGljIHVpbnQzMl90IEtlUmVsZWFzZU11dGV4KGtt
dXRhbnQgKiwgdWludDhfdCk7CiBzdGF0aWMgdWludDMyX3QgS2VSZWFkU3RhdGVNdXRleChrbXV0
YW50ICopOwpAQCAtMjM4LDggKzI0MiwxMCBAQAogc3RhdGljIHVpbnQzMl90IFdtaVRyYWNlTWVz
c2FnZSh1aW50NjRfdCwgdWludDMyX3QsIHZvaWQgKiwgdWludDE2X3QsIC4uLik7CiBzdGF0aWMg
dWludDMyX3QgSW9XTUlSZWdpc3RyYXRpb25Db250cm9sKGRldmljZV9vYmplY3QgKiwgdWludDMy
X3QpOwogc3RhdGljIHZvaWQgKm50b3Nrcm5sX21lbXNldCh2b2lkICosIGludCwgc2l6ZV90KTsK
K3N0YXRpYyBpbnQgbnRvc2tybmxfbWVtY21wKHZvaWQgKiwgdm9pZCAqLCBzaXplX3QpOwogc3Rh
dGljIHZvaWQgKm50b3Nrcm5sX21lbW1vdmUodm9pZCAqLCB2b2lkICosIHNpemVfdCk7CiBzdGF0
aWMgdm9pZCAqbnRvc2tybmxfbWVtY2hyKHZvaWQgKiwgdW5zaWduZWQgY2hhciwgc2l6ZV90KTsK
K3N0YXRpYyBjaGFyICpudG9za3JubF9zdHJuY2F0KGNoYXIgKiwgY2hhciAqLCBzaXplX3QpOwog
c3RhdGljIGNoYXIgKm50b3Nrcm5sX3N0cnN0cihjaGFyICosIGNoYXIgKik7CiBzdGF0aWMgaW50
IG50b3Nrcm5sX3RvdXBwZXIoaW50KTsKIHN0YXRpYyBpbnQgbnRvc2tybmxfdG9sb3dlcihpbnQp
OwpAQCAtNDI5LDYgKzQzNSwxNiBAQAogCXJldHVybihtZW1zZXQoYnVmLCBjaCwgc2l6ZSkpOwog
fQogCisKK3N0YXRpYyBpbnQKK250b3Nrcm5sX21lbWNtcChidWYxLCBidWYyLCBzaXplKQorCXZv
aWQJCQkqYnVmMTsKKwl2b2lkCQkJKmJ1ZjI7CisJc2l6ZV90CQkJc2l6ZTsKK3sKKwlyZXR1cm4o
bWVtY21wKGJ1ZjEsIGJ1ZjIsIHNpemUpKTsKK30KKwogc3RhdGljIHZvaWQgKgogbnRvc2tybmxf
bWVtbW92ZShkc3QsIHNyYywgc2l6ZSkKIAl2b2lkCQkJKnNyYzsKQEAgLTQ1Niw2ICs0NzIsMjkg
QEAKIAlyZXR1cm4gKE5VTEwpOwogfQogCisvKiBUYWtlbiBmcm9tIGxpYmMgKi8KK2NoYXIgKgor
bnRvc2tybmxfc3RybmNhdChkc3QsIHNyYywgbikKKwljaGFyCQkqZHN0OworCWNoYXIJCSpzcmM7
CisJc2l6ZV90CQluOworeworCWlmIChuICE9IDApIHsKKwkJY2hhciAqZCA9IGRzdDsKKwkJY29u
c3QgY2hhciAqcyA9IHNyYzsKKwkJCisJCXdoaWxlICgqZCAhPSAwKQorCQkJZCsrOworCQlkbyB7
CisJCQlpZiAoKCpkID0gKnMrKykgPT0gMCkKKwkJCQlicmVhazsKKwkJCWQrKzsKKwkJfSB3aGls
ZSAoLS1uICE9IDApOworCQkqZCA9IDA7CisJfQorCXJldHVybiAoZHN0KTsKK30KKwogc3RhdGlj
IGNoYXIgKgogbnRvc2tybmxfc3Ryc3RyKHMsIGZpbmQpCiAJY2hhciAqcywgKmZpbmQ7CkBAIC02
MjQsNiArNjYzLDMxIEBACiB9CiAKIHZvaWQgKgorRXhBbGxvY2F0ZVBvb2wocG9vbHR5cGUsIGxl
bikKKwl1aW50MzJfdAkJcG9vbHR5cGU7CisJc2l6ZV90CQkJbGVuOworeworCXJldHVybihFeEFs
bG9jYXRlUG9vbFdpdGhUYWcocG9vbHR5cGUsIGxlbiwgMCkpOworfQorCit2b2lkICoKK0V4QWxs
b2NhdGVQb29sV2l0aFF1b3RhKHBvb2x0eXBlLCBsZW4pCisJdWludDMyX3QJCXBvb2x0eXBlOwor
CXNpemVfdAkJCWxlbjsKK3sKKwlyZXR1cm4oRXhBbGxvY2F0ZVBvb2xXaXRoVGFnKHBvb2x0eXBl
LCBsZW4sIDApKTsKK30KKwordm9pZCAqCitFeEFsbG9jYXRlUG9vbFdpdGhRdW90YVRhZyhwb29s
dHlwZSwgbGVuLCB0YWcpCisJdWludDMyX3QJCXBvb2x0eXBlOworCXNpemVfdAkJCWxlbjsKKwl1
aW50MzJfdAkJdGFnOworeworCXJldHVybihFeEFsbG9jYXRlUG9vbFdpdGhUYWcocG9vbHR5cGUs
IGxlbiwgdGFnKSk7Cit9CisKK3ZvaWQgKgogRXhBbGxvY2F0ZVBvb2xXaXRoVGFnKHBvb2x0eXBl
LCBsZW4sIHRhZykKIAl1aW50MzJfdAkJcG9vbHR5cGU7CiAJc2l6ZV90CQkJbGVuOwpAQCAtNjQy
LDYgKzcwNiwxNCBAQAogRXhGcmVlUG9vbChidWYpCiAJdm9pZAkJCSpidWY7CiB7CisJRXhGcmVl
UG9vbFdpdGhUYWcoYnVmLCAwKTsKK30KKwordm9pZAorRXhGcmVlUG9vbFdpdGhUYWcoYnVmLCB0
YWcpCisJdm9pZAkJCSpidWY7CisJdWludDMyX3QJCXRhZzsKK3sKIAlmcmVlKGJ1ZiwgTV9ERVZC
VUYpOwogCXJldHVybjsKIH0KQEAgLTE1ODcsNiArMTY1OSwyMSBAQAogCXJldHVybjsKIH0KIAor
c3RhdGljIHZvaWQKK0tlUXVlcnlTeXN0ZW1UaW1lKGN1cnJlbnRfdGltZSkKKwl1aW50NjRfdAkJ
KmN1cnJlbnRfdGltZTsKK3sKKwludG9za3JubF90aW1lKGN1cnJlbnRfdGltZSk7Cit9CisKK3N0
YXRpYyB1aW50MzJfdAorS2VUaWNrQ291bnQodm9pZCkKK3sKKwlzdHJ1Y3QgdGltZXZhbCB0djsK
KwlnZXRtaWNyb3VwdGltZSgmdHYpOworCXJldHVybiB0dnRvaHooJnR2KTsKK30KKwogLyoKICAq
IEtlV2FpdEZvclNpbmdsZU9iamVjdCgpIGlzIGEgdHJpY2t5IGJlYXN0LCBiZWNhdXNlIGl0IGNh
biBiZSB1c2VkCiAgKiB3aXRoIHNldmVyYWwgZGlmZmVyZW50IG9iamVjdCB0eXBlczogc2VtYXBo
b3JlcywgdGltZXJzLCBldmVudHMsCkBAIC0yMzE2LDYgKzI0MDMsMjIgQEAKIH0KIAogdm9pZAor
S2VCdWdDaGVja0V4KGJ1Z2NoZWNrLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zLCBwYXJhbTQpCisJ
dWludDMyX3QJCWJ1Z2NoZWNrOworCXVpbnQzMl90CQkqcGFyYW0xOworCXVpbnQzMl90CQkqcGFy
YW0yOworCXVpbnQzMl90CQkqcGFyYW0zOworCXVpbnQzMl90CQkqcGFyYW00OworeworCS8qIGh0
dHA6Ly9tc2RuMi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXM4MDE2NDUuYXNweCAqLwor
CisJcGFuaWMoIktlQnVnQ2hlY2tFeDogU1RPUDogJSMwOHgsICglOHAsICU4cCwgJThwLCAlOHAp
IiwKKwkJYnVnY2hlY2ssIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMsIHBhcmFtNCk7CisKKyAgICAg
ICAgcmV0dXJuOworfQorCit2b2lkCiBLZUluaXRpYWxpemVTcGluTG9jayhsb2NrKQogCWtzcGlu
X2xvY2sJCSpsb2NrOwogewpAQCAtMjgxNCw3ICsyOTE3LDcgQEAKIAlmb3IgKGkgPSAwOyBpIDwg
V09SS0lURU1fVEhSRUFEUzsgaSsrKSB7CiAJCWtxID0gd3FfcXVldWVzICsgaTsKIAkJa3EtPmtx
X2V4aXQgPSAxOwotCQlLZVNldEV2ZW50KCZrcS0+a3FfcHJvYywgSU9fTk9fSU5DUkVNRU5ULCBG
QUxTRSk7CQorCQlLZVNldEV2ZW50KCZrcS0+a3FfcHJvYywgSU9fTk9fSU5DUkVNRU5ULCBGQUxT
RSk7CiAJCXdoaWxlIChrcS0+a3FfZXhpdCkKIAkJCXRzbGVlcChrcS0+a3FfdGQtPnRkX3Byb2Ms
IFBXQUlULCAid2FpdGl3IiwgaHovMTApOwogCX0KQEAgLTMxODIsNyArMzI4NSwxMCBAQAogCXVp
bnQ4X3QJCQltYWpvcjsKIAl1aW50OF90CQkJbWlub3I7CiB7Ci0JaWYgKG1ham9yID09IFdETV9N
QUpPUiAmJiBtaW5vciA9PSBXRE1fTUlOT1JfV0lOWFApCisJaWYgKG1ham9yID09IFdETV9NQUpP
UiAmJiAKKwkgICAobWlub3IgPT0gV0RNX01JTk9SX1dJTjIwMDMJfHwJLyogV2luZG93cyAyMDAz
ICovCisJICAgIG1pbm9yID09IFdETV9NSU5PUl9XSU5YUAl8fAkvKiBXaW5kb3dzIFhQICovCisJ
ICAgIG1pbm9yID09IFdETV9NSU5PUl9XSU4yMDAwKSkJLyogV2luZG93cyAyMDAwICovCiAJCXJl
dHVybihUUlVFKTsKIAlyZXR1cm4oRkFMU0UpOwogfQpAQCAtNDIxOCw2ICs0MzI0LDcgQEAKIAlJ
TVBPUlRfQ0ZVTkMoc3RybmNtcCwgMCksCiAJSU1QT1JUX0NGVU5DKHN0cmNtcCwgMCksCiAJSU1Q
T1JUX0NGVU5DX01BUChzdHJpY21wLCBzdHJjYXNlY21wLCAwKSwKKwlJTVBPUlRfQ0ZVTkNfTUFQ
KHN0cm5jYXQsIG50b3Nrcm5sX3N0cm5jYXQsIDApLAogCUlNUE9SVF9DRlVOQyhzdHJuY3B5LCAw
KSwKIAlJTVBPUlRfQ0ZVTkMoc3RyY3B5LCAwKSwKIAlJTVBPUlRfQ0ZVTkMoc3RybGVuLCAwKSwK
QEAgLTQyMjksNiArNDMzNiw3IEBACiAJSU1QT1JUX0NGVU5DKG1lbWNweSwgMCksCiAJSU1QT1JU
X0NGVU5DX01BUChtZW1tb3ZlLCBudG9za3JubF9tZW1tb3ZlLCAwKSwKIAlJTVBPUlRfQ0ZVTkNf
TUFQKG1lbXNldCwgbnRvc2tybmxfbWVtc2V0LCAwKSwKKwlJTVBPUlRfQ0ZVTkNfTUFQKG1lbWNt
cCwgbnRvc2tybmxfbWVtY21wLCAwKSwKIAlJTVBPUlRfQ0ZVTkNfTUFQKG1lbWNociwgbnRvc2ty
bmxfbWVtY2hyLCAwKSwKIAlJTVBPUlRfU0ZVTkMoSW9BbGxvY2F0ZURyaXZlck9iamVjdEV4dGVu
c2lvbiwgNCksCiAJSU1QT1JUX1NGVU5DKElvR2V0RHJpdmVyT2JqZWN0RXh0ZW5zaW9uLCAyKSwK
QEAgLTQyOTAsOCArNDM5OCwxMiBAQAogCQlJbnRlcmxvY2tlZFB1c2hFbnRyeVNMaXN0LCAyKSwK
IAlJTVBPUlRfRkZVTkMoRXhJbnRlcmxvY2tlZFBvcEVudHJ5U0xpc3QsIDIpLAogCUlNUE9SVF9G
RlVOQyhFeEludGVybG9ja2VkUHVzaEVudHJ5U0xpc3QsIDMpLAorCUlNUE9SVF9TRlVOQyhFeEFs
bG9jYXRlUG9vbCwgMiksCisJSU1QT1JUX1NGVU5DKEV4QWxsb2NhdGVQb29sV2l0aFF1b3RhLCAy
KSwKKwlJTVBPUlRfU0ZVTkMoRXhBbGxvY2F0ZVBvb2xXaXRoUXVvdGFUYWcsIDMpLAogCUlNUE9S
VF9TRlVOQyhFeEFsbG9jYXRlUG9vbFdpdGhUYWcsIDMpLAogCUlNUE9SVF9TRlVOQyhFeEZyZWVQ
b29sLCAxKSwKKwlJTVBPUlRfU0ZVTkMoRXhGcmVlUG9vbFdpdGhUYWcsIDIpLAogI2lmZGVmIF9f
aTM4Nl9fCiAJSU1QT1JUX0ZGVU5DKEtlZkFjcXVpcmVTcGluTG9ja0F0RHBjTGV2ZWwsIDEpLAog
CUlNUE9SVF9GRlVOQyhLZWZSZWxlYXNlU3BpbkxvY2tGcm9tRHBjTGV2ZWwsMSksCkBAIC00MzM2
LDYgKzQ0NDgsNyBAQAogCUlNUE9SVF9TRlVOQyhJb1F1ZXVlV29ya0l0ZW0sIDQpLAogCUlNUE9S
VF9TRlVOQyhFeFF1ZXVlV29ya0l0ZW0sIDIpLAogCUlNUE9SVF9TRlVOQyhudG9za3JubF93b3Jr
aXRlbSwgMiksCisJSU1QT1JUX1NGVU5DKEtlQnVnQ2hlY2tFeCwgNSksCiAJSU1QT1JUX1NGVU5D
KEtlSW5pdGlhbGl6ZU11dGV4LCAyKSwKIAlJTVBPUlRfU0ZVTkMoS2VSZWxlYXNlTXV0ZXgsIDIp
LAogCUlNUE9SVF9TRlVOQyhLZVJlYWRTdGF0ZU11dGV4LCAxKSwKQEAgLTQzNjUsNiArNDQ3OCw4
IEBACiAJSU1QT1JUX1NGVU5DKElvV01JUmVnaXN0cmF0aW9uQ29udHJvbCwgMiksCiAJSU1QT1JU
X1NGVU5DKFdtaVF1ZXJ5VHJhY2VJbmZvcm1hdGlvbiwgNSksCiAJSU1QT1JUX0NGVU5DKFdtaVRy
YWNlTWVzc2FnZSwgMCksCisJSU1QT1JUX1NGVU5DKEtlUXVlcnlTeXN0ZW1UaW1lLCAxKSwKKwlJ
TVBPUlRfQ0ZVTkMoS2VUaWNrQ291bnQsIDApLAogCiAJLyoKIAkgKiBUaGlzIGxhc3QgZW50cnkg
aXMgYSBjYXRjaC1hbGwgZm9yIGFueSBmdW5jdGlvbiB3ZSBoYXZlbid0Cg==
------=_Part_4198_9968625.1193803018076--



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