From owner-freebsd-emulation@FreeBSD.ORG Mon Oct 27 09:27:25 2008 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 536501065675 for ; Mon, 27 Oct 2008 09:27:25 +0000 (UTC) (envelope-from martin.laabs@mailbox.tu-dresden.de) Received: from mailout2.zih.tu-dresden.de (mailout2.zih.tu-dresden.de [141.30.67.73]) by mx1.freebsd.org (Postfix) with ESMTP id 90D7B8FC08 for ; Mon, 27 Oct 2008 09:27:24 +0000 (UTC) (envelope-from martin.laabs@mailbox.tu-dresden.de) Received: from rmc67-31.zih.tu-dresden.de ([141.30.67.31] helo=server-n) by mailout2.zih.tu-dresden.de with esmtp (Exim 4.63) (envelope-from ) id 1KuONd-0006E4-GI for freebsd-emulation@freebsd.org; Mon, 27 Oct 2008 10:27:22 +0100 Received: from localhost (p5B0ED2A2.dip.t-dialin.net [91.14.210.162]) by server-n (Postfix) with ESMTP id A1B8C100A08E for ; Mon, 27 Oct 2008 10:27:18 +0100 (CET) Date: Mon, 27 Oct 2008 10:27:17 +0100 To: "freebsd-emulation@freebsd.org" From: "Martin Laabs" Content-Type: multipart/mixed; boundary=----------ZoZrQcnBhUYjefun5hIqpJ MIME-Version: 1.0 References: <20081026105252.GA45809@freebsd.org> Message-ID: In-Reply-To: <20081026105252.GA45809@freebsd.org> User-Agent: Opera Mail/9.51 (Linux) X-TUD-Virus-Scanned: mailout2.zih.tu-dresden.de Subject: Re: linux-libusb done X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Oct 2008 09:27:25 -0000 ------------ZoZrQcnBhUYjefun5hIqpJ Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit Hi, On Sun, 26 Oct 2008 11:52:52 +0100, Roman Divacky wrote: > please show us the linuxulator patch and I'll see what I can do about it... I've append the patch for the linux.ko module as well as the patch for the bsd.c in libusb-0.12. Greetings, Martin ------------ZoZrQcnBhUYjefun5hIqpJ Content-Disposition: attachment; filename=usb.patch Content-Type: application/octet-stream; name=usb.patch Content-Transfer-Encoding: Base64 ZGlmZiAtTmF1ciBsaW51eC9saW51eF9pb2N0bC5jIGxpbnV4LnVzYi9saW51eF9p b2N0bC5jCi0tLSBsaW51eC9saW51eF9pb2N0bC5jCTIwMDctMTEtMTUgMTE6Mzg6 MDYuMDAwMDAwMDAwICswMTAwCisrKyBsaW51eC51c2IvbGludXhfaW9jdGwuYwky MDA4LTEwLTI2IDExOjQ5OjU5LjAwMDAwMDAwMCArMDEwMApAQCAtODgsNiArODgs OCBAQAogc3RhdGljIGxpbnV4X2lvY3RsX2Z1bmN0aW9uX3QgbGludXhfaW9jdGxf ZHJtOwogc3RhdGljIGxpbnV4X2lvY3RsX2Z1bmN0aW9uX3QgbGludXhfaW9jdGxf c2c7CiBzdGF0aWMgbGludXhfaW9jdGxfZnVuY3Rpb25fdCBsaW51eF9pb2N0bF9z cGVjaWFsOworLy9mb3IgaGFja2VkIGxpYnVzYgorc3RhdGljIGxpbnV4X2lvY3Rs X2Z1bmN0aW9uX3QgbGludXhfaW9jdGxfdXNiOwogCiBzdGF0aWMgc3RydWN0IGxp bnV4X2lvY3RsX2hhbmRsZXIgY2Ryb21faGFuZGxlciA9CiB7IGxpbnV4X2lvY3Rs X2Nkcm9tLCBMSU5VWF9JT0NUTF9DRFJPTV9NSU4sIExJTlVYX0lPQ1RMX0NEUk9N X01BWCB9OwpAQCAtMTExLDYgKzExMyw5IEBACiB7IGxpbnV4X2lvY3RsX2RybSwg TElOVVhfSU9DVExfRFJNX01JTiwgTElOVVhfSU9DVExfRFJNX01BWCB9Owogc3Rh dGljIHN0cnVjdCBsaW51eF9pb2N0bF9oYW5kbGVyIHNnX2hhbmRsZXIgPQogeyBs aW51eF9pb2N0bF9zZywgTElOVVhfSU9DVExfU0dfTUlOLCBMSU5VWF9JT0NUTF9T R19NQVggfTsKKy8vVVNCIGxpYnVzYiBjb21wYXRpYmlsaXR5IG1vZGUgLi4uCitz dGF0aWMgc3RydWN0IGxpbnV4X2lvY3RsX2hhbmRsZXIgdXNiX2hhbmRsZXIgPQor eyBsaW51eF9pb2N0bF91c2IsIExJTlVYX0lPQ1RMX1VTQl9NSU4sIExJTlVYX0lP Q1RMX1VTQl9NQVggfTsKIAogREFUQV9TRVQobGludXhfaW9jdGxfaGFuZGxlcl9z ZXQsIGNkcm9tX2hhbmRsZXIpOwogREFUQV9TRVQobGludXhfaW9jdGxfaGFuZGxl cl9zZXQsIHZmYXRfaGFuZGxlcik7CkBAIC0xMjMsNiArMTI4LDcgQEAKIERBVEFf U0VUKGxpbnV4X2lvY3RsX2hhbmRsZXJfc2V0LCBwcml2YXRlX2hhbmRsZXIpOwog REFUQV9TRVQobGludXhfaW9jdGxfaGFuZGxlcl9zZXQsIGRybV9oYW5kbGVyKTsK IERBVEFfU0VUKGxpbnV4X2lvY3RsX2hhbmRsZXJfc2V0LCBzZ19oYW5kbGVyKTsK K0RBVEFfU0VUKGxpbnV4X2lvY3RsX2hhbmRsZXJfc2V0LCB1c2JfaGFuZGxlcik7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCiBzdHJ1Y3QgaGFu ZGxlcl9lbGVtZW50CiB7CkBAIC0yNTQyLDYgKzI1NDgsNjAgQEAKIAlyZXR1cm4g aW9jdGwodGQsIChzdHJ1Y3QgaW9jdGxfYXJncyAqKWFyZ3MpOwogfQogCitzdGF0 aWMgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorbGludXhfaW9jdGxfdXNiKHN0 cnVjdCB0aHJlYWQgKnRkLCBzdHJ1Y3QgbGludXhfaW9jdGxfYXJncyAqYXJncykK K3sKKyAgICAgICBzdHJ1Y3QgZmlsZSAqZnA7CisgICAgICAgaW50IGVycm9yOwor CisgICAgICAgaWYgKChlcnJvciA9IGZnZXQodGQsIGFyZ3MtPmZkLCAmZnApKSAh PSAwKQorICAgICAgICAgICByZXR1cm4gKGVycm9yKTsKKworI2lmZGVmIERFQlVH CisgICAgICAgcHJpbnRmKCIlcygpOiBVU0ItaW9jdGwgJWRcbiIsIF9fZnVuY19f LAorICAgICAgICAgICAgICAgICAgYXJncy0+Y21kICYgMHhmZmZmKTsKKyNlbmRp ZgorCisJc3dpdGNoIChhcmdzLT5jbWQgJiAweGZmZmYpIHsKKwljYXNlIExJTlVY QlNEX0lPQ1RMX1VTQl9ERVZJQ0VJTkZPOgorCSAgZXJyb3IgPSBpb2N0bCh0ZCwg KHN0cnVjdCBpb2N0bF9hcmdzICopYXJncyk7CisJICBicmVhazsKKwljYXNlIExJ TlVYQlNEX0lPQ1RMX1NFVF9DT05GSUc6CisgICAgICAgICAgZXJyb3IgPSBpb2N0 bCh0ZCwgKHN0cnVjdCBpb2N0bF9hcmdzICopYXJncyk7CisgICAgICAgICAgICBi cmVhazsKKwljYXNlIExJTlVYQlNEX0lPQ1RMX1NFVF9BTFRJTlRFUkZBQ0U6Cisg ICAgICAgICAgZXJyb3IgPSBpb2N0bCh0ZCwgKHN0cnVjdCBpb2N0bF9hcmdzICop YXJncyk7CisgICAgICAgICAgICBicmVhazsKKwljYXNlIExJTlVYQlNEX0lPQ1RM X1NFVF9USU1FT1VUOgorICAgICAgICAgIGVycm9yID0gaW9jdGwodGQsIChzdHJ1 Y3QgaW9jdGxfYXJncyAqKWFyZ3MpOworICAgICAgICAgICAgYnJlYWs7CisJY2Fz ZSBMSU5VWEJTRF9JT0NUTF9TRVRfU0hPUlRfWEZFUjoKKyAgICAgICAgICBlcnJv ciA9IGlvY3RsKHRkLCAoc3RydWN0IGlvY3RsX2FyZ3MgKilhcmdzKTsKKyAgICAg ICAgICAgIGJyZWFrOworCWNhc2UgTElOVVhCU0RfSU9DVExfRE9fUkVRVUVTVDoK KyAgICAgICAgICBlcnJvciA9IGlvY3RsKHRkLCAoc3RydWN0IGlvY3RsX2FyZ3Mg KilhcmdzKTsKKyAgICAgICAgICAgIGJyZWFrOworCWNhc2UgTElOVVhCU0RfSU9D VExfR0VUX0RFVklDRV9ERVNDOgorICAgICAgICAgIGVycm9yID0gaW9jdGwodGQs IChzdHJ1Y3QgaW9jdGxfYXJncyAqKWFyZ3MpOworICAgICAgICAgICAgYnJlYWs7 CisKKwlkZWZhdWx0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIFhY WCAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKyAgICAgICAgICAgIGxpbnV4X21zZyh0ZCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAg ICAgICAgICJ1c2IgaW9jdGwgZmQ9JWQsIGNtZD0weCV4ICgnJWMnLCVkKSBpcyBu b3QgaW1wbGVtZW50ZWQiLAorICAgICAgICAgICAgYXJncy0+ZmQsIChpbnQpKGFy Z3MtPmNtZCAmIDB4ZmZmZiksCisgICAgICAgICAgICAoaW50KShhcmdzLT5jbWQg JiAweGZmMDApID4+IDgsCisgICAgICAgICAgICAoaW50KShhcmdzLT5jbWQgJiAw eGZmKSk7CisJICAgIGVycm9yPUVOT0lPQ1RMOworICAgICAgICAgICAgYnJlYWs7 CisJfQorCWZkcm9wKGZwLCB0ZCk7CisjaWZkZWYgREVCVUcKK3ByaW50ZigiJXMo KTogVVNCIHJldHVybmluZyAlZFxuIiwgX19mdW5jX18sIGVycm9yKTsKKyNlbmRp ZgorICAgICAgICByZXR1cm4gKGVycm9yKTsKK30KKwogc3RhdGljIGludAogbGlu dXhfaW9jdGxfc2coc3RydWN0IHRocmVhZCAqdGQsIHN0cnVjdCBsaW51eF9pb2N0 bF9hcmdzICphcmdzKQogewpkaWZmIC1OYXVyIGxpbnV4L2xpbnV4X2lvY3RsLmgg bGludXgudXNiL2xpbnV4X2lvY3RsLmgKLS0tIGxpbnV4L2xpbnV4X2lvY3RsLmgJ MjAwNy0xMS0xNSAxMTozODowNi4wMDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LnVz Yi9saW51eF9pb2N0bC5oCTIwMDgtMTAtMjUgMTQ6MTY6MTMuMDAwMDAwMDAwICsw MjAwCkBAIC0xNzEsNiArMTcxLDE1IEBACiAjZGVmaW5lCUxJTlVYX0lPQ1RMX1ZG QVRfTUlOCUxJTlVYX1ZGQVRfUkVBRERJUl9CT1RICiAjZGVmaW5lCUxJTlVYX0lP Q1RMX1ZGQVRfTUFYCUxJTlVYX1ZGQVRfUkVBRERJUl9CT1RICiAKKworLyoKKyAq IFVTQiBsaWJ1c2IgY29tcGF0aWJpbGl0eSBtb2RlIC4uLgorICovCisgCisjZGVm aW5lIExJTlVYX0lPQ1RMX1VTQl9NSU4JMHg1NTAzCisjZGVmaW5lIExJTlVYX0lP Q1RMX1VTQl9NQVgJMHg1NTczCisgCisgCiAvKgogICogY29uc29sZQogICovCkBA IC01NjcsNiArNTc2LDE0IEBACiAjZGVmaW5lCUxJTlVYX0lPQ1RMX0RSTV9NSU4J MHg2NDAwCiAjZGVmaW5lCUxJTlVYX0lPQ1RMX0RSTV9NQVgJMHg2NGZmCiAKKyNk ZWZpbmUgTElOVVhCU0RfSU9DVExfVVNCX0RFVklDRUlORk8JMHg1NTA0CisjZGVm aW5lIExJTlVYQlNEX0lPQ1RMX1NFVF9DT05GSUcgMHg1NTY1CisjZGVmaW5lIExJ TlVYQlNEX0lPQ1RMX1NFVF9BTFRJTlRFUkZBQ0UgMHg1NTY3CisjZGVmaW5lIExJ TlVYQlNEX0lPQ1RMX1NFVF9USU1FT1VUIDB4NTU3MgorI2RlZmluZSBMSU5VWEJT RF9JT0NUTF9TRVRfU0hPUlRfWEZFUiAweDU1NzEKKyNkZWZpbmUgTElOVVhCU0Rf SU9DVExfRE9fUkVRVUVTVCAweDU1NmYKKyNkZWZpbmUgTElOVVhCU0RfSU9DVExf R0VUX0RFVklDRV9ERVNDIDB4NTU2OQorCiAvKgogICogVGhpcyBkb2Vzbid0IHJl YWxseSBiZWxvbmcgaGVyZSwgYnV0IEkgY2FuJ3QgdGhpbmsgb2YgYSBiZXR0ZXIK ICAqIHBsYWNlIHRvIHB1dCBpdC4KCg== ------------ZoZrQcnBhUYjefun5hIqpJ Content-Disposition: attachment; filename=bsd.patch Content-Type: application/octet-stream; name=bsd.patch Content-Transfer-Encoding: Base64 LS0tIGJzZC5jCTIwMDYtMDMtMDQgMDM6NTI6NDYuMDAwMDAwMDAwICswMTAwCisr KyBsaWJ1c2ItMC4xLjEyLWJzZDIvYnNkLmMJMjAwOC0xMC0yNSAxMjoxNDo0Ni4w MDAwMDAwMDAgKzAyMDAKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlIDxzeXMv dGltZS5oPgogI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgogCi0jaW5jbHVkZSA8ZGV2 L3VzYi91c2IuaD4KKy8vI2luY2x1ZGUgPGRldi91c2IvdXNiLmg+CiAKICNpbmNs dWRlICJ1c2JpLmgiCiAjaWZkZWYgSEFWRV9DT05GSUdfSApAQCAtMTMxLDYgKzEz MSw4IEBACiAvKiBUaGlzIHJlY29yZHMgdGhlIGZpbGUgZGVzY3JpcHRvcnMgZm9y IHRoZSBlbmRwb2ludHMuICBJdCBkb2Vzbid0IHNlZW0KICAgIHRvIHdvcmsgdG8g cmUtb3BlbiB0aGVtIGZvciBlYWNoIHJlYWQgKGFzIHdlbGwgYXMgYmVpbmcgaW5l ZmZpY2llbnQpLiAqLwogCisjZGVmaW5lIFVTQl9NQVhfRU5EUE9JTlRTIDE2ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorCiBzdHJ1Y3QgYnNkX3VzYl9kZXZfaGFuZGxlX2luZm8gewogICAgIGludCBl cF9mZFtVU0JfTUFYX0VORFBPSU5UU107CiB9OwpAQCAtMTk5LDggKzIwMSwxMCBA QAogewogICBpbnQgcmV0OwogCi0gIHJldCA9IGlvY3RsKGRldi0+ZmQsIFVTQl9T RVRfQ09ORklHLCAmY29uZmlndXJhdGlvbik7Ci0gIGlmIChyZXQgPCAwKQorICAv L3JldCA9IGlvY3RsKGRldi0+ZmQsIFVTQl9TRVRfQ09ORklHLCAmY29uZmlndXJh dGlvbik7CisgcmV0ID0gaW9jdGwoZGV2LT5mZCwgKCh1bnNpZ25lZCBsb25nKSgw eDgwMDAwMDAwIHwgKChzaXplb2YoaW50KSAmIDB4MWZmZikgPDwgMTYpIHwgKCgo J1UnKSkgPDwgOCkgfCAoKDEwMSkpKSksICZjb25maWd1cmF0aW9uKTsKKyAgCitp ZiAocmV0IDwgMCkKICAgICBVU0JfRVJST1JfU1RSKC1lcnJubywgImNvdWxkIG5v dCBzZXQgY29uZmlnICVkOiAlcyIsIGNvbmZpZ3VyYXRpb24sCiAgICAgICAgICAg ICAgICAgICBzdHJlcnJvcihlcnJubykpOwogCkBAIC0yMjgsNiArMjMyLDEyIEBA CiBpbnQgdXNiX3NldF9hbHRpbnRlcmZhY2UodXNiX2Rldl9oYW5kbGUgKmRldiwg aW50IGFsdGVybmF0ZSkKIHsKICAgaW50IHJldDsKK3N0cnVjdCB1c2JfYWx0X2lu dGVyZmFjZSB7CisgaW50IHVhaV9jb25maWdfaW5kZXg7CisgaW50IHVhaV9pbnRl cmZhY2VfaW5kZXg7CisgaW50IHVhaV9hbHRfbm87Cit9OworCiAgIHN0cnVjdCB1 c2JfYWx0X2ludGVyZmFjZSBpbnRmOwogCiAgIGlmIChkZXYtPmludGVyZmFjZSA8 IDApCkBAIC0yMzYsNyArMjQ2LDkgQEAKICAgaW50Zi51YWlfaW50ZXJmYWNlX2lu ZGV4ID0gZGV2LT5pbnRlcmZhY2U7CiAgIGludGYudWFpX2FsdF9ubyA9IGFsdGVy bmF0ZTsKIAotICByZXQgPSBpb2N0bChkZXYtPmZkLCBVU0JfU0VUX0FMVElOVEVS RkFDRSwgJmludGYpOworICAvL3JldCA9IGlvY3RsKGRldi0+ZmQsIFVTQl9TRVRf QUxUSU5URVJGQUNFLCAmaW50Zik7CisgcmV0ID0gaW9jdGwoZGV2LT5mZCwgKCh1 bnNpZ25lZCBsb25nKSgoMHg4MDAwMDAwMHwweDQwMDAwMDAwKSB8ICgoc2l6ZW9m KHN0cnVjdCB1c2JfYWx0X2ludGVyZmFjZSkgJiAweDFmZmYpIDw8IDE2KSB8ICgo KCdVJykpIDw8IDgpIHwgKCgxMDMpKSkpLCAmaW50Zik7CisKICAgaWYgKHJldCA8 IDApCiAgICAgVVNCX0VSUk9SX1NUUigtZXJybm8sICJjb3VsZCBub3Qgc2V0IGFs dCBpbnRmICVkLyVkOiAlcyIsCiAgICAgICAgICAgICAgICAgICBkZXYtPmludGVy ZmFjZSwgYWx0ZXJuYXRlLCBzdHJlcnJvcihlcnJubykpOwpAQCAtMjU2LDcgKzI2 OCwxMCBAQAogICAgKiB0aGUgbW9kZSBhZ2FpbnN0IHRoZSBkaXJlY3Rpb247IGJ1 dCB3ZSd2ZSBkb25lIHRoYXQKICAgICogYWxyZWFkeSBpbiB0aGUgdXNiX2J1bGtf cmVhZC93cml0ZS4KICAgICovCi0gIGVwID0gVUVfR0VUX0FERFIoZXApOworCisg IGVwID0gKChlcCkgJiAweDBmKTsKKworICAvL2VwID0gVUVfR0VUX0FERFIoZXAp OwogCiAgIGlmIChpbmZvLT5lcF9mZFtlcF0gPCAwKSB7CiAjaWZkZWYgX19GcmVl QlNEX2tlcm5lbF9fCkBAIC0yOTMsMTMgKzMwOCwxNiBAQAogI2lmZGVmIF9fRnJl ZUJTRF9rZXJuZWxfXwogICAgICAgZnByaW50ZiAoc3RkZXJyLCAidXNiX2J1bGtf d3JpdGU6IGdvdCBuZWdhdGl2ZSBvcGVuIGZpbGUgZGVzY3JpcHRvciBmb3IgZW5k cG9pbnQgJWRcbiIsIFVFX0dFVF9BRERSKGVwKSk7CiAjZWxzZQorI2RlZmluZSBV RV9BRERSICAgICAgICAgMHgwZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgVUVfR0VUX0FERFIoYSkg ICgoYSkgJiBVRV9BRERSKSAgICAgICAgICAgICAgICAgICAKICAgICAgIGZwcmlu dGYgKHN0ZGVyciwgInVzYl9idWxrX3dyaXRlOiBnb3QgbmVnYXRpdmUgb3BlbiBm aWxlIGRlc2NyaXB0b3IgZm9yIGVuZHBvaW50ICUwMmRcbiIsIFVFX0dFVF9BRERS KGVwKSk7CiAjZW5kaWYKICAgICB9CiAgICAgcmV0dXJuIGZkOwogICB9CisgcmV0 ID0gaW9jdGwoZmQsICgodW5zaWduZWQgbG9uZykoMHg4MDAwMDAwMCB8ICgoc2l6 ZW9mKGludCkgJiAweDFmZmYpIDw8IDE2KSB8ICgoKCdVJykpIDw8IDgpIHwgKCgx MTQpKSkpLCAmdGltZW91dCk7CiAKLSAgcmV0ID0gaW9jdGwoZmQsIFVTQl9TRVRf VElNRU9VVCwgJnRpbWVvdXQpOworICAvL3JldCA9IGlvY3RsKGZkLCBVU0JfU0VU X1RJTUVPVVQsICZ0aW1lb3V0KTsKICAgaWYgKHJldCA8IDApCiAgICAgVVNCX0VS Uk9SX1NUUigtZXJybm8sICJlcnJvciBzZXR0aW5nIHRpbWVvdXQ6ICVzIiwKICAg ICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7CkBAIC0zMzcsMTEgKzM1 NSwxNiBAQAogICAgIHJldHVybiBmZDsKICAgfQogCi0gIHJldCA9IGlvY3RsKGZk LCBVU0JfU0VUX1RJTUVPVVQsICZ0aW1lb3V0KTsKKyAvLyByZXQgPSBpb2N0bChm ZCwgVVNCX1NFVF9USU1FT1VULCAmdGltZW91dCk7CisgcmV0ID0gaW9jdGwoZmQs ICgodW5zaWduZWQgbG9uZykoMHg4MDAwMDAwMCB8ICgoc2l6ZW9mKGludCkgJiAw eDFmZmYpIDw8IDE2KSB8ICgoKCdVJykpIDw8IDgpIHwgKCgxMTQpKSkpLCAmdGlt ZW91dCk7CisgIGlmIChyZXQgPCAwKQorCiAgIGlmIChyZXQgPCAwKQogICAgIFVT Ql9FUlJPUl9TVFIoLWVycm5vLCAiZXJyb3Igc2V0dGluZyB0aW1lb3V0OiAlcyIs IHN0cmVycm9yKGVycm5vKSk7CiAKLSAgcmV0ID0gaW9jdGwoZmQsIFVTQl9TRVRf U0hPUlRfWEZFUiwgJm9uZSk7CisvLyAgcmV0ID0gaW9jdGwoZmQsIFVTQl9TRVRf U0hPUlRfWEZFUiwgJm9uZSk7CisgcmV0ID0gaW9jdGwoZmQsICgodW5zaWduZWQg bG9uZykoMHg4MDAwMDAwMCB8ICgoc2l6ZW9mKGludCkgJiAweDFmZmYpIDw8IDE2 KSB8ICgoKCdVJykpIDw8IDgpIHwgKCgxMTMpKSkpLCAmb25lKTsKKwogICBpZiAo cmV0IDwgMCkKICAgICBVU0JfRVJST1JfU1RSKC1lcnJubywgImVycm9yIHNldHRp bmcgc2hvcnQgeGZlcjogJXMiLCBzdHJlcnJvcihlcnJubykpOwogCkBAIC0zNzgs NyArNDAxLDkgQEAKICAgICByZXR1cm4gZmQ7CiAgIH0KIAotICByZXQgPSBpb2N0 bChmZCwgVVNCX1NFVF9USU1FT1VULCAmdGltZW91dCk7CisvLyAgcmV0ID0gaW9j dGwoZmQsIFVTQl9TRVRfVElNRU9VVCwgJnRpbWVvdXQpOworICByZXQgPSBpb2N0 bChmZCwgKCh1bnNpZ25lZCBsb25nKSgweDgwMDAwMDAwIHwgKChzaXplb2YoaW50 KSAmIDB4MWZmZikgPDwgMTYpIHwgKCgoJ1UnKSkgPDwgOCkgfCAoKDExNCkpKSks ICZ0aW1lb3V0KTsKKwogICBpZiAocmV0IDwgMCkKICAgICBVU0JfRVJST1JfU1RS KC1lcnJubywgImVycm9yIHNldHRpbmcgdGltZW91dDogJXMiLAogICAgICAgICAg ICAgICAgICAgc3RyZXJyb3IoZXJybm8pKTsKQEAgLTQyMCwxMSArNDQ1LDE2IEBA CiAgICAgcmV0dXJuIGZkOwogICB9CiAKLSAgcmV0ID0gaW9jdGwoZmQsIFVTQl9T RVRfVElNRU9VVCwgJnRpbWVvdXQpOworICAvL3JldCA9IGlvY3RsKGZkLCBVU0Jf U0VUX1RJTUVPVVQsICZ0aW1lb3V0KTsKKyByZXQgPSBpb2N0bChmZCwgKCh1bnNp Z25lZCBsb25nKSgweDgwMDAwMDAwIHwgKChzaXplb2YoaW50KSAmIDB4MWZmZikg PDwgMTYpIHwgKCgoJ1UnKSkgPDwgOCkgfCAoKDExNCkpKSksICZ0aW1lb3V0KTsK KyAgaWYgKHJldCA8IDApCisKICAgaWYgKHJldCA8IDApCiAgICAgVVNCX0VSUk9S X1NUUigtZXJybm8sICJlcnJvciBzZXR0aW5nIHRpbWVvdXQ6ICVzIiwgc3RyZXJy b3IoZXJybm8pKTsKIAotICByZXQgPSBpb2N0bChmZCwgVVNCX1NFVF9TSE9SVF9Y RkVSLCAmb25lKTsKKy8vICByZXQgPSBpb2N0bChmZCwgVVNCX1NFVF9TSE9SVF9Y RkVSLCAmb25lKTsKKyByZXQgPSBpb2N0bChmZCwgKCh1bnNpZ25lZCBsb25nKSgw eDgwMDAwMDAwIHwgKChzaXplb2YoaW50KSAmIDB4MWZmZikgPDwgMTYpIHwgKCgo J1UnKSkgPDwgOCkgfCAoKDExMykpKSksICZvbmUpOworCiAgIGlmIChyZXQgPCAw KQogICAgIFVTQl9FUlJPUl9TVFIoLWVycm5vLCAiZXJyb3Igc2V0dGluZyBzaG9y dCB4ZmVyOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7CiAKQEAgLTQ0Nyw3ICs0Nzcs MzQgQEAKIGludCB1c2JfY29udHJvbF9tc2codXNiX2Rldl9oYW5kbGUgKmRldiwg aW50IHJlcXVlc3R0eXBlLCBpbnQgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAg ICAgIGludCB2YWx1ZSwgaW50IGluZGV4LCBjaGFyICpieXRlcywgaW50IHNpemUs IGludCB0aW1lb3V0KQogewotICBzdHJ1Y3QgdXNiX2N0bF9yZXF1ZXN0IHJlcTsK KworI2RlZmluZSBVUEFDS0VEIF9fcGFja2VkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwordHlwZWRlZiB1 X2ludDhfdCB1Qnl0ZTsKK3R5cGVkZWYgdV9pbnQ4X3QgdVdvcmRbMl07ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Cit0eXBlZGVmIHVfaW50OF90IHVEV29yZFs0XTsgICAgICAgCisgCit0eXBlZGVm IHN0cnVjdCB7CisgdUJ5dGUgYm1SZXF1ZXN0VHlwZTsKKyB1Qnl0ZSBiUmVxdWVz dDsKKyB1V29yZCB3VmFsdWU7CisgdVdvcmQgd0luZGV4OworIHVXb3JkIHdMZW5n dGg7Cit9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKSB1c2JfZGV2aWNlX3Jl cXVlc3RfdDsKKworCitzdHJ1Y3QgdXNiX2N0bF9yZXF1ZXN0IHsKKyBpbnQgdWNy X2FkZHI7CisgdXNiX2RldmljZV9yZXF1ZXN0X3QgdWNyX3JlcXVlc3Q7Cisgdm9p ZCAqdWNyX2RhdGE7CisgaW50IHVjcl9mbGFnczsKKworIGludCB1Y3JfYWN0bGVu OworfTsKKworCisKK3N0cnVjdCB1c2JfY3RsX3JlcXVlc3QgcmVxOwogICBpbnQg cmV0OwogCiAgIGlmICh1c2JfZGVidWcgPj0gMykKQEAgLTQ1NiwxNCArNTEzLDIz IEBACiAKICAgcmVxLnVjcl9yZXF1ZXN0LmJtUmVxdWVzdFR5cGUgPSByZXF1ZXN0 dHlwZTsKICAgcmVxLnVjcl9yZXF1ZXN0LmJSZXF1ZXN0ID0gcmVxdWVzdDsKLSAg VVNFVFcocmVxLnVjcl9yZXF1ZXN0LndWYWx1ZSwgdmFsdWUpOwotICBVU0VUVyhy ZXEudWNyX3JlcXVlc3Qud0luZGV4LCBpbmRleCk7Ci0gIFVTRVRXKHJlcS51Y3Jf cmVxdWVzdC53TGVuZ3RoLCBzaXplKTsKKy8vICBVU0VUVyhyZXEudWNyX3JlcXVl c3Qud1ZhbHVlLCB2YWx1ZSk7CisvLyAgVVNFVFcocmVxLnVjcl9yZXF1ZXN0LndJ bmRleCwgaW5kZXgpOworLy8gIFVTRVRXKHJlcS51Y3JfcmVxdWVzdC53TGVuZ3Ro LCBzaXplKTsKKworICAgICgocmVxLnVjcl9yZXF1ZXN0LndWYWx1ZSlbMF0gPSAo dV9pbnQ4X3QpKHZhbHVlKSwgKHJlcS51Y3JfcmVxdWVzdC53VmFsdWUpWzFdID0g KHVfaW50OF90KSgodmFsdWUpID4+IDgpKTsKKyAgKChyZXEudWNyX3JlcXVlc3Qu d0luZGV4KVswXSA9ICh1X2ludDhfdCkoaW5kZXgpLCAocmVxLnVjcl9yZXF1ZXN0 LndJbmRleClbMV0gPSAodV9pbnQ4X3QpKChpbmRleCkgPj4gOCkpOworICAoKHJl cS51Y3JfcmVxdWVzdC53TGVuZ3RoKVswXSA9ICh1X2ludDhfdCkoc2l6ZSksIChy ZXEudWNyX3JlcXVlc3Qud0xlbmd0aClbMV0gPSAodV9pbnQ4X3QpKChzaXplKSA+ PiA4KSk7CiAKKyAgCiAgIHJlcS51Y3JfZGF0YSA9IGJ5dGVzOwotICByZXEudWNy X2ZsYWdzID0gVVNCRF9TSE9SVF9YRkVSX09LOworLy8gIHJlcS51Y3JfZmxhZ3Mg PSBVU0JEX1NIT1JUX1hGRVJfT0s7CisgIHJlcS51Y3JfZmxhZ3MgPSAweDA0Owor CisKKy8vICByZXQgPSBpb2N0bChkZXYtPmZkLCBVU0JfU0VUX1RJTUVPVVQsICZ0 aW1lb3V0KTsKKyAgcmV0ID0gaW9jdGwoZGV2LT5mZCwgKCh1bnNpZ25lZCBsb25n KSgweDgwMDAwMDAwIHwgKChzaXplb2YoaW50KSAmIDB4MWZmZikgPDwgMTYpIHwg KCgoJ1UnKSkgPDwgOCkgfCAoKDExNCkpKSksICZ0aW1lb3V0KTsKIAotICByZXQg PSBpb2N0bChkZXYtPmZkLCBVU0JfU0VUX1RJTUVPVVQsICZ0aW1lb3V0KTsKICNp ZiAoX19OZXRCU0RfXyB8fCBfX09wZW5CU0RfXykKICAgaWYgKHJldCA8IDAgJiYg ZXJybm8gIT0gRUlOVkFMKQogI2Vsc2UKQEAgLTQ3MiwxMiArNTM4LDE2IEBACiAg ICAgVVNCX0VSUk9SX1NUUigtZXJybm8sICJlcnJvciBzZXR0aW5nIHRpbWVvdXQ6 ICVzIiwKICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7CiAKLSAg cmV0ID0gaW9jdGwoZGV2LT5mZCwgVVNCX0RPX1JFUVVFU1QsICZyZXEpOworLy8g IHJldCA9IGlvY3RsKGRldi0+ZmQsIFVTQl9ET19SRVFVRVNULCAmcmVxKTsKKyBy ZXQgPSBpb2N0bChkZXYtPmZkLCAoKHVuc2lnbmVkIGxvbmcpKCgweDgwMDAwMDAw fDB4NDAwMDAwMDApIHwgKChzaXplb2Yoc3RydWN0IHVzYl9jdGxfcmVxdWVzdCkg JiAweDFmZmYpIDw8IDE2KSB8ICgoKCdVJykpIDw8IDgpIHwgKCgxMTEpKSkpLCAm cmVxKTsKKwogICBpZiAocmV0IDwgMCkKICAgICBVU0JfRVJST1JfU1RSKC1lcnJu bywgImVycm9yIHNlbmRpbmcgY29udHJvbCBtZXNzYWdlOiAlcyIsCiAgICAgICAg ICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOwogCi0gIHJldHVybiBVR0VUVyhy ZXEudWNyX3JlcXVlc3Qud0xlbmd0aCk7CisvLyAgcmV0dXJuIFVHRVRXKHJlcS51 Y3JfcmVxdWVzdC53TGVuZ3RoKTsKKyAgcmV0dXJuICgocmVxLnVjcl9yZXF1ZXN0 LndMZW5ndGgpWzBdIHwgKChyZXEudWNyX3JlcXVlc3Qud0xlbmd0aClbMV0gPDwg OCkpOworCiB9CiAKIGludCB1c2Jfb3NfZmluZF9idXNzZXMoc3RydWN0IHVzYl9i dXMgKipidXNzZXMpCkBAIC01MjYsMjIgKzU5Niw2NiBAQAogICBzdHJ1Y3QgdXNi X2RldmljZSAqZmRldiA9IE5VTEw7CiAgIGludCBjZmQsIGRmZDsKICAgaW50IGRl dmljZTsKLQotICBjZmQgPSBvcGVuKGJ1cy0+ZGlybmFtZSwgT19SRE9OTFkpOwor IAorICBmcHJpbnRmKHN0ZGVyciwgInVzYl9vc19maW5kX2RldmljZXM6IEhlbGxv XG4iCisgICAgICAgICAgICAgICk7CisgCitjZmQgPSBvcGVuKGJ1cy0+ZGlybmFt ZSwgT19SRE9OTFkpOwogICBpZiAoY2ZkIDwgMCkKICAgICBVU0JfRVJST1JfU1RS KC1lcnJubywgImNvdWxkbid0IG9wZW4oJXMpOiAlcyIsIGJ1cy0+ZGlybmFtZSwK ICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7CisjZGVmaW5lIFVT Ql9NQVhfREVWSUNFUyAxMjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorCiAKICAgZm9yIChkZXZpY2UgPSAxOyBk ZXZpY2UgPCBVU0JfTUFYX0RFVklDRVM7IGRldmljZSsrKSB7CisKK3R5cGVkZWYg c3RydWN0IHsgdV9pbnQzMl90IGNvb2tpZTsgfSB1c2JfZXZlbnRfY29va2llX3Q7 CisKK3N0cnVjdCB1c2JfZGV2aWNlX2luZm8geworIHVfaW50OF90IHVkaV9idXM7 CisgdV9pbnQ4X3QgdWRpX2FkZHI7CisgdXNiX2V2ZW50X2Nvb2tpZV90IHVkaV9j b29raWU7CisgY2hhciB1ZGlfcHJvZHVjdFsxMjhdOworIGNoYXIgdWRpX3ZlbmRv clsxMjhdOworIGNoYXIgdWRpX3JlbGVhc2VbOF07CisgdV9pbnQxNl90IHVkaV9w cm9kdWN0Tm87CisgdV9pbnQxNl90IHVkaV92ZW5kb3JObzsKKyB1X2ludDE2X3Qg dWRpX3JlbGVhc2VObzsKKyB1X2ludDhfdCB1ZGlfY2xhc3M7CisgdV9pbnQ4X3Qg dWRpX3N1YmNsYXNzOworIHVfaW50OF90IHVkaV9wcm90b2NvbDsKKyB1X2ludDhf dCB1ZGlfY29uZmlnOworIHVfaW50OF90IHVkaV9zcGVlZDsKKworCisKKyBpbnQg dWRpX3Bvd2VyOworIGludCB1ZGlfbnBvcnRzOworIGNoYXIgdWRpX2Rldm5hbWVz WzRdWzE2XTsKKyB1X2ludDhfdCB1ZGlfcG9ydHNbMTZdOworCisKKworCit9Owor CisKICAgICBzdHJ1Y3QgdXNiX2RldmljZV9pbmZvIGRpOwogICAgIHN0cnVjdCB1 c2JfZGV2aWNlICpkZXY7Ci0gICAgdW5zaWduZWQgY2hhciBkZXZpY2VfZGVzY1tE RVZJQ0VfREVTQ19MRU5HVEhdOworICAgIHVuc2lnbmVkIGNoYXIgZGV2aWNlX2Rl c2NbMThdOworCisvLyAgdW5zaWduZWQgY2hhciBkZXZpY2VfZGVzY1tERVZJQ0Vf REVTQ19MRU5HVEhdOwogICAgIGNoYXIgYnVmWzIwXTsKIAogICAgIGRpLnVkaV9h ZGRyID0gZGV2aWNlOwotICAgIGlmIChpb2N0bChjZmQsIFVTQl9ERVZJQ0VJTkZP LCAmZGkpIDwgMCkKKy8vICAgIGlmIChpb2N0bChjZmQsIFVTQl9ERVZJQ0VJTkZP LCAmZGkpIDwgMCkKKyAgaWYgKGlvY3RsKGNmZCwgKCh1bnNpZ25lZCBsb25nKSgo MHg4MDAwMDAwMHwweDQwMDAwMDAwKSB8ICgoc2l6ZW9mKHN0cnVjdCB1c2JfZGV2 aWNlX2luZm8pICYgMHgxZmZmKSA8PCAxNikgfCAoKCgnVScpKSA8PCA4KSB8ICgo NCkpKSksICZkaSkgPCAwKQogICAgICAgY29udGludWU7CiAKKyAgIGZwcmludGYo c3RkZXJyLCAidXNiX29zX2ZpbmRfZGV2aWNlczogY2ZkOiAlZFxuIiwKKyAgICAg ICAgICAgICAgY2ZkKTsKKworCiAgICAgLyogVGhlcmUncyBhIGRldmljZTsgaXMg aXQgb25lIHdlIHNob3VsZCBtZXNzIHdpdGg/ICovCiAKICAgICBpZiAoc3RybmNt cChkaS51ZGlfZGV2bmFtZXNbMF0sICJ1Z2VuIiwgNCkgIT0gMCkKQEAgLTU4MCw4 ICs2OTQsMzQgQEAKIAogICAgIHN0cm5jcHkoZGV2LT5maWxlbmFtZSwgYnVmLCBz aXplb2YoZGV2LT5maWxlbmFtZSkgLSAxKTsKICAgICBkZXYtPmZpbGVuYW1lW3Np emVvZihkZXYtPmZpbGVuYW1lKSAtIDFdID0gMDsKK3R5cGVkZWYgdV9pbnQ4X3Qg dUJ5dGU7Cit0eXBlZGVmIHVfaW50OF90IHVXb3JkWzJdOwordHlwZWRlZiB1X2lu dDhfdCB1RFdvcmRbNF07CisKKwordHlwZWRlZiBzdHJ1Y3QgeworIHVCeXRlIGJM ZW5ndGg7CisgdUJ5dGUgYkRlc2NyaXB0b3JUeXBlOworIHVXb3JkIGJjZFVTQjsK KworCisgdUJ5dGUgYkRldmljZUNsYXNzOworIHVCeXRlIGJEZXZpY2VTdWJDbGFz czsKKyB1Qnl0ZSBiRGV2aWNlUHJvdG9jb2w7CisgdUJ5dGUgYk1heFBhY2tldFNp emU7CisKKyB1V29yZCBpZFZlbmRvcjsKKyB1V29yZCBpZFByb2R1Y3Q7CisgdVdv cmQgYmNkRGV2aWNlOworIHVCeXRlIGlNYW51ZmFjdHVyZXI7CisgdUJ5dGUgaVBy b2R1Y3Q7CisgdUJ5dGUgaVNlcmlhbE51bWJlcjsKKyB1Qnl0ZSBiTnVtQ29uZmln dXJhdGlvbnM7Cit9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKSB1c2JfZGV2 aWNlX2Rlc2NyaXB0b3JfdDsKKworLy8gIGlmIChpb2N0bChkZmQsIFVTQl9HRVRf REVWSUNFX0RFU0MsIGRldmljZV9kZXNjKSA8IDApCisgIGlmIChpb2N0bChkZmQs ICgodW5zaWduZWQgbG9uZykoMHg0MDAwMDAwMCB8ICgoc2l6ZW9mKHVzYl9kZXZp Y2VfZGVzY3JpcHRvcl90KSAmIDB4MWZmZikgPDwgMTYpIHwgKCgoJ1UnKSkgPDwg OCkgfCAoKDEwNSkpKSksIGRldmljZV9kZXNjKSA8IDApCiAKLSAgICBpZiAoaW9j dGwoZGZkLCBVU0JfR0VUX0RFVklDRV9ERVNDLCBkZXZpY2VfZGVzYykgPCAwKQog ICAgICAgVVNCX0VSUk9SX1NUUigtZXJybm8sICJjb3VsZG4ndCBnZXQgZGV2aWNl IGRlc2NyaXB0b3IgZm9yICVzOiAlcyIsCiAgICAgICAgICAgICAgICAgICAgIGJ1 Ziwgc3RyZXJyb3IoZXJybm8pKTsKIAo= ------------ZoZrQcnBhUYjefun5hIqpJ--