Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Dec 2013 22:44:14 +0800
From:      Howard Su <howard0su@gmail.com>
To:        freebsd-arm <freebsd-arm@freebsd.org>
Subject:   Re: [PATCH] Add stack unwind support for the functions in .ko
Message-ID:  <CAAvnz_p2vw9=HWbGPePKm_yDxM-bM1h6VaQBeJq9sYXPRb2-Lg@mail.gmail.com>
In-Reply-To: <CAAvnz_pWZqw-HEB-GTJ_CkErjXrz3v7ozabMXE__vr=SfkBVSg@mail.gmail.com>
References:  <CAAvnz_pWZqw-HEB-GTJ_CkErjXrz3v7ozabMXE__vr=SfkBVSg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--047d7b60457ea31a1d04ed1b07e0
Content-Type: text/plain; charset=ISO-8859-1

Here is a new version which solve the unreadable $a problem. (the fix is in
ddb/db_main.c in the end of the patch.)

I attached the diff for review.

Howard

On Saturday, December 7, 2013, Howard Su wrote:

> I need this function when working on dtrace/arm support. the basic idea is
> locate the ARM.EXIDX section by the symbol __exidx_start and __exidx_stop.
>
> To keep it simple, I always look through the link_file_list when unwind
> the stack. From the testing, the performance seems ok.
>
> Also, I implement the count parameter when unwind the stack which can make
> 'show threads' output more readable. I also disabled some print output by
> #if 0 which makes output more align with the other platform.
>
> Please review.
>
> Thanks,
>
> Howard Su
>
>
>

-- 
-Howard

--047d7b60457ea31a1d04ed1b07e0
Content-Type: text/x-patch; charset=US-ASCII; name="unwind.2.patch"
Content-Disposition: attachment; filename="unwind.2.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: 28885608c4f0bc6a_0.1

ZGlmZiAtLWdpdCBhL3N5cy9hcm0vYXJtL2RiX3RyYWNlLmMgYi9zeXMvYXJtL2FybS9kYl90cmFj
ZS5jCmluZGV4IDU3MTE5ZGEuLjExOTQxMmMgMTAwNjQ0Ci0tLSBhL3N5cy9hcm0vYXJtL2RiX3Ry
YWNlLmMKKysrIGIvc3lzL2FybS9hcm0vZGJfdHJhY2UuYwpAQCAtMzgsNiArMzgsNyBAQCBfX0ZC
U0RJRCgiJEZyZWVCU0QkIik7CiAjaW5jbHVkZSA8c3lzL3Byb2MuaD4KICNpbmNsdWRlIDxzeXMv
a2RiLmg+CiAjaW5jbHVkZSA8c3lzL3N0YWNrLmg+CisjaW5jbHVkZSA8c3lzL2xpbmtlci5oPgog
I2luY2x1ZGUgPG1hY2hpbmUvYXJtcmVnLmg+CiAjaW5jbHVkZSA8bWFjaGluZS9hc20uaD4KICNp
bmNsdWRlIDxtYWNoaW5lL2NwdWZ1bmMuaD4KQEAgLTc5LDEyICs4MCw2IEBAIF9fRkJTRElEKCIk
RnJlZUJTRCQiKTsKICNkZWZpbmUJUEMJMTUKIAogLyoKLSAqIFRoZXNlIGFyZSBzZXQgaW4gdGhl
IGxpbmtlciBzY3JpcHQuIFRoZWlyIGFkZHJlc3NlcyB3aWxsIGJlCi0gKiBlaXRoZXIgdGhlIHN0
YXJ0IG9yIGVuZCBvZiB0aGUgZXhjZXB0aW9uIHRhYmxlIG9yIGluZGV4LgotICovCi1leHRlcm4g
aW50IGV4dGFiX3N0YXJ0LCBleHRhYl9lbmQsIGV4aWR4X3N0YXJ0LCBleGlkeF9lbmQ7Ci0KLS8q
CiAgKiBFbnRyeSB0eXBlcy4KICAqIFRoZXNlIGFyZSB0aGUgb25seSBlbnRyeSB0eXBlcyB0aGF0
IGhhdmUgYmVlbiBzZWVuIGluIHRoZSBrZXJuZWwuCiAgKi8KQEAgLTEzMSw4ICsxMjYsMzAgQEAg
c3RydWN0IHVud2luZF9zdGF0ZSB7CiBzdGF0aWMgX19pbmxpbmUgaW50MzJfdAogZGJfZXhwYW5k
X3ByZWwzMSh1aW50MzJfdCBwcmVsMzEpCiB7CisJcmV0dXJuICgoaW50MzJfdCkocHJlbDMxKSA8
PCAxKSAvIDI7Cit9CisKK3N0cnVjdCBkYl9maW5kX2luZGV4X2NvbnRleHRfdAoreworCWludCB2
YWxpZDsKKwljYWRkcl90IGFkZHI7CisJY2FkZHJfdCBleGlkeF9zdGFydCwgZXhpZHhfZW5kOwor
fTsKIAotCXJldHVybiAoKGludDMyX3QpKHByZWwzMSAmIDB4N2ZmZmZmZmZ1KSA8PCAxKSAvIDI7
CitzdGF0aWMgaW50CitkYl9maW5kX2luZGV4X2ZpbGVfY2IobGlua2VyX2ZpbGVfdCBsZiwgdm9p
ZCogYXJnKQoreworCXN0cnVjdCBkYl9maW5kX2luZGV4X2NvbnRleHRfdCAqY29udGV4dCA9IChz
dHJ1Y3QgZGJfZmluZF9pbmRleF9jb250ZXh0X3QqKWFyZzsKKwlpZiAoY29udGV4dC0+YWRkciA+
PSBsZi0+YWRkcmVzcyAmJiBjb250ZXh0LT5hZGRyIDwgbGYtPmFkZHJlc3MgKyBsZi0+c2l6ZSkK
Kwl7CisJCWNvbnRleHQtPmV4aWR4X3N0YXJ0ID0gbGlua2VyX2ZpbGVfbG9va3VwX3N5bWJvbChs
ZiwgIl9fZXhpZHhfc3RhcnQiLCAwKTsKKwkJY29udGV4dC0+ZXhpZHhfZW5kID0gbGlua2VyX2Zp
bGVfbG9va3VwX3N5bWJvbChsZiwgIl9fZXhpZHhfZW5kIiwgMCk7CisJCWlmIChjb250ZXh0LT5l
eGlkeF9zdGFydCAmJiBjb250ZXh0LT5leGlkeF9lbmQpCisJCQljb250ZXh0LT52YWxpZCA9IDE7
CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOwogfQogCiAvKgpAQCAtMTQ4LDEwICsxNjUs
MTggQEAgZGJfZmluZF9pbmRleCh1aW50MzJfdCBhZGRyKQogCWludDMyX3QgcHJlbDMxX2FkZHI7
CiAJdWludDMyX3QgZnVuY19hZGRyOwogCi0Jc3RhcnQgPSAoc3RydWN0IHVud2luZF9pZHggKikm
ZXhpZHhfc3RhcnQ7CisJc3RydWN0IGRiX2ZpbmRfaW5kZXhfY29udGV4dF90IGNvbnRleHQ7CisJ
Y29udGV4dC52YWxpZCA9IDA7CisJY29udGV4dC5hZGRyID0gKGNhZGRyX3QpYWRkcjsKKworCWxp
bmtlcl9maWxlX2ZvcmVhY2goZGJfZmluZF9pbmRleF9maWxlX2NiLCAmY29udGV4dCk7CisJaWYg
KCFjb250ZXh0LnZhbGlkKQorCQlyZXR1cm4gMDsKKworCXN0YXJ0ID0gKHN0cnVjdCB1bndpbmRf
aWR4ICopY29udGV4dC5leGlkeF9zdGFydDsKIAogCW1pbiA9IDA7Ci0JbWF4ID0gKCZleGlkeF9l
bmQgLSAmZXhpZHhfc3RhcnQpIC8gMjsKKwltYXggPSAoY29udGV4dC5leGlkeF9lbmQgLSBjb250
ZXh0LmV4aWR4X3N0YXJ0KSAvIDI7CiAKIAl3aGlsZSAobWluICE9IG1heCkgewogCQltaWQgPSBt
aW4gKyAobWF4IC0gbWluICsgMSkgLyAyOwpAQCAtMjY5LDcgKzI5NCw3IEBAIGRiX3Vud2luZF9l
eGVjX2luc24oc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUpCiAJCS8qIFN0b3AgcHJvY2Vzc2lu
ZyAqLwogCQlzdGF0ZS0+ZW50cmllcyA9IDA7CiAKLQl9IGVsc2UgaWYgKChpbnNuID09IElOU05f
UE9QX1JFR1MpKSB7CisJfSBlbHNlIGlmIChpbnNuID09IElOU05fUE9QX1JFR1MpIHsKIAkJdW5z
aWduZWQgaW50IG1hc2ssIHJlZzsKIAogCQltYXNrID0gZGJfdW53aW5kX2V4ZWNfcmVhZF9ieXRl
KHN0YXRlKTsKQEAgLTMwOCw3ICszMzMsNyBAQCBkYl91bndpbmRfZXhlY19pbnNuKHN0cnVjdCB1
bndpbmRfc3RhdGUgKnN0YXRlKQogI2lmIDAKIAlkYl9wcmludGYoImZwID0gJTA4eCwgc3AgPSAl
MDh4LCBsciA9ICUwOHgsIHBjID0gJTA4eFxuIiwKIAkgICAgc3RhdGUtPnJlZ2lzdGVyc1tGUF0s
IHN0YXRlLT5yZWdpc3RlcnNbU1BdLCBzdGF0ZS0+cmVnaXN0ZXJzW0xSXSwKLQkgICAgc3RhdGUt
PnJlZ2lzdGVyc1tQQ10pOworCSAgICBzdGF0ZS0+cmVnaXN0ZXJzW1BDXT9zdGF0ZS0+cmVnaXN0
ZXJzW1BDXTpzdGF0ZS0+c3RhcnRfcGMpOwogI2VuZGlmCiAKIAlyZXR1cm4gMDsKQEAgLTM1Miwz
MCArMzc3LDMwIEBAIGRiX3Vud2luZF90YWIoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUpCiB9
CiAKIHN0YXRpYyB2b2lkCi1kYl9zdGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAq
c3RhdGUpCitkYl9zdGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUsIGlu
dCBjb3VudCkKIHsKIAlzdHJ1Y3QgdW53aW5kX2lkeCAqaW5kZXg7CiAJY29uc3QgY2hhciAqbmFt
ZTsKIAlkYl9leHByX3QgdmFsdWU7CiAJZGJfZXhwcl90IG9mZnNldDsKIAljX2RiX3N5bV90IHN5
bTsKKyNpZiAwCiAJdV9pbnQgcmVnLCBpOwogCWNoYXIgKnNlcDsKIAl1aW50MTZfdCB1cGRfbWFz
azsKKyNlbmRpZgkKIAlib29sIGZpbmlzaGVkOwogCiAJZmluaXNoZWQgPSBmYWxzZTsKLQl3aGls
ZSAoIWZpbmlzaGVkKSB7CisJc3RhdGUtPnN0YXJ0X3BjID0gc3RhdGUtPnJlZ2lzdGVyc1tQQ107
CisJd2hpbGUgKCFmaW5pc2hlZCAmJiBjb3VudC0tKSB7CiAJCS8qIFJlc2V0IHRoZSBtYXNrIG9m
IHVwZGF0ZWQgcmVnaXN0ZXJzICovCiAJCXN0YXRlLT51cGRhdGVfbWFzayA9IDA7CiAKLQkJLyog
VGhlIHBjIHZhbHVlIGlzIGNvcnJlY3QgYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4sIHNhdmUgaXQg
Ki8KLQkJc3RhdGUtPnN0YXJ0X3BjID0gc3RhdGUtPnJlZ2lzdGVyc1tQQ107Ci0KIAkJLyogRmlu
ZCB0aGUgaXRlbSB0byBydW4gKi8KIAkJaW5kZXggPSBkYl9maW5kX2luZGV4KHN0YXRlLT5zdGFy
dF9wYyk7CiAKLQkJaWYgKGluZGV4LT5pbnNuICE9IEVYSURYX0NBTlRVTldJTkQpIHsKKwkJaWYg
KGluZGV4ICYmIGluZGV4LT5pbnNuICE9IEVYSURYX0NBTlRVTldJTkQpIHsKIAkJCWlmIChpbmRl
eC0+aW5zbiAmICgxVSA8PCAzMSkpIHsKIAkJCQkvKiBUaGUgZGF0YSBpcyB3aXRoaW4gdGhlIGlu
c3RydWN0aW9uICovCiAJCQkJc3RhdGUtPmluc24gPSAmaW5kZXgtPmluc247CkBAIC0zOTYsMTYg
KzQyMSwxNyBAQCBkYl9zdGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUp
CiAJCQluYW1lID0gIihudWxsKSI7CiAJCX0gZWxzZQogCQkJZGJfc3ltYm9sX3ZhbHVlcyhzeW0s
ICZuYW1lLCAmdmFsdWUpOworCiAJCWRiX3ByaW50ZigiJXMoKSBhdCAiLCBuYW1lKTsKIAkJZGJf
cHJpbnRzeW0oc3RhdGUtPnN0YXJ0X3BjLCBEQl9TVEdZX1BST0MpOwogCQlkYl9wcmludGYoIlxu
Iik7CisjaWYgMAogCQlkYl9wcmludGYoIlx0IHBjID0gMHglMDh4ICBsciA9IDB4JTA4eCAoIiwg
c3RhdGUtPnN0YXJ0X3BjLAogCQkgICAgc3RhdGUtPnJlZ2lzdGVyc1tMUl0pOwogCQlkYl9wcmlu
dHN5bShzdGF0ZS0+cmVnaXN0ZXJzW0xSXSwgREJfU1RHWV9QUk9DKTsKIAkJZGJfcHJpbnRmKCIp
XG4iKTsKIAkJZGJfcHJpbnRmKCJcdCBzcCA9IDB4JTA4eCAgZnAgPSAweCUwOHgiLAogCQkgICAg
c3RhdGUtPnJlZ2lzdGVyc1tTUF0sIHN0YXRlLT5yZWdpc3RlcnNbRlBdKTsKLQogCQkvKiBEb24n
dCBwcmludCB0aGUgcmVnaXN0ZXJzIHdlIGhhdmUgYWxyZWFkeSBwcmludGVkICovCiAJCXVwZF9t
YXNrID0gc3RhdGUtPnVwZGF0ZV9tYXNrICYgCiAJCSAgICB+KCgxIDw8IFNQKSB8ICgxIDw8IEZQ
KSB8ICgxIDw8IExSKSB8ICgxIDw8IFBDKSk7CkBAIC00MjUsNiArNDUxLDkgQEAgZGJfc3RhY2tf
dHJhY2VfY21kKHN0cnVjdCB1bndpbmRfc3RhdGUgKnN0YXRlKQogCQkJfQogCQl9CiAJCWRiX3By
aW50ZigiXG4iKTsKKyNlbmRpZgorCQkvKiBUaGUgcGMgdmFsdWUgaXMgY29ycmVjdCBhbmQgd2ls
bCBiZSBvdmVyd3JpdHRlbiwgc2F2ZSBpdCAqLworCQlzdGF0ZS0+c3RhcnRfcGMgPSBzdGF0ZS0+
cmVnaXN0ZXJzW1BDXTsKIAogCQkvKgogCQkgKiBTdG9wIGlmIGRpcmVjdGVkIHRvIGRvIHNvLCBv
ciBpZiB3ZSd2ZSB1bndvdW5kIGJhY2sgdG8gdGhlCkBAIC00MzUsMTQgKzQ2NCwxNyBAQCBkYl9z
dGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUpCiAJCSAqIHRoZSBsYXN0
IGZyYW1lIHByaW50ZWQgYmVmb3JlIHlvdSBzZWUgdGhlIHVud2luZCBmYWlsdXJlCiAJCSAqIG1l
c3NhZ2UgKG1heWJlIGl0IG5lZWRzIGEgU1RPUF9VTldJTkRJTkcpLgogCQkgKi8KLQkJaWYgKGlu
ZGV4LT5pbnNuID09IEVYSURYX0NBTlRVTldJTkQpIHsKLQkJCWRiX3ByaW50ZigiVW5hYmxlIHRv
IHVud2luZCBmdXJ0aGVyXG4iKTsKKwkJaWYgKGluZGV4ICYmIGluZGV4LT5pbnNuID09IEVYSURY
X0NBTlRVTldJTkQpIHsKKwkJCWlmIChjb3VudCkKKwkJCQlkYl9wcmludGYoIlVuYWJsZSB0byB1
bndpbmQgZnVydGhlclxuIik7CiAJCQlmaW5pc2hlZCA9IHRydWU7CiAJCX0gZWxzZSBpZiAoc3Rh
dGUtPnJlZ2lzdGVyc1tQQ10gPCBWTV9NSU5fS0VSTkVMX0FERFJFU1MpIHsKLQkJCWRiX3ByaW50
ZigiVW5hYmxlIHRvIHVud2luZCBpbnRvIHVzZXIgbW9kZVxuIik7CisJCQlpZiAoY291bnQpCisJ
CQkJZGJfcHJpbnRmKCJVbmFibGUgdG8gdW53aW5kIGludG8gdXNlciBtb2RlXG4iKTsKIAkJCWZp
bmlzaGVkID0gdHJ1ZTsKIAkJfSBlbHNlIGlmIChzdGF0ZS0+dXBkYXRlX21hc2sgPT0gMCkgewot
CQkJZGJfcHJpbnRmKCJVbndpbmQgZmFpbHVyZSAobm8gcmVnaXN0ZXJzIGNoYW5nZWQpXG4iKTsK
KwkJCWlmIChjb3VudCkKKwkJCQlkYl9wcmludGYoIlVud2luZCBmYWlsdXJlIChubyByZWdpc3Rl
cnMgY2hhbmdlZClcbiIpOwogCQkJZmluaXNoZWQgPSB0cnVlOwogCQl9CiAJfQpAQCAtNDc5LDcg
KzUxMSw3IEBAIGRiX3N0YWNrX3RyYWNlX2NtZChzdHJ1Y3QgdW53aW5kX3N0YXRlICpzdGF0ZSkK
IAogI2lmbmRlZiBfX0FSTV9FQUJJX18JLyogVGhlIGZyYW1lIGZvcm1hdCBpcyBkaWZmZXJlbmQg
aW4gQUFQQ1MgKi8KIHN0YXRpYyB2b2lkCi1kYl9zdGFja190cmFjZV9jbWQoZGJfZXhwcl90IGFk
ZHIsIGRiX2V4cHJfdCBjb3VudCwgYm9vbGVhbl90IGtlcm5lbF9vbmx5KQorZGJfc3RhY2tfdHJh
Y2VfY21kKGRiX2V4cHJfdCBhZGRyLCBpbnQgY291bnQsIGJvb2xlYW5fdCBrZXJuZWxfb25seSkK
IHsKIAl1X2ludDMyX3QJKmZyYW1lLCAqbGFzdGZyYW1lOwogCWNfZGJfc3ltX3Qgc3ltOwpAQCAt
NjA4LDkgKzY0MCw5IEBAIGRiX3RyYWNlX3RocmVhZChzdHJ1Y3QgdGhyZWFkICp0aHIsIGludCBj
b3VudCkKIAkJc3RhdGUucmVnaXN0ZXJzW0xSXSA9IGN0eC0+dW5fMzIucGNiMzJfbHI7CiAJCXN0
YXRlLnJlZ2lzdGVyc1tQQ10gPSBjdHgtPnVuXzMyLnBjYjMyX3BjOwogCi0JCWRiX3N0YWNrX3Ry
YWNlX2NtZCgmc3RhdGUpOworCQlkYl9zdGFja190cmFjZV9jbWQoJnN0YXRlLCBjb3VudCk7CiAj
ZWxzZQotCQlkYl9zdGFja190cmFjZV9jbWQoY3R4LT51bl8zMi5wY2IzMl9yMTEsIC0xLCBUUlVF
KTsKKwkJZGJfc3RhY2tfdHJhY2VfY21kKGN0eC0+dW5fMzIucGNiMzJfcjExLCBjb3VudCwgVFJV
RSk7CiAjZW5kaWYKIAl9IGVsc2UKIAkJZGJfdHJhY2Vfc2VsZigpOwpAQCAtNjMyLDcgKzY2NCw3
IEBAIGRiX3RyYWNlX3NlbGYodm9pZCkKIAlzdGF0ZS5yZWdpc3RlcnNbTFJdID0gKHVpbnQzMl90
KV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKTsKIAlzdGF0ZS5yZWdpc3RlcnNbUENdID0gKHVp
bnQzMl90KWRiX3RyYWNlX3NlbGY7CiAKLQlkYl9zdGFja190cmFjZV9jbWQoJnN0YXRlKTsKKwlk
Yl9zdGFja190cmFjZV9jbWQoJnN0YXRlLCAtMSk7CiAjZWxzZQogCWRiX2FkZHJfdCBhZGRyOwog
CmRpZmYgLS1naXQgYS9zeXMvY29uZi9rbW9kLm1rIGIvc3lzL2NvbmYva21vZC5tawppbmRleCBi
ZDA1ODc4Li5kMGExZjBmIDEwMDY0NAotLS0gYS9zeXMvY29uZi9rbW9kLm1rCisrKyBiL3N5cy9j
b25mL2ttb2QubWsKQEAgLTEzMyw2ICsxMzMsMTYgQEAgQ0ZMQUdTKz0JLW1sb25nY2FsbCAtZm5v
LW9taXQtZnJhbWUtcG9pbnRlcgogQ0ZMQUdTKz0JLUcwIC1mbm8tcGljIC1tbm8tYWJpY2FsbHMg
LW1sb25nLWNhbGxzCiAuZW5kaWYKIAorLmlmICR7TUFDSElORV9DUFVBUkNIfSA9PSBhcm0KKy5p
ZiAhZGVmaW5lZChXSVRIT1VUX0FSTV9FQUJJKQorQ0ZMQUdTKz0gICAgICAgLWZ1bndpbmQtdGFi
bGVzCisuaWYgJHtDT01QSUxFUl9UWVBFfSA9PSAiY2xhbmciCisjIGNsYW5nIHJlcXVpcmVzIHVz
IHRvIHRlbGwgaXQgdG8gZW1pdCBhc3NlbWJseSB3aXRoIHVud2luZCBpbmZvcm1hdGlvbgorQ0ZM
QUdTKz0gICAgICAgLW1sbHZtIC1hcm0tZW5hYmxlLWVoYWJpCisuZW5kaWYKKy5lbmRpZgorLmVu
ZGlmCisKIC5pZiBkZWZpbmVkKERFQlVHKSB8fCBkZWZpbmVkKERFQlVHX0ZMQUdTKQogQ1RGRkxB
R1MrPQktZwogLmVuZGlmCmRpZmYgLS1naXQgYS9zeXMvY29uZi9sZHNjcmlwdC5hcm0gYi9zeXMv
Y29uZi9sZHNjcmlwdC5hcm0KaW5kZXggMGQxYzdlZS4uMjQ4MmNlNyAxMDA2NDQKLS0tIGEvc3lz
L2NvbmYvbGRzY3JpcHQuYXJtCisrKyBiL3N5cy9jb25mL2xkc2NyaXB0LmFybQpAQCAtNTcsMTcg
KzU3LDExIEBAIFNFQ1RJT05TCiAgIC5wbHQgICAgICA6IHsgKigucGx0KQl9CiAKICAgLiA9IEFM
SUdOKDQpOwotICBfZXh0YWJfc3RhcnQgPSAuOwotICBQUk9WSURFKGV4dGFiX3N0YXJ0ID0gLik7
CiAgIC5BUk0uZXh0YWIgOiB7ICooLkFSTS5leHRhYikgfQotICBfZXh0YWIuZW5kID0gLjsKLSAg
UFJPVklERShleHRhYl9lbmQgPSAuKTsKIAotICBfZXhpZHhfc3RhcnQgPSAuOwotICBQUk9WSURF
KGV4aWR4X3N0YXJ0ID0gLik7CisgIF9fZXhpZHhfc3RhcnQgPSAuOwogICAuQVJNLmV4aWR4IDog
eyAqKC5BUk0uZXhpZHgpIH0KLSAgX2V4aWR4X2VuZCA9IC47Ci0gIFBST1ZJREUoZXhpZHhfZW5k
ID0gLik7CisgIF9fZXhpZHhfZW5kID0gLjsKIAogICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9y
IHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgICB0aGUgc2Ft
ZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KZGlmZiAt
LWdpdCBhL3N5cy9kZGIvZGJfbWFpbi5jIGIvc3lzL2RkYi9kYl9tYWluLmMKaW5kZXggNmU5Mjg2
Yy4uZjY0YjJlMiAxMDA2NDQKLS0tIGEvc3lzL2RkYi9kYl9tYWluLmMKKysrIGIvc3lzL2RkYi9k
Yl9tYWluLmMKQEAgLTg2LDYgKzg2LDI0IEBAIFhfZGJfbG9va3VwKGRiX3N5bXRhYl90ICpzeW10
YWIsIGNvbnN0IGNoYXIgKnN5bWJvbCkKIAlyZXR1cm4gKE5VTEwpOwogfQogCisvKgorICogY2hl
Y2sgaWYgdGhlIG5hbWUgaXMgdmFsaWQuCisgKiBpbnZsaWFkIHRoZSBuYW1lICRhLCRkLCV0IGdl
bmVyYXRlZCBieSBFTEYgQVJNIHRvb2xjaGFpbgorICovCitzdGF0aWMgaW50CitkYl9pc192YWxp
ZF9uYW1lKGNvbnN0IGNoYXIqIG5hbWUpCit7CisJaWYgKG5hbWUgPT0gTlVMTCB8fCBuYW1lWzBd
ID09ICdcMCcpCisJCXJldHVybiAwOworCWlmIChuYW1lWzBdID09ICckJyAmJiBzdHJjaHIoImF0
ZCIsIG5hbWVbMV0pIAorCQkmJiBuYW1lWzJdID09ICdcMCcpCisJeworCQlyZXR1cm4gMDsKKwl9
CisKKwlyZXR1cm4gMTsKK30KKwogY19kYl9zeW1fdAogWF9kYl9zZWFyY2hfc3ltYm9sKGRiX3N5
bXRhYl90ICpzeW10YWIsIGRiX2FkZHJfdCBvZmYsIGRiX3N0cmF0ZWd5X3Qgc3RyYXQsCiAgICAg
ZGJfZXhwcl90ICpkaWZmcCkKQEAgLTkzLDExICsxMTEsMTYgQEAgWF9kYl9zZWFyY2hfc3ltYm9s
KGRiX3N5bXRhYl90ICpzeW10YWIsIGRiX2FkZHJfdCBvZmYsIGRiX3N0cmF0ZWd5X3Qgc3RyYXQs
CiAJY19saW5rZXJfc3ltX3QgbHN5bTsKIAlFbGZfU3ltICpzeW0sICptYXRjaDsKIAl1bnNpZ25l
ZCBsb25nIGRpZmY7CisJY29uc3QgY2hhciogbmFtZTsKIAogCWlmIChzeW10YWItPnByaXZhdGUg
PT0gTlVMTCkgewogCQlpZiAoIWxpbmtlcl9kZGJfc2VhcmNoX3N5bWJvbCgoY2FkZHJfdClvZmYs
ICZsc3ltLCAmZGlmZikpIHsKLQkJCSpkaWZmcCA9IChkYl9leHByX3QpZGlmZjsKLQkJCXJldHVy
biAoKGNfZGJfc3ltX3QpbHN5bSk7CisJCQlYX2RiX3N5bWJvbF92YWx1ZXMoc3ltdGFiLCAoY19k
Yl9zeW1fdClsc3ltLCAmbmFtZSwgTlVMTCk7CisJCQlpZiAoZGJfaXNfdmFsaWRfbmFtZShuYW1l
KSkKKwkJCXsKKwkJCQkqZGlmZnAgPSAoZGJfZXhwcl90KWRpZmY7CisJCQkJcmV0dXJuICgoY19k
Yl9zeW1fdClsc3ltKTsKKwkJCX0KIAkJfQogCQlyZXR1cm4gKE5VTEwpOwogCX0KQEAgLTExMyw4
ICsxMzYsMTQgQEAgWF9kYl9zZWFyY2hfc3ltYm9sKGRiX3N5bXRhYl90ICpzeW10YWIsIGRiX2Fk
ZHJfdCBvZmYsIGRiX3N0cmF0ZWd5X3Qgc3RyYXQsCiAJCSAgICBFTEZfU1RfVFlQRShzeW0tPnN0
X2luZm8pICE9IFNUVF9GVU5DICYmCiAJCSAgICBFTEZfU1RfVFlQRShzeW0tPnN0X2luZm8pICE9
IFNUVF9OT1RZUEUpCiAJCQljb250aW51ZTsKKwogCQlpZiAoKG9mZiAtIHN5bS0+c3RfdmFsdWUp
ID4gZGlmZikKIAkJCWNvbnRpbnVlOworCisJCVhfZGJfc3ltYm9sX3ZhbHVlcyhzeW10YWIsIChj
X2RiX3N5bV90KXN5bSwgJm5hbWUsIE5VTEwpOworCQlpZiAoIWRiX2lzX3ZhbGlkX25hbWUobmFt
ZSkpCisJCQljb250aW51ZTsKKwogCQlpZiAoKG9mZiAtIHN5bS0+c3RfdmFsdWUpIDwgZGlmZikg
ewogCQkJZGlmZiA9IG9mZiAtIHN5bS0+c3RfdmFsdWU7CiAJCQltYXRjaCA9IHN5bTsK
--047d7b60457ea31a1d04ed1b07e0--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAAvnz_p2vw9=HWbGPePKm_yDxM-bM1h6VaQBeJq9sYXPRb2-Lg>