From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IxhDg-0000gB-9S for qemu-devel@nongnu.org; Thu, 29 Nov 2007 06:06:12 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IxhDd-0000fv-PM for qemu-devel@nongnu.org; Thu, 29 Nov 2007 06:06:11 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IxhDd-0000fs-HN for qemu-devel@nongnu.org; Thu, 29 Nov 2007 06:06:09 -0500 Received: from rn-out-0910.google.com ([64.233.170.190] helo=rn-out-0102.google.com) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IxhDd-0003k5-4G for qemu-devel@nongnu.org; Thu, 29 Nov 2007 06:06:09 -0500 Received: by rn-out-0102.google.com with SMTP id i19so1524862rng for ; Thu, 29 Nov 2007 03:06:08 -0800 (PST) Message-ID: Date: Thu, 29 Nov 2007 20:06:07 +0900 From: "Magnus Damm" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_698_14904222.1196334367905" Subject: [Qemu-devel] [PATCH sh4: system emulator interrupt update 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_698_14904222.1196334367905 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi everyone, This patch updates the interrupt and exception code for the sh4 system emulator. Together with the delay slot patch posted yesterday this patch implements working interrupts for the sh4 system emulator. There are unfortunately no sources that actually hook up to the interrupt controller yet - will post a patch for sh_timer in the near future. Changes included in this patch: - sh_intc now fully emulates intc registers and deliver interrupts - do_interrupt() is updated to hook in sh_intc interrupts - code to call do_interrupt() for sh4 is added in cpu-exec.c - exception updates for do_interrupt() - masking etc - trapa instruction immediate data fix cpu-exec.c | 5 +- hw/sh7750.c | 2 hw/sh_intc.c | 123 +++++++++++++++++++++++++++++++++++++++------------ hw/sh_intc.h | 8 ++- target-sh4/cpu.h | 1 target-sh4/helper.c | 75 ++++++++++++++++++++++++------- target-sh4/op.c | 2 7 files changed, 169 insertions(+), 47 deletions(-) Please apply. / magnus ------=_Part_698_14904222.1196334367905 Content-Type: application/octet-stream; name=qemu-cvs-20071129-sh-irq.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_f9l6gd3q0 Content-Disposition: attachment; filename=qemu-cvs-20071129-sh-irq.patch LS0tIDAwMDIvY3B1LWV4ZWMuYworKysgd29yay9jcHUtZXhlYy5jCTIwMDctMTEtMjggMjE6MjQ6 MDYuMDAwMDAwMDAwICswOTAwCkBAIC01MTEsNyArNTExLDEwIEBAIGludCBjcHVfZXhlYyhDUFVT dGF0ZSAqZW52MSkKICAgICAgICAgICAgICAgICAgICAgICAgIEJSRUFLX0NIQUlOOwogICAgICAg ICAgICAgICAgICAgICB9CiAjZWxpZiBkZWZpbmVkKFRBUkdFVF9TSDQpCi0JCSAgICAvKiBYWFhY WCAqLworICAgICAgICAgICAgICAgICAgICBpZiAoaW50ZXJydXB0X3JlcXVlc3QgJiBDUFVfSU5U RVJSVVBUX0hBUkQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvX2ludGVycnVwdChlbnYp OworICAgICAgICAgICAgICAgICAgICAgICAgQlJFQUtfQ0hBSU47CisgICAgICAgICAgICAgICAg ICAgIH0KICNlbGlmIGRlZmluZWQoVEFSR0VUX0FMUEhBKQogICAgICAgICAgICAgICAgICAgICBp ZiAoaW50ZXJydXB0X3JlcXVlc3QgJiBDUFVfSU5URVJSVVBUX0hBUkQpIHsKICAgICAgICAgICAg ICAgICAgICAgICAgIGRvX2ludGVycnVwdChlbnYpOwotLS0gMDAwMS9ody9zaDc3NTAuYworKysg d29yay9ody9zaDc3NTAuYwkyMDA3LTExLTI4IDIxOjI0OjA2LjAwMDAwMDAwMCArMDkwMApAQCAt NTUxLDYgKzU1MSw4IEBAIFNINzc1MFN0YXRlICpzaDc3NTBfaW5pdChDUFVTSDRTdGF0ZSAqIGMK IAkJCSAgICAgX0lOVENfQVJSQVkodmVjdG9ycyksCiAJCQkgICAgIF9JTlRDX0FSUkFZKGdyb3Vw cykpOwogCisgICAgY3B1LT5pbnRjX2hhbmRsZSA9ICZzLT5pbnRjOworCiAgICAgc2hfc2VyaWFs X2luaXQoMHgxZmUwMDAwMCwgMCwgcy0+cGVyaXBoX2ZyZXEsIHNlcmlhbF9oZHNbMF0pOwogICAg IHNoX3NlcmlhbF9pbml0KDB4MWZlODAwMDAsIFNIX1NFUklBTF9GRUFUX1NDSUYsCiAJCSAgIHMt PnBlcmlwaF9mcmVxLCBzZXJpYWxfaGRzWzFdKTsKLS0tIDAwMDEvaHcvc2hfaW50Yy5jCisrKyB3 b3JrL2h3L3NoX2ludGMuYwkyMDA3LTExLTI5IDE3OjQ4OjUxLjAwMDAwMDAwMCArMDkwMApAQCAt MTQsMTAgKzE0LDkxIEBACiAjaW5jbHVkZSAic2guaCIKIAogLy8jZGVmaW5lIERFQlVHX0lOVEMK Ky8vI2RlZmluZSBERUJVR19JTlRDX1NPVVJDRVMKIAogI2RlZmluZSBJTlRDX0E3KHgpICgoeCkg JiAweDFmZmZmZmZmKQogI2RlZmluZSBJTlRDX0FSUkFZKHgpIChzaXplb2YoeCkgLyBzaXplb2Yo eFswXSkpCiAKK3ZvaWQgc2hfaW50Y190b2dnbGVfc291cmNlKHN0cnVjdCBpbnRjX3NvdXJjZSAq c291cmNlLAorCQkJICAgaW50IGVuYWJsZV9hZGosIGludCBhc3NlcnRfYWRqKQoreworICAgIGlu dCBlbmFibGVfY2hhbmdlZCA9IDA7CisgICAgaW50IHBlbmRpbmdfY2hhbmdlZCA9IDA7CisgICAg aW50IG9sZF9wZW5kaW5nOworCisgICAgaWYgKChzb3VyY2UtPmVuYWJsZV9jb3VudCA9PSBzb3Vy Y2UtPmVuYWJsZV9tYXgpICYmIChlbmFibGVfYWRqID09IC0xKSkKKyAgICAgICAgZW5hYmxlX2No YW5nZWQgPSAtMTsKKworICAgIHNvdXJjZS0+ZW5hYmxlX2NvdW50ICs9IGVuYWJsZV9hZGo7CisK KyAgICBpZiAoc291cmNlLT5lbmFibGVfY291bnQgPT0gc291cmNlLT5lbmFibGVfbWF4KQorICAg ICAgICBlbmFibGVfY2hhbmdlZCA9IDE7CisKKyAgICBzb3VyY2UtPmFzc2VydGVkICs9IGFzc2Vy dF9hZGo7CisKKyAgICBvbGRfcGVuZGluZyA9IHNvdXJjZS0+cGVuZGluZzsKKyAgICBzb3VyY2Ut PnBlbmRpbmcgPSBzb3VyY2UtPmFzc2VydGVkICYmIAorICAgICAgKHNvdXJjZS0+ZW5hYmxlX2Nv dW50ID09IHNvdXJjZS0+ZW5hYmxlX21heCk7CisKKyAgICBpZiAob2xkX3BlbmRpbmcgIT0gc291 cmNlLT5wZW5kaW5nKQorICAgICAgICBwZW5kaW5nX2NoYW5nZWQgPSAxOworCisgICAgaWYgKHBl bmRpbmdfY2hhbmdlZCkgeworICAgICAgICBpZiAoc291cmNlLT5wZW5kaW5nKSB7CisgICAgICAg ICAgICBzb3VyY2UtPnBhcmVudC0+cGVuZGluZysrOworCSAgICBpZiAoc291cmNlLT5wYXJlbnQt PnBlbmRpbmcgPT0gMSkKKyAgICAgICAgICAgICAgICBjcHVfaW50ZXJydXB0KGZpcnN0X2NwdSwg Q1BVX0lOVEVSUlVQVF9IQVJEKTsKKwl9CisJZWxzZSB7CisgICAgICAgICAgICBzb3VyY2UtPnBh cmVudC0+cGVuZGluZy0tOworCSAgICBpZiAoc291cmNlLT5wYXJlbnQtPnBlbmRpbmcgPT0gMCkK KyAgICAgICAgICAgICAgICBjcHVfcmVzZXRfaW50ZXJydXB0KGZpcnN0X2NwdSwgQ1BVX0lOVEVS UlVQVF9IQVJEKTsKKwl9CisgICAgfQorCisgIGlmIChlbmFibGVfY2hhbmdlZCB8fCBhc3NlcnRf YWRqIHx8IHBlbmRpbmdfY2hhbmdlZCkgeworI2lmZGVmIERFQlVHX0lOVENfU09VUkNFUworICAg ICAgICAgICAgcHJpbnRmKCJzaF9pbnRjOiAoJWQvJWQvJWQvJWQpIGludGVycnVwdCBzb3VyY2Ug MHgleCAlcyVzJXNcbiIsCisJCSAgIHNvdXJjZS0+cGFyZW50LT5wZW5kaW5nLAorCQkgICBzb3Vy Y2UtPmFzc2VydGVkLAorCQkgICBzb3VyY2UtPmVuYWJsZV9jb3VudCwKKwkJICAgc291cmNlLT5l bmFibGVfbWF4LAorCQkgICBzb3VyY2UtPnZlY3QsCisJCSAgIHNvdXJjZS0+YXNzZXJ0ZWQgPyAi YXNzZXJ0ZWQgIiA6CisJCSAgIGFzc2VydF9hZGogPyAiZGVhc3NlcnRlZCIgOiAiIiwKKwkJICAg ZW5hYmxlX2NoYW5nZWQgPT0gMSA/ICJlbmFibGVkICIgOgorCQkgICBlbmFibGVfY2hhbmdlZCA9 PSAtMSA/ICJkaXNhYmxlZCAiIDogIiIsCisJCSAgIHNvdXJjZS0+cGVuZGluZyA/ICJwZW5kaW5n IiA6ICIiKTsKKyNlbmRpZgorICB9Cit9CisKK2ludCBzaF9pbnRjX2dldF9wZW5kaW5nX3ZlY3Rv cihzdHJ1Y3QgaW50Y19kZXNjICpkZXNjLCBpbnQgaW1hc2spCit7CisgICAgdW5zaWduZWQgaW50 IGk7CisKKyAgICAvKiBzbG93OiB1c2UgYSBsaW5rZWQgbGlzdHMgb2YgcGVuZGluZyBzb3VyY2Vz IGluc3RlYWQgKi8KKyAgICAvKiB3cm9uZzogdGFrZSBpbnRlcnJ1cHQgcHJpb3JpdHkgaW50byBh Y2NvdW50IChvbmUgbGlzdCBwZXIgcHJpb3JpdHkpICovCisKKyAgICBpZiAoaW1hc2sgPT0gMHgw ZikgeworICAgICAgICByZXR1cm4gLTE7IC8qIEZJWE1FLCB1cGRhdGUgY29kZSB0byBpbmNsdWRl IHByaW9yaXR5IHBlciBzb3VyY2UgKi8KKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgZGVz Yy0+bnJfc291cmNlczsgaSsrKSB7CisgICAgICAgIHN0cnVjdCBpbnRjX3NvdXJjZSAqc291cmNl ID0gZGVzYy0+c291cmNlcyArIGk7CisKKwlpZiAoc291cmNlLT5wZW5kaW5nKSB7CisjaWZkZWYg REVCVUdfSU5UQ19TT1VSQ0VTCisgICAgICAgICAgICBwcmludGYoInNoX2ludGM6ICglZCkgcmV0 dXJuaW5nIGludGVycnVwdCBzb3VyY2UgMHgleFxuIiwKKwkJICAgZGVzYy0+cGVuZGluZywgc291 cmNlLT52ZWN0KTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS0+dmVjdDsKKwl9 CisgICAgfQorCisgICAgYXNzZXJ0KDApOworfQorCiAjZGVmaW5lIElOVENfTU9ERV9OT05FICAg ICAgIDAKICNkZWZpbmUgSU5UQ19NT0RFX0RVQUxfU0VUICAgMQogI2RlZmluZSBJTlRDX01PREVf RFVBTF9DTFIgICAyCkBAIC05NCw0MiArMTc1LDI0IEBAIHN0YXRpYyB2b2lkIHNoX2ludGNfbG9j YXRlKHN0cnVjdCBpbnRjX2QKICAgICBhc3NlcnQoMCk7CiB9CiAKLXN0YXRpYyB2b2lkIHNoX2lu dGNfdG9nZ2xlKHN0cnVjdCBpbnRjX2Rlc2MgKmRlc2MsIGludGNfZW51bSBpZCwKLQkJCSAgIGlu dCBlbmFibGUsIGludCBpc19ncm91cCkKK3N0YXRpYyB2b2lkIHNoX2ludGNfdG9nZ2xlX21hc2so c3RydWN0IGludGNfZGVzYyAqZGVzYywgaW50Y19lbnVtIGlkLAorCQkJCWludCBlbmFibGUsIGlu dCBpc19ncm91cCkKIHsKICAgICBzdHJ1Y3QgaW50Y19zb3VyY2UgKnNvdXJjZSA9IGRlc2MtPnNv dXJjZXMgKyBpZDsKLSAgICBpbnQgb2xkID0gc291cmNlLT5lbmFibGVfY291bnQ7CiAKICAgICBp ZiAoIWlkKQogCXJldHVybjsKIAogICAgIGlmICghc291cmNlLT5uZXh0X2VudW1faWQgJiYgKCFz b3VyY2UtPmVuYWJsZV9tYXggfHwgIXNvdXJjZS0+dmVjdCkpIHsKLSNpZmRlZiBERUJVR19JTlRD CisjaWZkZWYgREVCVUdfSU5UQ19TT1VSQ0VTCiAgICAgICAgIHByaW50Zigic2hfaW50YzogcmVz ZXJ2ZWQgaW50ZXJydXB0IHNvdXJjZSAlZCBtb2RpZmllZFxuIiwgaWQpOwogI2VuZGlmCiAJcmV0 dXJuOwogICAgIH0KIAotICAgIGlmIChzb3VyY2UtPnZlY3QpIHsKLSAgICAgICAgaWYgKGVuYWJs ZSkKLSAgICAgICAgICAgIHNvdXJjZS0+ZW5hYmxlX2NvdW50Kys7Ci0JZWxzZSAKLSAgICAgICAg ICAgIHNvdXJjZS0+ZW5hYmxlX2NvdW50LS07CisgICAgaWYgKHNvdXJjZS0+dmVjdCkKKyAgICAg ICAgc2hfaW50Y190b2dnbGVfc291cmNlKHNvdXJjZSwgZW5hYmxlID8gMSA6IC0xLCAwKTsKIAot ICAgICAgICBpZiAoc291cmNlLT5lbmFibGVfY291bnQgPT0gc291cmNlLT5lbmFibGVfbWF4KSB7 Ci0jaWZkZWYgREVCVUdfSU5UQwotICAgICAgICAgICAgcHJpbnRmKCJzaF9pbnRjOiBlbmFibGlu ZyBpbnRlcnJ1cHQgc291cmNlICVkIC0+IDB4JTA0eFxuIiwKLQkJICAgaWQsIHNvdXJjZS0+dmVj dCk7Ci0jZW5kaWYKLQl9Ci0KLSAgICAgICAgaWYgKG9sZCA9PSBzb3VyY2UtPmVuYWJsZV9tYXgp IHsKLSNpZmRlZiBERUJVR19JTlRDCi0gICAgICAgICAgICBwcmludGYoInNoX2ludGM6IGRpc2Fi bGluZyBpbnRlcnJ1cHQgc291cmNlICVkIC0+IDB4JTA0eFxuIiwKLQkJICAgaWQsIHNvdXJjZS0+ dmVjdCk7Ci0jZW5kaWYKLQl9Ci0gICAgfQogI2lmZGVmIERFQlVHX0lOVEMKICAgICBlbHNlIHsK ICAgICAgICAgcHJpbnRmKCJzZXR0aW5nIGludGVycnVwdCBncm91cCAlZCB0byAlZFxuIiwgaWQs ICEhZW5hYmxlKTsKQEAgLTEzNyw3ICsyMDAsNyBAQCBzdGF0aWMgdm9pZCBzaF9pbnRjX3RvZ2ds ZShzdHJ1Y3QgaW50Y19kCiAjZW5kaWYKIAogICAgIGlmICgoaXNfZ3JvdXAgfHwgIXNvdXJjZS0+ dmVjdCkgJiYgc291cmNlLT5uZXh0X2VudW1faWQpIHsKLSAgICAgICAgc2hfaW50Y190b2dnbGUo ZGVzYywgc291cmNlLT5uZXh0X2VudW1faWQsIGVuYWJsZSwgMSk7CisgICAgICAgIHNoX2ludGNf dG9nZ2xlX21hc2soZGVzYywgc291cmNlLT5uZXh0X2VudW1faWQsIGVuYWJsZSwgMSk7CiAgICAg fQogCiAjaWZkZWYgREVCVUdfSU5UQwpAQCAtMjAwLDcgKzI2Myw3IEBAIHN0YXRpYyB2b2lkIHNo X2ludGNfd3JpdGUodm9pZCAqb3BhcXVlLCAKIAlwcmludGYoImsgPSAlZCwgZmlyc3QgPSAlZCwg ZW51bSA9ICVkLCBtYXNrID0gMHglMDh4XG4iLCAKIAkgICAgICAgaywgZmlyc3QsIGVudW1faWRz W2tdLCAodW5zaWduZWQgaW50KW1hc2spOwogI2VuZGlmCi0gICAgICAgIHNoX2ludGNfdG9nZ2xl KGRlc2MsIGVudW1faWRzW2tdLCB2YWx1ZSAmIG1hc2ssIDApOworICAgICAgICBzaF9pbnRjX3Rv Z2dsZV9tYXNrKGRlc2MsIGVudW1faWRzW2tdLCB2YWx1ZSAmIG1hc2ssIDApOwogICAgIH0KIAog ICAgICp2YWx1ZXAgPSB2YWx1ZTsKQEAgLTMwOSw3ICszNzIsNyBAQCB2b2lkIHNoX2ludGNfcmVn aXN0ZXJfc291cmNlcyhzdHJ1Y3QgaW50CiAJaWYgKHMpCiAJICAgIHMtPnZlY3QgPSB2ZWN0LT52 ZWN0OwogCi0jaWZkZWYgREVCVUdfSU5UQworI2lmZGVmIERFQlVHX0lOVENfU09VUkNFUwogCXBy aW50Zigic2hfaW50YzogcmVnaXN0ZXJlZCBzb3VyY2UgJWQgLT4gMHglMDR4ICglZC8lZClcbiIs CiAJICAgICAgIHZlY3QtPmVudW1faWQsIHMtPnZlY3QsIHMtPmVuYWJsZV9jb3VudCwgcy0+ZW5h YmxlX21heCk7CiAjZW5kaWYKQEAgLTMzMCw3ICszOTMsNyBAQCB2b2lkIHNoX2ludGNfcmVnaXN0 ZXJfc291cmNlcyhzdHJ1Y3QgaW50CiAJCXMtPm5leHRfZW51bV9pZCA9IGdyLT5lbnVtX2lkc1tr XTsKIAkgICAgfQogCi0jaWZkZWYgREVCVUdfSU5UQworI2lmZGVmIERFQlVHX0lOVENfU09VUkNF UwogCSAgICBwcmludGYoInNoX2ludGM6IHJlZ2lzdGVyZWQgZ3JvdXAgJWQgKCVkLyVkKVxuIiwK IAkJICAgZ3ItPmVudW1faWQsIHMtPmVuYWJsZV9jb3VudCwgcy0+ZW5hYmxlX21heCk7CiAjZW5k aWYKQEAgLTM0Nyw2ICs0MTAsNyBAQCBpbnQgc2hfaW50Y19pbml0KHN0cnVjdCBpbnRjX2Rlc2Mg KmRlc2MsCiB7CiAgICAgdW5zaWduZWQgaW50IGk7CiAKKyAgICBkZXNjLT5wZW5kaW5nID0gMDsK ICAgICBkZXNjLT5ucl9zb3VyY2VzID0gbnJfc291cmNlczsKICAgICBkZXNjLT5tYXNrX3JlZ3Mg PSBtYXNrX3JlZ3M7CiAgICAgZGVzYy0+bnJfbWFza19yZWdzID0gbnJfbWFza19yZWdzOwpAQCAt MzU5LDYgKzQyMywxMSBAQCBpbnQgc2hfaW50Y19pbml0KHN0cnVjdCBpbnRjX2Rlc2MgKmRlc2Ms CiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIG1lbXNldChkZXNjLT5zb3VyY2VzLCAwLCBpKTsK KyAgICBmb3IgKGkgPSAwOyBpIDwgZGVzYy0+bnJfc291cmNlczsgaSsrKSB7CisgICAgICAgIHN0 cnVjdCBpbnRjX3NvdXJjZSAqc291cmNlID0gZGVzYy0+c291cmNlcyArIGk7CisKKyAgICAgICAg c291cmNlLT5wYXJlbnQgPSBkZXNjOworICAgIH0KICAKICAgICBkZXNjLT5pb21lbXR5cGUgPSBj cHVfcmVnaXN0ZXJfaW9fbWVtb3J5KDAsIHNoX2ludGNfcmVhZGZuLAogCQkJCQkgICAgIHNoX2lu dGNfd3JpdGVmbiwgZGVzYyk7Ci0tLSAwMDAxL2h3L3NoX2ludGMuaAorKysgd29yay9ody9zaF9p bnRjLmgJMjAwNy0xMS0yOSAxNzoxMjowOC4wMDAwMDAwMDAgKzA5MDAKQEAgLTM1LDkgKzM1LDEx IEBAIHN0cnVjdCBpbnRjX3NvdXJjZSB7CiAgICAgdW5zaWduZWQgc2hvcnQgdmVjdDsKICAgICBp bnRjX2VudW0gbmV4dF9lbnVtX2lkOwogCi0gICAgaW50IGFzc2VydGVkOworICAgIGludCBhc3Nl cnRlZDsgLyogZW11bGF0ZXMgdGhlIGludGVycnVwdCBzaWduYWwgbGluZSBmcm9tIGRldmljZSB0 byBpbnRjICovCiAgICAgaW50IGVuYWJsZV9jb3VudDsKICAgICBpbnQgZW5hYmxlX21heDsKKyAg ICBpbnQgcGVuZGluZzsgLyogZW11bGF0ZXMgdGhlIHJlc3VsdCBvZiBzaWduYWwgYW5kIG1hc2tp bmcgKi8KKyAgICBzdHJ1Y3QgaW50Y19kZXNjICpwYXJlbnQ7CiB9OwogCiBzdHJ1Y3QgaW50Y19k ZXNjIHsKQEAgLTQ5LDkgKzUxLDEzIEBAIHN0cnVjdCBpbnRjX2Rlc2MgewogICAgIGludCBucl9w cmlvX3JlZ3M7CiAKICAgICBpbnQgaW9tZW10eXBlOworICAgIGludCBwZW5kaW5nOyAvKiBudW1i ZXIgb2YgaW50ZXJydXB0IHNvdXJjZXMgdGhhdCBoYXMgcGVuZGluZyBzZXQgKi8KIH07CiAKK2lu dCBzaF9pbnRjX2dldF9wZW5kaW5nX3ZlY3RvcihzdHJ1Y3QgaW50Y19kZXNjICpkZXNjLCBpbnQg aW1hc2spOwogc3RydWN0IGludGNfc291cmNlICpzaF9pbnRjX3NvdXJjZShzdHJ1Y3QgaW50Y19k ZXNjICpkZXNjLCBpbnRjX2VudW0gaWQpOwordm9pZCBzaF9pbnRjX3RvZ2dsZV9zb3VyY2Uoc3Ry dWN0IGludGNfc291cmNlICpzb3VyY2UsCisJCQkgICBpbnQgZW5hYmxlX2FkaiwgaW50IGFzc2Vy dF9hZGopOwogCiB2b2lkIHNoX2ludGNfcmVnaXN0ZXJfc291cmNlcyhzdHJ1Y3QgaW50Y19kZXNj ICpkZXNjLAogCQkJICAgICAgc3RydWN0IGludGNfdmVjdCAqdmVjdG9ycywKLS0tIDAwMDIvdGFy Z2V0LXNoNC9jcHUuaAorKysgd29yay90YXJnZXQtc2g0L2NwdS5oCTIwMDctMTEtMjggMjE6MjQ6 MDYuMDAwMDAwMDAwICswOTAwCkBAIC0xMjEsNiArMTIxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ1BV U0g0U3RhdGUgewogICAgIGludCBleGNlcHRpb25faW5kZXg7CiAgICAgIENQVV9DT01NT04gdGxi X3QgdXRsYltVVExCX1NJWkVdOwkvKiB1bmlmaWVkIHRyYW5zbGF0aW9uIHRhYmxlICovCiAgICAg dGxiX3QgaXRsYltJVExCX1NJWkVdOwkvKiBpbnN0cnVjdGlvbiB0cmFuc2xhdGlvbiB0YWJsZSAq LworICAgIHZvaWQgKmludGNfaGFuZGxlOwogfSBDUFVTSDRTdGF0ZTsKIAogQ1BVU0g0U3RhdGUg KmNwdV9zaDRfaW5pdChjb25zdCBjaGFyICpjcHVfbW9kZWwpOwotLS0gMDAwMy90YXJnZXQtc2g0 L2hlbHBlci5jCisrKyB3b3JrL3RhcmdldC1zaDQvaGVscGVyLmMJMjAwNy0xMS0yOSAxNzozMzow MS4wMDAwMDAwMDAgKzA5MDAKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgImNwdS5oIgog I2luY2x1ZGUgImV4ZWMtYWxsLmgiCisjaW5jbHVkZSAiaHcvc2hfaW50Yy5oIgogCiAjaWYgZGVm aW5lZChDT05GSUdfVVNFUl9PTkxZKQogCkBAIC03NCw2ICs3NSwzMSBAQCB0YXJnZXRfcGh5c19h ZGRyX3QgY3B1X2dldF9waHlzX3BhZ2VfZGViCiAKIHZvaWQgZG9faW50ZXJydXB0KENQVVN0YXRl ICogZW52KQogeworICAgIGludCBkb19pcnEgPSBlbnYtPmludGVycnVwdF9yZXF1ZXN0ICYgQ1BV X0lOVEVSUlVQVF9IQVJEOworICAgIGludCBkb19leHAsIGlycV92ZWN0b3IgPSBlbnYtPmV4Y2Vw dGlvbl9pbmRleDsKKworICAgIC8qIHByaW9yaXRpemUgZXhjZXB0aW9ucyBvdmVyIGludGVycnVw dHMgKi8KKworICAgIGRvX2V4cCA9IGVudi0+ZXhjZXB0aW9uX2luZGV4ICE9IC0xOworICAgIGRv X2lycSA9IGRvX2lycSAmJiAoZW52LT5leGNlcHRpb25faW5kZXggPT0gLTEpOworCisgICAgaWYg KGVudi0+c3IgJiBTUl9CTCkgeworICAgICAgICBpZiAoZG9fZXhwICYmIGVudi0+ZXhjZXB0aW9u X2luZGV4ICE9IDB4MWUwKSB7CisgICAgICAgICAgICBlbnYtPmV4Y2VwdGlvbl9pbmRleCA9IDB4 MDAwOyAvKiBtYXNrZWQgZXhjZXB0aW9uIC0+IHJlc2V0ICovCisgICAgICAgIH0KKyAgICAgICAg aWYgKGRvX2lycSkgeworICAgICAgICAgICAgcmV0dXJuOyAvKiBtYXNrZWQgKi8KKyAgICAgICAg fQorICAgIH0KKworICAgIGlmIChkb19pcnEpIHsKKyAgICAgICAgaXJxX3ZlY3RvciA9IHNoX2lu dGNfZ2V0X3BlbmRpbmdfdmVjdG9yKGVudi0+aW50Y19oYW5kbGUsCisJCQkJCQkoZW52LT5zciA+ PiA0KSAmIDB4Zik7CisgICAgICAgIGlmIChpcnFfdmVjdG9yID09IC0xKSB7CisgICAgICAgICAg ICByZXR1cm47IC8qIG1hc2tlZCAqLworCX0KKyAgICB9CisKICAgICBpZiAobG9nbGV2ZWwgJiBD UFVfTE9HX0lOVCkgewogCWNvbnN0IGNoYXIgKmV4cG5hbWU7CiAJc3dpdGNoIChlbnYtPmV4Y2Vw dGlvbl9pbmRleCkgewpAQCAtMTE3LDMyICsxNDMsNDcgQEAgdm9pZCBkb19pbnRlcnJ1cHQoQ1BV U3RhdGUgKiBlbnYpCiAJICAgIGV4cG5hbWUgPSAidHJhcGEiOwogCSAgICBicmVhazsKIAlkZWZh dWx0OgotCSAgICBleHBuYW1lID0gIj8/PyI7Ci0JICAgIGJyZWFrOworICAgICAgICAgICAgZXhw bmFtZSA9IGRvX2lycSA/ICJpbnRlcnJ1cHQiIDogIj8/PyI7CisgICAgICAgICAgICBicmVhazsK IAl9CiAJZnByaW50Zihsb2dmaWxlLCAiZXhjZXB0aW9uIDB4JTAzeCBbJXNdIHJhaXNlZFxuIiwK LQkJZW52LT5leGNlcHRpb25faW5kZXgsIGV4cG5hbWUpOworCQlpcnFfdmVjdG9yLCBleHBuYW1l KTsKIAljcHVfZHVtcF9zdGF0ZShlbnYsIGxvZ2ZpbGUsIGZwcmludGYsIDApOwogICAgIH0KIAog ICAgIGVudi0+c3NyID0gZW52LT5zcjsKLSAgICBlbnYtPnNwYyA9IGVudi0+c3BjOworICAgIGVu di0+c3BjID0gZW52LT5wYzsKICAgICBlbnYtPnNnciA9IGVudi0+Z3JlZ3NbMTVdOwogICAgIGVu di0+c3IgfD0gU1JfQkwgfCBTUl9NRCB8IFNSX1JCOwogCi0gICAgZW52LT5leHBldnQgPSBlbnYt PmV4Y2VwdGlvbl9pbmRleCAmIDB4N2ZmOwotICAgIHN3aXRjaCAoZW52LT5leGNlcHRpb25faW5k ZXgpIHsKLSAgICBjYXNlIDB4MDQwOgotICAgIGNhc2UgMHgwNjA6Ci0gICAgY2FzZSAweDA4MDoK LQllbnYtPnBjID0gZW52LT52YnIgKyAweDQwMDsKLQlicmVhazsKLSAgICBjYXNlIDB4MTQwOgot CWVudi0+cGMgPSAweGEwMDAwMDAwOwotCWJyZWFrOwotICAgIGRlZmF1bHQ6Ci0JZW52LT5wYyA9 IGVudi0+dmJyICsgMHgxMDA7Ci0JYnJlYWs7CisgICAgaWYgKGRvX2V4cCkgeworICAgICAgICBl bnYtPmV4cGV2dCA9IGVudi0+ZXhjZXB0aW9uX2luZGV4OworICAgICAgICBzd2l0Y2ggKGVudi0+ ZXhjZXB0aW9uX2luZGV4KSB7CisgICAgICAgIGNhc2UgMHgwMDA6CisgICAgICAgIGNhc2UgMHgw MjA6CisgICAgICAgIGNhc2UgMHgxNDA6CisgICAgICAgICAgICBlbnYtPnNyICY9IH5TUl9GRDsK KyAgICAgICAgICAgIGVudi0+c3IgfD0gMHhmIDw8IDQ7IC8qIElNQVNLICovCisgICAgICAgICAg ICBlbnYtPnBjID0gMHhhMDAwMDAwMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl IDB4MDQwOgorICAgICAgICBjYXNlIDB4MDYwOgorICAgICAgICAgICAgZW52LT5wYyA9IGVudi0+ dmJyICsgMHg0MDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAweDE2MDoKKyAg ICAgICAgICAgIGVudi0+c3BjICs9IDI7IC8qIHNwZWNpYWwgY2FzZSBmb3IgVFJBUEEgKi8KKyAg ICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg ICAgZW52LT5wYyA9IGVudi0+dmJyICsgMHgxMDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGRvX2lycSkgeworICAgICAg ICBlbnYtPmludGV2dCA9IGlycV92ZWN0b3I7CisgICAgICAgIGVudi0+cGMgPSBlbnYtPnZiciAr IDB4NjAwOworICAgICAgICByZXR1cm47CiAgICAgfQogfQogCi0tLSAwMDAyL3RhcmdldC1zaDQv b3AuYworKysgd29yay90YXJnZXQtc2g0L29wLmMJMjAwNy0xMS0yOSAxNjo1NToyNC4wMDAwMDAw MDAgKzA5MDAKQEAgLTQxOSw3ICs0MTksNyBAQCB2b2lkIE9QUFJPVE8gb3Bfc3Vidl9UMF9UMSh2 b2lkKQogCiB2b2lkIE9QUFJPVE8gb3BfdHJhcGEodm9pZCkKIHsKLSAgICBlbnYtPnRyYSA9IFBB UkFNMSAqIDI7CisgICAgZW52LT50cmEgPSBQQVJBTTEgPDwgMjsKICAgICBlbnYtPmV4Y2VwdGlv bl9pbmRleCA9IDB4MTYwOwogICAgIGRvX3JhaXNlX2V4Y2VwdGlvbigpOwogICAgIFJFVFVSTigp Owo= ------=_Part_698_14904222.1196334367905--