Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jul 2016 13:19:22 +0000
From:      "jceel (Jakub Klama)" <phabric-noreply@FreeBSD.org>
To:        freebsd-virtualization@freebsd.org
Subject:   [Differential] D7185: Add virtio-console support to bhyve
Message-ID:  <differential-rev-PHID-DREV-h346qsj6dfo524z3qnfy-req@FreeBSD.org>

next in thread | raw e-mail | index | archive | help

--b1_a323306a2e70d59516842eb696491cc6
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: base64

amNlZWwgY3JlYXRlZCB0aGlzIHJldmlzaW9uLgpqY2VlbCBhZGRlZCByZXZpZXdlcnM6IGdyZWhh
biwgdHJhc3ouCmpjZWVsIGFkZGVkIGEgc3Vic2NyaWJlcjogZnJlZWJzZC12aXJ0dWFsaXphdGlv
bi1saXN0LgpqY2VlbCBzZXQgdGhlIHJlcG9zaXRvcnkgZm9yIHRoaXMgcmV2aXNpb24gdG8gclMg
RnJlZUJTRCBzcmMgcmVwb3NpdG9yeS4KSGVyYWxkIGFkZGVkIGEgc3Vic2NyaWJlcjogaW1wLgoK
UkVWSVNJT04gU1VNTUFSWQogIEFkZHMgdmlydGlvLWNvbnNvbGUgZGV2aWNlIHN1cHBvcnQgdG8g
Ymh5dmUsIGFsbG93aW5nIHRvIGNyZWF0ZSBiaWRpcmVjdGlvbmFsIGNoYXJhY3RlciBzdHJlYW1z
IGJldHdlZW4gaG9zdCBhbmQgZ3Vlc3QuCiAgCiAgU3ludGF4OgogIGAtcyA8c2xvdG51bT4sdmly
dGlvLWNvbnNvbGUscG9ydDE9L3BhdGgvdG8vcG9ydDEuc29jayxwb3J0Mj0vcGF0aC90by9wb3J0
Mi5zb2NrLC4uLmAKICAKICBNYXhpbXVtIG9mIDE2IHBvcnRzIHBlciBkZXZpY2UgY2FuIGJlIGNy
ZWF0ZWQuIEV2ZXJ5IHBvcnQgaXMgbmFtZWQgYW5kIGNvcnJlc3BvbmRzIHRvIGFuIFVuaXggZG9t
YWluIHNvY2tldCBjcmVhdGVkIGJ5IGJoeXZlLiBiaHl2ZSBhY2NlcHRzIGF0IG1vc3Qgb25lIHVu
aXggZG9tYWluIHNvY2tldCBjb25uZWN0aW9uIHBlciBwb3J0IGF0IGEgdGltZS4KICAKICBMaW1p
dGF0aW9uczoKICAKICAtIGR1ZSB0byBsYWNrIG9mIGRlc3RydWN0b3JzIG9mIGluIGJoeXZlLCBz
b2NrZXRzIG9uIHRoZSBmaWxlc3lzdGVtIG11c3QgYmUgY2xlYW5lZCB1cCBtYW51YWxseSBhZnRl
ciBiaHl2ZSBleGl0cwogIC0gdGhlcmUncyBubyB3YXkgdG8gdXNlICJjb25zb2xlIHBvcnQiIGZl
YXR1cmUsIG5vciB0aGUgY29uc29sZSBwb3J0IHJlc2l6ZSBhcyBvZiB5ZXQKICAtIGVtZXJnZW5j
eSB3cml0ZSBpcyBhZHZlcnRpc2VkLCBidXQgbm8tb3AgYXMgb2YgeWV0CgpURVNUIFBMQU4KICBT
dGFydCBGcmVlQlNEIGd1ZXN0IGluIGJoeXZlIHdpdGggYC1zIDksdmlydGlvLWNvbnNvbGUsdGVz
dHBvcnQ9L3RtcC90ZXN0cG9ydC5zb2NrYC4gVHlwZSBga2xkbG9hZCB2aXJ0aW9fY29uc29sZWAg
aW4gdGhlIGd1ZXN0LCB0aGVuIGBjdSAtbCAvZGV2L3R0eVYwLjBgIGluIHRoZSBndWVzdCBhbmQg
YHNvY2F0IC0gL3RtcC90ZXN0cG9ydC5zb2NrYCBpbiB0aGUgaG9zdC4KClJFUE9TSVRPUlkKICBy
UyBGcmVlQlNEIHNyYyByZXBvc2l0b3J5CgpSRVZJU0lPTiBERVRBSUwKICBodHRwczovL3Jldmll
d3MuZnJlZWJzZC5vcmcvRDcxODUKCkFGRkVDVEVEIEZJTEVTCiAgdXNyLnNiaW4vYmh5dmUvTWFr
ZWZpbGUKICB1c3Iuc2Jpbi9iaHl2ZS9wY2lfdmlydGlvX2NvbnNvbGUuYwogIHVzci5zYmluL2Jo
eXZlL3ZpcnRpby5oCgpFTUFJTCBQUkVGRVJFTkNFUwogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNk
Lm9yZy9zZXR0aW5ncy9wYW5lbC9lbWFpbHByZWZlcmVuY2VzLwoKVG86IGpjZWVsLCBncmVoYW4s
IHRyYXN6CkNjOiBpbXAsIGZyZWVic2QtdmlydHVhbGl6YXRpb24tbGlzdAo=

--b1_a323306a2e70d59516842eb696491cc6
Content-Type: text/x-patch; charset=utf-8; name="D7185.18284.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D7185.18284.patch"

ZGlmZiAtLWdpdCBhL3Vzci5zYmluL2JoeXZlL3ZpcnRpby5oIGIvdXNyLnNiaW4vYmh5dmUvdmly
dGlvLmgKLS0tIGEvdXNyLnNiaW4vYmh5dmUvdmlydGlvLmgKKysrIGIvdXNyLnNiaW4vYmh5dmUv
dmlydGlvLmgKQEAgLTIxMCw2ICsyMTAsNyBAQAogI2RlZmluZQlWSVJUSU9fREVWX05FVAkJMHgx
MDAwCiAjZGVmaW5lCVZJUlRJT19ERVZfQkxPQ0sJMHgxMDAxCiAjZGVmaW5lCVZJUlRJT19ERVZf
UkFORE9NCTB4MTAwMgorI2RlZmluZQlWSVJUSU9fREVWX0NPTlNPTEUJMHgxMDAzCiAKIC8qCiAg
KiBQQ0kgY29uZmlnIHNwYWNlIGNvbnN0YW50cy4KZGlmZiAtLWdpdCBhL3Vzci5zYmluL2JoeXZl
L3BjaV92aXJ0aW9fY29uc29sZS5jIGIvdXNyLnNiaW4vYmh5dmUvcGNpX3ZpcnRpb19jb25zb2xl
LmMKLS0tIGEvdXNyLnNiaW4vYmh5dmUvcGNpX3ZpcnRpb19jb25zb2xlLmMKKysrIGIvdXNyLnNi
aW4vYmh5dmUvcGNpX3ZpcnRpb19jb25zb2xlLmMKQEAgLTAsMCArMSw2MzEgQEAKKy8qLQorICog
Q29weXJpZ2h0IChjKSAyMDE2IGlYc3lzdGVtcyBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFRoaXMgc29mdHdhcmUgd2FzIGRldmVsb3BlZCBieSBKYWt1YiBLbGFtYSA8amNl
ZWxARnJlZUJTRC5vcmc+CisgKiB1bmRlciBzcG9uc29yc2hpcCBmcm9tIGlYc3lzdGVtcyBJbmMu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGlzIHBvc2l0aW9uIGFuZCB1bmNoYW5nZWQuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisg
KiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
CisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8c3lz
L2NkZWZzLmg+CitfX0ZCU0RJRCgiJEZyZWVCU0QkIik7CisKKyNpbmNsdWRlIDxzeXMvcGFyYW0u
aD4KKyNpbmNsdWRlIDxzeXMvbGlua2VyX3NldC5oPgorI2luY2x1ZGUgPHN5cy91aW8uaD4KKyNp
bmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8
c3lzL3VuLmg+CisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5j
bHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+
CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8YXNz
ZXJ0Lmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPGxpYmdlbi5oPgorCisjaW5j
bHVkZSAiYmh5dmVydW4uaCIKKyNpbmNsdWRlICJwY2lfZW11bC5oIgorI2luY2x1ZGUgInZpcnRp
by5oIgorI2luY2x1ZGUgIm1ldmVudC5oIgorCisjZGVmaW5lCVZUQ09OX1JJTkdTWgk2NAorI2Rl
ZmluZQlWVENPTl9NQVhQT1JUUwkxNgorI2RlZmluZQlWVENPTl9NQVhRCShWVENPTl9NQVhQT1JU
UyAqIDIgKyAyKQorCisjZGVmaW5lCVZUQ09OX0RFVklDRV9SRUFEWQkwCisjZGVmaW5lCVZUQ09O
X0RFVklDRV9BREQJMQorI2RlZmluZQlWVENPTl9ERVZJQ0VfUkVNT1ZFCTIKKyNkZWZpbmUJVlRD
T05fUE9SVF9SRUFEWQkzCisjZGVmaW5lCVZUQ09OX0NPTlNPTEVfUE9SVAk0CisjZGVmaW5lCVZU
Q09OX0NPTlNPTEVfUkVTSVpFCTUKKyNkZWZpbmUJVlRDT05fUE9SVF9PUEVOCQk2CisjZGVmaW5l
CVZUQ09OX1BPUlRfTkFNRQkJNworCisjZGVmaW5lCVZUQ09OX0ZfU0laRQkJMAorI2RlZmluZQlW
VENPTl9GX01VTFRJUE9SVAkxCisjZGVmaW5lCVZUQ09OX0ZfRU1FUkdfV1JJVEUJMgorI2RlZmlu
ZQlWVENPTl9TX0hPU1RDQVBTCVwKKyAgICAoVlRDT05fRl9TSVpFIHwgVlRDT05fRl9NVUxUSVBP
UlQgfCBWVENPTl9GX0VNRVJHX1dSSVRFKQorCitzdGF0aWMgaW50IHBjaV92dGNvbl9kZWJ1ZzsK
KyNkZWZpbmUgRFBSSU5URihwYXJhbXMpIGlmIChwY2lfdnRjb25fZGVidWcpIHByaW50ZiBwYXJh
bXMKKyNkZWZpbmUgV1BSSU5URihwYXJhbXMpIHByaW50ZiBwYXJhbXMKKworc3RydWN0IHBjaV92
dGNvbl9zb2Z0YzsKK3N0cnVjdCBwY2lfdnRjb25fcG9ydDsKK3N0cnVjdCBwY2lfdnRjb25fY29u
ZmlnOwordHlwZWRlZiB2b2lkIChwY2lfdnRjb25fY2JfdCkoc3RydWN0IHBjaV92dGNvbl9wb3J0
ICosIHZvaWQgKiwgc3RydWN0IGlvdmVjICosCisgICAgaW50KTsKKworc3RydWN0IHBjaV92dGNv
bl9wb3J0IHsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICogdnNwX3NjOworCWludCAgICAgICAg
ICAgICAgICAgICAgICB2c3BfaWQ7CisJY29uc3QgY2hhciAqICAgICAgICAgICAgIHZzcF9uYW1l
OworCWJvb2wgICAgICAgICAgICAgICAgICAgICB2c3BfZW5hYmxlZDsKKwlib29sICAgICAgICAg
ICAgICAgICAgICAgdnNwX2NvbnNvbGU7CisJYm9vbCAgICAgICAgICAgICAgICAgICAgIHZzcF9y
eF9yZWFkeTsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNwX3J4cTsKKwlpbnQgICAgICAg
ICAgICAgICAgICAgICAgdnNwX3R4cTsKKwl2b2lkICogICAgICAgICAgICAgICAgICAgdnNwX2Fy
ZzsKKwlwY2lfdnRjb25fY2JfdCAqICAgICAgICAgdnNwX2NiOworfTsKKworc3RydWN0IHBjaV92
dGNvbl9zb2NrCit7CisJc3RydWN0IHBjaV92dGNvbl9wb3J0ICogIHZzc19wb3J0OworCWNvbnN0
IGNoYXIgKiAgICAgICAgICAgICB2c3NfcGF0aDsKKwlzdHJ1Y3QgbWV2ZW50ICogICAgICAgICAg
dnNzX3NlcnZlcl9ldnA7CisJc3RydWN0IG1ldmVudCAqICAgICAgICAgIHZzc19jb25uX2V2cDsK
KwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNzX3NlcnZlcl9mZDsKKwlpbnQgICAgICAgICAg
ICAgICAgICAgICAgdnNzX2Nvbm5fZmQ7CisJYm9vbCAgICAgICAgICAgICAgICAgICAgIHZzc19v
cGVuOworfTsKKworc3RydWN0IHBjaV92dGNvbl9zb2Z0YyB7CisJc3RydWN0IHZpcnRpb19zb2Z0
YyAgICAgIHZzY192czsKKwlzdHJ1Y3QgdnF1ZXVlX2luZm8gICAgICAgdnNjX3F1ZXVlc1tWVENP
Tl9NQVhRXTsKKwlwdGhyZWFkX211dGV4X3QgICAgICAgICAgdnNjX210eDsKKwl1aW50NjRfdCAg
ICAgICAgICAgICAgICAgdnNjX2NmZzsKKwl1aW50NjRfdCAgICAgICAgICAgICAgICAgdnNjX2Zl
YXR1cmVzOworCWNoYXIgKiAgICAgICAgICAgICAgICAgICB2c2Nfcm9vdGRpcjsKKwlpbnQgICAg
ICAgICAgICAgICAgICAgICAgdnNjX2txOworCWludCAgICAgICAgICAgICAgICAgICAgICB2c2Nf
bnBvcnRzOworCXN0cnVjdCBwY2lfdnRjb25fcG9ydCAgICB2c2NfY29udHJvbF9wb3J0OworIAlz
dHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgICAgdnNjX3BvcnRzW1ZUQ09OX01BWFBPUlRTXTsKKwlzdHJ1
Y3QgcGNpX3Z0Y29uX2NvbmZpZyAqdnNjX2NvbmZpZzsKK307CisKK3N0cnVjdCBwY2lfdnRjb25f
Y29uZmlnIHsKKwl1aW50MTZfdCBjb2xzOworCXVpbnQxNl90IHJvd3M7CisJdWludDMyX3QgbWF4
X25yX3BvcnRzOworCXVpbnQzMl90IGVtZXJnX3dyOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp
KTsKKworc3RydWN0IHBjaV92dGNvbl9jb250cm9sIHsKKwl1aW50MzJfdCBpZDsKKwl1aW50MTZf
dCBldmVudDsKKwl1aW50MTZfdCB2YWx1ZTsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisK
K3N0cnVjdCBwY2lfdnRjb25fY29uc29sZV9yZXNpemUgeworCXVpbnQxNl90IGNvbHM7CisJdWlu
dDE2X3Qgcm93czsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0YXRpYyB2b2lkIHBj
aV92dGNvbl9yZXNldCh2b2lkICopOworc3RhdGljIHZvaWQgcGNpX3Z0Y29uX25vdGlmeV9yeCh2
b2lkICosIHN0cnVjdCB2cXVldWVfaW5mbyAqKTsKK3N0YXRpYyB2b2lkIHBjaV92dGNvbl9ub3Rp
ZnlfdHgodm9pZCAqLCBzdHJ1Y3QgdnF1ZXVlX2luZm8gKik7CitzdGF0aWMgaW50IHBjaV92dGNv
bl9jZmdyZWFkKHZvaWQgKiwgaW50LCBpbnQsIHVpbnQzMl90ICopOworc3RhdGljIGludCBwY2lf
dnRjb25fY2Znd3JpdGUodm9pZCAqLCBpbnQsIGludCwgdWludDMyX3QpOworc3RhdGljIHZvaWQg
cGNpX3Z0Y29uX25lZ19mZWF0dXJlcyh2b2lkICosIHVpbnQ2NF90KTsKK3N0YXRpYyB2b2lkIHBj
aV92dGNvbl9zb2NrX2FjY2VwdChpbnQsIGVudW0gZXZfdHlwZSwgIHZvaWQgKik7CitzdGF0aWMg
dm9pZCBwY2lfdnRjb25fc29ja19yeChpbnQsIGVudW0gZXZfdHlwZSwgdm9pZCAqKTsKK3N0YXRp
YyB2b2lkIHBjaV92dGNvbl9zb2NrX3R4KHN0cnVjdCBwY2lfdnRjb25fcG9ydCAqLCB2b2lkICos
IHN0cnVjdCBpb3ZlYyAqLAorICAgIGludCk7CitzdGF0aWMgdm9pZCBwY2lfdnRjb25fY29udHJv
bF9zZW5kKHN0cnVjdCBwY2lfdnRjb25fc29mdGMgKiwKKyAgICBzdHJ1Y3QgcGNpX3Z0Y29uX2Nv
bnRyb2wgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QpOworc3RhdGljIHZvaWQgcGNpX3Z0Y29uX2Fu
bm91bmNlX3BvcnQoc3RydWN0IHBjaV92dGNvbl9wb3J0ICopOworc3RhdGljIHZvaWQgcGNpX3Z0
Y29uX29wZW5fcG9ydChzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKiwgYm9vbCk7CisKK3N0YXRpYyBz
dHJ1Y3QgdmlydGlvX2NvbnN0cyB2dGNvbl92aV9jb25zdHMgPSB7CisJInZ0Y29uIiwJCS8qIG91
ciBuYW1lICovCisJVlRDT05fTUFYUSwJCS8qIHdlIHN1cHBvcnQgVlRDT05fTUFYUSB2aXJ0cXVl
dWVzICovCisJc2l6ZW9mKHN0cnVjdCBwY2lfdnRjb25fY29uZmlnKSwgLyogY29uZmlnIHJlZyBz
aXplICovCisJcGNpX3Z0Y29uX3Jlc2V0LAkvKiByZXNldCAqLworCU5VTEwsCQkJLyogZGV2aWNl
LXdpZGUgcW5vdGlmeSAqLworCXBjaV92dGNvbl9jZmdyZWFkLAkvKiByZWFkIHZpcnRpbyBjb25m
aWcgKi8KKwlwY2lfdnRjb25fY2Znd3JpdGUsCS8qIHdyaXRlIHZpcnRpbyBjb25maWcgKi8KKwlw
Y2lfdnRjb25fbmVnX2ZlYXR1cmVzLAkvKiBhcHBseSBuZWdvdGlhdGVkIGZlYXR1cmVzICovCisJ
VlRDT05fU19IT1NUQ0FQUywJLyogb3VyIGNhcGFiaWxpdGllcyAqLworfTsKKworCitzdGF0aWMg
dm9pZAorcGNpX3Z0Y29uX3Jlc2V0KHZvaWQgKnZzYykKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3Nv
ZnRjICpzYzsKKworCXNjID0gdnNjOworCisJRFBSSU5URigoInZ0Y29uOiBkZXZpY2UgcmVzZXQg
cmVxdWVzdGVkIVxuIikpOworCXZpX3Jlc2V0X2Rldigmc2MtPnZzY192cyk7Cit9CisKK3N0YXRp
YyB2b2lkCitwY2lfdnRjb25fbmVnX2ZlYXR1cmVzKHZvaWQgKnZzYywgdWludDY0X3QgbmVnb3Rp
YXRlZF9mZWF0dXJlcykKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYyA9IHZzYzsKKwor
CXNjLT52c2NfZmVhdHVyZXMgPSBuZWdvdGlhdGVkX2ZlYXR1cmVzOworfQorCitzdGF0aWMgaW50
CitwY2lfdnRjb25fY2ZncmVhZCh2b2lkICp2c2MsIGludCBvZmZzZXQsIGludCBzaXplLCB1aW50
MzJfdCAqcmV0dmFsKQoreworCXN0cnVjdCBwY2lfdnRjb25fc29mdGMgKnNjID0gdnNjOworCXZv
aWQgKnB0cjsKKworCXB0ciA9ICh1aW50OF90ICopc2MtPnZzY19jb25maWcgKyBvZmZzZXQ7CisJ
bWVtY3B5KHJldHZhbCwgcHRyLCBzaXplKTsKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgaW50
CitwY2lfdnRjb25fY2Znd3JpdGUodm9pZCAqdnNjLCBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSwgdWlu
dDMyX3QgdmFsKQoreworCisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3Qg
cGNpX3Z0Y29uX3BvcnQgKgorcGNpX3Z0Y29uX3ZxX3RvX3BvcnQoc3RydWN0IHBjaV92dGNvbl9z
b2Z0YyAqc2MsIHN0cnVjdCB2cXVldWVfaW5mbyAqdnEpCit7CisJdWludDE2X3QgbnVtID0gdnEt
PnZxX251bTsKKworCWlmIChudW0gPT0gMCB8fCBudW0gPT0gMSkKKwkJcmV0dXJuICgmc2MtPnZz
Y19wb3J0c1swXSk7CisKKwlpZiAobnVtID09IDIgfHwgbnVtID09IDMpCisJCXJldHVybiAoJnNj
LT52c2NfY29udHJvbF9wb3J0KTsKKworCXJldHVybiAoJnNjLT52c2NfcG9ydHNbKG51bSAvIDIp
IC0gMV0pOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCB2cXVldWVfaW5mbyAqCitwY2lfdnRj
b25fcG9ydF90b192cShzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKnBvcnQsIGJvb2wgdHhfcXVldWUp
Cit7CisJaW50IHFudW07CisKKwlxbnVtID0gdHhfcXVldWUgPyBwb3J0LT52c3BfdHhxIDogcG9y
dC0+dnNwX3J4cTsKKwlyZXR1cm4gKCZwb3J0LT52c3Bfc2MtPnZzY19xdWV1ZXNbcW51bV0pOwor
fQorCitzdGF0aWMgc3RydWN0IHBjaV92dGNvbl9wb3J0ICoKK3BjaV92dGNvbl9wb3J0X2FkZChz
dHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYywgY29uc3QgY2hhciAqbmFtZSwKKyAgICBwY2lfdnRj
b25fY2JfdCAqY2IsIHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKnBvcnQ7
CisKKwlpZiAoc2MtPnZzY19ucG9ydHMgPT0gVlRDT05fTUFYUE9SVFMpIHsKKwkJZXJybm8gPSBF
QlVTWTsKKwkJcmV0dXJuIChOVUxMKTsKKwl9CisKKwlwb3J0ID0gJnNjLT52c2NfcG9ydHNbc2Mt
PnZzY19ucG9ydHMrK107CisJcG9ydC0+dnNwX2lkID0gc2MtPnZzY19ucG9ydHMgLSAxOworCXBv
cnQtPnZzcF9zYyA9IHNjOworCXBvcnQtPnZzcF9uYW1lID0gbmFtZTsKKwlwb3J0LT52c3BfY2Ig
PSBjYjsKKwlwb3J0LT52c3BfYXJnID0gYXJnOworCisJaWYgKHBvcnQtPnZzcF9pZCA9PSAwKSB7
CisJCS8qIHBvcnQwICovCisJCXBvcnQtPnZzcF90eHEgPSAwOworCQlwb3J0LT52c3BfcnhxID0g
MTsKKwl9IGVsc2UgeworCQlwb3J0LT52c3BfdHhxID0gc2MtPnZzY19ucG9ydHMgKiAyOworCQlw
b3J0LT52c3BfcnhxID0gcG9ydC0+dnNwX3R4cSArIDE7CisJfQorCisJcG9ydC0+dnNwX2VuYWJs
ZWQgPSB0cnVlOworCXJldHVybiAocG9ydCk7Cit9CisKK3N0YXRpYyBpbnQKK3BjaV92dGNvbl9z
b2NrX2FkZChzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYywgY29uc3QgY2hhciAqbmFtZSwKKyAg
ICBjb25zdCBjaGFyICpwYXRoKQoreworCXN0cnVjdCBwY2lfdnRjb25fc29jayAqc29jazsKKwlz
dHJ1Y3Qgc29ja2FkZHJfdW4gc3VuOworCWludCBzID0gLTEsIGZkID0gLTEsIGVycm9yID0gMDsK
KworCXNvY2sgPSBjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBwY2lfdnRjb25fc29jaykpOworCWlm
IChzb2NrID09IE5VTEwpIHsKKwkJZXJyb3IgPSAtMTsKKwkJZ290byBvdXQ7CisJfQorCisJcyA9
IHNvY2tldChBRl9VTklYLCBTT0NLX1NUUkVBTSwgMCk7CisJaWYgKHMgPCAwKSB7CisJCWVycm9y
ID0gLTE7CisJCWdvdG8gb3V0OworCX0KKworCWZkID0gb3BlbihkaXJuYW1lKHBhdGgpLCBPX1JE
T05MWSB8IE9fRElSRUNUT1JZKTsKKwlpZiAoZmQgPCAwKSB7CisJCWVycm9yID0gLTE7CisJCWdv
dG8gb3V0OworCX0KKworCXN1bi5zdW5fZmFtaWx5ID0gQUZfVU5JWDsKKwlzdW4uc3VuX2xlbiA9
IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfdW4pOworCXN0cm5jcHkoc3VuLnN1bl9wYXRoLCBiYXNl
bmFtZShwYXRoKSwgc2l6ZW9mKHN1bi5zdW5fcGF0aCkpOworCisJaWYgKGJpbmRhdChmZCwgcywg
KHN0cnVjdCBzb2NrYWRkciAqKSZzdW4sIHN1bi5zdW5fbGVuKSA8IDApIHsKKwkJZXJyb3IgPSAt
MTsKKwkJZ290byBvdXQ7CisJfQorCisJaWYgKGZjbnRsKHMsIEZfU0VURkwsIE9fTk9OQkxPQ0sp
IDwgMCkgeworCQllcnJvciA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAobGlzdGVuKHMs
IDEpIDwgMCkgeworCQllcnJvciA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKworCXNvY2stPnZz
c19wb3J0ID0gcGNpX3Z0Y29uX3BvcnRfYWRkKHNjLCBuYW1lLCBwY2lfdnRjb25fc29ja190eCwg
c29jayk7CisJaWYgKHNvY2stPnZzc19wb3J0ID09IE5VTEwpIHsKKwkJZXJyb3IgPSAtMTsKKwkJ
Z290byBvdXQ7CisJfQorCisJc29jay0+dnNzX29wZW4gPSBmYWxzZTsKKwlzb2NrLT52c3NfY29u
bl9mZCA9IC0xOworCXNvY2stPnZzc19zZXJ2ZXJfZmQgPSBzOworCXNvY2stPnZzc19zZXJ2ZXJf
ZXZwID0gbWV2ZW50X2FkZChzLCBFVkZfUkVBRCwgcGNpX3Z0Y29uX3NvY2tfYWNjZXB0LAorCSAg
ICBzb2NrKTsKKworCWlmIChzb2NrLT52c3Nfc2VydmVyX2V2cCA9PSBOVUxMKSB7CisJCWVycm9y
ID0gLTE7CisJCWdvdG8gb3V0OworCX0KKworb3V0OgorCWlmIChmZCAhPSAtMSkKKwkJY2xvc2Uo
ZmQpOworCisJaWYgKGVycm9yICE9IDAgJiYgcyAhPSAtMSkKKwkJY2xvc2Uocyk7CisKKwlyZXR1
cm4gKGVycm9yKTsKK30KKworc3RhdGljIHZvaWQKK3BjaV92dGNvbl9zb2NrX2FjY2VwdChpbnQg
ZmQgX191bnVzZWQsIGVudW0gZXZfdHlwZSB0IF9fdW51c2VkLCB2b2lkICphcmcpCit7CisJc3Ry
dWN0IHBjaV92dGNvbl9zb2NrICpzb2NrID0gKHN0cnVjdCBwY2lfdnRjb25fc29jayAqKWFyZzsK
KwlpbnQgczsKKworCXMgPSBhY2NlcHQoc29jay0+dnNzX3NlcnZlcl9mZCwgTlVMTCwgTlVMTCk7
CisJaWYgKHMgPCAwKQorCQlyZXR1cm47CisKKwlpZiAoc29jay0+dnNzX29wZW4pIHsKKwkJY2xv
c2Uocyk7CisJCXJldHVybjsKKwl9CisKKwlzb2NrLT52c3Nfb3BlbiA9IHRydWU7CisJc29jay0+
dnNzX2Nvbm5fZmQgPSBzOworCXNvY2stPnZzc19jb25uX2V2cCA9IG1ldmVudF9hZGQocywgRVZG
X1JFQUQsIHBjaV92dGNvbl9zb2NrX3J4LCBzb2NrKTsKKwlwY2lfdnRjb25fb3Blbl9wb3J0KHNv
Y2stPnZzc19wb3J0LCB0cnVlKTsKK30KKworc3RhdGljIHZvaWQKK3BjaV92dGNvbl9zb2NrX3J4
KGludCBmZCBfX3VudXNlZCwgZW51bSBldl90eXBlIHQgX191bnVzZWQsIHZvaWQgKmFyZykKK3sK
KwlzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKnBvcnQ7CisJc3RydWN0IHBjaV92dGNvbl9zb2NrICpz
b2NrID0gKHN0cnVjdCBwY2lfdnRjb25fc29jayAqKWFyZzsKKwlzdHJ1Y3QgdnF1ZXVlX2luZm8g
KnZxOworCXN0cnVjdCBpb3ZlYyBpb3Y7CisJc3RhdGljIGNoYXIgZHVtbXlidWZbMjA0OF07CisJ
aW50IGxlbiwgbjsKKwl1aW50MTZfdCBpZHg7CisKKwlwb3J0ID0gc29jay0+dnNzX3BvcnQ7CisJ
dnEgPSBwY2lfdnRjb25fcG9ydF90b192cShwb3J0LCB0cnVlKTsKKworCWlmICghc29jay0+dnNz
X29wZW4gfHwgIXBvcnQtPnZzcF9yeF9yZWFkeSkgeworCQlsZW4gPSByZWFkKHNvY2stPnZzc19j
b25uX2ZkLCBkdW1teWJ1Ziwgc2l6ZW9mKGR1bW15YnVmKSk7CisJCWlmIChsZW4gPT0gMCkKKwkJ
CWdvdG8gY2xvc2U7CisKKwkJcmV0dXJuOworCX0KKworCWlmICghdnFfaGFzX2Rlc2NzKHZxKSkg
eworCQlsZW4gPSByZWFkKHNvY2stPnZzc19jb25uX2ZkLCBkdW1teWJ1Ziwgc2l6ZW9mKGR1bW15
YnVmKSk7CisJCXZxX2VuZGNoYWlucyh2cSwgMSk7CisJCWlmIChsZW4gPT0gMCkKKwkJCWdvdG8g
Y2xvc2U7CisKKwkJcmV0dXJuOworCX0KKworCWRvIHsKKwkJbiA9IHZxX2dldGNoYWluKHZxLCAm
aWR4LCAmaW92LCAxLCBOVUxMKTsKKwkJbGVuID0gcmVhZHYoc29jay0+dnNzX2Nvbm5fZmQsICZp
b3YsIG4pOworCisJCWlmIChsZW4gPT0gMCB8fCAobGVuIDwgMCAmJiBlcnJubyA9PSBFV09VTERC
TE9DSykpIHsKKwkJCXZxX3JldGNoYWluKHZxKTsKKwkJCXZxX2VuZGNoYWlucyh2cSwgMCk7CisJ
CQlpZiAobGVuID09IDApCisJCQkJZ290byBjbG9zZTsKKworCQkJcmV0dXJuOworCQl9CisKKwkJ
dnFfcmVsY2hhaW4odnEsIGlkeCwgbGVuKTsKKwl9IHdoaWxlICh2cV9oYXNfZGVzY3ModnEpKTsK
KworCXZxX2VuZGNoYWlucyh2cSwgMSk7CisKK2Nsb3NlOgorCW1ldmVudF9kZWxldGVfY2xvc2Uo
c29jay0+dnNzX2Nvbm5fZXZwKTsKKwlzb2NrLT52c3NfY29ubl9mZCA9IC0xOworCXNvY2stPnZz
c19vcGVuID0gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkCitwY2lfdnRjb25fc29ja190eChzdHJ1
Y3QgcGNpX3Z0Y29uX3BvcnQgKnBvcnQsIHZvaWQgKmFyZywgc3RydWN0IGlvdmVjICppb3YsCisg
ICAgaW50IG5pb3YpCit7CisJc3RydWN0IHBjaV92dGNvbl9zb2NrICpzb2NrOworCWludCByZXQ7
CisKKwlzb2NrID0gKHN0cnVjdCBwY2lfdnRjb25fc29jayAqKWFyZzsKKworCWlmIChzb2NrLT52
c3NfY29ubl9mZCA9PSAtMSkKKwkJcmV0dXJuOworCisJcmV0ID0gd3JpdGV2KHNvY2stPnZzc19j
b25uX2ZkLCBpb3YsIG5pb3YpOworCisJaWYgKHJldCA8IDAgJiYgZXJybm8gIT0gRVdPVUxEQkxP
Q0spIHsKKwkJbWV2ZW50X2RlbGV0ZV9jbG9zZShzb2NrLT52c3NfY29ubl9ldnApOworCQlzb2Nr
LT52c3NfY29ubl9mZCA9IC0xOworCQlzb2NrLT52c3Nfb3BlbiA9IGZhbHNlOworCX0KK30KKwor
c3RhdGljIHZvaWQKK3BjaV92dGNvbl9jb250cm9sX3R4KHN0cnVjdCBwY2lfdnRjb25fcG9ydCAq
cG9ydCwgdm9pZCAqYXJnLCBzdHJ1Y3QgaW92ZWMgKmlvdiwKKyAgICBpbnQgbmlvdikKK3sKKwlz
dHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYzsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKnRtcDsK
KwlzdHJ1Y3QgcGNpX3Z0Y29uX2NvbnRyb2wgcmVzcCwgKmN0cmw7CisJaW50IGk7CisKKwlhc3Nl
cnQobmlvdiA9PSAxKTsKKworCXNjID0gcG9ydC0+dnNwX3NjOworCWN0cmwgPSAoc3RydWN0IHBj
aV92dGNvbl9jb250cm9sICopaW92LT5pb3ZfYmFzZTsKKworCXN3aXRjaCAoY3RybC0+ZXZlbnQp
IHsKKwljYXNlIFZUQ09OX0RFVklDRV9SRUFEWToKKwkJLyogc2V0IHBvcnQgcmVhZHkgZXZlbnRz
IGZvciByZWdpc3RlcmVkIHBvcnRzICovCisJCWZvciAoaSA9IDA7IGkgPCBWVENPTl9NQVhQT1JU
UzsgaSsrKSB7CisJCQl0bXAgPSAmc2MtPnZzY19wb3J0c1tpXTsKKwkJCWlmICh0bXAtPnZzcF9l
bmFibGVkKQorCQkJCXBjaV92dGNvbl9hbm5vdW5jZV9wb3J0KHRtcCk7CisJCX0KKwkJYnJlYWs7
CisKKwljYXNlIFZUQ09OX1BPUlRfUkVBRFk6CisJCWlmIChjdHJsLT5pZCA+PSBzYy0+dnNjX25w
b3J0cykgeworCQkJV1BSSU5URigoIlZUQ09OX1BPUlRfUkVBRFkgZXZlbnQgZm9yIHVua25vd24g
cG9ydCAlZFxuIiwKKwkJCSAgICBjdHJsLT5pZCkpOworCQkJcmV0dXJuOworCQl9CisKKwkJdG1w
ID0gJnNjLT52c2NfcG9ydHNbY3RybC0+aWRdOworCQlpZiAodG1wLT52c3BfY29uc29sZSkgewor
CQkJcmVzcC5ldmVudCA9IFZUQ09OX0NPTlNPTEVfUE9SVDsKKwkJCXJlc3AuaWQgPSBjdHJsLT5p
ZDsKKwkJCXJlc3AudmFsdWUgPSAxOworCQkJcGNpX3Z0Y29uX2NvbnRyb2xfc2VuZChzYywgJnJl
c3AsIE5VTEwsIDApOworCQl9CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIHZvaWQKK3BjaV92
dGNvbl9hbm5vdW5jZV9wb3J0KHN0cnVjdCBwY2lfdnRjb25fcG9ydCAqcG9ydCkKK3sKKwlzdHJ1
Y3QgcGNpX3Z0Y29uX2NvbnRyb2wgZXZlbnQ7CisKKwlldmVudC5pZCA9IHBvcnQtPnZzcF9pZDsK
KwlldmVudC5ldmVudCA9IFZUQ09OX0RFVklDRV9BREQ7CisJZXZlbnQudmFsdWUgPSAxOworCXBj
aV92dGNvbl9jb250cm9sX3NlbmQocG9ydC0+dnNwX3NjLCAmZXZlbnQsIE5VTEwsIDApOworCisJ
ZXZlbnQuZXZlbnQgPSBWVENPTl9QT1JUX05BTUU7CisJcGNpX3Z0Y29uX2NvbnRyb2xfc2VuZChw
b3J0LT52c3Bfc2MsICZldmVudCwgcG9ydC0+dnNwX25hbWUsCisJICAgIHN0cmxlbihwb3J0LT52
c3BfbmFtZSkpOworfQorCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29uX29wZW5fcG9ydChzdHJ1Y3Qg
cGNpX3Z0Y29uX3BvcnQgKnBvcnQsIGJvb2wgb3BlbikKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX2Nv
bnRyb2wgZXZlbnQ7CisKKwlldmVudC5pZCA9IHBvcnQtPnZzcF9pZDsKKwlldmVudC5ldmVudCA9
IFZUQ09OX1BPUlRfT1BFTjsKKwlldmVudC52YWx1ZSA9IChpbnQpb3BlbjsKKwlwY2lfdnRjb25f
Y29udHJvbF9zZW5kKHBvcnQtPnZzcF9zYywgJmV2ZW50LCBOVUxMLCAwKTsKK30KKworc3RhdGlj
IHZvaWQKK3BjaV92dGNvbl9jb250cm9sX3NlbmQoc3RydWN0IHBjaV92dGNvbl9zb2Z0YyAqc2Ms
CisgICAgc3RydWN0IHBjaV92dGNvbl9jb250cm9sICpjdHJsLCBjb25zdCB2b2lkICpwYXlsb2Fk
LCBzaXplX3QgbGVuKQoreworCXN0cnVjdCB2cXVldWVfaW5mbyAqdnE7CisJc3RydWN0IGlvdmVj
IGlvdjsKKwl1aW50MTZfdCBpZHg7CisJaW50IG47CisKKwl2cSA9IHBjaV92dGNvbl9wb3J0X3Rv
X3ZxKCZzYy0+dnNjX2NvbnRyb2xfcG9ydCwgdHJ1ZSk7CisKKwlpZiAoIXZxX2hhc19kZXNjcyh2
cSkpCisJCXJldHVybjsKKworCW4gPSB2cV9nZXRjaGFpbih2cSwgJmlkeCwgJmlvdiwgMSwgTlVM
TCk7CisKKwlhc3NlcnQobiA9PSAxKTsKKworCW1lbWNweShpb3YuaW92X2Jhc2UsIGN0cmwsIHNp
emVvZihzdHJ1Y3QgcGNpX3Z0Y29uX2NvbnRyb2wpKTsKKwlpZiAocGF5bG9hZCAhPSBOVUxMICYm
IGxlbiA+IDApCisJCW1lbWNweShpb3YuaW92X2Jhc2UgKyBzaXplb2Yoc3RydWN0IHBjaV92dGNv
bl9jb250cm9sKSwKKwkJICAgICBwYXlsb2FkLCBsZW4pOworCisJdnFfcmVsY2hhaW4odnEsIGlk
eCwgc2l6ZW9mKHN0cnVjdCBwY2lfdnRjb25fY29udHJvbCkgKyBsZW4pOworCXZxX2VuZGNoYWlu
cyh2cSwgMSk7Cit9CisgICAgCisKK3N0YXRpYyB2b2lkCitwY2lfdnRjb25fbm90aWZ5X3R4KHZv
aWQgKnZzYywgc3RydWN0IHZxdWV1ZV9pbmZvICp2cSkKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3Nv
ZnRjICpzYzsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKnBvcnQ7CisJc3RydWN0IGlvdmVjIGlv
dlsxXTsKKwl1aW50MTZfdCBpZHgsIG47CisJdWludDE2X3QgZmxhZ3NbOF07CisKKwlzYyA9IHZz
YzsKKwlwb3J0ID0gcGNpX3Z0Y29uX3ZxX3RvX3BvcnQoc2MsIHZxKTsKKworCXdoaWxlICh2cV9o
YXNfZGVzY3ModnEpKSB7CisJCW4gPSB2cV9nZXRjaGFpbih2cSwgJmlkeCwgaW92LCAxLCBmbGFn
cyk7CisJCWlmIChwb3J0ICE9IE5VTEwpCisJCQlwb3J0LT52c3BfY2IocG9ydCwgcG9ydC0+dnNw
X2FyZywgaW92LCAxKTsKKworCQkvKgorCQkgKiBSZWxlYXNlIHRoaXMgY2hhaW4gYW5kIGhhbmRs
ZSBtb3JlCisJCSAqLworCQl2cV9yZWxjaGFpbih2cSwgaWR4LCAwKTsKKwl9CisJdnFfZW5kY2hh
aW5zKHZxLCAxKTsJLyogR2VuZXJhdGUgaW50ZXJydXB0IGlmIGFwcHJvcHJpYXRlLiAqLworfQor
CitzdGF0aWMgdm9pZAorcGNpX3Z0Y29uX25vdGlmeV9yeCh2b2lkICp2c2MsIHN0cnVjdCB2cXVl
dWVfaW5mbyAqdnEpCit7CisJc3RydWN0IHBjaV92dGNvbl9zb2Z0YyAqc2M7CisJc3RydWN0IHBj
aV92dGNvbl9wb3J0ICpwb3J0OworCisJc2MgPSB2c2M7CisJcG9ydCA9IHBjaV92dGNvbl92cV90
b19wb3J0KHNjLCB2cSk7CisKKwlpZiAoIXBvcnQtPnZzcF9yeF9yZWFkeSkgeworCQlwb3J0LT52
c3BfcnhfcmVhZHkgPSAxOworCQl2cS0+dnFfdXNlZC0+dnVfZmxhZ3MgfD0gVlJJTkdfVVNFRF9G
X05PX05PVElGWTsKKwl9Cit9CisKK3N0YXRpYyBpbnQKK3BjaV92dGNvbl9pbml0KHN0cnVjdCB2
bWN0eCAqY3R4LCBzdHJ1Y3QgcGNpX2Rldmluc3QgKnBpLCBjaGFyICpvcHRzKQoreworCXN0cnVj
dCBwY2lfdnRjb25fc29mdGMgKnNjOworCWNoYXIgKnBvcnRuYW1lID0gTlVMTDsKKwljaGFyICpw
b3J0cGF0aCA9IE5VTEw7CisJY2hhciAqb3B0OworCWludCBpOwkKKworCXNjID0gY2FsbG9jKDEs
IHNpemVvZihzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjKSk7CisJc2MtPnZzY19jb25maWcgPSBjYWxs
b2MoMSwgc2l6ZW9mKHN0cnVjdCBwY2lfdnRjb25fY29uZmlnKSk7CisJc2MtPnZzY19jb25maWct
Pm1heF9ucl9wb3J0cyA9IFZUQ09OX01BWFBPUlRTOworCXNjLT52c2NfY29uZmlnLT5jb2xzID0g
ODA7CisJc2MtPnZzY19jb25maWctPnJvd3MgPSAyNTsgCisKKwl2aV9zb2Z0Y19saW5rdXAoJnNj
LT52c2NfdnMsICZ2dGNvbl92aV9jb25zdHMsIHNjLCBwaSwgc2MtPnZzY19xdWV1ZXMpOworCXNj
LT52c2NfdnMudnNfbXR4ID0gJnNjLT52c2NfbXR4OworCisJZm9yIChpID0gMDsgaSA8IFZUQ09O
X01BWFE7IGkrKykgeworCQlzYy0+dnNjX3F1ZXVlc1tpXS52cV9xc2l6ZSA9IFZUQ09OX1JJTkdT
WjsKKwkJc2MtPnZzY19xdWV1ZXNbaV0udnFfbm90aWZ5ID0gaSAlIDIgPT0gMAorCQkgICAgPyBw
Y2lfdnRjb25fbm90aWZ5X3J4CisJCSAgICA6IHBjaV92dGNvbl9ub3RpZnlfdHg7CisJfQorCisJ
LyogaW5pdGlhbGl6ZSBjb25maWcgc3BhY2UgKi8KKwlwY2lfc2V0X2NmZ2RhdGExNihwaSwgUENJ
Ul9ERVZJQ0UsIFZJUlRJT19ERVZfQ09OU09MRSk7CisJcGNpX3NldF9jZmdkYXRhMTYocGksIFBD
SVJfVkVORE9SLCBWSVJUSU9fVkVORE9SKTsKKwlwY2lfc2V0X2NmZ2RhdGE4KHBpLCBQQ0lSX0NM
QVNTLCBQQ0lDX1NJTVBMRUNPTU0pOworCXBjaV9zZXRfY2ZnZGF0YTE2KHBpLCBQQ0lSX1NVQkRF
Vl8wLCBWSVJUSU9fVFlQRV9DT05TT0xFKTsKKwlwY2lfc2V0X2NmZ2RhdGExNihwaSwgUENJUl9T
VUJWRU5EXzAsIFZJUlRJT19WRU5ET1IpOworCisJaWYgKHZpX2ludHJfaW5pdCgmc2MtPnZzY192
cywgMSwgZmJzZHJ1bl92aXJ0aW9fbXNpeCgpKSkKKwkJcmV0dXJuICgxKTsKKwl2aV9zZXRfaW9f
YmFyKCZzYy0+dnNjX3ZzLCAwKTsKKworCS8qIGNyZWF0ZSBjb250cm9sIHBvcnQgKi8KKwlzYy0+
dnNjX2NvbnRyb2xfcG9ydC52c3Bfc2MgPSBzYzsKKwlzYy0+dnNjX2NvbnRyb2xfcG9ydC52c3Bf
dHhxID0gMjsKKwlzYy0+dnNjX2NvbnRyb2xfcG9ydC52c3BfcnhxID0gMzsKKwlzYy0+dnNjX2Nv
bnRyb2xfcG9ydC52c3BfY2IgPSBwY2lfdnRjb25fY29udHJvbF90eDsKKwlzYy0+dnNjX2NvbnRy
b2xfcG9ydC52c3BfZW5hYmxlZCA9IHRydWU7CisKKwl3aGlsZSAoKG9wdCA9IHN0cnNlcCgmb3B0
cywgIiwiKSkgIT0gTlVMTCkgeworCQlwb3J0bmFtZSA9IHN0cnNlcCgmb3B0LCAiPSIpOworCQlw
b3J0cGF0aCA9IHN0cmR1cChvcHQpOworCisJCS8qIGNyZWF0ZSBwb3J0ICovCisJCWlmIChwY2lf
dnRjb25fc29ja19hZGQoc2MsIHBvcnRuYW1lLCBwb3J0cGF0aCkgPCAwKSB7CisJCQlmcHJpbnRm
KHN0ZGVyciwgImNhbm5vdCBjcmVhdGUgcG9ydCAlczogJXNcbiIsCisJCQkgICAgcG9ydG5hbWUs
IHN0cmVycm9yKGVycm5vKSk7CisJCQlyZXR1cm4gKDEpOworCQl9CisJfQorCisJcmV0dXJuICgw
KTsKK30KKworc3RydWN0IHBjaV9kZXZlbXUgcGNpX2RlX3Zjb24gPSB7CisJLnBlX2VtdSA9CSJ2
aXJ0aW8tY29uc29sZSIsCisJLnBlX2luaXQgPQlwY2lfdnRjb25faW5pdCwKKwkucGVfYmFyd3Jp
dGUgPQl2aV9wY2lfd3JpdGUsCisJLnBlX2JhcnJlYWQgPQl2aV9wY2lfcmVhZAorfTsKK1BDSV9F
TVVMX1NFVChwY2lfZGVfdmNvbik7CmRpZmYgLS1naXQgYS91c3Iuc2Jpbi9iaHl2ZS9NYWtlZmls
ZSBiL3Vzci5zYmluL2JoeXZlL01ha2VmaWxlCi0tLSBhL3Vzci5zYmluL2JoeXZlL01ha2VmaWxl
CisrKyBiL3Vzci5zYmluL2JoeXZlL01ha2VmaWxlCkBAIC0zNiw2ICszNiw3IEBACiAJcGNpX2xw
Yy5jCQlcCiAJcGNpX3Bhc3N0aHJ1LmMJCVwKIAlwY2lfdmlydGlvX2Jsb2NrLmMJXAorCXBjaV92
aXJ0aW9fY29uc29sZS5jCVwKIAlwY2lfdmlydGlvX25ldC5jCVwKIAlwY2lfdmlydGlvX3JuZC5j
CVwKIAlwY2lfdWFydC5jCQlcCgo=


--b1_a323306a2e70d59516842eb696491cc6--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?differential-rev-PHID-DREV-h346qsj6dfo524z3qnfy-req>