From owner-freebsd-mobile@FreeBSD.ORG Wed Oct 31 06:41:03 2007 Return-Path: Delivered-To: freebsd-mobile@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D684D16A474 for ; Wed, 31 Oct 2007 06:41:03 +0000 (UTC) (envelope-from swhetzel@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.186]) by mx1.freebsd.org (Postfix) with ESMTP id 0D66213C480 for ; Wed, 31 Oct 2007 06:41:02 +0000 (UTC) (envelope-from swhetzel@gmail.com) Received: by nf-out-0910.google.com with SMTP id b2so32559nfb for ; Tue, 30 Oct 2007 23:40:28 -0700 (PDT) Received: by 10.86.1.1 with SMTP id 1mr5966099fga.1193803018078; Tue, 30 Oct 2007 20:56:58 -0700 (PDT) Received: by 10.86.71.6 with HTTP; Tue, 30 Oct 2007 20:56:58 -0700 (PDT) Message-ID: <790a9fff0710302056m60167d70lcf94a9774c06d09@mail.gmail.com> Date: Tue, 30 Oct 2007 22:56:58 -0500 From: "Scot Hetzel" To: "Mike Pumford" In-Reply-To: <472751B7.9040505@mpc-data.co.uk> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_4198_9968625.1193803018076" References: <461307.47075.qm@web33709.mail.mud.yahoo.com> <472751B7.9040505@mpc-data.co.uk> Cc: freebsd-mobile@freebsd.org, freebsd-stable@freebsd.org, Abdullah Ibn Hamad Al-Marri Subject: Re: 7.0 BETA1 and Thinkpad T61p : Wireless misadventure X-BeenThere: freebsd-mobile@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Mobile computing with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Oct 2007 06:41:04 -0000 ------=_Part_4198_9968625.1193803018076 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline On 10/30/07, Mike Pumford 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--