From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HtE2x-00075j-EN for qemu-devel@nongnu.org; Tue, 29 May 2007 22:36:23 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HtE2v-00075G-SQ for qemu-devel@nongnu.org; Tue, 29 May 2007 22:36:22 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HtE2v-00075D-LC for qemu-devel@nongnu.org; Tue, 29 May 2007 22:36:21 -0400 Received: from grayson.netsweng.com ([207.235.77.11]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1HtE2u-0001C2-L4 for qemu-devel@nongnu.org; Tue, 29 May 2007 22:36:21 -0400 Received: from amavis by grayson.netsweng.com with scanned-ok (Exim 3.36 #1 (Debian)) id 1HtE2u-00057W-00 for ; Tue, 29 May 2007 22:36:20 -0400 Received: from grayson.netsweng.com ([127.0.0.1]) by localhost (grayson.netsweng.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pBN-2W0kJlb7 for ; Tue, 29 May 2007 22:36:07 -0400 (EDT) Received: from [71.31.89.73] (helo=trantor.stuart.netsweng.com) by grayson.netsweng.com with esmtp (Exim 3.36 #1 (Debian)) id 1HtE2g-00057I-00 for ; Tue, 29 May 2007 22:36:06 -0400 Date: Tue, 29 May 2007 22:35:44 -0400 (EDT) From: Stuart Anderson Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463811327-1290851896-1180492544=:6270" Subject: [Qemu-devel] [PATCH] linux-user semaphore structure mapping 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 message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1463811327-1290851896-1180492544=:6270 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed This is a refresh (vs 5/28 cvs) of a patch sent several weeks ago. This patch implments the structure handling for the semaphore IPC related structures used by semctl(). This was tested using LTP on an ARM target. Were there any objections to this patch? Stuart Stuart R. Anderson anderson@netsweng.com Network & Software Engineering http://www.netsweng.com/ 1024D/37A79149: 0791 D3B8 9A4C 2CDC A31F BD03 0A62 E534 37A7 9149 ---1463811327-1290851896-1180492544=:6270 Content-Type: TEXT/x-diff; charset=US-ASCII; name=03_semcalls.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: semctl() patch Content-Disposition: attachment; filename=03_semcalls.patch SW5kZXg6IHFlbXUvbGludXgtdXNlci9pMzg2L3N5c2NhbGwuaA0KPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KLS0tIHFlbXUub3JpZy9saW51eC11c2VyL2kz ODYvc3lzY2FsbC5oCTIwMDctMDMtMjMgMDk6MDU6MTkuMDAwMDAwMDAwIC0w NDAwDQorKysgcWVtdS9saW51eC11c2VyL2kzODYvc3lzY2FsbC5oCTIwMDct MDMtMjMgMDk6MDU6MzIuMDAwMDAwMDAwIC0wNDAwDQpAQCAtMTQyLDgwICsx NDIsNCBAQA0KIAlzdHJ1Y3QgdGFyZ2V0X3ZtODZwbHVzX2luZm9fc3RydWN0 IHZtODZwbHVzOw0KIH07DQogDQotLyogaXBjcyAqLw0KLQ0KLSNkZWZpbmUg VEFSR0VUX1NFTU9QICAgICAgICAgICAxDQotI2RlZmluZSBUQVJHRVRfU0VN R0VUICAgICAgICAgIDINCi0jZGVmaW5lIFRBUkdFVF9TRU1DVEwgICAgICAg ICAgMyANCi0jZGVmaW5lIFRBUkdFVF9NU0dTTkQgICAgICAgICAgMTEgDQot I2RlZmluZSBUQVJHRVRfTVNHUkNWICAgICAgICAgIDEyDQotI2RlZmluZSBU QVJHRVRfTVNHR0VUICAgICAgICAgIDEzDQotI2RlZmluZSBUQVJHRVRfTVNH Q1RMICAgICAgICAgIDE0DQotI2RlZmluZSBUQVJHRVRfU0hNQVQgICAgICAg ICAgIDIxDQotI2RlZmluZSBUQVJHRVRfU0hNRFQgICAgICAgICAgIDIyDQot I2RlZmluZSBUQVJHRVRfU0hNR0VUICAgICAgICAgIDIzDQotI2RlZmluZSBU QVJHRVRfU0hNQ1RMICAgICAgICAgIDI0DQotDQotc3RydWN0IHRhcmdldF9t c2didWYgew0KLQlpbnQgbXR5cGU7DQotCWNoYXIgbXRleHRbMV07DQotfTsN Ci0NCi1zdHJ1Y3QgdGFyZ2V0X2lwY19rbHVkZ2Ugew0KLQl1bnNpZ25lZCBp bnQJbXNncDsJLyogUmVhbGx5IChzdHJ1Y3QgbXNnYnVmICopICovDQotCWlu dCBtc2d0eXA7DQotfTsJDQotDQotc3RydWN0IHRhcmdldF9pcGNfcGVybSB7 DQotCWludAlrZXk7DQotCXVuc2lnbmVkIHNob3J0CXVpZDsNCi0JdW5zaWdu ZWQgc2hvcnQJZ2lkOw0KLQl1bnNpZ25lZCBzaG9ydAljdWlkOw0KLQl1bnNp Z25lZCBzaG9ydAljZ2lkOw0KLQl1bnNpZ25lZCBzaG9ydAltb2RlOw0KLQl1 bnNpZ25lZCBzaG9ydAlzZXE7DQotfTsNCi0NCi1zdHJ1Y3QgdGFyZ2V0X21z cWlkX2RzIHsNCi0Jc3RydWN0IHRhcmdldF9pcGNfcGVybQltc2dfcGVybTsN Ci0JdW5zaWduZWQgaW50CQltc2dfZmlyc3Q7CS8qIHJlYWxseSBzdHJ1Y3Qg dGFyZ2V0X21zZyogKi8NCi0JdW5zaWduZWQgaW50CQltc2dfbGFzdDsJLyog cmVhbGx5IHN0cnVjdCB0YXJnZXRfbXNnKiAqLw0KLQl1bnNpZ25lZCBpbnQJ CW1zZ19zdGltZTsJLyogcmVhbGx5IHRhcmdldF90aW1lX3QgKi8NCi0JdW5z aWduZWQgaW50CQltc2dfcnRpbWU7CS8qIHJlYWxseSB0YXJnZXRfdGltZV90 ICovDQotCXVuc2lnbmVkIGludAkJbXNnX2N0aW1lOwkvKiByZWFsbHkgdGFy Z2V0X3RpbWVfdCAqLw0KLQl1bnNpZ25lZCBpbnQJCXd3YWl0OwkJLyogcmVh bGx5IHN0cnVjdCB3YWl0X3F1ZXVlKiAqLw0KLQl1bnNpZ25lZCBpbnQJCXJ3 YWl0OwkJLyogcmVhbGx5IHN0cnVjdCB3YWl0X3F1ZXVlKiAqLw0KLQl1bnNp Z25lZCBzaG9ydAkJbXNnX2NieXRlczsNCi0JdW5zaWduZWQgc2hvcnQJCW1z Z19xbnVtOw0KLQl1bnNpZ25lZCBzaG9ydAkJbXNnX3FieXRlczsNCi0JdW5z aWduZWQgc2hvcnQJCW1zZ19sc3BpZDsNCi0JdW5zaWduZWQgc2hvcnQJCW1z Z19scnBpZDsNCi19Ow0KLQ0KLXN0cnVjdCB0YXJnZXRfc2htaWRfZHMgew0K LQlzdHJ1Y3QgdGFyZ2V0X2lwY19wZXJtCXNobV9wZXJtOw0KLQlpbnQJCQlz aG1fc2Vnc3o7DQotCXVuc2lnbmVkIGludAkJc2htX2F0aW1lOwkvKiByZWFs bHkgdGFyZ2V0X3RpbWVfdCAqLw0KLQl1bnNpZ25lZCBpbnQJCXNobV9kdGlt ZTsJLyogcmVhbGx5IHRhcmdldF90aW1lX3QgKi8NCi0JdW5zaWduZWQgaW50 CQlzaG1fY3RpbWU7CS8qIHJlYWxseSB0YXJnZXRfdGltZV90ICovDQotCXVu c2lnbmVkIHNob3J0CQlzaG1fY3BpZDsNCi0JdW5zaWduZWQgc2hvcnQJCXNo bV9scGlkOw0KLQlzaG9ydAkJCXNobV9uYXR0Y2g7DQotCXVuc2lnbmVkIHNo b3J0CQlzaG1fbnBhZ2VzOw0KLQl1bnNpZ25lZCBsb25nCQkqc2htX3BhZ2Vz Ow0KLQl2b2lkIAkJCSphdHRhY2hlczsJLyogcmVhbGx5IHN0cnVjdCBzaG1f ZGVzYyAqICovDQotfTsNCi0NCi0jZGVmaW5lIFRBUkdFVF9JUENfUk1JRAkw DQotI2RlZmluZSBUQVJHRVRfSVBDX1NFVAkxDQotI2RlZmluZSBUQVJHRVRf SVBDX1NUQVQJMg0KLQ0KLXVuaW9uIHRhcmdldF9zZW11biB7DQotICAgIGlu dCB2YWw7DQotICAgIHVuc2lnbmVkIGludCBidWY7CS8qIHJlYWxseSBzdHJ1 Y3Qgc2VtaWRfZHMgKiAqLw0KLSAgICB1bnNpZ25lZCBpbnQgYXJyYXk7IC8q IHJlYWxseSB1bnNpZ25lZCBzaG9ydCAqICovDQotICAgIHVuc2lnbmVkIGlu dCBfX2J1ZjsJLyogcmVhbGx5IHN0cnVjdCBzZW1pbmZvICogKi8NCi0gICAg dW5zaWduZWQgaW50IF9fcGFkOwkvKiByZWFsbHkgdm9pZCogKi8NCi19Ow0K LQ0KICNkZWZpbmUgVU5BTUVfTUFDSElORSAiaTY4NiINCkluZGV4OiBxZW11 L2xpbnV4LXVzZXIvcHBjL3N5c2NhbGwuaA0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KLS0tIHFlbXUub3JpZy9saW51eC11c2VyL3BwYy9zeXNjYWxsLmgJ MjAwNy0wMy0yMyAwOTowNToxOS4wMDAwMDAwMDAgLTA0MDANCisrKyBxZW11 L2xpbnV4LXVzZXIvcHBjL3N5c2NhbGwuaAkyMDA3LTAzLTIzIDA5OjA1OjMy LjAwMDAwMDAwMCAtMDQwMA0KQEAgLTUxLDgwICs1MSw0IEBADQogICogZmxh Z3MgbWFza3MNCiAgKi8NCiANCi0vKiBpcGNzICovDQotDQotI2RlZmluZSBU QVJHRVRfU0VNT1AgICAgICAgICAgIDENCi0jZGVmaW5lIFRBUkdFVF9TRU1H RVQgICAgICAgICAgMg0KLSNkZWZpbmUgVEFSR0VUX1NFTUNUTCAgICAgICAg ICAzIA0KLSNkZWZpbmUgVEFSR0VUX01TR1NORCAgICAgICAgICAxMSANCi0j ZGVmaW5lIFRBUkdFVF9NU0dSQ1YgICAgICAgICAgMTINCi0jZGVmaW5lIFRB UkdFVF9NU0dHRVQgICAgICAgICAgMTMNCi0jZGVmaW5lIFRBUkdFVF9NU0dD VEwgICAgICAgICAgMTQNCi0jZGVmaW5lIFRBUkdFVF9TSE1BVCAgICAgICAg ICAgMjENCi0jZGVmaW5lIFRBUkdFVF9TSE1EVCAgICAgICAgICAgMjINCi0j ZGVmaW5lIFRBUkdFVF9TSE1HRVQgICAgICAgICAgMjMNCi0jZGVmaW5lIFRB UkdFVF9TSE1DVEwgICAgICAgICAgMjQNCi0NCi1zdHJ1Y3QgdGFyZ2V0X21z Z2J1ZiB7DQotCWludCBtdHlwZTsNCi0JY2hhciBtdGV4dFsxXTsNCi19Ow0K LQ0KLXN0cnVjdCB0YXJnZXRfaXBjX2tsdWRnZSB7DQotCXVuc2lnbmVkIGlu dAltc2dwOwkvKiBSZWFsbHkgKHN0cnVjdCBtc2didWYgKikgKi8NCi0JaW50 IG1zZ3R5cDsNCi19OwkNCi0NCi1zdHJ1Y3QgdGFyZ2V0X2lwY19wZXJtIHsN Ci0JaW50CWtleTsNCi0JdW5zaWduZWQgc2hvcnQJdWlkOw0KLQl1bnNpZ25l ZCBzaG9ydAlnaWQ7DQotCXVuc2lnbmVkIHNob3J0CWN1aWQ7DQotCXVuc2ln bmVkIHNob3J0CWNnaWQ7DQotCXVuc2lnbmVkIHNob3J0CW1vZGU7DQotCXVu c2lnbmVkIHNob3J0CXNlcTsNCi19Ow0KLQ0KLXN0cnVjdCB0YXJnZXRfbXNx aWRfZHMgew0KLQlzdHJ1Y3QgdGFyZ2V0X2lwY19wZXJtCW1zZ19wZXJtOw0K LQl1bnNpZ25lZCBpbnQJCW1zZ19maXJzdDsJLyogcmVhbGx5IHN0cnVjdCB0 YXJnZXRfbXNnKiAqLw0KLQl1bnNpZ25lZCBpbnQJCW1zZ19sYXN0OwkvKiBy ZWFsbHkgc3RydWN0IHRhcmdldF9tc2cqICovDQotCXVuc2lnbmVkIGludAkJ bXNnX3N0aW1lOwkvKiByZWFsbHkgdGFyZ2V0X3RpbWVfdCAqLw0KLQl1bnNp Z25lZCBpbnQJCW1zZ19ydGltZTsJLyogcmVhbGx5IHRhcmdldF90aW1lX3Qg Ki8NCi0JdW5zaWduZWQgaW50CQltc2dfY3RpbWU7CS8qIHJlYWxseSB0YXJn ZXRfdGltZV90ICovDQotCXVuc2lnbmVkIGludAkJd3dhaXQ7CQkvKiByZWFs bHkgc3RydWN0IHdhaXRfcXVldWUqICovDQotCXVuc2lnbmVkIGludAkJcndh aXQ7CQkvKiByZWFsbHkgc3RydWN0IHdhaXRfcXVldWUqICovDQotCXVuc2ln bmVkIHNob3J0CQltc2dfY2J5dGVzOw0KLQl1bnNpZ25lZCBzaG9ydAkJbXNn X3FudW07DQotCXVuc2lnbmVkIHNob3J0CQltc2dfcWJ5dGVzOw0KLQl1bnNp Z25lZCBzaG9ydAkJbXNnX2xzcGlkOw0KLQl1bnNpZ25lZCBzaG9ydAkJbXNn X2xycGlkOw0KLX07DQotDQotc3RydWN0IHRhcmdldF9zaG1pZF9kcyB7DQot CXN0cnVjdCB0YXJnZXRfaXBjX3Blcm0Jc2htX3Blcm07DQotCWludAkJCXNo bV9zZWdzejsNCi0JdW5zaWduZWQgaW50CQlzaG1fYXRpbWU7CS8qIHJlYWxs eSB0YXJnZXRfdGltZV90ICovDQotCXVuc2lnbmVkIGludAkJc2htX2R0aW1l OwkvKiByZWFsbHkgdGFyZ2V0X3RpbWVfdCAqLw0KLQl1bnNpZ25lZCBpbnQJ CXNobV9jdGltZTsJLyogcmVhbGx5IHRhcmdldF90aW1lX3QgKi8NCi0JdW5z aWduZWQgc2hvcnQJCXNobV9jcGlkOw0KLQl1bnNpZ25lZCBzaG9ydAkJc2ht X2xwaWQ7DQotCXNob3J0CQkJc2htX25hdHRjaDsNCi0JdW5zaWduZWQgc2hv cnQJCXNobV9ucGFnZXM7DQotCXVuc2lnbmVkIGxvbmcJCSpzaG1fcGFnZXM7 DQotCXZvaWQgCQkJKmF0dGFjaGVzOwkvKiByZWFsbHkgc3RydWN0IHNobV9k ZXNjICogKi8NCi19Ow0KLQ0KLSNkZWZpbmUgVEFSR0VUX0lQQ19STUlECTAN Ci0jZGVmaW5lIFRBUkdFVF9JUENfU0VUCTENCi0jZGVmaW5lIFRBUkdFVF9J UENfU1RBVAkyDQotDQotdW5pb24gdGFyZ2V0X3NlbXVuIHsNCi0gICAgaW50 IHZhbDsNCi0gICAgdW5zaWduZWQgaW50IGJ1ZjsJLyogcmVhbGx5IHN0cnVj dCBzZW1pZF9kcyAqICovDQotICAgIHVuc2lnbmVkIGludCBhcnJheTsgLyog cmVhbGx5IHVuc2lnbmVkIHNob3J0ICogKi8NCi0gICAgdW5zaWduZWQgaW50 IF9fYnVmOwkvKiByZWFsbHkgc3RydWN0IHNlbWluZm8gKiAqLw0KLSAgICB1 bnNpZ25lZCBpbnQgX19wYWQ7CS8qIHJlYWxseSB2b2lkKiAqLw0KLX07DQot DQogI2RlZmluZSBVTkFNRV9NQUNISU5FICJwcGMiDQpJbmRleDogcWVtdS9s aW51eC11c2VyL3N5c2NhbGwuYw0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K LS0tIHFlbXUub3JpZy9saW51eC11c2VyL3N5c2NhbGwuYwkyMDA3LTAzLTIz IDA5OjA1OjE5LjAwMDAwMDAwMCAtMDQwMA0KKysrIHFlbXUvbGludXgtdXNl ci9zeXNjYWxsLmMJMjAwNy0wMy0yMyAwOTowNTo0OS4wMDAwMDAwMDAgLTA0 MDANCkBAIC0xMTIzLDEyICsxMTIzLDIwNSBAQA0KICAgICB1aW50MzJfdAlz aXplOw0KIH0gc2htX3JlZ2lvbnNbTl9TSE1fUkVHSU9OU107DQogDQorc3Ry dWN0IHRhcmdldF9pcGNfcGVybQ0KK3sNCisgICAgdGFyZ2V0X2xvbmcgX19r ZXk7DQorICAgIHRhcmdldF91bG9uZyB1aWQ7DQorICAgIHRhcmdldF91bG9u ZyBnaWQ7DQorICAgIHRhcmdldF91bG9uZyBjdWlkOw0KKyAgICB0YXJnZXRf dWxvbmcgY2dpZDsNCisgICAgdW5zaWduZWQgc2hvcnQgaW50IG1vZGU7DQor ICAgIHVuc2lnbmVkIHNob3J0IGludCBfX3BhZDE7DQorICAgIHVuc2lnbmVk IHNob3J0IGludCBfX3NlcTsNCisgICAgdW5zaWduZWQgc2hvcnQgaW50IF9f cGFkMjsNCisgICAgdGFyZ2V0X3Vsb25nIF9fdW51c2VkMTsNCisgICAgdGFy Z2V0X3Vsb25nIF9fdW51c2VkMjsNCit9Ow0KKw0KK3N0cnVjdCB0YXJnZXRf c2VtaWRfZHMNCit7DQorICBzdHJ1Y3QgdGFyZ2V0X2lwY19wZXJtIHNlbV9w ZXJtOw0KKyAgdGFyZ2V0X3Vsb25nIHNlbV9vdGltZTsNCisgIHRhcmdldF91 bG9uZyBfX3VudXNlZDE7DQorICB0YXJnZXRfdWxvbmcgc2VtX2N0aW1lOw0K KyAgdGFyZ2V0X3Vsb25nIF9fdW51c2VkMjsNCisgIHRhcmdldF91bG9uZyBz ZW1fbnNlbXM7DQorICB0YXJnZXRfdWxvbmcgX191bnVzZWQzOw0KKyAgdGFy Z2V0X3Vsb25nIF9fdW51c2VkNDsNCit9Ow0KKw0KK3N0YXRpYyBpbmxpbmUg dm9pZCB0YXJnZXRfdG9faG9zdF9pcGNfcGVybShzdHJ1Y3QgaXBjX3Blcm0g Kmhvc3RfaXAsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRhcmdldF91bG9uZyB0YXJnZXRfYWRkcikNCit7DQorICAg IHN0cnVjdCB0YXJnZXRfaXBjX3Blcm0gKnRhcmdldF9pcDsNCisgICAgc3Ry dWN0IHRhcmdldF9zZW1pZF9kcyAqdGFyZ2V0X3NkOw0KKw0KKyAgICBsb2Nr X3VzZXJfc3RydWN0KHRhcmdldF9zZCwgdGFyZ2V0X2FkZHIsIDEpOw0KKyAg ICB0YXJnZXRfaXA9Jih0YXJnZXRfc2QtPnNlbV9wZXJtKTsNCisgICAgaG9z dF9pcC0+X19rZXkgPSB0c3dhcGwodGFyZ2V0X2lwLT5fX2tleSk7DQorICAg IGhvc3RfaXAtPnVpZCA9IHRzd2FwbCh0YXJnZXRfaXAtPnVpZCk7DQorICAg IGhvc3RfaXAtPmdpZCA9IHRzd2FwbCh0YXJnZXRfaXAtPmdpZCk7DQorICAg IGhvc3RfaXAtPmN1aWQgPSB0c3dhcGwodGFyZ2V0X2lwLT5jdWlkKTsNCisg ICAgaG9zdF9pcC0+Y2dpZCA9IHRzd2FwbCh0YXJnZXRfaXAtPmNnaWQpOw0K KyAgICBob3N0X2lwLT5tb2RlID0gdHN3YXBsKHRhcmdldF9pcC0+bW9kZSk7 DQorICAgIHVubG9ja191c2VyX3N0cnVjdCh0YXJnZXRfc2QsIHRhcmdldF9h ZGRyLCAwKTsNCit9DQorDQorc3RhdGljIGlubGluZSB2b2lkIGhvc3RfdG9f dGFyZ2V0X2lwY19wZXJtKHRhcmdldF91bG9uZyB0YXJnZXRfYWRkciwNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGlwY19wZXJtICpob3N0X2lwKQ0KK3sNCisgICAgc3RydWN0IHRhcmdl dF9pcGNfcGVybSAqdGFyZ2V0X2lwOw0KKyAgICBzdHJ1Y3QgdGFyZ2V0X3Nl bWlkX2RzICp0YXJnZXRfc2Q7DQorDQorICAgIGxvY2tfdXNlcl9zdHJ1Y3Qo dGFyZ2V0X3NkLCB0YXJnZXRfYWRkciwgMCk7DQorICAgIHRhcmdldF9pcCA9 ICYodGFyZ2V0X3NkLT5zZW1fcGVybSk7DQorICAgIHRhcmdldF9pcC0+X19r ZXkgPSB0c3dhcGwoaG9zdF9pcC0+X19rZXkpOw0KKyAgICB0YXJnZXRfaXAt PnVpZCA9IHRzd2FwbChob3N0X2lwLT51aWQpOw0KKyAgICB0YXJnZXRfaXAt PmdpZCA9IHRzd2FwbChob3N0X2lwLT5naWQpOw0KKyAgICB0YXJnZXRfaXAt PmN1aWQgPSB0c3dhcGwoaG9zdF9pcC0+Y3VpZCk7DQorICAgIHRhcmdldF9p cC0+Y2dpZCA9IHRzd2FwbChob3N0X2lwLT5jZ2lkKTsNCisgICAgdGFyZ2V0 X2lwLT5tb2RlID0gdHN3YXBsKGhvc3RfaXAtPm1vZGUpOw0KKyAgICB1bmxv Y2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X3NkLCB0YXJnZXRfYWRkciwgMSk7DQor fQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCB0YXJnZXRfdG9faG9zdF9zZW1p ZF9kcyhzdHJ1Y3Qgc2VtaWRfZHMgKmhvc3Rfc2QsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3Vsb25nIHRh cmdldF9hZGRyKQ0KK3sNCisgICAgc3RydWN0IHRhcmdldF9zZW1pZF9kcyAq dGFyZ2V0X3NkOw0KKw0KKyAgICBsb2NrX3VzZXJfc3RydWN0KHRhcmdldF9z ZCwgdGFyZ2V0X2FkZHIsIDEpOw0KKyAgICB0YXJnZXRfdG9faG9zdF9pcGNf cGVybSgmKGhvc3Rfc2QtPnNlbV9wZXJtKSx0YXJnZXRfYWRkcik7DQorICAg IGhvc3Rfc2QtPnNlbV9uc2VtcyA9IHRzd2FwbCh0YXJnZXRfc2QtPnNlbV9u c2Vtcyk7DQorICAgIGhvc3Rfc2QtPnNlbV9vdGltZSA9IHRzd2FwbCh0YXJn ZXRfc2QtPnNlbV9vdGltZSk7DQorICAgIGhvc3Rfc2QtPnNlbV9jdGltZSA9 IHRzd2FwbCh0YXJnZXRfc2QtPnNlbV9jdGltZSk7DQorICAgIHVubG9ja191 c2VyX3N0cnVjdCh0YXJnZXRfc2QsIHRhcmdldF9hZGRyLCAwKTsNCit9DQor DQorc3RhdGljIGlubGluZSB2b2lkIGhvc3RfdG9fdGFyZ2V0X3NlbWlkX2Rz KHRhcmdldF91bG9uZyB0YXJnZXRfYWRkciwNCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNlbWlkX2RzICpo b3N0X3NkKQ0KK3sNCisgICAgc3RydWN0IHRhcmdldF9zZW1pZF9kcyAqdGFy Z2V0X3NkOw0KKw0KKyAgICBsb2NrX3VzZXJfc3RydWN0KHRhcmdldF9zZCwg dGFyZ2V0X2FkZHIsIDApOw0KKyAgICBob3N0X3RvX3RhcmdldF9pcGNfcGVy bSh0YXJnZXRfYWRkciwmKGhvc3Rfc2QtPnNlbV9wZXJtKSk7DQorICAgIHRh cmdldF9zZC0+c2VtX25zZW1zID0gdHN3YXBsKGhvc3Rfc2QtPnNlbV9uc2Vt cyk7DQorICAgIHRhcmdldF9zZC0+c2VtX290aW1lID0gdHN3YXBsKGhvc3Rf c2QtPnNlbV9vdGltZSk7DQorICAgIHRhcmdldF9zZC0+c2VtX2N0aW1lID0g dHN3YXBsKGhvc3Rfc2QtPnNlbV9jdGltZSk7DQorICAgIHVubG9ja191c2Vy X3N0cnVjdCh0YXJnZXRfc2QsIHRhcmdldF9hZGRyLCAxKTsNCit9DQorDQog dW5pb24gc2VtdW4gew0KIAlpbnQgdmFsOw0KLQlzdHJ1Y3Qgc2VuaWRfZHMg KmJ1ZjsNCisJc3RydWN0IHNlbWlkX2RzICpidWY7DQogCXVuc2lnbmVkIHNo b3J0ICphcnJheTsNCiB9Ow0KIA0KK3VuaW9uIHRhcmdldF9zZW11biB7DQor CWludCB2YWw7DQorCXRhcmdldF9sb25nIGJ1ZjsNCisJdGFyZ2V0X2xvbmcg YXJyYXk7DQorfTsNCisNCitzdGF0aWMgaW5saW5lIHZvaWQgdGFyZ2V0X3Rv X2hvc3Rfc2VtdW4odW5zaWduZWQgbG9uZyBjbWQsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uIHNlbXVuICpob3N0 X3N1LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0YXJnZXRfdWxvbmcgdGFyZ2V0X2FkZHIsDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZW1pZF9kcyAqZHMp DQorew0KKyAgICB1bmlvbiB0YXJnZXRfc2VtdW4gKnRhcmdldF9zdTsNCisN CisgICAgc3dpdGNoKCBjbWQgKSB7DQorCWNhc2UgR0VUQUxMOg0KKwljYXNl IFNFVEFMTDoNCisJY2FzZSBJUENfU1RBVDoNCisJY2FzZSBJUENfU0VUOg0K KyAgICAgICAgICAgbG9ja191c2VyX3N0cnVjdCh0YXJnZXRfc3UsIHRhcmdl dF9hZGRyLCAxKTsNCisJICAgdGFyZ2V0X3RvX2hvc3Rfc2VtaWRfZHMoZHMs dGFyZ2V0X3N1LT5idWYpOw0KKwkgICBob3N0X3N1LT5idWYgPSBkczsNCisg ICAgICAgICAgIHVubG9ja191c2VyX3N0cnVjdCh0YXJnZXRfc3UsIHRhcmdl dF9hZGRyLCAwKTsNCisJICAgYnJlYWs7DQorCWNhc2UgR0VUVkFMOg0KKwlj YXNlIFNFVFZBTDoNCisgICAgICAgICAgIGxvY2tfdXNlcl9zdHJ1Y3QodGFy Z2V0X3N1LCB0YXJnZXRfYWRkciwgMSk7DQorCSAgIGhvc3Rfc3UtPnZhbCA9 IHRzd2FwbCh0YXJnZXRfc3UtPnZhbCk7DQorICAgICAgICAgICB1bmxvY2tf dXNlcl9zdHJ1Y3QodGFyZ2V0X3N1LCB0YXJnZXRfYWRkciwgMCk7DQorCSAg IGJyZWFrOw0KKwlkZWZhdWx0Og0KKwkgICBob3N0X3N1LT5hcnJheSA9IHRz d2FwbCh0YXJnZXRfc3UtPmFycmF5KTsNCisgICAgfQ0KK30NCisNCitzdGF0 aWMgaW5saW5lIHZvaWQgaG9zdF90b190YXJnZXRfc2VtdW4odW5zaWduZWQg bG9uZyBjbWQsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRhcmdldF91bG9uZyB0YXJnZXRfYWRkciwNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pb24gc2VtdW4gKmhv c3Rfc3UsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBzZW1pZF9kcyAqZHMpDQorew0KKyAgICB1bmlvbiB0YXJn ZXRfc2VtdW4gKnRhcmdldF9zdTsNCisNCisgICAgc3dpdGNoKCBjbWQgKSB7 DQorCWNhc2UgR0VUQUxMOg0KKwljYXNlIFNFVEFMTDoNCisJY2FzZSBJUENf U1RBVDoNCisJY2FzZSBJUENfU0VUOg0KKyAgICAgICAgICAgbG9ja191c2Vy X3N0cnVjdCh0YXJnZXRfc3UsIHRhcmdldF9hZGRyLCAwKTsNCisJICAgaG9z dF90b190YXJnZXRfc2VtaWRfZHModGFyZ2V0X3N1LT5idWYsZHMpOw0KKyAg ICAgICAgICAgdW5sb2NrX3VzZXJfc3RydWN0KHRhcmdldF9zdSwgdGFyZ2V0 X2FkZHIsIDEpOw0KKwkgICBicmVhazsNCisJY2FzZSBHRVRWQUw6DQorCWNh c2UgU0VUVkFMOg0KKyAgICAgICAgICAgbG9ja191c2VyX3N0cnVjdCh0YXJn ZXRfc3UsIHRhcmdldF9hZGRyLCAwKTsNCisJICAgdGFyZ2V0X3N1LT52YWwg PSB0c3dhcGwoaG9zdF9zdS0+dmFsKTsNCisgICAgICAgICAgIHVubG9ja191 c2VyX3N0cnVjdCh0YXJnZXRfc3UsIHRhcmdldF9hZGRyLCAxKTsNCisJICAg YnJlYWs7DQorICAgICAgICBkZWZhdWx0Og0KKwkgICB0YXJnZXRfc3UtPmFy cmF5ID0gdHN3YXBsKGhvc3Rfc3UtPmFycmF5KTsNCisgICAgfQ0KK30NCisN CitzdGF0aWMgaW5saW5lIGxvbmcgZG9fc2VtY3RsKGxvbmcgZmlyc3QsIGxv bmcgc2Vjb25kLCBsb25nIHRoaXJkLCBsb25nIHB0cikNCit7DQorICAgIHVu aW9uIHNlbXVuIGFyZzsNCisgICAgc3RydWN0IHNlbWlkX2RzIGRzYXJnOw0K KyAgICBpbnQgY21kID0gdGhpcmQmMHhmZjsNCisgICAgbG9uZyByZXQgPSAw Ow0KKw0KKyAgICBzd2l0Y2goIGNtZCApIHsNCisJY2FzZSBHRVRWQUw6DQor ICAgICAgICAgICAgdGFyZ2V0X3RvX2hvc3Rfc2VtdW4oY21kLCZhcmcscHRy LCZkc2FyZyk7DQorICAgICAgICAgICAgcmV0ID0gZ2V0X2Vycm5vKHNlbWN0 bChmaXJzdCwgc2Vjb25kLCBjbWQsIGFyZykpOw0KKyAgICAgICAgICAgIGhv c3RfdG9fdGFyZ2V0X3NlbXVuKGNtZCxwdHIsJmFyZywmZHNhcmcpOw0KKyAg ICAgICAgICAgIGJyZWFrOw0KKwljYXNlIFNFVFZBTDoNCisgICAgICAgICAg ICB0YXJnZXRfdG9faG9zdF9zZW11bihjbWQsJmFyZyxwdHIsJmRzYXJnKTsN CisgICAgICAgICAgICByZXQgPSBnZXRfZXJybm8oc2VtY3RsKGZpcnN0LCBz ZWNvbmQsIGNtZCwgYXJnKSk7DQorICAgICAgICAgICAgaG9zdF90b190YXJn ZXRfc2VtdW4oY21kLHB0ciwmYXJnLCZkc2FyZyk7DQorICAgICAgICAgICAg YnJlYWs7DQorCWNhc2UgR0VUQUxMOg0KKyAgICAgICAgICAgIHRhcmdldF90 b19ob3N0X3NlbXVuKGNtZCwmYXJnLHB0ciwmZHNhcmcpOw0KKyAgICAgICAg ICAgIHJldCA9IGdldF9lcnJubyhzZW1jdGwoZmlyc3QsIHNlY29uZCwgY21k LCBhcmcpKTsNCisgICAgICAgICAgICBob3N0X3RvX3RhcmdldF9zZW11bihj bWQscHRyLCZhcmcsJmRzYXJnKTsNCisgICAgICAgICAgICBicmVhazsNCisJ Y2FzZSBTRVRBTEw6DQorICAgICAgICAgICAgdGFyZ2V0X3RvX2hvc3Rfc2Vt dW4oY21kLCZhcmcscHRyLCZkc2FyZyk7DQorICAgICAgICAgICAgcmV0ID0g Z2V0X2Vycm5vKHNlbWN0bChmaXJzdCwgc2Vjb25kLCBjbWQsIGFyZykpOw0K KyAgICAgICAgICAgIGhvc3RfdG9fdGFyZ2V0X3NlbXVuKGNtZCxwdHIsJmFy ZywmZHNhcmcpOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKwljYXNlIElQQ19T VEFUOg0KKyAgICAgICAgICAgIHRhcmdldF90b19ob3N0X3NlbXVuKGNtZCwm YXJnLHB0ciwmZHNhcmcpOw0KKyAgICAgICAgICAgIHJldCA9IGdldF9lcnJu byhzZW1jdGwoZmlyc3QsIHNlY29uZCwgY21kLCBhcmcpKTsNCisgICAgICAg ICAgICBob3N0X3RvX3RhcmdldF9zZW11bihjbWQscHRyLCZhcmcsJmRzYXJn KTsNCisgICAgICAgICAgICBicmVhazsNCisJY2FzZSBJUENfU0VUOg0KKyAg ICAgICAgICAgIHRhcmdldF90b19ob3N0X3NlbXVuKGNtZCwmYXJnLHB0ciwm ZHNhcmcpOw0KKyAgICAgICAgICAgIHJldCA9IGdldF9lcnJubyhzZW1jdGwo Zmlyc3QsIHNlY29uZCwgY21kLCBhcmcpKTsNCisgICAgICAgICAgICBob3N0 X3RvX3RhcmdldF9zZW11bihjbWQscHRyLCZhcmcsJmRzYXJnKTsNCisgICAg ICAgICAgICBicmVhazsNCisgICAgZGVmYXVsdDoNCisgICAgICAgICAgICBy ZXQgPSBnZXRfZXJybm8oc2VtY3RsKGZpcnN0LCBzZWNvbmQsIGNtZCwgYXJn KSk7DQorICAgIH0NCisNCisgICAgcmV0dXJuIHJldDsNCit9DQorDQogLyog Pz8/IFRoaXMgb25seSB3b3JrcyB3aXRoIGxpbmVhciBtYXBwaW5ncy4gICov DQogc3RhdGljIGxvbmcgZG9faXBjKGxvbmcgY2FsbCwgbG9uZyBmaXJzdCwg bG9uZyBzZWNvbmQsIGxvbmcgdGhpcmQsDQogCQkgICBsb25nIHB0ciwgbG9u ZyBmaWZ0aCkNCkBAIC0xMTUyLDggKzEzNDUsNyBAQA0KICAgICAgICAgYnJl YWs7DQogDQogICAgIGNhc2UgSVBDT1Bfc2VtY3RsOg0KLSAgICAgICAgcmV0 ID0gZ2V0X2Vycm5vKHNlbWN0bChmaXJzdCwgc2Vjb25kLCB0aGlyZCwgKCh1 bmlvbiBzZW11biopcHRyKS0+dmFsKSk7DQotDQorICAgICAgICByZXQgPSBk b19zZW1jdGwoZmlyc3QsIHNlY29uZCwgdGhpcmQsIHB0cik7DQogICAgICAg ICBicmVhazsNCiANCiAgICAgY2FzZSBJUENPUF9zZW10aW1lZG9wOg0K ---1463811327-1290851896-1180492544=:6270--