From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Iuklp-0003Hb-9r for qemu-devel@nongnu.org; Wed, 21 Nov 2007 03:17:17 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Iukln-0003HI-8w for qemu-devel@nongnu.org; Wed, 21 Nov 2007 03:17:16 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Iukln-0003HF-5N for qemu-devel@nongnu.org; Wed, 21 Nov 2007 03:17:15 -0500 Received: from mx20.gnu.org ([199.232.41.8]) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Iuklm-0002XP-1L for qemu-devel@nongnu.org; Wed, 21 Nov 2007 03:17:14 -0500 Received: from rv-out-0910.google.com ([209.85.198.189]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Iuklg-0004yk-KU for qemu-devel@nongnu.org; Wed, 21 Nov 2007 03:17:12 -0500 Received: by rv-out-0910.google.com with SMTP id g11so7628948rvb for ; Wed, 21 Nov 2007 00:17:01 -0800 (PST) Message-ID: Date: Wed, 21 Nov 2007 17:16:55 +0900 From: "Magnus Damm" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_14748_24536060.1195633015902" Subject: [Qemu-devel] [PATCH] sh4: add signal handling support for user space emulator 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 ------=_Part_14748_24536060.1195633015902 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi everyone, This adds SH support to the user space signal emulation code. Please apply. Thanks, / magnus ------=_Part_14748_24536060.1195633015902 Content-Type: application/octet-stream; name=qemu-cvs-20071121c-sh4-signal.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_f99kx4oa0 Content-Disposition: attachment; filename=qemu-cvs-20071121c-sh4-signal.patch LS0tIDAwMDEvbGludXgtdXNlci9tYWluLmMKKysrIHdvcmsvbGludXgtdXNlci9tYWluLmMJMjAw Ny0xMS0yMSAxNjoyNjoxNi4wMDAwMDAwMDAgKzA5MDAKQEAgLTE2MTcsNiArMTYxNyw5IEBAIHZv aWQgY3B1X2xvb3AgKENQVVN0YXRlICplbnYpCiAgICAgICAgICAgICBlbnYtPmdyZWdzWzBdID0g cmV0OwogICAgICAgICAgICAgZW52LT5wYyArPSAyOwogICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgIGNhc2UgRVhDUF9JTlRFUlJVUFQ6CisgICAgICAgICAgICAvKiBqdXN0IGluZGljYXRlIHRo YXQgc2lnbmFscyBzaG91bGQgYmUgaGFuZGxlZCBhc2FwICovCisgICAgICAgICAgICBicmVhazsK ICAgICAgICAgY2FzZSBFWENQX0RFQlVHOgogICAgICAgICAgICAgewogICAgICAgICAgICAgICAg IGludCBzaWc7CkBAIC0xNjMxLDYgKzE2MzQsMTUgQEAgdm9pZCBjcHVfbG9vcCAoQ1BVU3RhdGUg KmVudikKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJy ZWFrOworCWNhc2UgMHhhMDoKKwljYXNlIDB4YzA6CisgICAgICAgICAgICBpbmZvLnNpX3NpZ25v ID0gU0lHU0VHVjsKKyAgICAgICAgICAgIGluZm8uc2lfZXJybm8gPSAwOworICAgICAgICAgICAg aW5mby5zaV9jb2RlID0gVEFSR0VUX1NFR1ZfTUFQRVJSOworICAgICAgICAgICAgaW5mby5fc2lm aWVsZHMuX3NpZ2ZhdWx0Ll9hZGRyID0gZW52LT50ZWE7CisgICAgICAgICAgICBxdWV1ZV9zaWdu YWwoaW5mby5zaV9zaWdubywgJmluZm8pOworCSAgICBicmVhazsKKwogICAgICAgICBkZWZhdWx0 OgogICAgICAgICAgICAgcHJpbnRmICgiVW5oYW5kbGVkIHRyYXA6IDB4JXhcbiIsIHRyYXBucik7 CiAgICAgICAgICAgICBjcHVfZHVtcF9zdGF0ZShlbnYsIHN0ZGVyciwgZnByaW50ZiwgMCk7Ci0t LSAwMDAxL2xpbnV4LXVzZXIvc2g0L3RhcmdldF9zaWduYWwuaAorKysgd29yay9saW51eC11c2Vy L3NoNC90YXJnZXRfc2lnbmFsLmgJMjAwNy0xMS0yMSAxNjoyNjoxNi4wMDAwMDAwMDAgKzA5MDAK QEAgLTIxLDQgKzIxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgdGFyZ2V0X3NpZ2FsdHN0YWNrIHsKICNk ZWZpbmUgVEFSR0VUX01JTlNJR1NUS1NaICAgIDIwNDgKICNkZWZpbmUgVEFSR0VUX1NJR1NUS1Na ICAgICAgIDgxOTIKIAorc3RhdGljIGlubGluZSBhYmlfdWxvbmcgZ2V0X3NwX2Zyb21fY3B1c3Rh dGUoQ1BVU0g0U3RhdGUgKnN0YXRlKQoreworICAgIHJldHVybiBzdGF0ZS0+Z3JlZ3NbMTVdOwor fQorCiAjZW5kaWYgLyogVEFSR0VUX1NJR05BTF9IICovCi0tLSAwMDAxL2xpbnV4LXVzZXIvc2ln bmFsLmMKKysrIHdvcmsvbGludXgtdXNlci9zaWduYWwuYwkyMDA3LTExLTIxIDE2OjM2OjU4LjAw MDAwMDAwMCArMDkwMApAQCAtNTYyLDYgKzU2MiwxMiBAQCBzdGF0aWMgaW5saW5lIGludCBjb3B5 X3NpZ2luZm9fdG9fdXNlcih0CiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50 IGN1cnJlbnRfZXhlY19kb21haW5fc2lnKGludCBzaWcpCit7CisgICAgcmV0dXJuIC8qIGN1cnJl bnQtPmV4ZWNfZG9tYWluICYmIGN1cnJlbnQtPmV4ZWNfZG9tYWluLT5zaWduYWxfaW52bWFwCisJ ICAgICAgJiYgc2lnIDwgMzIgPyBjdXJyZW50LT5leGVjX2RvbWFpbi0+c2lnbmFsX2ludm1hcFtz aWddIDogKi8gc2lnOworfQorCiAjaWYgZGVmaW5lZChUQVJHRVRfSTM4NikgJiYgVEFSR0VUX0FC SV9CSVRTID09IDMyCiAKIC8qIGZyb20gdGhlIExpbnV4IGtlcm5lbCAqLwpAQCAtNzQ1LDExICs3 NTEsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cF9mcmFtZShpbnQgc2lnLCBzdHJ1Y3QgCiAJaWYgKCFs b2NrX3VzZXJfc3RydWN0KFZFUklGWV9XUklURSwgZnJhbWUsIGZyYW1lX2FkZHIsIDApKQogCQln b3RvIGdpdmVfc2lnc2VndjsKIAotCWVyciB8PSBfX3B1dF91c2VyKCgvKmN1cnJlbnQtPmV4ZWNf ZG9tYWluCi0JCSAgICAgICAgICAgJiYgY3VycmVudC0+ZXhlY19kb21haW4tPnNpZ25hbF9pbnZt YXAKLQkJICAgICAgICAgICAmJiBzaWcgPCAzMgotCQkgICAgICAgICAgID8gY3VycmVudC0+ZXhl Y19kb21haW4tPnNpZ25hbF9pbnZtYXBbc2lnXQotCQkgICAgICAgICAgIDogKi8gc2lnKSwKKwll cnIgfD0gX19wdXRfdXNlcihjdXJyZW50X2V4ZWNfZG9tYWluX3NpZyhzaWcpLAogCQkgICAgICAg ICAgJmZyYW1lLT5zaWcpOwogCWlmIChlcnIpCiAJCWdvdG8gZ2l2ZV9zaWdzZWd2OwpAQCAtODE5 LDExICs4MjEsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cF9ydF9mcmFtZShpbnQgc2lnLCBzdHJ1CiAJ aWYgKCFsb2NrX3VzZXJfc3RydWN0KFZFUklGWV9XUklURSwgZnJhbWUsIGZyYW1lX2FkZHIsIDAp KQogCQlnb3RvIGdpdmVfc2lnc2VndjsKIAotCWVyciB8PSBfX3B1dF91c2VyKCgvKmN1cnJlbnQt PmV4ZWNfZG9tYWluCi0JCSAgICAJICAgJiYgY3VycmVudC0+ZXhlY19kb21haW4tPnNpZ25hbF9p bnZtYXAKLQkJICAgIAkgICAmJiBzaWcgPCAzMgotCQkgICAgCSAgID8gY3VycmVudC0+ZXhlY19k b21haW4tPnNpZ25hbF9pbnZtYXBbc2lnXQotCQkJICAgOiAqL3NpZyksCisJZXJyIHw9IF9fcHV0 X3VzZXIoY3VycmVudF9leGVjX2RvbWFpbl9zaWcoc2lnKSwKIAkJCSAgJmZyYW1lLT5zaWcpOwog ICAgICAgICBhZGRyID0gZnJhbWVfYWRkciArIG9mZnNldG9mKHN0cnVjdCBydF9zaWdmcmFtZSwg aW5mbyk7CiAJZXJyIHw9IF9fcHV0X3VzZXIoYWRkciwgJmZyYW1lLT5waW5mbyk7CkBAIC0yNDA2 LDYgKzI0MDQsMzIwIEBAIGxvbmcgZG9fcnRfc2lncmV0dXJuKENQVVN0YXRlICplbnYpCiAgICAg cmV0dXJuIC1UQVJHRVRfRU5PU1lTOwogfQogCisjZWxpZiBkZWZpbmVkKFRBUkdFVF9TSDQpCisK Ky8qCisgKiBjb2RlIGFuZCBkYXRhIHN0cnVjdHVyZXMgZnJvbSBsaW51eCBrZXJuZWw6CisgKiBp bmNsdWRlL2FzbS1zaC9zaWdjb250ZXh0LmgKKyAqIGFyY2gvc2gva2VybmVsL3NpZ25hbC5jCisg Ki8KKworc3RydWN0IHRhcmdldF9zaWdjb250ZXh0IHsKKyAgICB0YXJnZXRfdWxvbmcgIG9sZG1h c2s7CisKKyAgICAvKiBDUFUgcmVnaXN0ZXJzICovCisgICAgdGFyZ2V0X3Vsb25nICBzY19ncmVn c1sxNl07CisgICAgdGFyZ2V0X3Vsb25nICBzY19wYzsKKyAgICB0YXJnZXRfdWxvbmcgIHNjX3By OworICAgIHRhcmdldF91bG9uZyAgc2Nfc3I7CisgICAgdGFyZ2V0X3Vsb25nICBzY19nYnI7Cisg ICAgdGFyZ2V0X3Vsb25nICBzY19tYWNoOworICAgIHRhcmdldF91bG9uZyAgc2NfbWFjbDsKKwor ICAgIC8qIEZQVSByZWdpc3RlcnMgKi8KKyAgICB0YXJnZXRfdWxvbmcgIHNjX2ZwcmVnc1sxNl07 CisgICAgdGFyZ2V0X3Vsb25nICBzY194ZnByZWdzWzE2XTsKKyAgICB1bnNpZ25lZCBpbnQgc2Nf ZnBzY3I7CisgICAgdW5zaWduZWQgaW50IHNjX2ZwdWw7CisgICAgdW5zaWduZWQgaW50IHNjX293 bmVkZnA7Cit9OworCitzdHJ1Y3QgdGFyZ2V0X3NpZ2ZyYW1lCit7CisgICAgc3RydWN0IHRhcmdl dF9zaWdjb250ZXh0IHNjOworICAgIHRhcmdldF91bG9uZyBleHRyYW1hc2tbVEFSR0VUX05TSUdf V09SRFMtMV07CisgICAgdWludDE2X3QgcmV0Y29kZVs4XTsKK307CisKKworc3RydWN0IHRhcmdl dF91Y29udGV4dCB7CisgICAgdGFyZ2V0X3Vsb25nIHVjX2ZsYWdzOworICAgIHN0cnVjdCB0YXJn ZXRfdWNvbnRleHQgKnVjX2xpbms7CisgICAgdGFyZ2V0X3N0YWNrX3QgdWNfc3RhY2s7CisgICAg c3RydWN0IHRhcmdldF9zaWdjb250ZXh0IHVjX21jb250ZXh0OworICAgIHRhcmdldF9zaWdzZXRf dCB1Y19zaWdtYXNrOwkvKiBtYXNrIGxhc3QgZm9yIGV4dGVuc2liaWxpdHkgKi8KK307CisKK3N0 cnVjdCB0YXJnZXRfcnRfc2lnZnJhbWUKK3sKKyAgICBzdHJ1Y3QgdGFyZ2V0X3NpZ2luZm8gaW5m bzsKKyAgICBzdHJ1Y3QgdGFyZ2V0X3Vjb250ZXh0IHVjOworICAgIHVpbnQxNl90IHJldGNvZGVb OF07Cit9OworCisKKyNkZWZpbmUgTU9WVyhuKSAgKDB4OTMwMHwoKG4pLTIpKSAvKiBNb3ZlIG1l bSB3b3JkIGF0IFBDK24gdG8gUjMgKi8KKyNkZWZpbmUgVFJBUF9OT0FSRyAweGMzMTAgICAgICAg ICAvKiBTeXNjYWxsIHcvbm8gYXJncyAoTlIgaW4gUjMpIFNIMy80ICovCisjZGVmaW5lIE9SX1Iw X1IwIDB4MjAwYiAgICAgICAgICAgLyogb3IgcjAscjAgKGluc2VydCB0byBhdm9pZCBoYXJkd2Fy ZSBidWcpICovCisKK3N0YXRpYyBhYmlfdWxvbmcgZ2V0X3NpZ2ZyYW1lKHN0cnVjdCBlbXVsYXRl ZF9zaWdhY3Rpb24gKmthLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg c3AsIHNpemVfdCBmcmFtZV9zaXplKQoreworICAgIGlmICgoa2EtPnNhLnNhX2ZsYWdzICYgVEFS R0VUX1NBX09OU1RBQ0spICYmIChzYXNfc3NfZmxhZ3Moc3ApID09IDApKSB7CisgICAgICAgIHNw ID0gdGFyZ2V0X3NpZ2FsdHN0YWNrX3VzZWQuc3Nfc3AgKyB0YXJnZXRfc2lnYWx0c3RhY2tfdXNl ZC5zc19zaXplOworICAgIH0KKworICAgIHJldHVybiAoc3AgLSBmcmFtZV9zaXplKSAmIC04dWw7 Cit9CisKK3N0YXRpYyBpbnQgc2V0dXBfc2lnY29udGV4dChzdHJ1Y3QgdGFyZ2V0X3NpZ2NvbnRl eHQgKnNjLAorCQkJICAgIENQVVN0YXRlICpyZWdzLCB1bnNpZ25lZCBsb25nIG1hc2spCit7Cisg ICAgaW50IGVyciA9IDA7CisKKyNkZWZpbmUgQ09QWSh4KSAgICAgICAgIGVyciB8PSBfX3B1dF91 c2VyKHJlZ3MtPngsICZzYy0+c2NfIyN4KQorICAgIENPUFkoZ3JlZ3NbMF0pOyBDT1BZKGdyZWdz WzFdKTsKKyAgICBDT1BZKGdyZWdzWzJdKTsgQ09QWShncmVnc1szXSk7CisgICAgQ09QWShncmVn c1s0XSk7IENPUFkoZ3JlZ3NbNV0pOworICAgIENPUFkoZ3JlZ3NbNl0pOyBDT1BZKGdyZWdzWzdd KTsKKyAgICBDT1BZKGdyZWdzWzhdKTsgQ09QWShncmVnc1s5XSk7CisgICAgQ09QWShncmVnc1sx MF0pOyBDT1BZKGdyZWdzWzExXSk7CisgICAgQ09QWShncmVnc1sxMl0pOyBDT1BZKGdyZWdzWzEz XSk7CisgICAgQ09QWShncmVnc1sxNF0pOyBDT1BZKGdyZWdzWzE1XSk7CisgICAgQ09QWShnYnIp OyBDT1BZKG1hY2gpOworICAgIENPUFkobWFjbCk7IENPUFkocHIpOworICAgIENPUFkoc3IpOyBD T1BZKHBjKTsKKyN1bmRlZiBDT1BZCisKKyAgICAvKiB0b2RvOiBzYXZlIEZQVSByZWdpc3RlcnMg aGVyZSAqLworCisgICAgLyogbm9uLWlCQ1MyIGV4dGVuc2lvbnMuLiAqLworICAgIGVyciB8PSBf X3B1dF91c2VyKG1hc2ssICZzYy0+b2xkbWFzayk7CisKKyAgICByZXR1cm4gZXJyOworfQorCitz dGF0aWMgaW50IHJlc3RvcmVfc2lnY29udGV4dChzdHJ1Y3QgQ1BVU3RhdGUgKnJlZ3MsCisJCQkg ICAgICBzdHJ1Y3QgdGFyZ2V0X3NpZ2NvbnRleHQgKnNjKQoreworICAgIHVuc2lnbmVkIGludCBl cnIgPSAwOworCisjZGVmaW5lIENPUFkoeCkgICAgICAgICBlcnIgfD0gX19nZXRfdXNlcihyZWdz LT54LCAmc2MtPnNjXyMjeCkKKyAgICBDT1BZKGdyZWdzWzFdKTsKKyAgICBDT1BZKGdyZWdzWzJd KTsgQ09QWShncmVnc1szXSk7CisgICAgQ09QWShncmVnc1s0XSk7IENPUFkoZ3JlZ3NbNV0pOwor ICAgIENPUFkoZ3JlZ3NbNl0pOyBDT1BZKGdyZWdzWzddKTsKKyAgICBDT1BZKGdyZWdzWzhdKTsg Q09QWShncmVnc1s5XSk7CisgICAgQ09QWShncmVnc1sxMF0pOyBDT1BZKGdyZWdzWzExXSk7Cisg ICAgQ09QWShncmVnc1sxMl0pOyBDT1BZKGdyZWdzWzEzXSk7CisgICAgQ09QWShncmVnc1sxNF0p OyBDT1BZKGdyZWdzWzE1XSk7CisgICAgQ09QWShnYnIpOyBDT1BZKG1hY2gpOworICAgIENPUFko bWFjbCk7IENPUFkocHIpOworICAgIENPUFkoc3IpOyBDT1BZKHBjKTsKKyN1bmRlZiBDT1BZCisK KyAgICAvKiB0b2RvOiByZXN0b3JlIEZQVSByZWdpc3RlcnMgaGVyZSAqLworCisgICAgcmVncy0+ dHJhID0gLTE7ICAgICAgICAgLyogZGlzYWJsZSBzeXNjYWxsIGNoZWNrcyAqLworICAgIHJldHVy biBlcnI7Cit9CisKK3N0YXRpYyB2b2lkIHNldHVwX2ZyYW1lKGludCBzaWcsIHN0cnVjdCBlbXVs YXRlZF9zaWdhY3Rpb24gKmthLAorCQkJdGFyZ2V0X3NpZ3NldF90ICpzZXQsIENQVVN0YXRlICpy ZWdzKQoreworICAgIHN0cnVjdCB0YXJnZXRfc2lnZnJhbWUgKmZyYW1lOworICAgIGFiaV91bG9u ZyBmcmFtZV9hZGRyOworICAgIGludCBpOworICAgIGludCBlcnIgPSAwOworICAgIGludCBzaWdu YWw7CisKKyAgICBmcmFtZV9hZGRyID0gZ2V0X3NpZ2ZyYW1lKGthLCByZWdzLT5ncmVnc1sxNV0s IHNpemVvZigqZnJhbWUpKTsKKyAgICBpZiAoIWxvY2tfdXNlcl9zdHJ1Y3QoVkVSSUZZX1dSSVRF LCBmcmFtZSwgZnJhbWVfYWRkciwgMCkpCisJZ290byBnaXZlX3NpZ3NlZ3Y7CisKKyAgICBzaWdu YWwgPSBjdXJyZW50X2V4ZWNfZG9tYWluX3NpZyhzaWcpOworCisgICAgZXJyIHw9IHNldHVwX3Np Z2NvbnRleHQoJmZyYW1lLT5zYywgcmVncywgc2V0LT5zaWdbMF0pOworCisgICAgZm9yIChpID0g MDsgaSA8IFRBUkdFVF9OU0lHX1dPUkRTIC0gMTsgaSsrKSB7CisgICAgICAgIGVyciB8PSBfX3B1 dF91c2VyKHNldC0+c2lnW2kgKyAxXSwgJmZyYW1lLT5leHRyYW1hc2tbaV0pOworICAgIH0KKwor ICAgIC8qIFNldCB1cCB0byByZXR1cm4gZnJvbSB1c2Vyc3BhY2UuICBJZiBwcm92aWRlZCwgdXNl IGEgc3R1YgorICAgICAgIGFscmVhZHkgaW4gdXNlcnNwYWNlLiAgKi8KKyAgICBpZiAoa2EtPnNh LnNhX2ZsYWdzICYgVEFSR0VUX1NBX1JFU1RPUkVSKSB7CisgICAgICAgIHJlZ3MtPnByID0gKHVu c2lnbmVkIGxvbmcpIGthLT5zYS5zYV9yZXN0b3JlcjsKKyAgICB9IGVsc2UgeworICAgICAgICAv KiBHZW5lcmF0ZSByZXR1cm4gY29kZSAoc3lzdGVtIGNhbGwgdG8gc2lncmV0dXJuKSAqLworICAg ICAgICBlcnIgfD0gX19wdXRfdXNlcihNT1ZXKDcpLCAmZnJhbWUtPnJldGNvZGVbMF0pOworICAg ICAgICBlcnIgfD0gX19wdXRfdXNlcihUUkFQX05PQVJHLCAmZnJhbWUtPnJldGNvZGVbMV0pOwor ICAgICAgICBlcnIgfD0gX19wdXRfdXNlcihPUl9SMF9SMCwgJmZyYW1lLT5yZXRjb2RlWzJdKTsK KyAgICAgICAgZXJyIHw9IF9fcHV0X3VzZXIoT1JfUjBfUjAsICZmcmFtZS0+cmV0Y29kZVszXSk7 CisgICAgICAgIGVyciB8PSBfX3B1dF91c2VyKE9SX1IwX1IwLCAmZnJhbWUtPnJldGNvZGVbNF0p OworICAgICAgICBlcnIgfD0gX19wdXRfdXNlcihPUl9SMF9SMCwgJmZyYW1lLT5yZXRjb2RlWzVd KTsKKyAgICAgICAgZXJyIHw9IF9fcHV0X3VzZXIoT1JfUjBfUjAsICZmcmFtZS0+cmV0Y29kZVs2 XSk7CisgICAgICAgIGVyciB8PSBfX3B1dF91c2VyKChUQVJHRVRfTlJfc2lncmV0dXJuKSwgJmZy YW1lLT5yZXRjb2RlWzddKTsKKyAgICAgICAgcmVncy0+cHIgPSAodW5zaWduZWQgbG9uZykgZnJh bWUtPnJldGNvZGU7CisgICAgfQorCisgICAgaWYgKGVycikKKyAgICAgICAgZ290byBnaXZlX3Np Z3NlZ3Y7CisKKyAgICAvKiBTZXQgdXAgcmVnaXN0ZXJzIGZvciBzaWduYWwgaGFuZGxlciAqLwor ICAgIHJlZ3MtPmdyZWdzWzE1XSA9ICh1bnNpZ25lZCBsb25nKSBmcmFtZTsKKyAgICByZWdzLT5n cmVnc1s0XSA9IHNpZ25hbDsgLyogQXJnIGZvciBzaWduYWwgaGFuZGxlciAqLworICAgIHJlZ3Mt PmdyZWdzWzVdID0gMDsKKyAgICByZWdzLT5ncmVnc1s2XSA9ICh1bnNpZ25lZCBsb25nKSAmZnJh bWUtPnNjOworICAgIHJlZ3MtPnBjID0gKHVuc2lnbmVkIGxvbmcpIGthLT5zYS5fc2FfaGFuZGxl cjsKKworICAgIHVubG9ja191c2VyX3N0cnVjdChmcmFtZSwgZnJhbWVfYWRkciwgMSk7CisgICAg cmV0dXJuOworCitnaXZlX3NpZ3NlZ3Y6CisgICAgdW5sb2NrX3VzZXJfc3RydWN0KGZyYW1lLCBm cmFtZV9hZGRyLCAxKTsKKyAgICBmb3JjZV9zaWcoU0lHU0VHVik7Cit9CisKK3N0YXRpYyB2b2lk IHNldHVwX3J0X2ZyYW1lKGludCBzaWcsIHN0cnVjdCBlbXVsYXRlZF9zaWdhY3Rpb24gKmthLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3NpZ2luZm9fdCAqaW5mbywKKwkJCSAg IHRhcmdldF9zaWdzZXRfdCAqc2V0LCBDUFVTdGF0ZSAqcmVncykKK3sKKyAgICBzdHJ1Y3QgdGFy Z2V0X3J0X3NpZ2ZyYW1lICpmcmFtZTsKKyAgICBhYmlfdWxvbmcgZnJhbWVfYWRkcjsKKyAgICBp bnQgaTsKKyAgICBpbnQgZXJyID0gMDsKKyAgICBpbnQgc2lnbmFsOworCisgICAgZnJhbWVfYWRk ciA9IGdldF9zaWdmcmFtZShrYSwgcmVncy0+Z3JlZ3NbMTVdLCBzaXplb2YoKmZyYW1lKSk7Cisg ICAgaWYgKCFsb2NrX3VzZXJfc3RydWN0KFZFUklGWV9XUklURSwgZnJhbWUsIGZyYW1lX2FkZHIs IDApKQorCWdvdG8gZ2l2ZV9zaWdzZWd2OworCisgICAgc2lnbmFsID0gY3VycmVudF9leGVjX2Rv bWFpbl9zaWcoc2lnKTsKKworICAgIGVyciB8PSBjb3B5X3NpZ2luZm9fdG9fdXNlcigmZnJhbWUt PmluZm8sIGluZm8pOworCisgICAgLyogQ3JlYXRlIHRoZSB1Y29udGV4dC4gICovCisgICAgZXJy IHw9IF9fcHV0X3VzZXIoMCwgJmZyYW1lLT51Yy51Y19mbGFncyk7CisgICAgZXJyIHw9IF9fcHV0 X3VzZXIoMCwgKHVuc2lnbmVkIGxvbmcgKikmZnJhbWUtPnVjLnVjX2xpbmspOworICAgIGVyciB8 PSBfX3B1dF91c2VyKCh2b2lkICopdGFyZ2V0X3NpZ2FsdHN0YWNrX3VzZWQuc3Nfc3AsCisJCSAg ICAgICZmcmFtZS0+dWMudWNfc3RhY2suc3Nfc3ApOworICAgIGVyciB8PSBfX3B1dF91c2VyKHNh c19zc19mbGFncyhyZWdzLT5ncmVnc1sxNV0pLAorCQkgICAgICAmZnJhbWUtPnVjLnVjX3N0YWNr LnNzX2ZsYWdzKTsKKyAgICBlcnIgfD0gX19wdXRfdXNlcih0YXJnZXRfc2lnYWx0c3RhY2tfdXNl ZC5zc19zaXplLAorCQkgICAgICAmZnJhbWUtPnVjLnVjX3N0YWNrLnNzX3NpemUpOworICAgIGVy ciB8PSBzZXR1cF9zaWdjb250ZXh0KCZmcmFtZS0+dWMudWNfbWNvbnRleHQsCisJCQkgICAgcmVn cywgc2V0LT5zaWdbMF0pOworICAgIGZvcihpID0gMDsgaSA8IFRBUkdFVF9OU0lHX1dPUkRTOyBp KyspIHsKKyAgICAgICAgZXJyIHw9IF9fcHV0X3VzZXIoc2V0LT5zaWdbaV0sICZmcmFtZS0+dWMu dWNfc2lnbWFzay5zaWdbaV0pOworICAgIH0KKworICAgIC8qIFNldCB1cCB0byByZXR1cm4gZnJv bSB1c2Vyc3BhY2UuICBJZiBwcm92aWRlZCwgdXNlIGEgc3R1YgorICAgICAgIGFscmVhZHkgaW4g dXNlcnNwYWNlLiAgKi8KKyAgICBpZiAoa2EtPnNhLnNhX2ZsYWdzICYgVEFSR0VUX1NBX1JFU1RP UkVSKSB7CisgICAgICAgIHJlZ3MtPnByID0gKHVuc2lnbmVkIGxvbmcpIGthLT5zYS5zYV9yZXN0 b3JlcjsKKyAgICB9IGVsc2UgeworICAgICAgICAvKiBHZW5lcmF0ZSByZXR1cm4gY29kZSAoc3lz dGVtIGNhbGwgdG8gc2lncmV0dXJuKSAqLworICAgICAgICBlcnIgfD0gX19wdXRfdXNlcihNT1ZX KDcpLCAmZnJhbWUtPnJldGNvZGVbMF0pOworICAgICAgICBlcnIgfD0gX19wdXRfdXNlcihUUkFQ X05PQVJHLCAmZnJhbWUtPnJldGNvZGVbMV0pOworICAgICAgICBlcnIgfD0gX19wdXRfdXNlcihP Ul9SMF9SMCwgJmZyYW1lLT5yZXRjb2RlWzJdKTsKKyAgICAgICAgZXJyIHw9IF9fcHV0X3VzZXIo T1JfUjBfUjAsICZmcmFtZS0+cmV0Y29kZVszXSk7CisgICAgICAgIGVyciB8PSBfX3B1dF91c2Vy KE9SX1IwX1IwLCAmZnJhbWUtPnJldGNvZGVbNF0pOworICAgICAgICBlcnIgfD0gX19wdXRfdXNl cihPUl9SMF9SMCwgJmZyYW1lLT5yZXRjb2RlWzVdKTsKKyAgICAgICAgZXJyIHw9IF9fcHV0X3Vz ZXIoT1JfUjBfUjAsICZmcmFtZS0+cmV0Y29kZVs2XSk7CisgICAgICAgIGVyciB8PSBfX3B1dF91 c2VyKChUQVJHRVRfTlJfcnRfc2lncmV0dXJuKSwgJmZyYW1lLT5yZXRjb2RlWzddKTsKKyAgICAg ICAgcmVncy0+cHIgPSAodW5zaWduZWQgbG9uZykgZnJhbWUtPnJldGNvZGU7CisgICAgfQorCisg ICAgaWYgKGVycikKKyAgICAgICAgZ290byBnaXZlX3NpZ3NlZ3Y7CisKKyAgICAvKiBTZXQgdXAg cmVnaXN0ZXJzIGZvciBzaWduYWwgaGFuZGxlciAqLworICAgIHJlZ3MtPmdyZWdzWzE1XSA9ICh1 bnNpZ25lZCBsb25nKSBmcmFtZTsKKyAgICByZWdzLT5ncmVnc1s0XSA9IHNpZ25hbDsgLyogQXJn IGZvciBzaWduYWwgaGFuZGxlciAqLworICAgIHJlZ3MtPmdyZWdzWzVdID0gKHVuc2lnbmVkIGxv bmcpICZmcmFtZS0+aW5mbzsKKyAgICByZWdzLT5ncmVnc1s2XSA9ICh1bnNpZ25lZCBsb25nKSAm ZnJhbWUtPnVjOworICAgIHJlZ3MtPnBjID0gKHVuc2lnbmVkIGxvbmcpIGthLT5zYS5fc2FfaGFu ZGxlcjsKKworICAgIHVubG9ja191c2VyX3N0cnVjdChmcmFtZSwgZnJhbWVfYWRkciwgMSk7Cisg ICAgcmV0dXJuOworCitnaXZlX3NpZ3NlZ3Y6CisgICAgdW5sb2NrX3VzZXJfc3RydWN0KGZyYW1l LCBmcmFtZV9hZGRyLCAxKTsKKyAgICBmb3JjZV9zaWcoU0lHU0VHVik7Cit9CisKK2xvbmcgZG9f c2lncmV0dXJuKENQVVN0YXRlICpyZWdzKQoreworICAgIHN0cnVjdCB0YXJnZXRfc2lnZnJhbWUg KmZyYW1lOworICAgIGFiaV91bG9uZyBmcmFtZV9hZGRyOworICAgIHNpZ3NldF90IGJsb2NrZWQ7 CisgICAgdGFyZ2V0X3NpZ3NldF90IHRhcmdldF9zZXQ7CisgICAgaW50IGk7CisgICAgaW50IGVy ciA9IDA7CisKKyNpZiBkZWZpbmVkKERFQlVHX1NJR05BTCkKKyAgICBmcHJpbnRmKHN0ZGVyciwg ImRvX3NpZ3JldHVyblxuIik7CisjZW5kaWYKKyAgICBmcmFtZV9hZGRyID0gcmVncy0+Z3JlZ3Nb MTVdOworICAgIGlmICghbG9ja191c2VyX3N0cnVjdChWRVJJRllfUkVBRCwgZnJhbWUsIGZyYW1l X2FkZHIsIDEpKQorICAgCWdvdG8gYmFkZnJhbWU7CisKKyAgICBlcnIgfD0gX19nZXRfdXNlcih0 YXJnZXRfc2V0LnNpZ1swXSwgJmZyYW1lLT5zYy5vbGRtYXNrKTsKKyAgICBmb3IoaSA9IDE7IGkg PCBUQVJHRVRfTlNJR19XT1JEUzsgaSsrKSB7CisgICAgICAgIGVyciB8PSAoX19nZXRfdXNlcih0 YXJnZXRfc2V0LnNpZ1tpXSwgJmZyYW1lLT5leHRyYW1hc2tbaSAtIDFdKSk7CisgICAgfQorCisg ICAgaWYgKGVycikKKyAgICAgICAgZ290byBiYWRmcmFtZTsKKworICAgIHRhcmdldF90b19ob3N0 X3NpZ3NldF9pbnRlcm5hbCgmYmxvY2tlZCwgJnRhcmdldF9zZXQpOworICAgIHNpZ3Byb2NtYXNr KFNJR19TRVRNQVNLLCAmYmxvY2tlZCwgTlVMTCk7CisKKyAgICBpZiAocmVzdG9yZV9zaWdjb250 ZXh0KHJlZ3MsICZmcmFtZS0+c2MpKQorICAgICAgICBnb3RvIGJhZGZyYW1lOworCisgICAgdW5s b2NrX3VzZXJfc3RydWN0KGZyYW1lLCBmcmFtZV9hZGRyLCAwKTsKKyAgICByZXR1cm4gcmVncy0+ Z3JlZ3NbMF07CisKK2JhZGZyYW1lOgorICAgIHVubG9ja191c2VyX3N0cnVjdChmcmFtZSwgZnJh bWVfYWRkciwgMCk7CisgICAgZm9yY2Vfc2lnKFRBUkdFVF9TSUdTRUdWKTsKKyAgICByZXR1cm4g MDsKK30KKworbG9uZyBkb19ydF9zaWdyZXR1cm4oQ1BVU3RhdGUgKnJlZ3MpCit7CisgICAgc3Ry dWN0IHRhcmdldF9ydF9zaWdmcmFtZSAqZnJhbWU7CisgICAgYWJpX3Vsb25nIGZyYW1lX2FkZHI7 CisgICAgc2lnc2V0X3QgYmxvY2tlZDsKKworI2lmIGRlZmluZWQoREVCVUdfU0lHTkFMKQorICAg IGZwcmludGYoc3RkZXJyLCAiZG9fcnRfc2lncmV0dXJuXG4iKTsKKyNlbmRpZgorICAgIGZyYW1l X2FkZHIgPSByZWdzLT5ncmVnc1sxNV07CisgICAgaWYgKCFsb2NrX3VzZXJfc3RydWN0KFZFUklG WV9SRUFELCBmcmFtZSwgZnJhbWVfYWRkciwgMSkpCisgICAJZ290byBiYWRmcmFtZTsKKworICAg IHRhcmdldF90b19ob3N0X3NpZ3NldCgmYmxvY2tlZCwgJmZyYW1lLT51Yy51Y19zaWdtYXNrKTsK KyAgICBzaWdwcm9jbWFzayhTSUdfU0VUTUFTSywgJmJsb2NrZWQsIE5VTEwpOworCisgICAgaWYg KHJlc3RvcmVfc2lnY29udGV4dChyZWdzLCAmZnJhbWUtPnVjLnVjX21jb250ZXh0KSkKKyAgICAg ICAgZ290byBiYWRmcmFtZTsKKworICAgIGlmIChkb19zaWdhbHRzdGFjayhmcmFtZV9hZGRyICsK KwkJICAgICAgIG9mZnNldG9mKHN0cnVjdCB0YXJnZXRfcnRfc2lnZnJhbWUsIHVjLnVjX3N0YWNr KSwKKwkJICAgICAgIDAsIGdldF9zcF9mcm9tX2NwdXN0YXRlKHJlZ3MpKSA9PSAtRUZBVUxUKQor ICAgICAgICBnb3RvIGJhZGZyYW1lOworCisgICAgdW5sb2NrX3VzZXJfc3RydWN0KGZyYW1lLCBm cmFtZV9hZGRyLCAwKTsKKyAgICByZXR1cm4gcmVncy0+Z3JlZ3NbMF07CisKK2JhZGZyYW1lOgor ICAgIHVubG9ja191c2VyX3N0cnVjdChmcmFtZSwgZnJhbWVfYWRkciwgMCk7CisgICAgZm9yY2Vf c2lnKFRBUkdFVF9TSUdTRUdWKTsKKyAgICByZXR1cm4gMDsKK30KKwogI2Vsc2UKIAogc3RhdGlj IHZvaWQgc2V0dXBfZnJhbWUoaW50IHNpZywgc3RydWN0IGVtdWxhdGVkX3NpZ2FjdGlvbiAqa2Es Ci0tLSAwMDAxL3RhcmdldC1zaDQvaGVscGVyLmMKKysrIHdvcmsvdGFyZ2V0LXNoNC9oZWxwZXIu YwkyMDA3LTExLTIxIDE2OjI2OjE2LjAwMDAwMDAwMCArMDkwMApAQCAtMzksMTYgKzM5LDE2IEBA IGludCBjcHVfc2g0X2hhbmRsZV9tbXVfZmF1bHQoQ1BVU3RhdGUgKiAKIAkJCSAgICAgaW50IG1t dV9pZHgsIGludCBpc19zb2Z0bW11KQogewogICAgIGVudi0+dGVhID0gYWRkcmVzczsKKyAgICBl bnYtPmV4Y2VwdGlvbl9pbmRleCA9IDA7CiAgICAgc3dpdGNoIChydykgewogICAgIGNhc2UgMDoK KwllbnYtPnRlYSA9IGFkZHJlc3M7CiAgICAgICAgIGVudi0+ZXhjZXB0aW9uX2luZGV4ID0gMHgw YTA7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMToKKwllbnYtPnRlYSA9IGFkZHJlc3M7CiAg ICAgICAgIGVudi0+ZXhjZXB0aW9uX2luZGV4ID0gMHgwYzA7CiAgICAgICAgIGJyZWFrOwotICAg IGNhc2UgMjoKLSAgICAgICAgZW52LT5leGNlcHRpb25faW5kZXggPSAweDBhMDsKLSAgICAgICAg YnJlYWs7CiAgICAgfQogICAgIHJldHVybiAxOwogfQotLS0gMDAwMS90cmFuc2xhdGUtYWxsLmMK KysrIHdvcmsvdHJhbnNsYXRlLWFsbC5jCTIwMDctMTEtMjEgMTY6MjY6MTYuMDAwMDAwMDAwICsw OTAwCkBAIC0yOTgsNiArMjk4LDggQEAgaW50IGNwdV9yZXN0b3JlX3N0YXRlKFRyYW5zbGF0aW9u QmxvY2sgKgogICAgIGVudi0+aGZsYWdzIHw9IGdlbl9vcGNfaGZsYWdzW2pdOwogI2VsaWYgZGVm aW5lZChUQVJHRVRfQUxQSEEpCiAgICAgZW52LT5wYyA9IGdlbl9vcGNfcGNbal07CisjZWxpZiBk ZWZpbmVkKFRBUkdFVF9TSDQpCisgICAgZW52LT5wYyA9IGdlbl9vcGNfcGNbal07CiAjZW5kaWYK ICAgICByZXR1cm4gMDsKIH0K ------=_Part_14748_24536060.1195633015902--