Skip site navigation (1)Skip section navigation (2)
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>