From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LoeNf-0007Lv-TV for qemu-devel@nongnu.org; Tue, 31 Mar 2009 09:51:56 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LoeNc-0007JX-66 for qemu-devel@nongnu.org; Tue, 31 Mar 2009 09:51:55 -0400 Received: from [199.232.76.173] (port=40189 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LoeNb-0007JF-FS for qemu-devel@nongnu.org; Tue, 31 Mar 2009 09:51:51 -0400 Received: from smtp4-g21.free.fr ([212.27.42.4]:54909) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LoeNY-0008WD-St for qemu-devel@nongnu.org; Tue, 31 Mar 2009 09:51:51 -0400 Received: from smtp4-g21.free.fr (localhost [127.0.0.1]) by smtp4-g21.free.fr (Postfix) with ESMTP id 8F1074C8025 for ; Tue, 31 Mar 2009 15:51:44 +0200 (CEST) Received: from laptop (vaf26-2-82-244-111-82.fbx.proxad.net [82.244.111.82]) by smtp4-g21.free.fr (Postfix) with ESMTP id 7961C4C80E3 for ; Tue, 31 Mar 2009 15:51:42 +0200 (CEST) From: "=?utf-8?q?Fran=C3=A7ois?= Revol" Date: Tue, 31 Mar 2009 15:51:50 +0200 CEST Message-Id: <5111661812-BeMail@laptop> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=----------Zoidberg-BeMail-temp-------- Subject: [Qemu-devel] [RESEND][PATCH][RFC] usb-wacom.c merge into usb-hid.c (fwd) Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This is a multipart message in MIME format. ------------Zoidberg-BeMail-temp-------- Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable ping =3F (hw/usb-wacom.c would just go away then) Fran=C3=A7ois. ------ Forwarded Message: ------ To: qemu-devel@nongnu.org From: "Fran=C3=A7ois Revol" Subject: [PATCH][RFC] usb-wacom.c merge into usb-hid.c Date: Sun, 29 Mar 2009 03:55:38 +0200 CEST After the fixes to usb-wacom.c I proposed, I managed to merge it into usb-hid.c. Seems to work, at least for wacom in Haiku guest, but would need some cleanup. Comments =3F Fran=C3=A7ois. ------------Zoidberg-BeMail-temp-------- Content-Transfer-Encoding: base64 Content-Disposition: BMailAttachment Content-Type: text/plain; name=qemu-usb-wacom-merged-to-hid.001.diff.txt SW5kZXg6IGh3L3VzYi1oaWQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBody91c2ItaGlkLmMJKHLDqXZpc2lv biA2OTQ0KQorKysgaHcvdXNiLWhpZC5jCShjb3BpZSBkZSB0cmF2YWlsKQpAQCAtMSw2ICsxLDEw IEBACiAvKgogICogUUVNVSBVU0IgSElEIGRldmljZXMKICAqCisgKiBXYWNvbSBQZW5QYXJ0bmVy IFVTQiB0YWJsZXQgZW11bGF0aW9uOgorICogQ29weXJpZ2h0IChjKSAyMDA2IE9wZW5lZGhhbmQg THRkLgorICogQXV0aG9yOiBBbmRyemVqIFphYm9yb3dza2kgPGJhbHJvZ0B6YWJvci5vcmc+Cisg KgogICogQ29weXJpZ2h0IChjKSAyMDA1IEZhYnJpY2UgQmVsbGFyZAogICogQ29weXJpZ2h0IChj KSAyMDA3IE9wZW5Nb2tvLCBJbmMuICAoYW5kcmV3QG9wZW5lZGhhbmQuY29tKQogICoKQEAgLTI2 LDIzICszMCwzMiBAQAogI2luY2x1ZGUgImNvbnNvbGUuaCIKICNpbmNsdWRlICJ1c2IuaCIKIAor LyogSW50ZXJmYWNlIHJlcXVlc3RzICovCisjZGVmaW5lIFdBQ09NX0dFVF9SRVBPUlQgMHgyMTAx CisjZGVmaW5lIFdBQ09NX1NFVF9SRVBPUlQgMHgyMTA5CisKIC8qIEhJRCBpbnRlcmZhY2UgcmVx dWVzdHMgKi8KLSNkZWZpbmUgR0VUX1JFUE9SVCAgIDB4YTEwMQotI2RlZmluZSBHRVRfSURMRSAg ICAgMHhhMTAyCi0jZGVmaW5lIEdFVF9QUk9UT0NPTCAweGExMDMKLSNkZWZpbmUgU0VUX1JFUE9S VCAgIDB4MjEwOQotI2RlZmluZSBTRVRfSURMRSAgICAgMHgyMTBhCi0jZGVmaW5lIFNFVF9QUk9U T0NPTCAweDIxMGIKKyNkZWZpbmUgSElEX0dFVF9SRVBPUlQJCTB4YTEwMQorI2RlZmluZSBISURf R0VUX0lETEUJCTB4YTEwMgorI2RlZmluZSBISURfR0VUX1BST1RPQ09MCTB4YTEwMworI2RlZmlu ZSBISURfU0VUX1JFUE9SVAkJMHgyMTA5CisjZGVmaW5lIEhJRF9TRVRfSURMRQkJMHgyMTBhCisj ZGVmaW5lIEhJRF9TRVRfUFJPVE9DT0wJMHgyMTBiCiAKKwogLyogSElEIGRlc2NyaXB0b3IgdHlw ZXMgKi8KICNkZWZpbmUgVVNCX0RUX0hJRCAgICAweDIxCiAjZGVmaW5lIFVTQl9EVF9SRVBPUlQg MHgyMgogI2RlZmluZSBVU0JfRFRfUEhZICAgIDB4MjMKIAotI2RlZmluZSBVU0JfTU9VU0UgICAg IDEKLSNkZWZpbmUgVVNCX1RBQkxFVCAgICAyCi0jZGVmaW5lIFVTQl9LRVlCT0FSRCAgMworI2Rl ZmluZSBVU0JfTU9VU0UgICAgICAgIDEKKyNkZWZpbmUgVVNCX1RBQkxFVCAgICAgICAyCisjZGVm aW5lIFVTQl9LRVlCT0FSRCAgICAgMworI2RlZmluZSBVU0JfV0FDT01fVEFCTEVUIDQKIAorI2Rl ZmluZSBXQUNPTV9NT0RFX0hJRCAgIDEKKyNkZWZpbmUgV0FDT01fTU9ERV9XQUNPTSAyCisKIHR5 cGVkZWYgc3RydWN0IFVTQk1vdXNlU3RhdGUgewogICAgIGludCBkeCwgZHksIGR6LCBidXR0b25z X3N0YXRlOwogICAgIGludCB4LCB5OwpAQCAtNjMsMTAgKzc2LDEzIEBACiAgICAgICAgIFVTQk1v dXNlU3RhdGUgcHRyOwogICAgICAgICBVU0JLZXlib2FyZFN0YXRlIGtiZDsKICAgICB9OworICAg IGNvbnN0IHVpbnQ4X3QgKmRldl9kZXNjcmlwdG9yLCAqY29uZmlnX2Rlc2NyaXB0b3IsICpoaWRf cmVwb3J0X2Rlc2NyaXB0b3I7CisgICAgaW50IGRldl9kZXNjcmlwdG9yX3NpemUsIGNvbmZpZ19k ZXNjcmlwdG9yX3NpemUsIGhpZF9yZXBvcnRfZGVzY3JpcHRvcl9zaXplOwogICAgIGludCBraW5k OwogICAgIGludCBwcm90b2NvbDsKICAgICB1aW50OF90IGlkbGU7CiAgICAgaW50IGNoYW5nZWQ7 CisgICAgaW50ICgqaG9va19wb2xsKShzdHJ1Y3QgVVNCSElEU3RhdGUgKiwgdWludDhfdCAqLCBp bnQpOwogICAgIHZvaWQgKmRhdGFpbl9vcGFxdWU7CiAgICAgdm9pZCAoKmRhdGFpbikodm9pZCAq KTsKIH0gVVNCSElEU3RhdGU7CkBAIC05Miw2ICsxMDgsMjYgQEAKIAkweDAxICAgICAgICAvKiAg dTggIGJOdW1Db25maWd1cmF0aW9uczsgKi8KIH07CiAKK3N0YXRpYyBjb25zdCB1aW50OF90IHFl bXVfd2Fjb21fZGV2X2Rlc2NyaXB0b3JbXSA9IHsKKyAgICAweDEyLAkvKiAgdTggYkxlbmd0aDsg Ki8KKyAgICAweDAxLAkvKiAgdTggYkRlc2NyaXB0b3JUeXBlOyBEZXZpY2UgKi8KKyAgICAweDEw LCAweDEwLAkvKiAgdTE2IGJjZFVTQjsgdjEuMTAgKi8KKworICAgIDB4MDAsCS8qICB1OCAgYkRl dmljZUNsYXNzOyAqLworICAgIDB4MDAsCS8qICB1OCAgYkRldmljZVN1YkNsYXNzOyAqLworICAg IDB4MDAsCS8qICB1OCAgYkRldmljZVByb3RvY29sOyBbIGxvdy9mdWxsIHNwZWVkcyBvbmx5IF0g Ki8KKyAgICAweDA4LAkvKiAgdTggIGJNYXhQYWNrZXRTaXplMDsgOCBCeXRlcyAqLworCisgICAg MHg2YSwgMHgwNSwJLyogIHUxNiBpZFZlbmRvcjsgKi8KKyAgICAweDAwLCAweDAwLAkvKiAgdTE2 IGlkUHJvZHVjdDsgKi8KKyAgICAweDEwLCAweDQyLAkvKiAgdTE2IGJjZERldmljZSAqLworCisg ICAgMHgwMSwJLyogIHU4ICBpTWFudWZhY3R1cmVyOyAqLworICAgIDB4MDIsCS8qICB1OCAgaVBy b2R1Y3Q7ICovCisgICAgMHgwMCwJLyogIHU4ICBpU2VyaWFsTnVtYmVyOyAqLworICAgIDB4MDEs CS8qICB1OCAgYk51bUNvbmZpZ3VyYXRpb25zOyAqLworfTsKKwogc3RhdGljIGNvbnN0IHVpbnQ4 X3QgcWVtdV9tb3VzZV9jb25maWdfZGVzY3JpcHRvcltdID0gewogCS8qIG9uZSBjb25maWd1cmF0 aW9uICovCiAJMHgwOSwgICAgICAgLyogIHU4ICBiTGVuZ3RoOyAqLwpAQCAtMjU3LDYgKzI5Myw1 MCBAQAogICAgIDB4MGEsCQkvKiAgdTggIGVwX2JJbnRlcnZhbDsgKDI1NW1zIC0tIHVzYiAyLjAg c3BlYykgKi8KIH07CiAKK3N0YXRpYyBjb25zdCB1aW50OF90IHFlbXVfd2Fjb21fY29uZmlnX2Rl c2NyaXB0b3JbXSA9IHsKKyAgICAvKiBvbmUgY29uZmlndXJhdGlvbiAqLworICAgIDB4MDksCS8q ICB1OCAgYkxlbmd0aDsgKi8KKyAgICAweDAyLAkvKiAgdTggIGJEZXNjcmlwdG9yVHlwZTsgQ29u ZmlndXJhdGlvbiAqLworICAgIDB4MjIsIDB4MDAsCS8qICB1MTYgd1RvdGFsTGVuZ3RoOyAqLwor ICAgIDB4MDEsCS8qICB1OCAgYk51bUludGVyZmFjZXM7ICgxKSAqLworICAgIDB4MDEsCS8qICB1 OCAgYkNvbmZpZ3VyYXRpb25WYWx1ZTsgKi8KKyAgICAweDAwLAkvKiAgdTggIGlDb25maWd1cmF0 aW9uOyAqLworICAgIDB4ODAsCS8qICB1OCAgYm1BdHRyaWJ1dGVzOworCQkJCSBCaXQgNzogbXVz dCBiZSBzZXQsCisJCQkJICAgICA2OiBTZWxmLXBvd2VyZWQsCisJCQkJICAgICA1OiBSZW1vdGUg d2FrZXVwLAorCQkJCSAgICAgNC4uMDogcmVzdmQgKi8KKyAgICA0MCwJCS8qICB1OCAgTWF4UG93 ZXI7ICovCisKKyAgICAvKiBvbmUgaW50ZXJmYWNlICovCisgICAgMHgwOSwJLyogIHU4ICBpZl9i TGVuZ3RoOyAqLworICAgIDB4MDQsCS8qICB1OCAgaWZfYkRlc2NyaXB0b3JUeXBlOyBJbnRlcmZh Y2UgKi8KKyAgICAweDAwLAkvKiAgdTggIGlmX2JJbnRlcmZhY2VOdW1iZXI7ICovCisgICAgMHgw MCwJLyogIHU4ICBpZl9iQWx0ZXJuYXRlU2V0dGluZzsgKi8KKyAgICAweDAxLAkvKiAgdTggIGlm X2JOdW1FbmRwb2ludHM7ICovCisgICAgMHgwMywJLyogIHU4ICBpZl9iSW50ZXJmYWNlQ2xhc3M7 IEhJRCAqLworICAgIDB4MDEsCS8qICB1OCAgaWZfYkludGVyZmFjZVN1YkNsYXNzOyBCb290ICov CisgICAgMHgwMiwJLyogIHU4ICBpZl9iSW50ZXJmYWNlUHJvdG9jb2w7IFt1c2IxLjEgb3Igc2lu Z2xlIHR0XSAqLworICAgIDB4MDAsCS8qICB1OCAgaWZfaUludGVyZmFjZTsgKi8KKworICAgIC8q IEhJRCBkZXNjcmlwdG9yICovCisgICAgMHgwOSwJLyogIHU4ICBiTGVuZ3RoOyAqLworICAgIDB4 MjEsCS8qICB1OCAgYkRlc2NyaXB0b3JUeXBlOyAqLworICAgIDB4MDEsIDB4MTAsCS8qICB1MTYg SElEX2NsYXNzICovCisgICAgMHgwMCwJLyogIHU4ICBjb3VudHJ5X2NvZGUgKi8KKyAgICAweDAx LAkvKiAgdTggIG51bV9kZXNjcmlwdG9ycyAqLworICAgIDB4MjIsCS8qICB1OCAgdHlwZTsgUmVw b3J0ICovCisgICAgMHg2ZSwgMHgwMCwJLyogIHUxNiBsZW4gKi8KKworICAgIC8qIG9uZSBlbmRw b2ludCAoc3RhdHVzIGNoYW5nZSBlbmRwb2ludCkgKi8KKyAgICAweDA3LAkvKiAgdTggIGVwX2JM ZW5ndGg7ICovCisgICAgMHgwNSwJLyogIHU4ICBlcF9iRGVzY3JpcHRvclR5cGU7IEVuZHBvaW50 ICovCisgICAgMHg4MSwJLyogIHU4ICBlcF9iRW5kcG9pbnRBZGRyZXNzOyBJTiBFbmRwb2ludCAx ICovCisgICAgMHgwMywJLyogIHU4ICBlcF9ibUF0dHJpYnV0ZXM7IEludGVycnVwdCAqLworICAg IDB4MDgsIDB4MDAsCS8qICB1MTYgZXBfd01heFBhY2tldFNpemU7ICovCisgICAgMHgwYSwJLyog IHU4ICBlcF9iSW50ZXJ2YWw7ICovCit9OworCiBzdGF0aWMgY29uc3QgdWludDhfdCBxZW11X21v dXNlX2hpZF9yZXBvcnRfZGVzY3JpcHRvcltdID0gewogICAgIDB4MDUsIDB4MDEsCQkvKiBVc2Fn ZSBQYWdlIChHZW5lcmljIERlc2t0b3ApICovCiAgICAgMHgwOSwgMHgwMiwJCS8qIFVzYWdlIChN b3VzZSkgKi8KQEAgLTQ0MCw2ICs1MjAsMjYgQEAKICAgICB1c2JfaGlkX2NoYW5nZWQoaHMpOwog fQogCitzdGF0aWMgdm9pZCB1c2Jfd2Fjb21fZXZlbnQodm9pZCAqb3BhcXVlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCB4LCBpbnQgeSwgaW50IGR6LCBpbnQgYnV0dG9uc19zdGF0 ZSkKK3sKKyAgICBVU0JISURTdGF0ZSAqaHMgPSBvcGFxdWU7CisgICAgVVNCTW91c2VTdGF0ZSAq cyA9ICZocy0+cHRyOworCisgICAgaWYgKGhzLT5wcm90b2NvbCA9PSBXQUNPTV9NT0RFX0hJRCkg eworCXVzYl9tb3VzZV9ldmVudChvcGFxdWUsIHgsIHksIGR6LCBidXR0b25zX3N0YXRlKTsKKwly ZXR1cm47CisgICAgfQorCisgICAgLyogc2NhbGUgdG8gUGVucGFydG5lciByZXNvbHV0aW9uICov CisgICAgcy0+eCA9ICh4ICogNTA0MCAvIDB4N0ZGRik7CisgICAgcy0+eSA9ICh5ICogMzc4MCAv IDB4N0ZGRik7CisgICAgcy0+ZHogKz0gZHo7CisgICAgcy0+YnV0dG9uc19zdGF0ZSA9IGJ1dHRv bnNfc3RhdGU7CisKKyAgICB1c2JfaGlkX2NoYW5nZWQoaHMpOworfQorCiBzdGF0aWMgdm9pZCB1 c2Jfa2V5Ym9hcmRfZXZlbnQodm9pZCAqb3BhcXVlLCBpbnQga2V5Y29kZSkKIHsKICAgICBVU0JI SURTdGF0ZSAqaHMgPSBvcGFxdWU7CkBAIC01ODEsOCArNjgxLDUwIEBACiAgICAgcmV0dXJuIGw7 CiB9CiAKLXN0YXRpYyBpbnQgdXNiX2tleWJvYXJkX3BvbGwoVVNCS2V5Ym9hcmRTdGF0ZSAqcywg dWludDhfdCAqYnVmLCBpbnQgbGVuKQorc3RhdGljIGludCB1c2Jfd2Fjb21fcG9sbChVU0JISURT dGF0ZSAqaHMsIHVpbnQ4X3QgKmJ1ZiwgaW50IGxlbikKIHsKKyAgICBpbnQgYjsKKyAgICBVU0JN b3VzZVN0YXRlICpzID0gJmhzLT5wdHI7CisKKyAgICBpZiAoIXMtPm1vdXNlX2dyYWJiZWQpIHsK KyAgICAgICAgcy0+ZWhfZW50cnkgPSBxZW11X2FkZF9tb3VzZV9ldmVudF9oYW5kbGVyKHVzYl93 YWNvbV9ldmVudCwgaHMsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAiUUVNVSBQZW5QYXJ0 bmVyIHRhYmxldCIpOworICAgICAgICBzLT5tb3VzZV9ncmFiYmVkID0gMTsKKyAgICB9CisKKyAg ICBpZiAoaHMtPnByb3RvY29sID09IFdBQ09NX01PREVfSElEKQorICAgICAgICByZXR1cm4gdXNi X21vdXNlX3BvbGwoaHMsIGJ1ZiwgbGVuKTsKKworICAgIGIgPSAwOworICAgIGlmIChzLT5idXR0 b25zX3N0YXRlICYgTU9VU0VfRVZFTlRfTEJVVFRPTikKKyAgICAgICAgYiB8PSAweDAxOworICAg IGlmIChzLT5idXR0b25zX3N0YXRlICYgTU9VU0VfRVZFTlRfUkJVVFRPTikKKyAgICAgICAgYiB8 PSAweDQwOworICAgIGlmIChzLT5idXR0b25zX3N0YXRlICYgTU9VU0VfRVZFTlRfTUJVVFRPTikK KyAgICAgICAgYiB8PSAweDIwOyAvKiBlcmFzZXIgKi8KKworICAgIGlmIChsZW4gPCA3KQorICAg ICAgICByZXR1cm4gMDsKKworICAgIGJ1ZlswXSA9IGhzLT5wcm90b2NvbDsKKyAgICBidWZbNV0g PSAweDAwIHwgKGIgJiAweGYwKTsKKyAgICBidWZbMV0gPSBzLT54ICYgMHhmZjsKKyAgICBidWZb Ml0gPSBzLT54ID4+IDg7CisgICAgYnVmWzNdID0gcy0+eSAmIDB4ZmY7CisgICAgYnVmWzRdID0g cy0+eSA+PiA4OworICAgIGlmIChiICYgMHgzZikgeworICAgICAgICBidWZbNl0gPSAwOworICAg IH0gZWxzZSB7CisgICAgICAgIGJ1Zls2XSA9ICh1bnNpZ25lZCBjaGFyKSAtMTI3OworICAgIH0K KworICAgIHJldHVybiA3OworfQorCitzdGF0aWMgaW50IHVzYl9rZXlib2FyZF9wb2xsKFVTQkhJ RFN0YXRlICpocywgdWludDhfdCAqYnVmLCBpbnQgbGVuKQoreworICAgIFVTQktleWJvYXJkU3Rh dGUgKnMgPSAmaHMtPmtiZDsKKwogICAgIGlmIChsZW4gPCAyKQogICAgICAgICByZXR1cm4gMDsK IApAQCAtNjIyLDYgKzc2NCwxMyBAQAogICAgIHMtPnByb3RvY29sID0gMTsKIH0KIAorc3RhdGlj IHZvaWQgdXNiX3dhY29tX2hhbmRsZV9yZXNldChVU0JEZXZpY2UgKmRldikKK3sKKyAgICBVU0JI SURTdGF0ZSAqcyA9IChVU0JISURTdGF0ZSAqKWRldjsKKyAgICB1c2JfbW91c2VfaGFuZGxlX3Jl c2V0KGRldik7CisgICAgcy0+cHJvdG9jb2wgPSBXQUNPTV9NT0RFX0hJRDsKK30KKwogc3RhdGlj IHZvaWQgdXNiX2tleWJvYXJkX2hhbmRsZV9yZXNldChVU0JEZXZpY2UgKmRldikKIHsKICAgICBV U0JISURTdGF0ZSAqcyA9IChVU0JISURTdGF0ZSAqKWRldjsKQEAgLTY2NiwyNCArODE1LDE0IEBA CiAgICAgY2FzZSBEZXZpY2VSZXF1ZXN0IHwgVVNCX1JFUV9HRVRfREVTQ1JJUFRPUjoKICAgICAg ICAgc3dpdGNoKHZhbHVlID4+IDgpIHsKICAgICAgICAgY2FzZSBVU0JfRFRfREVWSUNFOgotICAg ICAgICAgICAgbWVtY3B5KGRhdGEsIHFlbXVfbW91c2VfZGV2X2Rlc2NyaXB0b3IsCi0gICAgICAg ICAgICAgICAgICAgc2l6ZW9mKHFlbXVfbW91c2VfZGV2X2Rlc2NyaXB0b3IpKTsKLSAgICAgICAg ICAgIHJldCA9IHNpemVvZihxZW11X21vdXNlX2Rldl9kZXNjcmlwdG9yKTsKKwkgICAgaWYgKHMt PmRldl9kZXNjcmlwdG9yKQorCQltZW1jcHkoZGF0YSwgcy0+ZGV2X2Rlc2NyaXB0b3IsIHMtPmRl dl9kZXNjcmlwdG9yX3NpemUpOworCSAgICByZXQgPSBzLT5kZXZfZGVzY3JpcHRvcl9zaXplOwog ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVVNCX0RUX0NPTkZJRzoKLQkgICAgaWYg KHMtPmtpbmQgPT0gVVNCX01PVVNFKSB7Ci0JCW1lbWNweShkYXRhLCBxZW11X21vdXNlX2NvbmZp Z19kZXNjcmlwdG9yLAotCQkgICAgICAgc2l6ZW9mKHFlbXVfbW91c2VfY29uZmlnX2Rlc2NyaXB0 b3IpKTsKLQkJcmV0ID0gc2l6ZW9mKHFlbXVfbW91c2VfY29uZmlnX2Rlc2NyaXB0b3IpOwotCSAg ICB9IGVsc2UgaWYgKHMtPmtpbmQgPT0gVVNCX1RBQkxFVCkgewotCQltZW1jcHkoZGF0YSwgcWVt dV90YWJsZXRfY29uZmlnX2Rlc2NyaXB0b3IsCi0JCSAgICAgICBzaXplb2YocWVtdV90YWJsZXRf Y29uZmlnX2Rlc2NyaXB0b3IpKTsKLQkJcmV0ID0gc2l6ZW9mKHFlbXVfdGFibGV0X2NvbmZpZ19k ZXNjcmlwdG9yKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAocy0+a2luZCA9PSBVU0JfS0VZQk9B UkQpIHsKLSAgICAgICAgICAgICAgICBtZW1jcHkoZGF0YSwgcWVtdV9rZXlib2FyZF9jb25maWdf ZGVzY3JpcHRvciwKLSAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHFlbXVfa2V5Ym9hcmRf Y29uZmlnX2Rlc2NyaXB0b3IpKTsKLSAgICAgICAgICAgICAgICByZXQgPSBzaXplb2YocWVtdV9r ZXlib2FyZF9jb25maWdfZGVzY3JpcHRvcik7Ci0gICAgICAgICAgICB9CisJICAgIGlmIChzLT5j b25maWdfZGVzY3JpcHRvcikKKwkJbWVtY3B5KGRhdGEsIHMtPmNvbmZpZ19kZXNjcmlwdG9yLCBz LT5jb25maWdfZGVzY3JpcHRvcl9zaXplKTsKKwkgICAgcmV0ID0gcy0+Y29uZmlnX2Rlc2NyaXB0 b3Jfc2l6ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFVTQl9EVF9TVFJJTkc6 CiAgICAgICAgICAgICBzd2l0Y2godmFsdWUgJiAweGZmKSB7CkBAIC03MTYsNiArODU1LDExIEBA CiAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICAgcmV0ID0gc2V0X3VzYl9zdHJp bmcoZGF0YSwgIkhJRCBLZXlib2FyZCIpOwogICAgICAgICAgICAgICAgIGJyZWFrOworCQkvKgor ICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgIHJldCA9IHNldF91c2Jfc3RyaW5n KGRhdGEsICJXYWNvbSBUYWJsZXQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKwkJKi8KICAg ICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgICByZXQgPSBzZXRfdXNiX3N0cmluZyhk YXRhLCAiRW5kcG9pbnQxIEludGVycnVwdCBQaXBlIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7 CkBAIC03NDEsNTkgKzg4NSw2MCBAQAogICAgIGNhc2UgRGV2aWNlT3V0UmVxdWVzdCB8IFVTQl9S RVFfU0VUX0lOVEVSRkFDRToKICAgICAgICAgcmV0ID0gMDsKICAgICAgICAgYnJlYWs7CisgICAg ICAgIC8qIHdhY29tIHNwZWNpZmljIHJlcXVlc3RzICovCisgICAgY2FzZSBXQUNPTV9HRVRfUkVQ T1JUOgorICAgICAgICBkYXRhWzBdID0gMDsKKyAgICAgICAgZGF0YVsxXSA9IHMtPnByb3RvY29s OworICAgICAgICByZXQgPSAyOworICAgICAgICBicmVhazsKICAgICAgICAgLyogaGlkIHNwZWNp ZmljIHJlcXVlc3RzICovCiAgICAgY2FzZSBJbnRlcmZhY2VSZXF1ZXN0IHwgVVNCX1JFUV9HRVRf REVTQ1JJUFRPUjoKICAgICAgICAgc3dpdGNoKHZhbHVlID4+IDgpIHsKICAgICAgICAgY2FzZSAw eDIyOgotCSAgICBpZiAocy0+a2luZCA9PSBVU0JfTU9VU0UpIHsKLQkJbWVtY3B5KGRhdGEsIHFl bXVfbW91c2VfaGlkX3JlcG9ydF9kZXNjcmlwdG9yLAotCQkgICAgICAgc2l6ZW9mKHFlbXVfbW91 c2VfaGlkX3JlcG9ydF9kZXNjcmlwdG9yKSk7Ci0JCXJldCA9IHNpemVvZihxZW11X21vdXNlX2hp ZF9yZXBvcnRfZGVzY3JpcHRvcik7Ci0JICAgIH0gZWxzZSBpZiAocy0+a2luZCA9PSBVU0JfVEFC TEVUKSB7Ci0JCW1lbWNweShkYXRhLCBxZW11X3RhYmxldF9oaWRfcmVwb3J0X2Rlc2NyaXB0b3Is Ci0JCSAgICAgICBzaXplb2YocWVtdV90YWJsZXRfaGlkX3JlcG9ydF9kZXNjcmlwdG9yKSk7Ci0J CXJldCA9IHNpemVvZihxZW11X3RhYmxldF9oaWRfcmVwb3J0X2Rlc2NyaXB0b3IpOwotICAgICAg ICAgICAgfSBlbHNlIGlmIChzLT5raW5kID09IFVTQl9LRVlCT0FSRCkgewotICAgICAgICAgICAg ICAgIG1lbWNweShkYXRhLCBxZW11X2tleWJvYXJkX2hpZF9yZXBvcnRfZGVzY3JpcHRvciwKLSAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHFlbXVfa2V5Ym9hcmRfaGlkX3JlcG9ydF9kZXNj cmlwdG9yKSk7Ci0gICAgICAgICAgICAgICAgcmV0ID0gc2l6ZW9mKHFlbXVfa2V5Ym9hcmRfaGlk X3JlcG9ydF9kZXNjcmlwdG9yKTsKLSAgICAgICAgICAgIH0KKwkgICAgaWYgKHMtPmhpZF9yZXBv cnRfZGVzY3JpcHRvcikKKwkJbWVtY3B5KGRhdGEsIHMtPmhpZF9yZXBvcnRfZGVzY3JpcHRvciwK KwkJICAgICAgIHMtPmhpZF9yZXBvcnRfZGVzY3JpcHRvcl9zaXplKTsKKwkgICAgcmV0ID0gcy0+ aGlkX3JlcG9ydF9kZXNjcmlwdG9yX3NpemU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg ZGVmYXVsdDoKICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgfQogICAgICAgICBicmVh azsKLSAgICBjYXNlIEdFVF9SRVBPUlQ6Ci0JaWYgKHMtPmtpbmQgPT0gVVNCX01PVVNFKQotICAg ICAgICAgICAgcmV0ID0gdXNiX21vdXNlX3BvbGwocywgZGF0YSwgbGVuZ3RoKTsKLQllbHNlIGlm IChzLT5raW5kID09IFVTQl9UQUJMRVQpCi0gICAgICAgICAgICByZXQgPSB1c2JfdGFibGV0X3Bv bGwocywgZGF0YSwgbGVuZ3RoKTsKLSAgICAgICAgZWxzZSBpZiAocy0+a2luZCA9PSBVU0JfS0VZ Qk9BUkQpCi0gICAgICAgICAgICByZXQgPSB1c2Jfa2V5Ym9hcmRfcG9sbCgmcy0+a2JkLCBkYXRh LCBsZW5ndGgpOworICAgIGNhc2UgSElEX0dFVF9SRVBPUlQ6CisJaWYgKHMtPmhvb2tfcG9sbCkK KyAgICAgICAgICAgIHJldCA9IHMtPmhvb2tfcG9sbChzLCBkYXRhLCBsZW5ndGgpOwogICAgICAg ICBicmVhazsKLSAgICBjYXNlIFNFVF9SRVBPUlQ6CisgICAgLy9jYXNlIFdBQ09NX1NFVF9SRVBP UlQ6CisgICAgY2FzZSBISURfU0VUX1JFUE9SVDoKICAgICAgICAgaWYgKHMtPmtpbmQgPT0gVVNC X0tFWUJPQVJEKQogICAgICAgICAgICAgcmV0ID0gdXNiX2tleWJvYXJkX3dyaXRlKCZzLT5rYmQs IGRhdGEsIGxlbmd0aCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAg ICAgICAgZWxzZSBpZiAocy0+a2luZCA9PSBVU0JfV0FDT01fVEFCTEVUKSB7CisJICAgIGlmIChz LT5wdHIuZWhfZW50cnkpCisJICAgICAgICBxZW11X3JlbW92ZV9tb3VzZV9ldmVudF9oYW5kbGVy KHMtPnB0ci5laF9lbnRyeSk7CisJICAgIHMtPnB0ci5laF9lbnRyeSA9IE5VTEw7CisJICAgIHMt PnB0ci5tb3VzZV9ncmFiYmVkID0gMDsKKwkgICAgcy0+cHJvdG9jb2wgPSBkYXRhWzBdOworCSAg ICByZXQgPSAwOworCX0gZWxzZQorCSAgICBnb3RvIGZhaWw7CiAgICAgICAgIGJyZWFrOwotICAg IGNhc2UgR0VUX1BST1RPQ09MOgorICAgIGNhc2UgSElEX0dFVF9QUk9UT0NPTDoKICAgICAgICAg aWYgKHMtPmtpbmQgIT0gVVNCX0tFWUJPQVJEKQogICAgICAgICAgICAgZ290byBmYWlsOwogICAg ICAgICByZXQgPSAxOwogICAgICAgICBkYXRhWzBdID0gcy0+cHJvdG9jb2w7CiAgICAgICAgIGJy ZWFrOwotICAgIGNhc2UgU0VUX1BST1RPQ09MOgorICAgIGNhc2UgSElEX1NFVF9QUk9UT0NPTDoK ICAgICAgICAgaWYgKHMtPmtpbmQgIT0gVVNCX0tFWUJPQVJEKQogICAgICAgICAgICAgZ290byBm YWlsOwogICAgICAgICByZXQgPSAwOwogICAgICAgICBzLT5wcm90b2NvbCA9IHZhbHVlOwogICAg ICAgICBicmVhazsKLSAgICBjYXNlIEdFVF9JRExFOgorICAgIGNhc2UgSElEX0dFVF9JRExFOgog ICAgICAgICByZXQgPSAxOwogICAgICAgICBkYXRhWzBdID0gcy0+aWRsZTsKICAgICAgICAgYnJl YWs7Ci0gICAgY2FzZSBTRVRfSURMRToKKyAgICBjYXNlIEhJRF9TRVRfSURMRToKICAgICAgICAg cy0+aWRsZSA9ICh1aW50OF90KSAodmFsdWUgPj4gOCk7CiAgICAgICAgIHJldCA9IDA7CiAgICAg ICAgIGJyZWFrOwpAQCAtODE3LDEyICs5NjIsOCBAQAogICAgICAgICAgICAgaWYgKCEocy0+Y2hh bmdlZCB8fCBzLT5pZGxlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gVVNCX1JFVF9OQUs7CiAg ICAgICAgICAgICBzLT5jaGFuZ2VkID0gMDsKLSAgICAgICAgICAgIGlmIChzLT5raW5kID09IFVT Ql9NT1VTRSkKLSAgICAgICAgICAgICAgICByZXQgPSB1c2JfbW91c2VfcG9sbChzLCBwLT5kYXRh LCBwLT5sZW4pOwotICAgICAgICAgICAgZWxzZSBpZiAocy0+a2luZCA9PSBVU0JfVEFCTEVUKQot ICAgICAgICAgICAgICAgIHJldCA9IHVzYl90YWJsZXRfcG9sbChzLCBwLT5kYXRhLCBwLT5sZW4p OwotICAgICAgICAgICAgZWxzZSBpZiAocy0+a2luZCA9PSBVU0JfS0VZQk9BUkQpCi0gICAgICAg ICAgICAgICAgcmV0ID0gdXNiX2tleWJvYXJkX3BvbGwoJnMtPmtiZCwgcC0+ZGF0YSwgcC0+bGVu KTsKKwkgICAgaWYgKHMtPmhvb2tfcG9sbCkKKyAgICAgICAgICAgICAgICByZXQgPSBzLT5ob29r X3BvbGwocywgcC0+ZGF0YSwgcC0+bGVuKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg IGdvdG8gZmFpbDsKICAgICAgICAgfQpAQCAtODU4LDcgKzk5OSwxNSBAQAogICAgIHMtPmRldi5o YW5kbGVfY29udHJvbCA9IHVzYl9oaWRfaGFuZGxlX2NvbnRyb2w7CiAgICAgcy0+ZGV2LmhhbmRs ZV9kYXRhID0gdXNiX2hpZF9oYW5kbGVfZGF0YTsKICAgICBzLT5kZXYuaGFuZGxlX2Rlc3Ryb3kg PSB1c2JfaGlkX2hhbmRsZV9kZXN0cm95OworCisgICAgcy0+ZGV2X2Rlc2NyaXB0b3IgPSBxZW11 X21vdXNlX2Rldl9kZXNjcmlwdG9yOworICAgIHMtPmRldl9kZXNjcmlwdG9yX3NpemUgPSBzaXpl b2YocWVtdV9tb3VzZV9kZXZfZGVzY3JpcHRvcik7CisgICAgcy0+Y29uZmlnX2Rlc2NyaXB0b3Ig PSBxZW11X3RhYmxldF9jb25maWdfZGVzY3JpcHRvcjsKKyAgICBzLT5jb25maWdfZGVzY3JpcHRv cl9zaXplID0gc2l6ZW9mKHFlbXVfdGFibGV0X2NvbmZpZ19kZXNjcmlwdG9yKTsKKyAgICBzLT5o aWRfcmVwb3J0X2Rlc2NyaXB0b3IgPSBxZW11X3RhYmxldF9oaWRfcmVwb3J0X2Rlc2NyaXB0b3I7 CisgICAgcy0+aGlkX3JlcG9ydF9kZXNjcmlwdG9yX3NpemUgPSBzaXplb2YocWVtdV90YWJsZXRf aGlkX3JlcG9ydF9kZXNjcmlwdG9yKTsKICAgICBzLT5raW5kID0gVVNCX1RBQkxFVDsKKyAgICBz LT5ob29rX3BvbGwgPSB1c2JfdGFibGV0X3BvbGw7CiAgICAgLyogRm9yY2UgcG9sbCByb3V0aW5l IHRvIGJlIHJ1biBhbmQgZ3JhYiBpbnB1dCB0aGUgZmlyc3QgdGltZS4gICovCiAgICAgcy0+Y2hh bmdlZCA9IDE7CiAKQEAgLTg2Nyw2ICsxMDE2LDM3IEBACiAgICAgcmV0dXJuIChVU0JEZXZpY2Ug KilzOwogfQogCitVU0JEZXZpY2UgKnVzYl93YWNvbV9pbml0KHZvaWQpCit7CisgICAgVVNCSElE U3RhdGUgKnM7CisKKyAgICBzID0gcWVtdV9tYWxsb2N6KHNpemVvZihVU0JISURTdGF0ZSkpOwor ICAgIHMtPmRldi5zcGVlZCA9IFVTQl9TUEVFRF9GVUxMOworICAgIHMtPmRldi5oYW5kbGVfcGFj a2V0ID0gdXNiX2dlbmVyaWNfaGFuZGxlX3BhY2tldDsKKworICAgIHMtPmRldi5oYW5kbGVfcmVz ZXQgPSB1c2Jfd2Fjb21faGFuZGxlX3Jlc2V0OworICAgIHMtPmRldi5oYW5kbGVfY29udHJvbCA9 IHVzYl9oaWRfaGFuZGxlX2NvbnRyb2w7CisgICAgcy0+ZGV2LmhhbmRsZV9kYXRhID0gdXNiX2hp ZF9oYW5kbGVfZGF0YTsKKyAgICBzLT5kZXYuaGFuZGxlX2Rlc3Ryb3kgPSB1c2JfaGlkX2hhbmRs ZV9kZXN0cm95OworCisgICAgcy0+ZGV2X2Rlc2NyaXB0b3IgPSBxZW11X3dhY29tX2Rldl9kZXNj cmlwdG9yOworICAgIHMtPmRldl9kZXNjcmlwdG9yX3NpemUgPSBzaXplb2YocWVtdV93YWNvbV9k ZXZfZGVzY3JpcHRvcik7CisgICAgcy0+Y29uZmlnX2Rlc2NyaXB0b3IgPSBxZW11X3RhYmxldF9j b25maWdfZGVzY3JpcHRvcjsKKyAgICBzLT5jb25maWdfZGVzY3JpcHRvcl9zaXplID0gc2l6ZW9m KHFlbXVfdGFibGV0X2NvbmZpZ19kZXNjcmlwdG9yKTsKKyAgICBzLT5oaWRfcmVwb3J0X2Rlc2Ny aXB0b3IgPSBOVUxMOworICAgIHMtPmhpZF9yZXBvcnRfZGVzY3JpcHRvcl9zaXplID0gMDsKKyAg ICBzLT5raW5kID0gVVNCX1dBQ09NX1RBQkxFVDsKKyAgICBzLT5ob29rX3BvbGwgPSAmdXNiX3dh Y29tX3BvbGw7CisgICAgLyogRm9yY2UgcG9sbCByb3V0aW5lIHRvIGJlIHJ1biBhbmQgZ3JhYiBp bnB1dCB0aGUgZmlyc3QgdGltZS4gICovCisgICAgcy0+Y2hhbmdlZCA9IDE7CisKKyAgICAvL3Bz dHJjcHkocy0+ZGV2LmRldm5hbWUsIHNpemVvZihzLT5kZXYuZGV2bmFtZSksICJRRU1VIFVTQiBU YWJsZXQiKTsKKyAgICBwc3RyY3B5KHMtPmRldi5kZXZuYW1lLCBzaXplb2Yocy0+ZGV2LmRldm5h bWUpLAorICAgICAgICAgICAgIlFFTVUgUGVuUGFydG5lciBUYWJsZXQiKTsKKworICAgIHJldHVy biAoVVNCRGV2aWNlICopczsKK30KKwogVVNCRGV2aWNlICp1c2JfbW91c2VfaW5pdCh2b2lkKQog ewogICAgIFVTQkhJRFN0YXRlICpzOwpAQCAtODc5LDcgKzEwNTksMTUgQEAKICAgICBzLT5kZXYu aGFuZGxlX2NvbnRyb2wgPSB1c2JfaGlkX2hhbmRsZV9jb250cm9sOwogICAgIHMtPmRldi5oYW5k bGVfZGF0YSA9IHVzYl9oaWRfaGFuZGxlX2RhdGE7CiAgICAgcy0+ZGV2LmhhbmRsZV9kZXN0cm95 ID0gdXNiX2hpZF9oYW5kbGVfZGVzdHJveTsKKworICAgIHMtPmRldl9kZXNjcmlwdG9yID0gcWVt dV9tb3VzZV9kZXZfZGVzY3JpcHRvcjsKKyAgICBzLT5kZXZfZGVzY3JpcHRvcl9zaXplID0gc2l6 ZW9mKHFlbXVfbW91c2VfZGV2X2Rlc2NyaXB0b3IpOworICAgIHMtPmNvbmZpZ19kZXNjcmlwdG9y ID0gcWVtdV9tb3VzZV9jb25maWdfZGVzY3JpcHRvcjsKKyAgICBzLT5jb25maWdfZGVzY3JpcHRv cl9zaXplID0gc2l6ZW9mKHFlbXVfbW91c2VfY29uZmlnX2Rlc2NyaXB0b3IpOworICAgIHMtPmhp ZF9yZXBvcnRfZGVzY3JpcHRvciA9IHFlbXVfbW91c2VfaGlkX3JlcG9ydF9kZXNjcmlwdG9yOwor ICAgIHMtPmhpZF9yZXBvcnRfZGVzY3JpcHRvcl9zaXplID0gc2l6ZW9mKHFlbXVfbW91c2VfaGlk X3JlcG9ydF9kZXNjcmlwdG9yKTsKICAgICBzLT5raW5kID0gVVNCX01PVVNFOworICAgIHMtPmhv b2tfcG9sbCA9IHVzYl9tb3VzZV9wb2xsOwogICAgIC8qIEZvcmNlIHBvbGwgcm91dGluZSB0byBi ZSBydW4gYW5kIGdyYWIgaW5wdXQgdGhlIGZpcnN0IHRpbWUuICAqLwogICAgIHMtPmNoYW5nZWQg PSAxOwogCkBAIC05MDAsNyArMTA4OCwxNSBAQAogICAgIHMtPmRldi5oYW5kbGVfY29udHJvbCA9 IHVzYl9oaWRfaGFuZGxlX2NvbnRyb2w7CiAgICAgcy0+ZGV2LmhhbmRsZV9kYXRhID0gdXNiX2hp ZF9oYW5kbGVfZGF0YTsKICAgICBzLT5kZXYuaGFuZGxlX2Rlc3Ryb3kgPSB1c2JfaGlkX2hhbmRs ZV9kZXN0cm95OworCisgICAgcy0+ZGV2X2Rlc2NyaXB0b3IgPSBxZW11X21vdXNlX2Rldl9kZXNj cmlwdG9yOworICAgIHMtPmRldl9kZXNjcmlwdG9yX3NpemUgPSBzaXplb2YocWVtdV9tb3VzZV9k ZXZfZGVzY3JpcHRvcik7CisgICAgcy0+Y29uZmlnX2Rlc2NyaXB0b3IgPSBxZW11X2tleWJvYXJk X2NvbmZpZ19kZXNjcmlwdG9yOworICAgIHMtPmNvbmZpZ19kZXNjcmlwdG9yX3NpemUgPSBzaXpl b2YocWVtdV9rZXlib2FyZF9jb25maWdfZGVzY3JpcHRvcik7CisgICAgcy0+aGlkX3JlcG9ydF9k ZXNjcmlwdG9yID0gcWVtdV9rZXlib2FyZF9oaWRfcmVwb3J0X2Rlc2NyaXB0b3I7CisgICAgcy0+ aGlkX3JlcG9ydF9kZXNjcmlwdG9yX3NpemUgPSBzaXplb2YocWVtdV9rZXlib2FyZF9oaWRfcmVw b3J0X2Rlc2NyaXB0b3IpOwogICAgIHMtPmtpbmQgPSBVU0JfS0VZQk9BUkQ7CisgICAgcy0+aG9v a19wb2xsID0gdXNiX2tleWJvYXJkX3BvbGw7CiAKICAgICBwc3RyY3B5KHMtPmRldi5kZXZuYW1l LCBzaXplb2Yocy0+ZGV2LmRldm5hbWUpLCAiUUVNVSBVU0IgS2V5Ym9hcmQiKTsKIApAQCAtOTE0 LDMgKzExMTAsNCBAQAogICAgIHMtPmRhdGFpbl9vcGFxdWUgPSBvcGFxdWU7CiAgICAgcy0+ZGF0 YWluID0gZGF0YWluOwogfQorCg== ------------Zoidberg-BeMail-temp----------