Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Mar 2014 20:04:47 +0200
From:      dan_partelly <dan_partelly@rdsor.ro>
To:        <freebsd-current@freebsd.org>
Subject:   RFC - DDB relops,logical ops,bitwise ops
Message-ID:  <c9e322403d0ce0a6dc207006066bfa56@rdsor.ro>

next in thread | raw e-mail | index | archive | help
--=_f8dcde1aaa7d24dd71723fe72776563c
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
 charset=UTF-8

Hi all,

I attach a patch for comments (the patch is not final is intended for
comments only, format for one thing is messed ) 
regarding support for !=, ==, <, >, >=, <= , ! , ~, & , | , && , ||
operators in DDB expressions.

The code was mainly pulled from Mach 3.0 kernel with a couple of bug-fixes
 I added them in my copy mainly
because I am interested in crafting conditional breakpoints later. (and
some other DDB usability enhancements).
Please share your opinions. 

Regards!
--=_f8dcde1aaa7d24dd71723fe72776563c
Content-Transfer-Encoding: base64
Content-Type: text/x-diff;
 name=ddb.patch;
 charset=UTF-8
Content-Disposition: attachment;
 filename=ddb.patch

ZGlmZiAtLWdpdCBkZGIvZGJfZXhwci5jIGRkYi9kYl9leHByLmMKaW5kZXggYjlhZWJjZS4uOWY2
OWY4NCAxMDA2NDQKLS0tIGRkYi9kYl9leHByLmMKKysrIGRkYi9kYl9leHByLmMKQEAgLTQzLDYg
KzQzLDkgQEAgc3RhdGljIGJvb2xlYW5fdAlkYl9tdWx0X2V4cHIoZGJfZXhwcl90ICp2YWx1ZXAp
Owogc3RhdGljIGJvb2xlYW5fdAlkYl9zaGlmdF9leHByKGRiX2V4cHJfdCAqdmFsdWVwKTsKIHN0
YXRpYyBib29sZWFuX3QJZGJfdGVybShkYl9leHByX3QgKnZhbHVlcCk7CiBzdGF0aWMgYm9vbGVh
bl90CWRiX3VuYXJ5KGRiX2V4cHJfdCAqdmFsdWVwKTsKK3N0YXRpYyBib29sZWFuX3QgZGJfbG9n
aWNhbF9vcl9leHByKGRiX2V4cHJfdCAqdmFsdWVwKTsgICAgICAKK3N0YXRpYyBib29sZWFuX3Qg
ZGJfbG9naWNhbF9hbmRfZXhwcihkYl9leHByX3QgKnZhbHVlcCk7CitzdGF0aWMgYm9vbGVhbl90
IGRiX2xvZ2ljYWxfcmVsYXRpb25fZXhwcihkYl9leHByX3QgKnZhbHVlcCk7CiAKIHN0YXRpYyBi
b29sZWFuX3QKIGRiX3Rlcm0oZGJfZXhwcl90ICp2YWx1ZXApCkBAIC01NCw4ICs1Nyw4IEBAIGRi
X3Rlcm0oZGJfZXhwcl90ICp2YWx1ZXApCiAJICAgIGlmICghZGJfdmFsdWVfb2ZfbmFtZShkYl90
b2tfc3RyaW5nLCB2YWx1ZXApICYmCiAJCSFkYl92YWx1ZV9vZl9uYW1lX3BjcHUoZGJfdG9rX3N0
cmluZywgdmFsdWVwKSAmJgogCQkhZGJfdmFsdWVfb2ZfbmFtZV92bmV0KGRiX3Rva19zdHJpbmcs
IHZhbHVlcCkpIHsKLQkJZGJfZXJyb3IoIlN5bWJvbCBub3QgZm91bmRcbiIpOwotCQkvKk5PVFJF
QUNIRUQqLworICAgICAgICAgICAgZGJfZXJyb3IoIlN5bWJvbCBub3QgZm91bmRcbiIpOworICAg
ICAgICAgICAgLypOT1RSRUFDSEVEKi8KIAkgICAgfQogCSAgICByZXR1cm4gKFRSVUUpOwogCX0K
QEAgLTgxLDE4ICs4NCwxOCBAQCBkYl90ZXJtKGRiX2V4cHJfdCAqdmFsdWVwKQogCX0KIAlpZiAo
dCA9PSB0RE9MTEFSKSB7CiAJICAgIGlmICghZGJfZ2V0X3ZhcmlhYmxlKHZhbHVlcCkpCi0JCXJl
dHVybiAoRkFMU0UpOworICAgICAgICAgICAgcmV0dXJuIChGQUxTRSk7CiAJICAgIHJldHVybiAo
VFJVRSk7CiAJfQogCWlmICh0ID09IHRMUEFSRU4pIHsKIAkgICAgaWYgKCFkYl9leHByZXNzaW9u
KHZhbHVlcCkpIHsKLQkJZGJfZXJyb3IoIlN5bnRheCBlcnJvclxuIik7Ci0JCS8qTk9UUkVBQ0hF
RCovCisgICAgICAgICAgICBkYl9lcnJvcigiVW5tYXRjaGVkICgpc1xuIik7CisgICAgICAgICAg
ICAvKk5PVFJFQUNIRUQqLwogCSAgICB9CiAJICAgIHQgPSBkYl9yZWFkX3Rva2VuKCk7CiAJICAg
IGlmICh0ICE9IHRSUEFSRU4pIHsKLQkJZGJfZXJyb3IoIlN5bnRheCBlcnJvclxuIik7Ci0JCS8q
Tk9UUkVBQ0hFRCovCisgICAgICAgICAgICBkYl9lcnJvcigiU3ludGF4IGVycm9yXG4iKTsKKyAg
ICAgICAgICAgIC8qTk9UUkVBQ0hFRCovCiAJICAgIH0KIAkgICAgcmV0dXJuIChUUlVFKTsKIAl9
CkBAIC0xMDgsMTkgKzExMSwzNSBAQCBkYl91bmFyeShkYl9leHByX3QgKnZhbHVlcCkKIAl0ID0g
ZGJfcmVhZF90b2tlbigpOwogCWlmICh0ID09IHRNSU5VUykgewogCSAgICBpZiAoIWRiX3VuYXJ5
KHZhbHVlcCkpIHsKLQkJZGJfZXJyb3IoIlN5bnRheCBlcnJvclxuIik7Ci0JCS8qTk9UUkVBQ0hF
RCovCisgICAgICAgICAgICBkYl9lcnJvcigiRXhwcmVzc2lvbiBzeW50YXggZXJyb3IgYWZ0ZXIg
Jy0nXG4iKTsKKyAgICAgICAgICAgIC8qTk9UUkVBQ0hFRCovCiAJICAgIH0KIAkgICAgKnZhbHVl
cCA9IC0qdmFsdWVwOwogCSAgICByZXR1cm4gKFRSVUUpOwogCX0KKwlpZiAoIHQgPT0gdEVYQ0wp
IHsKKwkgICAgaWYoIWRiX3VuYXJ5KHZhbHVlcCkpIHsKKwkgICAgICAgIGRiX2Vycm9yKCJFeHBy
ZXNzaW9uIHN5bnRheCBlcnJvciBhZnRlciAnISdcbiIpOworCSAgICAgICAgLyogTk9UUkVBQ0hF
RCAgKi8KKyAgICAgICAgfQorICAgICAgICAqdmFsdWVwID0gKCEoKnZhbHVlcCkpOworICAgICAg
ICByZXR1cm4gKFRSVUUpOworICAgIH0KKyAgICBpZiAodCA9PSB0QklUX05PVCkgeworICAgICAg
ICBpZighZGJfdW5hcnkodmFsdWVwKSkgeworICAgICAgICAgICAgZGJfZXJyb3IoIkV4cHJlc3Np
b24gc3ludGF4IGVycm9yIGFmdGVyICd+J1xuIik7CisgICAgICAgICAgICAvKiBOT1RSRUFDSEVE
ICovCisgICAgICAgIH0KKyAgICAgICAgKnZhbHVlcCA9ICh+KCp2YWx1ZXApKTsKKyAgICAgICAg
cmV0dXJuIChUUlVFKTsKKyAgICB9CiAJaWYgKHQgPT0gdFNUQVIpIHsKIAkgICAgLyogaW5kaXJl
Y3Rpb24gKi8KIAkgICAgaWYgKCFkYl91bmFyeSh2YWx1ZXApKSB7Ci0JCWRiX2Vycm9yKCJTeW50
YXggZXJyb3JcbiIpOworICAgICAgICAgICAgZGJfZXJyb3IoIkV4cHJlc3Npb24gc3ludGF4IGVy
cm9yIGFmdGVyICcqJ1xuIik7CiAJCS8qTk9UUkVBQ0hFRCovCiAJICAgIH0KLQkgICAgKnZhbHVl
cCA9IGRiX2dldF92YWx1ZSgoZGJfYWRkcl90KSp2YWx1ZXAsIHNpemVvZih2b2lkICopLCBGQUxT
RSk7CisgICAgICAgICp2YWx1ZXAgPSBkYl9nZXRfdmFsdWUoKGRiX2FkZHJfdCkqdmFsdWVwLCBz
aXplb2Yodm9pZCAqKSwgRkFMU0UpOwogCSAgICByZXR1cm4gKFRSVUUpOwogCX0KIAlkYl91bnJl
YWRfdG9rZW4odCk7CkBAIC0xMzcsMTQgKzE1NiwyMCBAQCBkYl9tdWx0X2V4cHIoZGJfZXhwcl90
ICp2YWx1ZXApCiAJICAgIHJldHVybiAoRkFMU0UpOwogCiAJdCA9IGRiX3JlYWRfdG9rZW4oKTsK
LQl3aGlsZSAodCA9PSB0U1RBUiB8fCB0ID09IHRTTEFTSCB8fCB0ID09IHRQQ1QgfHwgdCA9PSB0
SEFTSCkgeworCXdoaWxlICh0ID09IHRTVEFSIHx8IHQgPT0gdFNMQVNIIHx8IHQgPT0gdFBDVCB8
fCB0ID09IHRIQVNICisJICAgICAgICB8fCB0ID09IHRCSVRfQU5EICkgewogCSAgICBpZiAoIWRi
X3Rlcm0oJnJocykpIHsKLQkJZGJfZXJyb3IoIlN5bnRheCBlcnJvclxuIik7Ci0JCS8qTk9UUkVB
Q0hFRCovCisgICAgICAgICAgICBkYl9lcnJvcigiU3ludGF4IGVycm9yXG4iKTsKKyAgICAgICAg
ICAgIC8qTk9UUkVBQ0hFRCovCiAJICAgIH0KLQkgICAgaWYgKHQgPT0gdFNUQVIpCi0JCWxocyAq
PSByaHM7Ci0JICAgIGVsc2UgeworCSAgICBzd2l0Y2godCkgIHsKKyAgICAgICAgY2FzZSB0U1RB
UjoKKyAgICAgICAgICAgIGxocyAqPSByaHM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSB0QklUX0FORDoKKyAgICAgICAgICAgIGxocyAmPSByaHM7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgZGVmYXVsdDoKIAkJaWYgKHJocyA9PSAwKSB7CiAJCSAgICBkYl9lcnJvcigi
RGl2aWRlIGJ5IDBcbiIpOwogCQkgICAgLypOT1RSRUFDSEVEKi8KQEAgLTE2OCwyMCArMTkzLDI1
IEBAIGRiX2FkZF9leHByKGRiX2V4cHJfdCAqdmFsdWVwKQogewogCWRiX2V4cHJfdAlsaHMsIHJo
czsKIAlpbnQJCXQ7CisJY2hhciBjOwogCiAJaWYgKCFkYl9tdWx0X2V4cHIoJmxocykpCiAJICAg
IHJldHVybiAoRkFMU0UpOwogCiAJdCA9IGRiX3JlYWRfdG9rZW4oKTsKLQl3aGlsZSAodCA9PSB0
UExVUyB8fCB0ID09IHRNSU5VUykgeworCXdoaWxlICh0ID09IHRQTFVTIHx8IHQgPT0gdE1JTlVT
IHx8IHQgPT0gdEJJVF9PUikgewogCSAgICBpZiAoIWRiX211bHRfZXhwcigmcmhzKSkgewotCQlk
Yl9lcnJvcigiU3ludGF4IGVycm9yXG4iKTsKLQkJLypOT1RSRUFDSEVEKi8KKwkgICAgICAgIGMg
PSBkYl90b2tfc3RyaW5nWzBdOworICAgICAgICAgICAgZGJfcHJpbnRmKCJFeHByZXNzaW9uIHN5
bnRheCBlcnJvciBhZnRlciAnJWMnXG4iLGMpOworICAgICAgICAgICAgZGJfZXJyb3IoTlVMTCk7
CisgICAgICAgICAgICAvKk5PVFJFQUNIRUQqLwogCSAgICB9CiAJICAgIGlmICh0ID09IHRQTFVT
KQotCQlsaHMgKz0gcmhzOwotCSAgICBlbHNlCi0JCWxocyAtPSByaHM7CisgICAgICAgICAgICBs
aHMgKz0gcmhzOworCSAgICBlbHNlIGlmICh0ID09IHRNSU5VUykKKyAgICAgICAgICAgIGxocyAt
PSByaHM7CisgICAgICAgIGVsc2UgCisgICAgICAgICAgICBsaHMgfD0gcmhzOwogCSAgICB0ID0g
ZGJfcmVhZF90b2tlbigpOwogCX0KIAlkYl91bnJlYWRfdG9rZW4odCk7CkBAIC0yMDEsMTggKzIz
MSwxOCBAQCBkYl9zaGlmdF9leHByKGRiX2V4cHJfdCAqdmFsdWVwKQogCXQgPSBkYl9yZWFkX3Rv
a2VuKCk7CiAJd2hpbGUgKHQgPT0gdFNISUZUX0wgfHwgdCA9PSB0U0hJRlRfUikgewogCSAgICBp
ZiAoIWRiX2FkZF9leHByKCZyaHMpKSB7Ci0JCWRiX2Vycm9yKCJTeW50YXggZXJyb3JcbiIpOwot
CQkvKk5PVFJFQUNIRUQqLworICAgICAgICAgICAgZGJfZXJyb3IoIlN5bnRheCBlcnJvclxuIik7
CisgICAgICAgICAgICAvKk5PVFJFQUNIRUQqLwogCSAgICB9CiAJICAgIGlmIChyaHMgPCAwKSB7
Ci0JCWRiX2Vycm9yKCJOZWdhdGl2ZSBzaGlmdCBhbW91bnRcbiIpOwotCQkvKk5PVFJFQUNIRUQq
LworICAgICAgICAgICAgZGJfZXJyb3IoIk5lZ2F0aXZlIHNoaWZ0IGFtb3VudFxuIik7CisgICAg
ICAgICAgICAvKk5PVFJFQUNIRUQqLwogCSAgICB9CiAJICAgIGlmICh0ID09IHRTSElGVF9MKQot
CQlsaHMgPDw9IHJoczsKKyAgICAgICAgICAgIGxocyA8PD0gcmhzOwogCSAgICBlbHNlIHsKLQkJ
LyogU2hpZnQgcmlnaHQgaXMgdW5zaWduZWQgKi8KLQkJbGhzID0gKHVuc2lnbmVkKSBsaHMgPj4g
cmhzOworICAgICAgICAgICAgLyogU2hpZnQgcmlnaHQgaXMgdW5zaWduZWQgKi8KKyAgICAgICAg
ICAgIGxocyA9ICh1bnNpZ25lZCkgbGhzID4+IHJoczsKIAkgICAgfQogCSAgICB0ID0gZGJfcmVh
ZF90b2tlbigpOwogCX0KQEAgLTIyMSw4ICsyNTEsMTA1IEBAIGRiX3NoaWZ0X2V4cHIoZGJfZXhw
cl90ICp2YWx1ZXApCiAJcmV0dXJuIChUUlVFKTsKIH0KIAorYm9vbGVhbl90CitkYl9sb2dpY2Fs
X3JlbGF0aW9uX2V4cHIoCisJZGJfZXhwcl90ICp2YWx1ZXApCit7CisJZGJfZXhwcl90CWxocywg
cmhzOworCWludAkJdDsKKwljaGFyCQlvcFszXTsKKworCWlmICghZGJfc2hpZnRfZXhwcigmbGhz
KSkKKwkgICAgcmV0dXJuIEZBTFNFOworCisJdCA9IGRiX3JlYWRfdG9rZW4oKTsKKwl3aGlsZSAo
dCA9PSB0TE9HX0VRIHx8IHQgPT0gdExPR19OT1RfRVEKKwkJfHwgdCA9PSB0R1JFQVRFUiB8fCB0
ID09IHRHUkVBVEVSX0VRCisJCXx8IHQgPT0gdExFU1MgfHwgdCA9PSB0TEVTU19FUSkgeworICAg
ICAgICAgICAgb3BbMF0gPSBkYl90b2tfc3RyaW5nWzBdOworICAgICAgICAgICAgb3BbMV0gPSBk
Yl90b2tfc3RyaW5nWzFdOworICAgICAgICAgICAgb3BbMl0gPSAwOworICAgICAgICAgICAgaWYg
KCFkYl9zaGlmdF9leHByKCZyaHMpKSB7CisgICAgICAgICAgICAgICAgZGJfcHJpbnRmKCJFeHBy
ZXNzaW9uIHN5bnRheCBlcnJvciBhZnRlciBcIiVzXCJcbiIsIG9wKTsKKyAgICAgICAgICAgICAg
ICBkYl9lcnJvcigwKTsKKyAgICAgICAgICAgICAgICAvKk5PVFJFQUNIRUQqLworCSAgICB9CisJ
ICAgIHN3aXRjaCh0KSB7CisgICAgICAgICAgICBjYXNlIHRMT0dfRVE6CisgICAgICAgICAgICBs
aHMgPSAobGhzID09IHJocyk7CisJCWJyZWFrOworICAgICAgICAgICAgY2FzZSB0TE9HX05PVF9F
UToKKyAgICAgICAgICAgIGxocyA9IChsaHMgIT0gcmhzKTsKKwkJYnJlYWs7CisJICAgIGNhc2Ug
dEdSRUFURVI6CisgICAgICAgICAgICBsaHMgPSAobGhzID4gcmhzKTsKKwkJYnJlYWs7CisJICAg
IGNhc2UgdEdSRUFURVJfRVE6CisgICAgICAgICAgICBsaHMgPSAobGhzID49IHJocyk7CisJCWJy
ZWFrOworCSAgICBjYXNlIHRMRVNTOgorICAgICAgICAgICAgbGhzID0gKGxocyA8IHJocyk7CisJ
CWJyZWFrOworCSAgICBjYXNlIHRMRVNTX0VROgorICAgICAgICAgICAgbGhzID0gKGxocyA8PSBy
aHMpOworCQlicmVhazsKKwkgICAgfQorICAgICAgICAgICAgdCA9IGRiX3JlYWRfdG9rZW4oKTsK
Kwl9CisJZGJfdW5yZWFkX3Rva2VuKHQpOworCSp2YWx1ZXAgPSBsaHM7CisJcmV0dXJuIFRSVUU7
Cit9CisKK2Jvb2xlYW5fdAorZGJfbG9naWNhbF9hbmRfZXhwcigKKwlkYl9leHByX3QgKnZhbHVl
cCkKK3sKKwlkYl9leHByX3QJbGhzLCByaHM7CisJaW50CQl0OworCisJaWYgKCFkYl9sb2dpY2Fs
X3JlbGF0aW9uX2V4cHIoJmxocykpCisJICAgIHJldHVybiBGQUxTRTsKKworCXQgPSBkYl9yZWFk
X3Rva2VuKCk7CisJd2hpbGUgKHQgPT0gdExPR19BTkQpIHsKKwkgICAgaWYgKCFkYl9sb2dpY2Fs
X3JlbGF0aW9uX2V4cHIoJnJocykpIHsKKyAgICAgICAgICAgIGRiX2Vycm9yKCJFeHByZXNzaW9u
IHN5bnRheCBlcnJvciBhZnRlciBcIiYmXCJcbiIpOworICAgICAgICAgICAgLypOT1RSRUFDSEVE
Ki8KKwkgICAgfQorCSAgICBsaHMgPSAobGhzICYmIHJocyk7CisJICAgIHQgPSBkYl9yZWFkX3Rv
a2VuKCk7CisJfQorCWRiX3VucmVhZF90b2tlbih0KTsKKwkqdmFsdWVwID0gbGhzOworCXJldHVy
biBUUlVFOworfQorCitib29sZWFuX3QKK2RiX2xvZ2ljYWxfb3JfZXhwcigKKwlkYl9leHByX3Qg
KnZhbHVlcCkKK3sKKwlkYl9leHByX3QJbGhzLCByaHM7CisJaW50CQl0OworCisJaWYgKCFkYl9s
b2dpY2FsX2FuZF9leHByKCZsaHMpKQorCSAgICByZXR1cm4oRkFMU0UpOworCisJdCA9IGRiX3Jl
YWRfdG9rZW4oKTsKKwl3aGlsZSAodCA9PSB0TE9HX09SKSB7CisJICAgIGlmICghZGJfbG9naWNh
bF9hbmRfZXhwcigmcmhzKSkgeworICAgICAgICAgICAgZGJfZXJyb3IoIkV4cHJlc3Npb24gc3lu
dGF4IGVycm9yIGFmdGVyIFwifHxcIlxuIik7CisgICAgICAgICAgICAvKk5PVFJFQUNIRUQqLwor
CSAgICB9CisJICAgIGxocyA9IChsaHMgfHwgcmhzKTsKKwkgICAgdCA9IGRiX3JlYWRfdG9rZW4o
KTsKKwl9CisJZGJfdW5yZWFkX3Rva2VuKHQpOworCSp2YWx1ZXAgPSBsaHM7CisJcmV0dXJuIFRS
VUU7Cit9CiBpbnQKIGRiX2V4cHJlc3Npb24oZGJfZXhwcl90ICp2YWx1ZXApCiB7Ci0JcmV0dXJu
IChkYl9zaGlmdF9leHByKHZhbHVlcCkpOworICAgIHJldHVybiAoZGJfbG9naWNhbF9vcl9leHBy
KHZhbHVlcCkpOwogfQpkaWZmIC0tZ2l0IGRkYi9kYl9pbnB1dC5jIGRkYi9kYl9pbnB1dC5jCmlu
ZGV4IDdjMzVmOTEuLjAzZWEzMzkgMTAwNjQ0Ci0tLSBkZGIvZGJfaW5wdXQuYworKysgZGRiL2Ri
X2lucHV0LmMKQEAgLTM3MiwzICszNzIsNCBAQCBkYl9jaGVja19pbnRlcnJ1cHQoKQogCQlicmVh
azsKIAl9CiB9CisKZGlmZiAtLWdpdCBkZGIvZGJfbGV4LmMgZGRiL2RiX2xleC5jCmluZGV4IDU0
YjUyOTUuLjhlZjhjNTQgMTAwNjQ0Ci0tLSBkZGIvZGJfbGV4LmMKKysrIGRkYi9kYl9sZXguYwpA
QCAtMjYwLDUxICsyNjAsODEgQEAgZGJfbGV4KCkKIAogCXN3aXRjaCAoYykgewogCSAgICBjYXNl
ICcrJzoKLQkJcmV0dXJuICh0UExVUyk7CisgICAgICAgICAgICByZXR1cm4gKHRQTFVTKTsKIAkg
ICAgY2FzZSAnLSc6Ci0JCXJldHVybiAodE1JTlVTKTsKKyAgICAgICAgICAgIHJldHVybiAodE1J
TlVTKTsKIAkgICAgY2FzZSAnLic6CiAJCWMgPSBkYl9yZWFkX2NoYXIoKTsKIAkJaWYgKGMgPT0g
Jy4nKQogCQkgICAgcmV0dXJuICh0RE9URE9UKTsKIAkJZGJfdW5yZWFkX2NoYXIoYyk7Ci0JCXJl
dHVybiAodERPVCk7CisgICAgICAgICAgICByZXR1cm4gKHRET1QpOwogCSAgICBjYXNlICcqJzoK
LQkJcmV0dXJuICh0U1RBUik7CisgICAgICAgICAgICByZXR1cm4gKHRTVEFSKTsKIAkgICAgY2Fz
ZSAnLyc6Ci0JCXJldHVybiAodFNMQVNIKTsKKyAgICAgICAgICAgIHJldHVybiAodFNMQVNIKTsK
IAkgICAgY2FzZSAnPSc6Ci0JCXJldHVybiAodEVRKTsKKwkgICAgICAgIGMgPSBkYl9yZWFkX2No
YXIoKTsKKwkgICAgICAgIGlmIChjID09ICc9JykgeworCSAgICAgICAgICAgIHJldHVybiAodExP
R19FUSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkYl91bnJlYWRfY2hhcihjKTsKKwkg
ICAgCXJldHVybiAodEVRKTsKIAkgICAgY2FzZSAnJSc6Ci0JCXJldHVybiAodFBDVCk7CisJCSAg
ICByZXR1cm4gKHRQQ1QpOwogCSAgICBjYXNlICcjJzoKLQkJcmV0dXJuICh0SEFTSCk7CisgICAg
ICAgICAgICByZXR1cm4gKHRIQVNIKTsKIAkgICAgY2FzZSAnKCc6Ci0JCXJldHVybiAodExQQVJF
Tik7CisgICAgICAgICAgICByZXR1cm4gKHRMUEFSRU4pOwogCSAgICBjYXNlICcpJzoKLQkJcmV0
dXJuICh0UlBBUkVOKTsKKyAgICAgICAgICAgIHJldHVybiAodFJQQVJFTik7CiAJICAgIGNhc2Ug
JywnOgotCQlyZXR1cm4gKHRDT01NQSk7CisgICAgICAgICAgICByZXR1cm4gKHRDT01NQSk7CiAJ
ICAgIGNhc2UgJyInOgotCQlyZXR1cm4gKHRESVRUTyk7CisgICAgICAgICAgICByZXR1cm4gKHRE
SVRUTyk7CiAJICAgIGNhc2UgJyQnOgotCQlyZXR1cm4gKHRET0xMQVIpOworICAgICAgICAgICAg
cmV0dXJuICh0RE9MTEFSKTsKIAkgICAgY2FzZSAnISc6Ci0JCXJldHVybiAodEVYQ0wpOworCSAg
ICAgICAgYyA9IGRiX3JlYWRfY2hhcigpOworCSAgICAgICAgaWYgKGMgPT0gJz0nKXsKKwkgICAg
ICAgICAgICAgICAgcmV0dXJuICh0TE9HX05PVF9FUSk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBkYl91bnJlYWRfY2hhcihjKTsKKyAgICAgICAgICAgIHJldHVybiAodEVYQ0wpOwogCSAg
ICBjYXNlICc7JzoKLQkJcmV0dXJuICh0U0VNSSk7CisgICAgICAgICAgICByZXR1cm4gKHRTRU1J
KTsKKyAgICAgICAgY2FzZSAnJic6CisgICAgICAgICAgICBjID0gZGJfcmVhZF9jaGFyKCk7Cisg
ICAgICAgICAgICBpZiAoYyA9PSAnJicpCisgICAgICAgICAgICAgICAgcmV0dXJuICh0TE9HX0FO
RCk7CisgICAgICAgICAgICBkYl91bnJlYWRfY2hhcihjKTsKKyAgICAgICAgICAgIHJldHVybiAo
dEJJVF9BTkQpOworICAgICAgICBjYXNlICd8JzoKKyAgICAgICAgICAgIGM9ZGJfcmVhZF9jaGFy
KCk7CisgICAgICAgICAgICBpZiAoYyA9PSAnfCcpCisgICAgICAgICAgICAgICAgcmV0dXJuICh0
TE9HX09SKTsKKyAgICAgICAgICAgIGRiX3VucmVhZF9jaGFyKGMpOworICAgICAgICAgICAgcmV0
dXJuICh0QklUX09SKTsKIAkgICAgY2FzZSAnPCc6Ci0JCWMgPSBkYl9yZWFkX2NoYXIoKTsKLQkJ
aWYgKGMgPT0gJzwnKQotCQkgICAgcmV0dXJuICh0U0hJRlRfTCk7Ci0JCWRiX3VucmVhZF9jaGFy
KGMpOwotCQlicmVhazsKKyAgICAgICAgICAgIGMgPSBkYl9yZWFkX2NoYXIoKTsKKyAgICAgICAg
ICAgIGlmIChjID09ICc8JykKKyAgICAgICAgICAgICAgICByZXR1cm4gKHRTSElGVF9MKTsKKyAg
ICAgICAgICAgIGlmIChjID09ICc9JykgCisgICAgICAgICAgICAgICAgcmV0dXJuICh0TEVTU19F
USk7CisgICAgICAgICAgICBkYl91bnJlYWRfY2hhcihjKTsKKyAgICAgICAgICAgIHJldHVybiAo
dExFU1MpOwogCSAgICBjYXNlICc+JzoKLQkJYyA9IGRiX3JlYWRfY2hhcigpOwotCQlpZiAoYyA9
PSAnPicpCi0JCSAgICByZXR1cm4gKHRTSElGVF9SKTsKLQkJZGJfdW5yZWFkX2NoYXIoYyk7Ci0J
CWJyZWFrOworICAgICAgICAgICAgYyA9IGRiX3JlYWRfY2hhcigpOworICAgICAgICAgICAgaWYg
KGMgPT0gJz4nKQorICAgICAgICAgICAgICAgIHJldHVybiAodFNISUZUX1IpOworICAgICAgICAg
ICAgaWYgKGMgPT0gJz0nKQorICAgICAgICAgICAgICAgIHJldHVybiAodEdSRUFURVJfRVEpOwor
ICAgICAgICAgICAgZGJfdW5yZWFkX2NoYXIoYyk7CisgICAgICAgICAgICByZXR1cm4gKHRHUkVB
VEVSKTsKKyAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAgICByZXR1cm4gKHRRVUVTVElPTik7
CisgICAgICAgIGNhc2UgJ34nOgorICAgICAgICAgICAgcmV0dXJuICh0QklUX05PVCk7CiAJICAg
IGNhc2UgLTE6CiAJCXJldHVybiAodEVPRik7CiAJfQpkaWZmIC0tZ2l0IGRkYi9kYl9sZXguaCBk
ZGIvZGJfbGV4LmgKaW5kZXggMGM1MjZjZC4uMWM2ZmYyOCAxMDA2NDQKLS0tIGRkYi9kYl9sZXgu
aAorKysgZGRiL2RiX2xleC5oCkBAIC02OSw1ICs2OSwxOSBAQCBleHRlcm4gY2hhcglkYl90b2tf
c3RyaW5nW1RPS19TVFJJTkdfU0laRV07CiAjZGVmaW5lCXRTSElGVF9SCTE5CiAjZGVmaW5lCXRE
T1RET1QJCTIwCiAjZGVmaW5lCXRTRU1JCQkyMQorI2RlZmluZSB0TE9HX0VRCQkyMgorI2RlZmlu
ZSB0TE9HX05PVF9FUQkyMworI2RlZmluZSB0TEVTUwkJMjQKKyNkZWZpbmUgdExFU1NfRVEJMjUK
KyNkZWZpbmUgdEdSRUFURVIJMjYKKyNkZWZpbmUgdEdSRUFURVJfRVEJMjcKKyNkZWZpbmUgdEJJ
VF9BTkQJMjgKKyNkZWZpbmUgdEJJVF9PUgkJMjkKKyNkZWZpbmUgdExPR19BTkQJMzAKKyNkZWZp
bmUgdExPR19PUgkJMzEKKyNkZWZpbmUgdFNUUklORwkJMzIKKyNkZWZpbmUgdFFVRVNUSU9OCTMz
CisjZGVmaW5lIHRCSVRfTk9UICAgIDM0CiAKICNlbmRpZiAvKiAhX0REQl9EQl9MRVhfSF8gKi8K
KwpkaWZmIC0tZ2l0IGRkYi9kZGIuaCBkZGIvZGRiLmgKaW5kZXggZjVhZmNkOS4uZjY5Mzg3YyAx
MDA2NDQKLS0tIGRkYi9kZGIuaAorKysgZGRiL2RkYi5oCkBAIC0xODcsNyArMTg3LDcgQEAgdm9p
ZAkJZGJfY2xlYXJfd2F0Y2hwb2ludHModm9pZCk7CiBkYl9hZGRyX3QJZGJfZGlzYXNtKGRiX2Fk
ZHJfdCBsb2MsIGJvb2xlYW5fdCBhbHRmbXQpOwogCQkJCS8qIGluc3RydWN0aW9uIGRpc2Fzc2Vt
YmxlciAqLwogdm9pZAkJZGJfZXJyb3IoY29uc3QgY2hhciAqcyk7Ci1pbnQJCWRiX2V4cHJlc3Np
b24oZGJfZXhwcl90ICp2YWx1ZXApOworaW50ICAgICAgICAgZGJfZXhwcmVzc2lvbihkYl9leHBy
X3QgKnZhbHVlcCk7CiBpbnQJCWRiX2dldF92YXJpYWJsZShkYl9leHByX3QgKnZhbHVlcCk7CiB2
b2lkCQlkYl9pcHJpbnRmKGNvbnN0IGNoYXIgKiwuLi4pIF9fcHJpbnRmbGlrZSgxLCAyKTsKIHN0
cnVjdCBwcm9jCSpkYl9sb29rdXBfcHJvYyhkYl9leHByX3QgYWRkcik7Cg==
--=_f8dcde1aaa7d24dd71723fe72776563c--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c9e322403d0ce0a6dc207006066bfa56>