Date: Thu, 11 Feb 2016 06:09:47 +0000 From: "adrian (Adrian Chadd)" <phabric-noreply@FreeBSD.org> To: freebsd-mips@freebsd.org Subject: [Differential] [Closed] D5182: Introduce INTRNG support for MIPS Message-ID: <f56d769a51baf850341563093f070ad1@localhost.localdomain> In-Reply-To: <differential-rev-PHID-DREV-muscnzpiloxhx7x5i5tj-req@FreeBSD.org> References: <differential-rev-PHID-DREV-muscnzpiloxhx7x5i5tj-req@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--b1_f56d769a51baf850341563093f070ad1 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit This revision was automatically updated to reflect the committed changes. Closed by commit rS295498: Begin the MIPS_INTRNG support. (authored by adrian). CHANGED PRIOR TO COMMIT https://reviews.freebsd.org/D5182?vs=13172&id=13204#toc REPOSITORY rS FreeBSD src repository CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D5182?vs=13172&id=13204 REVISION DETAIL https://reviews.freebsd.org/D5182 AFFECTED FILES head/sys/mips/include/intr.h head/sys/mips/include/smp.h head/sys/mips/mips/exception.S head/sys/mips/mips/mips_pic.c head/sys/mips/mips/nexus.c EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: Sgalabov_gmail.com, MIPS, adrian, kan Cc: emaste, skra, imp, freebsd-mips-list --b1_f56d769a51baf850341563093f070ad1 Content-Type: text/x-patch; charset=utf-8; name="D5182.13204.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D5182.13204.patch" ZGlmZiAtLWdpdCBhL2hlYWQvc3lzL21pcHMvbWlwcy9uZXh1cy5jIGIvaGVhZC9zeXMvbWlwcy9t aXBzL25leHVzLmMKLS0tIGEvaGVhZC9zeXMvbWlwcy9taXBzL25leHVzLmMKKysrIGIvaGVhZC9z eXMvbWlwcy9taXBzL25leHVzLmMKQEAgLTM2LDYgKzM2LDcgQEAKICAqIHRoaXMgY29kZSBpbXBs ZW1lbnRzIHRoZSBjb3JlIHJlc291cmNlIG1hbmFnZXJzIGZvciBpbnRlcnJ1cHQKICAqIHJlcXVl c3RzIGFuZCBtZW1vcnkgYWRkcmVzcyBzcGFjZS4KICAqLworI2luY2x1ZGUgIm9wdF9wbGF0Zm9y bS5oIgogCiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CiBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7CkBA IC01MywxMyArNTQsMjMgQEAKICNpbmNsdWRlIDx2bS9wbWFwLmg+CiAKICNpbmNsdWRlIDxtYWNo aW5lL2J1cy5oPgotI2luY2x1ZGUgPG1hY2hpbmUvaW50cl9tYWNoZGVwLmg+CiAjaW5jbHVkZSA8 bWFjaGluZS9wbWFwLmg+CiAjaW5jbHVkZSA8bWFjaGluZS9yZXNvdXJjZS5oPgogI2luY2x1ZGUg PG1hY2hpbmUvdm1wYXJhbS5oPgogCisjaWZkZWYgTUlQU19JTlRSTkcKKyNpbmNsdWRlIDxtYWNo aW5lL2ludHIuaD4KKyNlbHNlCisjaW5jbHVkZSA8bWFjaGluZS9pbnRyX21hY2hkZXAuaD4KKyNl bmRpZgorCiAjaW5jbHVkZSAib3B0X3BsYXRmb3JtLmgiCiAKKyNpZmRlZiBGRFQKKyNpbmNsdWRl IDxtYWNoaW5lL2ZkdC5oPgorI2luY2x1ZGUgIm9md19idXNfaWYuaCIKKyNlbmRpZgorCiAjdW5k ZWYgTkVYVVNfREVCVUcKICNpZmRlZiBORVhVU19ERUJVRwogI2RlZmluZSBkcHJpbnRmIHByaW50 ZgpAQCAtMTA3LDYgKzExOCwxOSBAQAogCQkgICAgZHJpdmVyX2ludHJfdCAqaW50ciwgdm9pZCAq YXJnLCB2b2lkICoqY29va2llcCk7CiBzdGF0aWMgaW50CW5leHVzX3RlYXJkb3duX2ludHIoZGV2 aWNlX3QsIGRldmljZV90LCBzdHJ1Y3QgcmVzb3VyY2UgKiwKIAkJICAgIHZvaWQgKik7CisjaWZk ZWYgTUlQU19JTlRSTkcKKyNpZmRlZiBTTVAKK3N0YXRpYyBpbnQJbmV4dXNfYmluZF9pbnRyKGRl dmljZV90LCBkZXZpY2VfdCwgc3RydWN0IHJlc291cmNlICosIGludCk7CisjZW5kaWYKKyNpZmRl ZiBGRFQKK3N0YXRpYyBpbnQJbmV4dXNfb2Z3X21hcF9pbnRyKGRldmljZV90IGRldiwgZGV2aWNl X3QgY2hpbGQsCisJCSAgICBwaGFuZGxlX3QgaXBhcmVudCwgaW50IGljZWxscywgcGNlbGxfdCAq aW50cik7CisjZW5kaWYKK3N0YXRpYyBpbnQJbmV4dXNfZGVzY3JpYmVfaW50cihkZXZpY2VfdCBk ZXYsIGRldmljZV90IGNoaWxkLAorCQkgICAgc3RydWN0IHJlc291cmNlICppcnEsIHZvaWQgKmNv b2tpZSwgY29uc3QgY2hhciAqZGVzY3IpOworc3RhdGljIGludAluZXh1c19jb25maWdfaW50cihk ZXZpY2VfdCBkZXYsIGludCBpcnEsIGVudW0gaW50cl90cmlnZ2VyIHRyaWcsCisJCSAgICBlbnVt IGludHJfcG9sYXJpdHkgcG9sKTsKKyNlbmRpZgogCiBzdGF0aWMgZGV2aWNlX21ldGhvZF90IG5l eHVzX21ldGhvZHNbXSA9IHsKIAkvKiBEZXZpY2UgaW50ZXJmYWNlICovCkBAIC0xMjcsNiArMTUx LDE2IEBACiAJREVWTUVUSE9EKGJ1c19hY3RpdmF0ZV9yZXNvdXJjZSxuZXh1c19hY3RpdmF0ZV9y ZXNvdXJjZSksCiAJREVWTUVUSE9EKGJ1c19kZWFjdGl2YXRlX3Jlc291cmNlLAluZXh1c19kZWFj dGl2YXRlX3Jlc291cmNlKSwKIAlERVZNRVRIT0QoYnVzX2hpbnRlZF9jaGlsZCwJbmV4dXNfaGlu dGVkX2NoaWxkKSwKKyNpZmRlZiBNSVBTX0lOVFJORworCURFVk1FVEhPRChidXNfY29uZmlnX2lu dHIsCW5leHVzX2NvbmZpZ19pbnRyKSwKKwlERVZNRVRIT0QoYnVzX2Rlc2NyaWJlX2ludHIsCW5l eHVzX2Rlc2NyaWJlX2ludHIpLAorI2lmZGVmIFNNUAorCURFVk1FVEhPRChidXNfYmluZF9pbnRy LAluZXh1c19iaW5kX2ludHIpLAorI2VuZGlmCisjaWZkZWYgRkRUCisJREVWTUVUSE9EKG9md19i dXNfbWFwX2ludHIsCW5leHVzX29md19tYXBfaW50ciksCisjZW5kaWYKKyNlbmRpZgogCiAJeyAw LCAwIH0KIH07CkBAIC00MTYsOSArNDUwLDE2IEBACiBuZXh1c19zZXR1cF9pbnRyKGRldmljZV90 IGRldiwgZGV2aWNlX3QgY2hpbGQsIHN0cnVjdCByZXNvdXJjZSAqcmVzLCBpbnQgZmxhZ3MsCiAg ICAgZHJpdmVyX2ZpbHRlcl90ICpmaWx0LCBkcml2ZXJfaW50cl90ICppbnRyLCB2b2lkICphcmcs IHZvaWQgKipjb29raWVwKQogewotCXJlZ2lzdGVyX3QgczsKIAlpbnQgaXJxOwogCisjaWZkZWYg TUlQU19JTlRSTkcKKwlmb3IgKGlycSA9IHJtYW5fZ2V0X3N0YXJ0KHJlcyk7IGlycSA8PSBybWFu X2dldF9lbmQocmVzKTsgaXJxKyspIHsKKwkJaW50cl9pcnFfYWRkX2hhbmRsZXIoY2hpbGQsIGZp bHQsIGludHIsIGFyZywgaXJxLCBmbGFncywKKwkJICAgIGNvb2tpZXApOworCX0KKyNlbHNlCisJ cmVnaXN0ZXJfdCBzOworCiAJcyA9IGludHJfZGlzYWJsZSgpOwogCWlycSA9IHJtYW5fZ2V0X3N0 YXJ0KHJlcyk7CiAJaWYgKGlycSA+PSBOVU1fTUlQU19JUlFTKSB7CkBAIC00MjksMTYgKzQ3MCw1 OCBAQAogCWNwdV9lc3RhYmxpc2hfaGFyZGludHIoZGV2aWNlX2dldF9uYW1ldW5pdChjaGlsZCks IGZpbHQsIGludHIsIGFyZywKIAkgICAgaXJxLCBmbGFncywgY29va2llcCk7CiAJaW50cl9yZXN0 b3JlKHMpOworI2VuZGlmCiAJcmV0dXJuICgwKTsKIH0KIAogc3RhdGljIGludAogbmV4dXNfdGVh cmRvd25faW50cihkZXZpY2VfdCBkZXYsIGRldmljZV90IGNoaWxkLCBzdHJ1Y3QgcmVzb3VyY2Ug KnIsIHZvaWQgKmloKQogewogCisjaWZkZWYgTUlQU19JTlRSTkcKKwlyZXR1cm4gKGludHJfaXJx X3JlbW92ZV9oYW5kbGVyKGNoaWxkLCBybWFuX2dldF9zdGFydChyKSwgaWgpKTsKKyNlbHNlCiAJ cHJpbnRmKCJVbmltcGxlbWVudGVkICVzIGF0ICVzOiVkXG4iLCBfX2Z1bmNfXywgX19GSUxFX18s IF9fTElORV9fKTsKIAlyZXR1cm4gKDApOworI2VuZGlmCit9CisKKyNpZmRlZiBNSVBTX0lOVFJO Rworc3RhdGljIGludAorbmV4dXNfY29uZmlnX2ludHIoZGV2aWNlX3QgZGV2LCBpbnQgaXJxLCBl bnVtIGludHJfdHJpZ2dlciB0cmlnLAorICAgIGVudW0gaW50cl9wb2xhcml0eSBwb2wpCit7CisK KwlyZXR1cm4gKGludHJfaXJxX2NvbmZpZyhpcnEsIHRyaWcsIHBvbCkpOworfQorCitzdGF0aWMg aW50CituZXh1c19kZXNjcmliZV9pbnRyKGRldmljZV90IGRldiwgZGV2aWNlX3QgY2hpbGQsIHN0 cnVjdCByZXNvdXJjZSAqaXJxLAorICAgIHZvaWQgKmNvb2tpZSwgY29uc3QgY2hhciAqZGVzY3Ip Cit7CisKKwlyZXR1cm4gKGludHJfaXJxX2Rlc2NyaWJlKHJtYW5fZ2V0X3N0YXJ0KGlycSksIGNv b2tpZSwgZGVzY3IpKTsKK30KKworI2lmZGVmIFNNUAorc3RhdGljIGludAorbmV4dXNfYmluZF9p bnRyKGRldmljZV90IGRldiwgZGV2aWNlX3QgY2hpbGQsIHN0cnVjdCByZXNvdXJjZSAqaXJxLCBp bnQgY3B1KQoreworCisJcmV0dXJuIChpbnRyX2lycV9iaW5kKHJtYW5fZ2V0X3N0YXJ0KGlycSks IGNwdSkpOworfQorI2VuZGlmCisKKyNpZmRlZiBGRFQKK3N0YXRpYyBpbnQKK25leHVzX29md19t YXBfaW50cihkZXZpY2VfdCBkZXYsIGRldmljZV90IGNoaWxkLCBwaGFuZGxlX3QgaXBhcmVudCwg aW50IGljZWxscywKKyAgICBwY2VsbF90ICppbnRyKQoreworCisJcmV0dXJuIChpbnRyX2ZkdF9t YXBfaXJxKGlwYXJlbnQsIGludHIsIGljZWxscykpOwogfQorI2VuZGlmCisjZW5kaWYgLyogTUlQ U19JTlRSTkcgKi8KIAogc3RhdGljIHZvaWQKIG5leHVzX2hpbnRlZF9jaGlsZChkZXZpY2VfdCBi dXMsIGNvbnN0IGNoYXIgKmRuYW1lLCBpbnQgZHVuaXQpCmRpZmYgLS1naXQgYS9oZWFkL3N5cy9t aXBzL21pcHMvbWlwc19waWMuYyBiL2hlYWQvc3lzL21pcHMvbWlwcy9taXBzX3BpYy5jCi0tLSBh L2hlYWQvc3lzL21pcHMvbWlwcy9taXBzX3BpYy5jCisrKyBiL2hlYWQvc3lzL21pcHMvbWlwcy9t aXBzX3BpYy5jCkBAIC0wLDAgKzEsNTEyIEBACisvKi0KKyAqIENvcHlyaWdodCAoYykgMjAxNSBB bGV4YW5kZXIgS2FiYWV2CisgKiBDb3B5cmlnaHQgKGMpIDIwMDYgT2xla3NhbmRyIFR5bW9zaGVu a28KKyAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0IEp1bGkgTWFsbGV0dCA8am1hbGxldHRARnJl ZUJTRC5vcmc+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs aXN0IG9mIGNvbmRpdGlvbnMsIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIsCisgKiAgICB3 aXRob3V0IG1vZGlmaWNhdGlvbiwgaW1tZWRpYXRlbHkgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUg ZmlsZS4KKyAqIDIuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVu ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdh cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBB UyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJF IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JT IEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywg QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBP UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO VEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQg KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisg KiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF IFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUgPHN5 cy9jZGVmcy5oPgorX19GQlNESUQoIiRGcmVlQlNEJCIpOworCisjaW5jbHVkZSAib3B0X3BsYXRm b3JtLmgiCisjaW5jbHVkZSAib3B0X2h3cG1jX2hvb2tzLmgiCisKKyNpbmNsdWRlIDxzeXMvcGFy YW0uaD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKyNpbmNsdWRlIDxzeXMvYnVzLmg+CisjaW5j bHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5cy9rdHIuaD4KKyNpbmNsdWRlIDxzeXMv bW9kdWxlLmg+CisjaW5jbHVkZSA8c3lzL21hbGxvYy5oPgorI2luY2x1ZGUgPHN5cy9ybWFuLmg+ CisjaW5jbHVkZSA8c3lzL3BjcHUuaD4KKyNpbmNsdWRlIDxzeXMvcHJvYy5oPgorI2luY2x1ZGUg PHN5cy9jcHVzZXQuaD4KKyNpbmNsdWRlIDxzeXMvbG9jay5oPgorI2luY2x1ZGUgPHN5cy9tdXRl eC5oPgorI2luY2x1ZGUgPHN5cy9zbXAuaD4KKyNpbmNsdWRlIDxzeXMvc2NoZWQuaD4KKworI2lu Y2x1ZGUgPG1hY2hpbmUvYnVzLmg+CisjaW5jbHVkZSA8bWFjaGluZS9od2Z1bmMuaD4KKyNpbmNs dWRlIDxtYWNoaW5lL2ludHIuaD4KKyNpbmNsdWRlIDxtYWNoaW5lL3NtcC5oPgorCisjaWZkZWYg RkRUCisjaW5jbHVkZSA8ZGV2L2ZkdC9mZHRfY29tbW9uLmg+CisjaW5jbHVkZSA8ZGV2L29mdy9v cGVuZmlybS5oPgorI2luY2x1ZGUgPGRldi9vZncvb2Z3X2J1cy5oPgorI2luY2x1ZGUgPGRldi9v Zncvb2Z3X2J1c19zdWJyLmg+CisjZW5kaWYKKworI2luY2x1ZGUgInBpY19pZi5oIgorCisjZGVm aW5lIE5IQVJEX0lSUVMJNgorI2RlZmluZSBOU09GVF9JUlFTCTIKKyNkZWZpbmUgTlJFQUxfSVJR UwkoTkhBUkRfSVJRUyArIE5TT0ZUX0lSUVMpCisKK3N0YXRpYyBpbnQgbWlwc19waWNfaW50cih2 b2lkICopOworCitzdHJ1Y3QgbWlwc19waWNfc29mdGMgeworCWRldmljZV90CQlwaWNfZGV2Owor CXN0cnVjdCBpbnRyX2lycXNyYyAqCXBpY19pcnFzW05SRUFMX0lSUVNdOworCXN0cnVjdCBtdHgJ CW11dGV4OworCXVpbnQzMl90CQluaXJxczsKK307CisKK3N0YXRpYyBzdHJ1Y3QgbWlwc19waWNf c29mdGMgKnBpY19zYzsKKworI2lmZGVmIEZEVAorc3RhdGljIHN0cnVjdCBvZndfY29tcGF0X2Rh dGEgY29tcGF0X2RhdGFbXSA9IHsKKwl7Im10aSxjcHUtaW50ZXJydXB0LWNvbnRyb2xsZXIiLAl0 cnVlfSwKKwl7TlVMTCwJCQkJCWZhbHNlfQorfTsKKyNlbmRpZgorCisjaWZuZGVmIEZEVAorc3Rh dGljIHZvaWQKK21pcHNfcGljX2lkZW50aWZ5KGRyaXZlcl90ICpkcnYsIGRldmljZV90IHBhcmVu dCkKK3sKKworCUJVU19BRERfQ0hJTEQocGFyZW50LCAwLCAiY3B1cGljIiwgMCk7Cit9CisjZW5k aWYKKworc3RhdGljIGludAorbWlwc19waWNfcHJvYmUoZGV2aWNlX3QgZGV2KQoreworCisjaWZk ZWYgRkRUCisJaWYgKCFvZndfYnVzX3N0YXR1c19va2F5KGRldikpCisJCXJldHVybiAoRU5YSU8p OworCisJaWYgKCFvZndfYnVzX3NlYXJjaF9jb21wYXRpYmxlKGRldiwgY29tcGF0X2RhdGEpLT5v Y2RfZGF0YSkKKwkJcmV0dXJuIChFTlhJTyk7CisjZW5kaWYKKwlkZXZpY2Vfc2V0X2Rlc2MoZGV2 LCAiTUlQUzMyIEludGVycnVwdCBDb250cm9sbGVyIik7CisJcmV0dXJuIChCVVNfUFJPQkVfREVG QVVMVCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorcGljX2lycV91bm1hc2soc3RydWN0IG1p cHNfcGljX3NvZnRjICpzYywgdV9pbnQgaXJxKQoreworCisJbWlwc193cl9zdGF0dXMobWlwc19y ZF9zdGF0dXMoKSB8ICgoMSA8PCBpcnEpIDw8IDgpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lk CitwaWNfaXJxX21hc2soc3RydWN0IG1pcHNfcGljX3NvZnRjICpzYywgdV9pbnQgaXJxKQorewor CisJbWlwc193cl9zdGF0dXMobWlwc19yZF9zdGF0dXMoKSAmIH4oKDEgPDwgaXJxKSA8PCA4KSk7 Cit9CisKKyNpZmRlZiBTTVAKK3N0YXRpYyB2b2lkCittaXBzX3BpY19pbml0X3NlY29uZGFyeShk ZXZpY2VfdCBkZXYpCit7Cit9CisjZW5kaWYgLyogU01QICovCisKK3N0YXRpYyBpbmxpbmUgaW50 cHRyX3QKK3BpY194cmVmKGRldmljZV90IGRldikKK3sKKyNpZmRlZiBGRFQKKwlyZXR1cm4gKE9G X3hyZWZfZnJvbV9ub2RlKG9md19idXNfZ2V0X25vZGUoZGV2KSkpOworI2Vsc2UKKwlyZXR1cm4g KDApOworI2VuZGlmCit9CisKK3N0YXRpYyBpbnQKK21pcHNfcGljX2F0dGFjaChkZXZpY2VfdCBk ZXYpCit7CisJc3RydWN0CQltaXBzX3BpY19zb2Z0YyAqc2M7CisJaW50cHRyX3QJeHJlZiA9IHBp Y194cmVmKGRldik7CisKKwlpZiAocGljX3NjKQorCQlyZXR1cm4gKEVOWElPKTsKKworCXNjID0g ZGV2aWNlX2dldF9zb2Z0YyhkZXYpOworCisJc2MtPnBpY19kZXYgPSBkZXY7CisJcGljX3NjID0g c2M7CisKKwkvKiBJbml0aWFsaXplIG11dGV4ICovCisJbXR4X2luaXQoJnNjLT5tdXRleCwgIlBJ QyBsb2NrIiwgIiIsIE1UWF9TUElOKTsKKworCS8qIFNldCB0aGUgbnVtYmVyIG9mIGludGVycnVw dHMgKi8KKwlzYy0+bmlycXMgPSBuaXRlbXMoc2MtPnBpY19pcnFzKTsKKworCS8qCisJICogTm93 LCB3aGVuIGV2ZXJ5dGhpbmcgaXMgaW5pdGlhbGl6ZWQsIGl0J3MgcmlnaHQgdGltZSB0bworCSAq IHJlZ2lzdGVyIGludGVycnVwdCBjb250cm9sbGVyIHRvIGludGVycnVwdCBmcmFtZWZvcmsuCisJ ICovCisJaWYgKGludHJfcGljX3JlZ2lzdGVyKGRldiwgeHJlZikgIT0gMCkgeworCQlkZXZpY2Vf cHJpbnRmKGRldiwgImNvdWxkIG5vdCByZWdpc3RlciBQSUNcbiIpOworCQlnb3RvIGNsZWFudXA7 CisJfQorCisJLyogQ2xhaW0gb3VyIHJvb3QgY29udHJvbGxlciByb2xlICovCisJaWYgKGludHJf cGljX2NsYWltX3Jvb3QoZGV2LCB4cmVmLCBtaXBzX3BpY19pbnRyLCBzYywgMCkgIT0gMCkgewor CQlkZXZpY2VfcHJpbnRmKGRldiwgImNvdWxkIG5vdCBzZXQgUElDIGFzIGEgcm9vdFxuIik7CisJ CWludHJfcGljX3VucmVnaXN0ZXIoZGV2LCB4cmVmKTsKKwkJZ290byBjbGVhbnVwOworCX0KKwor CXJldHVybiAoMCk7CisKK2NsZWFudXA6CisJcmV0dXJuKEVOWElPKTsKK30KKworaW50CittaXBz X3BpY19pbnRyKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjID0gYXJn OworCXJlZ2lzdGVyX3QgY2F1c2UsIHN0YXR1czsKKwlzdHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmM7 CisJaW50IGksIGludHI7CisKKwljYXVzZSA9IG1pcHNfcmRfY2F1c2UoKTsKKwlzdGF0dXMgPSBt aXBzX3JkX3N0YXR1cygpOworCWludHIgPSAoY2F1c2UgJiBNSVBTX0lOVF9NQVNLKSA+PiA4Owor CS8qCisJICogRG8gbm90IGhhbmRsZSBtYXNrZWQgaW50ZXJydXB0cy4gVGhleSB3ZXJlIG1hc2tl ZCBieQorCSAqIHByZV9pdGhyZWFkIGZ1bmN0aW9uIChtaXBzX21hc2tfWFhYX2ludHIpIGFuZCB3 aWxsIGJlCisJICogdW5tYXNrZWQgb25jZSBpdGhyZWFkIGlzIHRocm91Z2ggd2l0aCBoYW5kbGVy CisJICovCisJaW50ciAmPSAoc3RhdHVzICYgTUlQU19JTlRfTUFTSykgPj4gODsKKwl3aGlsZSAo KGkgPSBmbHMoaW50cikpICE9IDApIHsKKwkJaS0tOyAvKiBHZXQgYSAwLW9mZnNldCBpbnRlcnJ1 cHQuICovCisJCWludHIgJj0gfigxIDw8IGkpOworCisJCWlzcmMgPSBzYy0+cGljX2lycXNbaV07 CisJCWlmIChpc3JjID09IE5VTEwpIHsKKwkJCWRldmljZV9wcmludGYoc2MtPnBpY19kZXYsCisJ CQkgICAgIlN0cmF5IGludGVycnVwdCAldSBkZXRlY3RlZFxuIiwgaSk7CisJCQlwaWNfaXJxX21h c2soc2MsIGkpOworCQkJY29udGludWU7CisJCX0KKworCQlpbnRyX2lycV9kaXNwYXRjaChpc3Jj LCBjdXJ0aHJlYWQtPnRkX2ludHJfZnJhbWUpOworCX0KKworCUtBU1NFUlQoaSA9PSAwLCAoImFs bCBpbnRlcnJ1cHRzIGhhbmRsZWQiKSk7CisKKyNpZmRlZiBIV1BNQ19IT09LUworCWlmIChwbWNf aG9vayAmJiAoUENQVV9HRVQoY3VydGhyZWFkKS0+dGRfcGZsYWdzICYgVERQX0NBTExDSEFJTikp CisJCXBtY19ob29rKFBDUFVfR0VUKGN1cnRocmVhZCksIFBNQ19GTl9VU0VSX0NBTExDSEFJTiwg dGYpOworI2VuZGlmCisJcmV0dXJuIChGSUxURVJfSEFORExFRCk7Cit9CisKK3N0YXRpYyBpbnQK K3BpY19hdHRhY2hfaXNyYyhzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjLCBzdHJ1Y3QgaW50cl9p cnFzcmMgKmlzcmMsIHVfaW50IGlycSkKK3sKKworCS8qCisJICogMS4gVGhlIGxpbmsgYmV0d2Vl biBJU1JDIGFuZCBjb250cm9sbGVyIG11c3QgYmUgc2V0IGF0b21pY2FsbHkuCisJICogMi4gSnVz dCBkbyB0aGluZ3Mgb25seSBvbmNlIGluIHJhcmUgY2FzZSB3aGVuIGNvbnN1bWVycworCSAqICAg IG9mIHNoYXJlZCBpbnRlcnJ1cHQgY2FtZSBoZXJlIGF0IHRoZSBzYW1lIG1vbWVudC4KKwkgKi8K KwltdHhfbG9ja19zcGluKCZzYy0+bXV0ZXgpOworCWlmIChzYy0+cGljX2lycXNbaXJxXSAhPSBO VUxMKSB7CisJCW10eF91bmxvY2tfc3Bpbigmc2MtPm11dGV4KTsKKwkJcmV0dXJuIChzYy0+cGlj X2lycXNbaXJxXSA9PSBpc3JjID8gMCA6IEVFWElTVCk7CisJfQorCXNjLT5waWNfaXJxc1tpcnFd ID0gaXNyYzsKKwlpc3JjLT5pc3JjX2RhdGEgPSBpcnE7CisJbXR4X3VubG9ja19zcGluKCZzYy0+ bXV0ZXgpOworCisJaWYgKGlycSA8IE5TT0ZUX0lSUVMpCisJCWludHJfaXJxX3NldF9uYW1lKGlz cmMsICJzaW50JXUiLCBpcnEpOworCWVsc2UgaWYgKGlycSA8IE5SRUFMX0lSUVMpCisJCWludHJf aXJxX3NldF9uYW1lKGlzcmMsICJpbnQldSIsIGlycSAtIE5TT0ZUX0lSUVMpOworCWVsc2UKKwkJ cGFuaWMoIkludmFsaWQgaXJxICV1IiwgaXJxKTsKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMg aW50CitwaWNfZGV0YWNoX2lzcmMoc3RydWN0IG1pcHNfcGljX3NvZnRjICpzYywgc3RydWN0IGlu dHJfaXJxc3JjICppc3JjLCB1X2ludCBpcnEpCit7CisKKwltdHhfbG9ja19zcGluKCZzYy0+bXV0 ZXgpOworCWlmIChzYy0+cGljX2lycXNbaXJxXSAhPSBpc3JjKSB7CisJCW10eF91bmxvY2tfc3Bp bigmc2MtPm11dGV4KTsKKwkJcmV0dXJuIChzYy0+cGljX2lycXNbaXJxXSA9PSBOVUxMID8gMCA6 IEVJTlZBTCk7CisJfQorCXNjLT5waWNfaXJxc1tpcnFdID0gTlVMTDsKKwlpc3JjLT5pc3JjX2Rh dGEgPSAwOworCW10eF91bmxvY2tfc3Bpbigmc2MtPm11dGV4KTsKKworCWludHJfaXJxX3NldF9u YW1lKGlzcmMsICIlcyIsICIiKTsKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgaW50CitwaWNf aXJxX2Zyb21fbnNwYyhzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjLCB1X2ludCB0eXBlLCB1X2lu dCBudW0sIHVfaW50ICppcnFwKQoreworCisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBJTlRSX0lS UV9OU1BDX1BMQUlOOgorCQkqaXJxcCA9IG51bTsKKwkJcmV0dXJuICgqaXJxcCA8IHNjLT5uaXJx cyA/IDAgOiBFSU5WQUwpOworCisJY2FzZSBJTlRSX0lSUV9OU1BDX1NXSToKKwkJKmlycXAgPSBu dW07CisJCXJldHVybiAobnVtIDwgTlNPRlRfSVJRUyA/IDAgOiBFSU5WQUwpOworCisJY2FzZSBJ TlRSX0lSUV9OU1BDX0lSUToKKwkJKmlycXAgPSBudW0gKyBOU09GVF9JUlFTOworCQlyZXR1cm4g KG51bSA8IE5IQVJEX0lSUVMgPyAwIDogRUlOVkFMKTsKKworCWRlZmF1bHQ6CisJCXJldHVybiAo RUlOVkFMKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQKK3BpY19tYXBfbnNwYyhzdHJ1Y3QgbWlwc19w aWNfc29mdGMgKnNjLCBzdHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmMsIHVfaW50ICppcnFwKQorewor CWludCBlcnJvcjsKKworCWVycm9yID0gcGljX2lycV9mcm9tX25zcGMoc2MsIGlzcmMtPmlzcmNf bnNwY190eXBlLCBpc3JjLT5pc3JjX25zcGNfbnVtLAorCSAgICBpcnFwKTsKKwlpZiAoZXJyb3Ig IT0gMCkKKwkJcmV0dXJuIChlcnJvcik7CisJcmV0dXJuIChwaWNfYXR0YWNoX2lzcmMoc2MsIGlz cmMsICppcnFwKSk7Cit9CisKKyNpZmRlZiBGRFQKK3N0YXRpYyBpbnQKK3BpY19tYXBfZmR0KHN0 cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MsIHN0cnVjdCBpbnRyX2lycXNyYyAqaXNyYywgdV9pbnQg KmlycXApCit7CisJdV9pbnQgaXJxOworCWludCBlcnJvcjsKKworCWlycSA9IGlzcmMtPmlzcmNf Y2VsbHNbMF07CisKKwlpZiAoaXJxID49IHNjLT5uaXJxcykKKwkJcmV0dXJuIChFSU5WQUwpOwor CisJZXJyb3IgPSBwaWNfYXR0YWNoX2lzcmMoc2MsIGlzcmMsIGlycSk7CisJaWYgKGVycm9yICE9 IDApCisJCXJldHVybiAoZXJyb3IpOworCisJaXNyYy0+aXNyY19uc3BjX3R5cGUgPSBJTlRSX0lS UV9OU1BDX1BMQUlOOworCWlzcmMtPmlzcmNfbnNwY19udW0gPSBpcnE7CisJaXNyYy0+aXNyY190 cmlnID0gSU5UUl9UUklHR0VSX0NPTkZPUk07CisJaXNyYy0+aXNyY19wb2wgPSBJTlRSX1BPTEFS SVRZX0NPTkZPUk07CisKKwkqaXJxcCA9IGlycTsKKwlyZXR1cm4gKDApOworfQorI2VuZGlmCisK K3N0YXRpYyBpbnQKK21pcHNfcGljX3JlZ2lzdGVyKGRldmljZV90IGRldiwgc3RydWN0IGludHJf aXJxc3JjICppc3JjLCBib29sZWFuX3QgKmlzX3BlcmNwdSkKK3sKKwlzdHJ1Y3QgbWlwc19waWNf c29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOworCXVfaW50IGlycTsKKwlpbnQgZXJy b3I7CisKKwlpZiAoaXNyYy0+aXNyY190eXBlID09IElOVFJfSVNSQ1RfTkFNRVNQQUNFKQorCQll cnJvciA9IHBpY19tYXBfbnNwYyhzYywgaXNyYywgJmlycSk7CisjaWZkZWYgRkRUCisJZWxzZSBp ZiAoaXNyYy0+aXNyY190eXBlID09IElOVFJfSVNSQ1RfRkRUKQorCQllcnJvciA9IHBpY19tYXBf ZmR0KHNjLCBpc3JjLCAmaXJxKTsKKyNlbmRpZgorCWVsc2UKKwkJcmV0dXJuIChFSU5WQUwpOwor CisJaWYgKGVycm9yID09IDApCisJCSppc19wZXJjcHUgPSBUUlVFOworCXJldHVybiAoZXJyb3Ip OworfQorCitzdGF0aWMgdm9pZAorbWlwc19waWNfZW5hYmxlX2ludHIoZGV2aWNlX3QgZGV2LCBz dHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmMpCit7CisKKwlpZiAoaXNyYy0+aXNyY190cmlnID09IElO VFJfVFJJR0dFUl9DT05GT1JNKQorCQlpc3JjLT5pc3JjX3RyaWcgPSBJTlRSX1RSSUdHRVJfTEVW RUw7Cit9CisKK3N0YXRpYyB2b2lkCittaXBzX3BpY19lbmFibGVfc291cmNlKGRldmljZV90IGRl diwgc3RydWN0IGludHJfaXJxc3JjICppc3JjKQoreworCXN0cnVjdCBtaXBzX3BpY19zb2Z0YyAq c2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJdV9pbnQgaXJxID0gaXNyYy0+aXNyY19kYXRh OworCisJcGljX2lycV91bm1hc2soc2MsIGlycSk7Cit9CisKK3N0YXRpYyB2b2lkCittaXBzX3Bp Y19kaXNhYmxlX3NvdXJjZShkZXZpY2VfdCBkZXYsIHN0cnVjdCBpbnRyX2lycXNyYyAqaXNyYykK K3sKKwlzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOwor CXVfaW50IGlycSA9IGlzcmMtPmlzcmNfZGF0YTsKKworCXBpY19pcnFfbWFzayhzYywgaXJxKTsK K30KKworc3RhdGljIGludAorbWlwc19waWNfdW5yZWdpc3RlcihkZXZpY2VfdCBkZXYsIHN0cnVj dCBpbnRyX2lycXNyYyAqaXNyYykKK3sKKwlzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjID0gZGV2 aWNlX2dldF9zb2Z0YyhkZXYpOworCXVfaW50IGlycSA9IGlzcmMtPmlzcmNfZGF0YTsKKworCXJl dHVybiAocGljX2RldGFjaF9pc3JjKHNjLCBpc3JjLCBpcnEpKTsKK30KKworc3RhdGljIHZvaWQK K21pcHNfcGljX3ByZV9pdGhyZWFkKGRldmljZV90IGRldiwgc3RydWN0IGludHJfaXJxc3JjICpp c3JjKQoreworCisJbWlwc19waWNfZGlzYWJsZV9zb3VyY2UoZGV2LCBpc3JjKTsKK30KKworc3Rh dGljIHZvaWQKK21pcHNfcGljX3Bvc3RfaXRocmVhZChkZXZpY2VfdCBkZXYsIHN0cnVjdCBpbnRy X2lycXNyYyAqaXNyYykKK3sKKworCW1pcHNfcGljX2VuYWJsZV9zb3VyY2UoZGV2LCBpc3JjKTsK K30KKworc3RhdGljIHZvaWQKK21pcHNfcGljX3Bvc3RfZmlsdGVyKGRldmljZV90IGRldiwgc3Ry dWN0IGludHJfaXJxc3JjICppc3JjKQoreworfQorCisjaWZkZWYgU01QCitzdGF0aWMgaW50Citt aXBzX3BpY19iaW5kKGRldmljZV90IGRldiwgc3RydWN0IGludHJfaXJxc3JjICppc3JjKQorewor CXJldHVybiAoRU9QTk9UU1VQUCk7Cit9CisKK3N0YXRpYyB2b2lkCittaXBzX3BpY19pcGlfc2Vu ZChkZXZpY2VfdCBkZXYsIHN0cnVjdCBpbnRyX2lycXNyYyAqaXNyYywgY3B1c2V0X3QgY3B1cykK K3sKK30KKyNlbmRpZgorCitzdGF0aWMgZGV2aWNlX21ldGhvZF90IG1pcHNfcGljX21ldGhvZHNb XSA9IHsKKwkvKiBEZXZpY2UgaW50ZXJmYWNlICovCisjaWZuZGVmIEZEVAorCURFVk1FVEhPRChk ZXZpY2VfaWRlbnRpZnksCW1pcHNfcGljX2lkZW50aWZ5KSwKKyNlbmRpZgorCURFVk1FVEhPRChk ZXZpY2VfcHJvYmUsCQltaXBzX3BpY19wcm9iZSksCisJREVWTUVUSE9EKGRldmljZV9hdHRhY2gs CW1pcHNfcGljX2F0dGFjaCksCisJLyogSW50ZXJydXB0IGNvbnRyb2xsZXIgaW50ZXJmYWNlICov CisJREVWTUVUSE9EKHBpY19kaXNhYmxlX3NvdXJjZSwJbWlwc19waWNfZGlzYWJsZV9zb3VyY2Up LAorCURFVk1FVEhPRChwaWNfZW5hYmxlX2ludHIsCW1pcHNfcGljX2VuYWJsZV9pbnRyKSwKKwlE RVZNRVRIT0QocGljX2VuYWJsZV9zb3VyY2UsCW1pcHNfcGljX2VuYWJsZV9zb3VyY2UpLAorCURF Vk1FVEhPRChwaWNfcG9zdF9maWx0ZXIsCW1pcHNfcGljX3Bvc3RfZmlsdGVyKSwKKwlERVZNRVRI T0QocGljX3Bvc3RfaXRocmVhZCwJbWlwc19waWNfcG9zdF9pdGhyZWFkKSwKKwlERVZNRVRIT0Qo cGljX3ByZV9pdGhyZWFkLAltaXBzX3BpY19wcmVfaXRocmVhZCksCisJREVWTUVUSE9EKHBpY19y ZWdpc3RlciwJCW1pcHNfcGljX3JlZ2lzdGVyKSwKKwlERVZNRVRIT0QocGljX3VucmVnaXN0ZXIs CW1pcHNfcGljX3VucmVnaXN0ZXIpLAorI2lmZGVmIFNNUAorCURFVk1FVEhPRChwaWNfYmluZCwJ CW1pcHNfcGljX2JpbmQpLAorCURFVk1FVEhPRChwaWNfaW5pdF9zZWNvbmRhcnksCW1pcHNfcGlj X2luaXRfc2Vjb25kYXJ5KSwKKwlERVZNRVRIT0QocGljX2lwaV9zZW5kLAkJbWlwc19waWNfaXBp X3NlbmQpLAorI2VuZGlmCisJeyAwLCAwIH0KK307CisKK3N0YXRpYyBkcml2ZXJfdCBtaXBzX3Bp Y19kcml2ZXIgPSB7CisJImNwdXBpYyIsCisJbWlwc19waWNfbWV0aG9kcywKKwlzaXplb2Yoc3Ry dWN0IG1pcHNfcGljX3NvZnRjKSwKK307CisKK3N0YXRpYyBkZXZjbGFzc190IG1pcHNfcGljX2Rl dmNsYXNzOworCisjaWZkZWYgRkRUCitEUklWRVJfTU9EVUxFKGNwdXBpYywgb2Z3YnVzLCBtaXBz X3BpY19kcml2ZXIsIG1pcHNfcGljX2RldmNsYXNzLCAwLCAwKTsKKyNlbHNlCitEUklWRVJfTU9E VUxFKGNwdXBpYywgbmV4dXMsIG1pcHNfcGljX2RyaXZlciwgbWlwc19waWNfZGV2Y2xhc3MsIDAs IDApOworI2VuZGlmCisKK3ZvaWQKK2NwdV9pbml0X2ludGVycnVwdHModm9pZCkKK3sKK30KKwor dm9pZAorY3B1X2VzdGFibGlzaF9oYXJkaW50cihjb25zdCBjaGFyICpuYW1lLCBkcml2ZXJfZmls dGVyX3QgKmZpbHQsCisgICAgdm9pZCAoKmhhbmRsZXIpKHZvaWQqKSwgdm9pZCAqYXJnLCBpbnQg aXJxLCBpbnQgZmxhZ3MsIHZvaWQgKipjb29raWVwKQoreworCXVfaW50IHZlYzsKKwlpbnQgcmVz OworCisJLyoKKwkgKiBXZSBoYXZlIDYgbGV2ZWxzLCBidXQgdGhhdHMgMCAtIDUgKG5vdCBpbmNs dWRpbmcgNikKKwkgKi8KKwlpZiAoaXJxIDwgMCB8fCBpcnEgPj0gTkhBUkRfSVJRUykKKwkJcGFu aWMoIiVzIGNhbGxlZCBmb3IgdW5rbm93biBoYXJkIGludHIgJWQiLCBfX2Z1bmNfXywgaXJxKTsK KworCUtBU1NFUlQocGljX3NjICE9IE5VTEwsICgiJXM6IG5vIHBpYyIsIF9fZnVuY19fKSk7CisJ dmVjID0gaW50cl9uYW1lc3BhY2VfbWFwX2lycShwaWNfc2MtPnBpY19kZXYsIElOVFJfSVJRX05T UENfSVJRLCBpcnEpOworCUtBU1NFUlQodmVjICE9IE5JUlEsICgiVW5hYmxlIHRvIG1hcCBoYXJk IElSUSAlZFxuIiwgaXJxKSk7CisKKwlyZXMgPSBpbnRyX2lycV9hZGRfaGFuZGxlcihwaWNfc2Mt PnBpY19kZXYsIGZpbHQsIGhhbmRsZXIsIGFyZywgdmVjLAorCSAgICBmbGFncywgY29va2llcCk7 CisJaWYgKHJlcyAhPSAwKSBwYW5pYygiVW5hYmxlIHRvIGFkZCBoYXJkIElSUSAlZCBoYW5kbGVy IiwgaXJxKTsKKworCSh2b2lkKXBpY19pcnFfZnJvbV9uc3BjKHBpY19zYywgSU5UUl9JUlFfTlNQ Q19JUlEsIGlycSwgJnZlYyk7CisJS0FTU0VSVChwaWNfc2MtPnBpY19pcnFzW3ZlY10gIT0gTlVM TCwKKwkgICAgKCJIYXJkIElSUSAlZCBub3QgcmVnaXN0ZXJlZFxuIiwgaXJxKSk7CisJaW50cl9p cnFfc2V0X25hbWUocGljX3NjLT5waWNfaXJxc1t2ZWNdLCAiJXMiLCBuYW1lKTsKK30KKwordm9p ZAorY3B1X2VzdGFibGlzaF9zb2Z0aW50cihjb25zdCBjaGFyICpuYW1lLCBkcml2ZXJfZmlsdGVy X3QgKmZpbHQsCisgICAgdm9pZCAoKmhhbmRsZXIpKHZvaWQqKSwgdm9pZCAqYXJnLCBpbnQgaXJx LCBpbnQgZmxhZ3MsCisgICAgdm9pZCAqKmNvb2tpZXApCit7CisJdV9pbnQgdmVjOworCWludCBy ZXM7CisKKwlpZiAoaXJxIDwgMCB8fCBpcnEgPiBOU09GVF9JUlFTKQorCQlwYW5pYygiJXMgY2Fs bGVkIGZvciB1bmtub3duIHNvZnQgaW50ciAlZCIsIF9fZnVuY19fLCBpcnEpOworCisJS0FTU0VS VChwaWNfc2MgIT0gTlVMTCwgKCIlczogbm8gcGljIiwgX19mdW5jX18pKTsKKwl2ZWMgPSBpbnRy X25hbWVzcGFjZV9tYXBfaXJxKHBpY19zYy0+cGljX2RldiwgSU5UUl9JUlFfTlNQQ19TV0ksIGly cSk7CisJS0FTU0VSVCh2ZWMgPD0gTklSUSwgKCJVbmFibGUgdG8gbWFwIHNvZnQgSVJRICVkXG4i LCBpcnEpKTsKKworCWludHJfaXJxX2FkZF9oYW5kbGVyKHBpY19zYy0+cGljX2RldiwgZmlsdCwg aGFuZGxlciwgYXJnLCB2ZWMsCisJICAgIGZsYWdzLCBjb29raWVwKTsKKwlpZiAocmVzICE9IDAp IHBhbmljKCJVbmFibGUgdG8gYWRkIHNvZnQgSVJRICVkIGhhbmRsZXIiLCBpcnEpOworCisJKHZv aWQpcGljX2lycV9mcm9tX25zcGMocGljX3NjLCBJTlRSX0lSUV9OU1BDX1NXSSwgaXJxLCAmdmVj KTsKKwlLQVNTRVJUKHBpY19zYy0+cGljX2lycXNbdmVjXSAhPSBOVUxMLAorCSAgICAoIlNvZnQg SVJRICVkIG5vdCByZWdpc3RlcmVkXG4iLCBpcnEpKTsKKwlpbnRyX2lycV9zZXRfbmFtZShwaWNf c2MtPnBpY19pcnFzW3ZlY10sICIlcyIsIG5hbWUpOworfQorCmRpZmYgLS1naXQgYS9oZWFkL3N5 cy9taXBzL21pcHMvZXhjZXB0aW9uLlMgYi9oZWFkL3N5cy9taXBzL21pcHMvZXhjZXB0aW9uLlMK LS0tIGEvaGVhZC9zeXMvbWlwcy9taXBzL2V4Y2VwdGlvbi5TCisrKyBiL2hlYWQvc3lzL21pcHMv bWlwcy9leGNlcHRpb24uUwpAQCAtNjQ2LDcgKzY0NiwxMSBAQAogICogIENhbGwgdGhlIGludGVy cnVwdCBoYW5kbGVyLiBhMCBwb2ludHMgYXQgdGhlIHNhdmVkIGZyYW1lLgogICovCiAJUFRSX0xB CWdwLCBfQ19MQUJFTChfZ3ApCisjaWZkZWYgTUlQU19JTlRSTkcKKwlQVFJfTEEJazAsIF9DX0xB QkVMKGludHJfaXJxX2hhbmRsZXIpCisjZWxzZQogCVBUUl9MQQlrMCwgX0NfTEFCRUwoY3B1X2lu dHIpCisjZW5kaWYKIAlqYWxyCWswCiAJUkVHX1MJYTMsIENBTExGUkFNRV9SQSArIEtFUk5fUkVH X1NJWkUoc3ApCQkjIGZvciBkZWJ1Z2dpbmcKIApAQCAtNzU4LDcgKzc2MiwxMSBAQAogLyoKICAq IENhbGwgdGhlIGludGVycnVwdCBoYW5kbGVyLgogICovCisjaWZkZWYgTUlQU19JTlRSTkcKKwlQ VFJfTEEJazAsIF9DX0xBQkVMKGludHJfaXJxX2hhbmRsZXIpCisjZWxzZQogCVBUUl9MQQlrMCwg X0NfTEFCRUwoY3B1X2ludHIpCisjZW5kaWYKIAlqYWxyCWswCiAJUkVHX1MJYTMsIENBTExGUkFN RV9SQShzcCkJIyBmb3IgZGVidWdnaW5nCiAKQEAgLTExOTAsNiArMTE5OCw3IEBACiAJUFRSX0FE RFUgc3AsIHNwLCBDQUxMRlJBTUVfU0laCiBFTkQoTWlwc0ZQVHJhcCkKIAorI2lmbmRlZiBNSVBT X0lOVFJORwogLyoKICAqIEludGVycnVwdCBjb3VudGVycyBmb3Igdm1zdGF0LgogICovCkBAIC0x MjE2LDYgKzEyMjUsNyBAQAogI2Vsc2UKIAkuaW50ICBJTlRSQ05UX0NPVU5UICogKF9NSVBTX1Na TE9ORyAvIDgpICogMgogI2VuZGlmCisjZW5kaWYgLyogTUlQU19JTlRSTkcgKi8KIAogCiAvKgpk aWZmIC0tZ2l0IGEvaGVhZC9zeXMvbWlwcy9pbmNsdWRlL3NtcC5oIGIvaGVhZC9zeXMvbWlwcy9p bmNsdWRlL3NtcC5oCi0tLSBhL2hlYWQvc3lzL21pcHMvaW5jbHVkZS9zbXAuaAorKysgYi9oZWFk L3N5cy9taXBzL2luY2x1ZGUvc21wLmgKQEAgLTIxLDYgKzIxLDExIEBACiAKICNpbmNsdWRlIDxt YWNoaW5lL3BjYi5oPgogCisjaWZkZWYgTUlQU19JTlRSTkcKKyMgZGVmaW5lIE1JUFNfSVBJX0NP VU5UIAkxCisjIGRlZmluZSBJTlRSX0lQSV9DT1VOVCAJTUlQU19JUElfQ09VTlQKKyNlbmRpZgor CiAvKgogICogSW50ZXJwcm9jZXNzb3IgaW50ZXJydXB0cyBmb3IgU01QLgogICovCmRpZmYgLS1n aXQgYS9oZWFkL3N5cy9taXBzL2luY2x1ZGUvaW50ci5oIGIvaGVhZC9zeXMvbWlwcy9pbmNsdWRl L2ludHIuaAotLS0gYS9oZWFkL3N5cy9taXBzL2luY2x1ZGUvaW50ci5oCisrKyBiL2hlYWQvc3lz L21pcHMvaW5jbHVkZS9pbnRyLmgKQEAgLTAsMCArMSw2NyBAQAorLyogCSROZXRCU0Q6IGludHIu aCx2IDEuNyAyMDAzLzA2LzE2IDIwOjAxOjAwIHRob3JwZWogRXhwICQJKi8KKworLyotCisgKiBD b3B5cmlnaHQgKGMpIDE5OTcgTWFyayBCcmluaWNvbWJlLgorICogQWxsIHJpZ2h0cyByZXNlcnZl ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92 aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93 aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp c3RyaWJ1dGlvbi4KKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBm ZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICogICAgbXVzdCBkaXNwbGF5IHRoZSBm b2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgorICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3 YXJlIGRldmVsb3BlZCBieSBNYXJrIEJyaW5pY29tYmUKKyAqCWZvciB0aGUgTmV0QlNEIFByb2pl Y3QuCisgKiA0LiBUaGUgbmFtZSBvZiB0aGUgY29tcGFueSBub3IgdGhlIG5hbWUgb2YgdGhlIGF1 dGhvciBtYXkgYmUgdXNlZCB0bworICogICAgZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl cml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMKKyAqICAgIHByaW9yIHdy aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI RSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5U SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF UyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1Ig Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJ REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF IEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S IEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJ VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ TiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqCisgKiAkRnJl ZUJTRCQKKyAqCisgKi8KKworI2lmbmRlZiBfTUFDSElORV9JTlRSX0hfCisjZGVmaW5lIF9NQUNI SU5FX0lOVFJfSF8KKworI2lmZGVmIE1JUFNfSU5UUk5HCisKKyNpZmRlZiBGRFQKKyNpbmNsdWRl IDxkZXYvb2Z3L29wZW5maXJtLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPHN5cy9pbnRyLmg+CisK KyNpZm5kZWYgTklSUQorI2RlZmluZQlOSVJRCQkxMjgKKyNlbmRpZgorCisjZGVmaW5lIElOVFJf SVJRX05TUENfU1dJCTQKKworLyogTUlQUyBjb21wYXRpYmlsaXR5IGZvciBsZWdhY3kgbWlwcyBj b2RlICovCit2b2lkIGNwdV9pbml0X2ludGVycnVwdHModm9pZCk7Cit2b2lkIGNwdV9lc3RhYmxp c2hfaGFyZGludHIoY29uc3QgY2hhciAqLCBkcml2ZXJfZmlsdGVyX3QgKiwgZHJpdmVyX2ludHJf dCAqLAorICAgIHZvaWQgKiwgaW50LCBpbnQsIHZvaWQgKiopOwordm9pZCBjcHVfZXN0YWJsaXNo X3NvZnRpbnRyKGNvbnN0IGNoYXIgKiwgZHJpdmVyX2ZpbHRlcl90ICosIHZvaWQgKCopKHZvaWQq KSwKKyAgICB2b2lkICosIGludCwgaW50LCB2b2lkICoqKTsKKy8qIE1JUFMgaW50ZXJydXB0IEMg ZW50cnkgcG9pbnQgKi8KK3ZvaWQgY3B1X2ludHIoc3RydWN0IHRyYXBmcmFtZSAqKTsKKworI2Vu ZGlmIC8qIE1JUFNfSU5UUk5HICovCisKKyNlbmRpZgkvKiBfTUFDSElORV9JTlRSX0ggKi8KCg== --b1_f56d769a51baf850341563093f070ad1--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f56d769a51baf850341563093f070ad1>