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>