From mboxrd@z Thu Jan 1 00:00:00 1970 From: DOI Tsunehisa Subject: Re: PV drivers for HVM guests Date: Tue, 10 Oct 2006 17:00:24 +0900 Message-ID: <452B5318.4010607@jp.fujitsu.com> References: <45229025.E57C.0030.0@novell.com> <1160061687.3755.101.camel@localhost.localdomain> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------040508050002050305040805" Return-path: In-Reply-To: <1160061687.3755.101.camel@localhost.localdomain> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Campbell Cc: Ky Srinivasan , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------040508050002050305040805 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Hi, Ian Campbell wrote: > On Tue, 2006-10-03 at 16:31 -0400, Ky Srinivasan wrote: >> 2) Introduce a compatibility component that bridges the gap between >> the current PV code and a given Linux target and leave much of the PV >> driver code untouched. >> >> I have implemented both these schemes for the sles9 kernel > > FWIW I have a half complete implementation (compile tested only) of such > a scheme which I've attached, perhaps you can crib something useful from > it ;-). I modified Ian's patch for RHEL4. We've tested compiling and attaching them on RHEL4. In our simple test, PV-on-HVM VBD/VNIF drivers work on RHEL4 original kernel. Thanks, - Tsunehisa Doi --------------040508050002050305040805 Content-Type: text/plain; name="pv-backport.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="pv-backport.patch" IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIERvaS5Uc3VuZWhpc2FAanAuZnVqaXRzdS5j b20KIyBOb2RlIElEIDYwNTI5N2ZiODYxOGZmYWI0ZGM1YmYxNDg4NzcwMGNjZjNlOThiNzgK IyBQYXJlbnQgIGFiODVjMjBkMzNlNTBmYjI5YjQ1MTU4MGNlMDNmNzY5N2EwZmMzYjUKQmFj a3BvcnQgUFYtb24tSFZNIGZvciBwcmUgbGludXgtMi42LjE2CgpTaWduZWQtb2ZmLWJ5OiBJ YW4gQ2FtcGJlbGwgPElhbi5DYW1wYmVsbEBYZW5Tb3VyY2UuY29tPgpTaWduZWQtb2ZmLWJ5 OiBUc3VuZWhpc2EgRG9pIDxEb2kuVHN1bmVoaXNhQGpwLmZ1aml0c3UuY29tPgoKZGlmZiAt ciBhYjg1YzIwZDMzZTUgLXIgNjA1Mjk3ZmI4NjE4IGxpbnV4LTIuNi14ZW4tc3BhcnNlL2Ry aXZlcnMveGVuL2Jsa2Zyb250L2Jsa2Zyb250LmMKLS0tIGEvbGludXgtMi42LXhlbi1zcGFy c2UvZHJpdmVycy94ZW4vYmxrZnJvbnQvYmxrZnJvbnQuYwlNb24gT2N0IDA5IDIzOjM0OjAw IDIwMDYgKzAxMDAKKysrIGIvbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4vYmxr ZnJvbnQvYmxrZnJvbnQuYwlUdWUgT2N0IDEwIDE0OjI5OjM2IDIwMDYgKzA5MDAKQEAgLTQ4 LDYgKzQ4LDEwIEBACiAjaW5jbHVkZSA8YXNtL2h5cGVydmlzb3IuaD4KICNpbmNsdWRlIDxh c20vbWFkZHIuaD4KIAorI2lmZGVmIEhBVkVfQ09NUEFUX0gKKyNpbmNsdWRlIDxjb21wYXQu aD4KKyNlbmRpZgorCiAjZGVmaW5lIEJMS0lGX1NUQVRFX0RJU0NPTk5FQ1RFRCAwCiAjZGVm aW5lIEJMS0lGX1NUQVRFX0NPTk5FQ1RFRCAgICAxCiAjZGVmaW5lIEJMS0lGX1NUQVRFX1NV U1BFTkRFRCAgICAyCkBAIC00NjgsNiArNDcyLDI3IEBAIGludCBibGtpZl9pb2N0bChzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBzdHIKIAkJICAgICAgY29tbWFuZCwgKGxvbmcpYXJndW1lbnQs IGlub2RlLT5pX3JkZXYpOwogCiAJc3dpdGNoIChjb21tYW5kKSB7CisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDE2KSAvKiBUT0RPOiBjb25maXJtIHZl cnNpb24gKi8KKwljYXNlIEhESU9fR0VUR0VPOiB7CisJCXN0cnVjdCBibG9ja19kZXZpY2Ug KmJkID0gaW5vZGUtPmlfYmRldjsKKwkJc3RydWN0IGhkX2dlb21ldHJ5IGdlbzsKKwkJaW50 IHJldDsKKworICAgICAgICAgICAgICAgIGlmICghYXJndW1lbnQpCisgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworCQlnZW8uc3RhcnQgPSBnZXRfc3RhcnRf c2VjdChiZCk7CisJCXJldCA9IGJsa2lmX2dldGdlbyhiZCwgJmdlbyk7CisJCWlmIChyZXQp CisJCQlyZXR1cm4gcmV0OworCisJCWlmIChjb3B5X3RvX3VzZXIoKHN0cnVjdCBoZF9nZW9t ZXRyeSBfX3VzZXIgKilhcmd1bWVudCwgJmdlbywKKwkJCQkgc2l6ZW9mKGdlbykpKQorICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgICAgICAg ICByZXR1cm4gMDsKKwl9CisjZW5kaWYKIAljYXNlIENEUk9NTVVMVElTRVNTSU9OOgogCQlE UFJJTlRLKCJGSVhNRTogc3VwcG9ydCBtdWx0aXNlc3Npb24gQ0RzIGxhdGVyXG4iKTsKIAkJ Zm9yIChpID0gMDsgaSA8IHNpemVvZihzdHJ1Y3QgY2Ryb21fbXVsdGlzZXNzaW9uKTsgaSsr KQpkaWZmIC1yIGFiODVjMjBkMzNlNSAtciA2MDUyOTdmYjg2MTggbGludXgtMi42LXhlbi1z cGFyc2UvZHJpdmVycy94ZW4vYmxrZnJvbnQvdmJkLmMKLS0tIGEvbGludXgtMi42LXhlbi1z cGFyc2UvZHJpdmVycy94ZW4vYmxrZnJvbnQvdmJkLmMJTW9uIE9jdCAwOSAyMzozNDowMCAy MDA2ICswMTAwCisrKyBiL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL2Jsa2Zy b250L3ZiZC5jCVR1ZSBPY3QgMTAgMTQ6Mjk6MzYgMjAwNiArMDkwMApAQCAtMzYsNiArMzYs MTAgQEAKICNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0 Lmg+CiAKKyNpZmRlZiBIQVZFX0NPTVBBVF9ICisjaW5jbHVkZSA8Y29tcGF0Lmg+CisjZW5k aWYKKwogI2RlZmluZSBCTEtJRl9NQUpPUihkZXYpICgoZGV2KT4+OCkKICNkZWZpbmUgQkxL SUZfTUlOT1IoZGV2KSAoKGRldikgJiAweGZmKQogCkBAIC05MSw3ICs5NSw5IEBAIHN0YXRp YyBzdHJ1Y3QgYmxvY2tfZGV2aWNlX29wZXJhdGlvbnMgeGwKIAkub3BlbiA9IGJsa2lmX29w ZW4sCiAJLnJlbGVhc2UgPSBibGtpZl9yZWxlYXNlLAogCS5pb2N0bCAgPSBibGtpZl9pb2N0 bCwKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPiBLRVJORUxfVkVSU0lPTigyLDYsOSkgLyog VE9ETzogY2hlY2sgdmVyc2lvbiAqLwogCS5nZXRnZW8gPSBibGtpZl9nZXRnZW8KKyNlbmRp ZgogfTsKIAogREVGSU5FX1NQSU5MT0NLKGJsa2lmX2lvX2xvY2spOwpAQCAtMTg2LDcgKzE5 MiwxMSBAQCB4bHZiZF9pbml0X2Jsa19xdWV1ZShzdHJ1Y3QgZ2VuZGlzayAqZ2QsCiAJaWYg KHJxID09IE5VTEwpCiAJCXJldHVybiAtMTsKIAorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+ IEtFUk5FTF9WRVJTSU9OKDIsNiw5KQogCWVsZXZhdG9yX2luaXQocnEsICJub29wIik7Cisj ZWxzZQorCWVsZXZhdG9yX2luaXQocnEsICZlbGV2YXRvcl9ub29wKTsKKyNlbmRpZgogCiAJ LyogSGFyZCBzZWN0b3Igc2l6ZSBhbmQgbWF4IHNlY3RvcnMgaW1wZXJzb25hdGUgdGhlIGVx dWl2LiBoYXJkd2FyZS4gKi8KIAlibGtfcXVldWVfaGFyZHNlY3Rfc2l6ZShycSwgc2VjdG9y X3NpemUpOwpkaWZmIC1yIGFiODVjMjBkMzNlNSAtciA2MDUyOTdmYjg2MTggbGludXgtMi42 LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4vY29yZS9mZWF0dXJlcy5jCi0tLSBhL2xpbnV4LTIu Ni14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL2NvcmUvZmVhdHVyZXMuYwlNb24gT2N0IDA5IDIz OjM0OjAwIDIwMDYgKzAxMDAKKysrIGIvbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94 ZW4vY29yZS9mZWF0dXJlcy5jCVR1ZSBPY3QgMTAgMTQ6Mjk6MzYgMjAwNiArMDkwMApAQCAt MTAsNiArMTAsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxh c20vaHlwZXJ2aXNvci5oPgogI2luY2x1ZGUgPHhlbi9mZWF0dXJlcy5oPgorCisjaWZkZWYg SEFWRV9DT01QQVRfSAorI2luY2x1ZGUgPGNvbXBhdC5oPgorI2VuZGlmCiAKIHU4IHhlbl9m ZWF0dXJlc1tYRU5GRUFUX05SX1NVQk1BUFMgKiAzMl0gX19yZWFkX21vc3RseTsKIC8qIE5v dCBhIEdQTCBzeW1ib2w6IHVzZWQgaW4gdWJpcXVpdG91cyBtYWNyb3MsIHNvIHRvbyByZXN0 cmljdGl2ZS4gKi8KZGlmZiAtciBhYjg1YzIwZDMzZTUgLXIgNjA1Mjk3ZmI4NjE4IGxpbnV4 LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL2NvcmUvZ250dGFiLmMKLS0tIGEvbGludXgt Mi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4vY29yZS9nbnR0YWIuYwlNb24gT2N0IDA5IDIz OjM0OjAwIDIwMDYgKzAxMDAKKysrIGIvbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94 ZW4vY29yZS9nbnR0YWIuYwlUdWUgT2N0IDEwIDE0OjI5OjM2IDIwMDYgKzA5MDAKQEAgLTQ0 LDYgKzQ0LDEwIEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8eGVuL2ludGVy ZmFjZS9tZW1vcnkuaD4KIAorI2lmZGVmIEhBVkVfQ09NUEFUX0gKKyNpbmNsdWRlIDxjb21w YXQuaD4KKyNlbmRpZgorCiAvKiBFeHRlcm5hbCB0b29scyByZXNlcnZlIGZpcnN0IGZldyBn cmFudCB0YWJsZSBlbnRyaWVzLiAqLwogI2RlZmluZSBOUl9SRVNFUlZFRF9FTlRSSUVTIDgK IApkaWZmIC1yIGFiODVjMjBkMzNlNSAtciA2MDUyOTdmYjg2MTggbGludXgtMi42LXhlbi1z cGFyc2UvZHJpdmVycy94ZW4vbmV0ZnJvbnQvbmV0ZnJvbnQuYwotLS0gYS9saW51eC0yLjYt eGVuLXNwYXJzZS9kcml2ZXJzL3hlbi9uZXRmcm9udC9uZXRmcm9udC5jCU1vbiBPY3QgMDkg MjM6MzQ6MDAgMjAwNiArMDEwMAorKysgYi9saW51eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJz L3hlbi9uZXRmcm9udC9uZXRmcm9udC5jCVR1ZSBPY3QgMTAgMTQ6Mjk6MzYgMjAwNiArMDkw MApAQCAtNjQsNiArNjQsMTAgQEAKICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL2dyYW50X3Rh YmxlLmg+CiAjaW5jbHVkZSA8eGVuL2dudHRhYi5oPgogCisjaWZkZWYgSEFWRV9DT01QQVRf SAorI2luY2x1ZGUgPGNvbXBhdC5oPgorI2VuZGlmCisKIC8qCiAgKiBNdXR1YWxseS1leGNs dXNpdmUgbW9kdWxlIG9wdGlvbnMgdG8gc2VsZWN0IHJlY2VpdmUgZGF0YSBwYXRoOgogICog IHJ4X2NvcHkgOiBQYWNrZXRzIGFyZSBjb3BpZWQgYnkgbmV0d29yayBiYWNrZW5kIGludG8g bG9jYWwgbWVtb3J5CmRpZmYgLXIgYWI4NWMyMGQzM2U1IC1yIDYwNTI5N2ZiODYxOCBsaW51 eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2NsaWVudC5jCi0t LSBhL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xp ZW50LmMJTW9uIE9jdCAwOSAyMzozNDowMCAyMDA2ICswMTAwCisrKyBiL2xpbnV4LTIuNi14 ZW4tc3BhcnNlL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMJVHVlIE9jdCAx MCAxNDoyOTozNiAyMDA2ICswOTAwCkBAIC0zNCw2ICszNCwxMCBAQAogI2luY2x1ZGUgPHhl bi9nbnR0YWIuaD4KICNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CiAjaW5jbHVkZSA8eGVuL2Ry aXZlcl91dGlsLmg+CisKKyNpZmRlZiBIQVZFX0NPTVBBVF9ICisjaW5jbHVkZSA8Y29tcGF0 Lmg+CisjZW5kaWYKIAogLyogeGVuYnVzX3Byb2JlLmMgKi8KIGV4dGVybiBjaGFyICprYXNw cmludGYoY29uc3QgY2hhciAqZm10LCAuLi4pOwpkaWZmIC1yIGFiODVjMjBkMzNlNSAtciA2 MDUyOTdmYjg2MTggbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4veGVuYnVzL3hl bmJ1c19jb21tcy5jCi0tLSBhL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL3hl bmJ1cy94ZW5idXNfY29tbXMuYwlNb24gT2N0IDA5IDIzOjM0OjAwIDIwMDYgKzAxMDAKKysr IGIvbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jb21t cy5jCVR1ZSBPY3QgMTAgMTQ6Mjk6MzYgMjAwNiArMDkwMApAQCAtMzksNiArMzksMTAgQEAK ICNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CiAjaW5jbHVkZSAieGVuYnVzX2NvbW1zLmgiCiAK KyNpZmRlZiBIQVZFX0NPTVBBVF9ICisjaW5jbHVkZSA8Y29tcGF0Lmg+CisjZW5kaWYKKwog c3RhdGljIGludCB4ZW5idXNfaXJxOwogCiBleHRlcm4gdm9pZCB4ZW5idXNfcHJvYmUodm9p ZCAqKTsKZGlmZiAtciBhYjg1YzIwZDMzZTUgLXIgNjA1Mjk3ZmI4NjE4IGxpbnV4LTIuNi14 ZW4tc3BhcnNlL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfcHJvYmUuYwotLS0gYS9saW51 eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3Byb2JlLmMJTW9u IE9jdCAwOSAyMzozNDowMCAyMDA2ICswMTAwCisrKyBiL2xpbnV4LTIuNi14ZW4tc3BhcnNl L2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfcHJvYmUuYwlUdWUgT2N0IDEwIDE0OjI5OjM2 IDIwMDYgKzA5MDAKQEAgLTU2LDYgKzU2LDEwIEBACiAKICNpbmNsdWRlICJ4ZW5idXNfY29t bXMuaCIKIAorI2lmZGVmIEhBVkVfQ09NUEFUX0gKKyNpbmNsdWRlIDxjb21wYXQuaD4KKyNl bmRpZgorCiBpbnQgeGVuX3N0b3JlX2V2dGNobjsKIHN0cnVjdCB4ZW5zdG9yZV9kb21haW5f aW50ZXJmYWNlICp4ZW5fc3RvcmVfaW50ZXJmYWNlOwogc3RhdGljIHVuc2lnbmVkIGxvbmcg eGVuX3N0b3JlX21mbjsKQEAgLTY3LDEzICs3MSwxNyBAQCBzdGF0aWMgdm9pZCB3YWl0X2Zv cl9kZXZpY2VzKHN0cnVjdCB4ZW5iCiBzdGF0aWMgdm9pZCB3YWl0X2Zvcl9kZXZpY2VzKHN0 cnVjdCB4ZW5idXNfZHJpdmVyICp4ZW5kcnYpOwogCiBzdGF0aWMgaW50IHhlbmJ1c19wcm9i ZV9mcm9udGVuZChjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKTsKKyNpZmRl ZiBDT05GSUdfWEVOX0JBQ0tFTkQKIHN0YXRpYyBpbnQgeGVuYnVzX3VldmVudF9iYWNrZW5k KHN0cnVjdCBkZXZpY2UgKmRldiwgY2hhciAqKmVudnAsCiAJCQkJIGludCBudW1fZW52cCwg Y2hhciAqYnVmZmVyLCBpbnQgYnVmZmVyX3NpemUpOwogc3RhdGljIGludCB4ZW5idXNfcHJv YmVfYmFja2VuZChjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpkb21pZCk7CisjZW5k aWYKIAogc3RhdGljIGludCB4ZW5idXNfZGV2X3Byb2JlKHN0cnVjdCBkZXZpY2UgKl9kZXYp Owogc3RhdGljIGludCB4ZW5idXNfZGV2X3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpfZGV2KTsK KyNpZmRlZiBDT05GSUdfWEVOX0JBQ0tFTkQKIHN0YXRpYyB2b2lkIHhlbmJ1c19kZXZfc2h1 dGRvd24oc3RydWN0IGRldmljZSAqX2Rldik7CisjZW5kaWYKIAogLyogSWYgc29tZXRoaW5n IGluIGFycmF5IG9mIGlkcyBtYXRjaGVzIHRoaXMgZGV2aWNlLCByZXR1cm4gaXQuICovCiBz dGF0aWMgY29uc3Qgc3RydWN0IHhlbmJ1c19kZXZpY2VfaWQgKgpAQCAtMTc2LDEwICsxODQs MTIgQEAgc3RhdGljIGludCByZWFkX2JhY2tlbmRfZGV0YWlscyhzdHJ1Y3QgeAogfQogCiAK KyNpZmRlZiBDT05GSUdfWEVOX0JBQ0tFTkQKIHN0YXRpYyBpbnQgcmVhZF9mcm9udGVuZF9k ZXRhaWxzKHN0cnVjdCB4ZW5idXNfZGV2aWNlICp4ZW5kZXYpCiB7CiAJcmV0dXJuIHJlYWRf b3RoZXJlbmRfZGV0YWlscyh4ZW5kZXYsICJmcm9udGVuZC1pZCIsICJmcm9udGVuZCIpOwog fQorI2VuZGlmCiAKIAogLyogQnVzIHR5cGUgZm9yIGZyb250ZW5kIGRyaXZlcnMuICovCkBA IC0xOTEsMTUgKzIwMSwxOCBAQCBzdGF0aWMgc3RydWN0IHhlbl9idXNfdHlwZSB4ZW5idXNf ZnJvbnRlCiAJLmJ1cyA9IHsKIAkJLm5hbWUgICAgID0gInhlbiIsCiAJCS5tYXRjaCAgICA9 IHhlbmJ1c19tYXRjaCwKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPiBLRVJORUxfVkVSU0lP TigyLDYsMTYpIC8qIFRPRE86IGNvbmZpcm0gdmVyc2lvbiAqLwogCQkucHJvYmUgICAgPSB4 ZW5idXNfZGV2X3Byb2JlLAogCQkucmVtb3ZlICAgPSB4ZW5idXNfZGV2X3JlbW92ZSwKIAkJ LnNodXRkb3duID0geGVuYnVzX2Rldl9zaHV0ZG93biwKKyNlbmRpZgogCX0sCiAJLmRldiA9 IHsKIAkJLmJ1c19pZCA9ICJ4ZW4iLAogCX0sCiB9OwogCisjaWZkZWYgQ09ORklHX1hFTl9C QUNLRU5ECiAvKiBiYWNrZW5kLzx0eXBlPi88ZmUtdXVpZD4vPGlkPiA9PiA8dHlwZT4tPGZl LWRvbWlkPi08aWQ+ICovCiBzdGF0aWMgaW50IGJhY2tlbmRfYnVzX2lkKGNoYXIgYnVzX2lk W0JVU19JRF9TSVpFXSwgY29uc3QgY2hhciAqbm9kZW5hbWUpCiB7CkBAIC0yOTksNiArMzEy LDcgQEAgc3RhdGljIGludCB4ZW5idXNfdWV2ZW50X2JhY2tlbmQoc3RydWN0IAogCiAJcmV0 dXJuIDA7CiB9CisjZW5kaWYKIAogc3RhdGljIHZvaWQgb3RoZXJlbmRfY2hhbmdlZChzdHJ1 Y3QgeGVuYnVzX3dhdGNoICp3YXRjaCwKIAkJCSAgICAgY29uc3QgY2hhciAqKnZlYywgdW5z aWduZWQgaW50IGxlbikKQEAgLTQyMyw2ICs0MzcsNyBAQCBzdGF0aWMgaW50IHhlbmJ1c19k ZXZfcmVtb3ZlKHN0cnVjdCBkZXZpCiAJcmV0dXJuIDA7CiB9CiAKKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPiBLRVJORUxfVkVSU0lPTigyLDYsMTYpIC8qIFRPRE86IGNvbmZpcm0gdmVy c2lvbiAqLwogc3RhdGljIHZvaWQgeGVuYnVzX2Rldl9zaHV0ZG93bihzdHJ1Y3QgZGV2aWNl ICpfZGV2KQogewogCXN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYgPSB0b194ZW5idXNfZGV2 aWNlKF9kZXYpOwpAQCAtNDQzLDYgKzQ1OCw3IEBAIHN0YXRpYyB2b2lkIHhlbmJ1c19kZXZf c2h1dGRvd24oc3RydWN0IGQKICBvdXQ6CiAJcHV0X2RldmljZSgmZGV2LT5kZXYpOwogfQor I2VuZGlmCiAKIHN0YXRpYyBpbnQgeGVuYnVzX3JlZ2lzdGVyX2RyaXZlcl9jb21tb24oc3Ry dWN0IHhlbmJ1c19kcml2ZXIgKmRydiwKIAkJCQkJIHN0cnVjdCB4ZW5fYnVzX3R5cGUgKmJ1 cykKQEAgLTQ1MSw3ICs0NjcsMTMgQEAgc3RhdGljIGludCB4ZW5idXNfcmVnaXN0ZXJfZHJp dmVyX2NvbW1vbgogCiAJZHJ2LT5kcml2ZXIubmFtZSA9IGRydi0+bmFtZTsKIAlkcnYtPmRy aXZlci5idXMgPSAmYnVzLT5idXM7CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID4gS0VSTkVM X1ZFUlNJT04oMiw2LDE2KSAvKiBUT0RPOiBjb25maXJtIHZlcnNpb24gKi8KIAlkcnYtPmRy aXZlci5vd25lciA9IGRydi0+b3duZXI7CisjZW5kaWYKKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTYpIC8qIFRPRE86IGNvbmZpcm0gdmVyc2lvbiAq LworCWRydi0+ZHJpdmVyLnByb2JlID0geGVuYnVzX2Rldl9wcm9iZTsKKwlkcnYtPmRyaXZl ci5yZW1vdmUgPSB4ZW5idXNfZGV2X3JlbW92ZTsKKyNlbmRpZgogCiAJbXV0ZXhfbG9jaygm eGVud2F0Y2hfbXV0ZXgpOwogCXJldCA9IGRyaXZlcl9yZWdpc3RlcigmZHJ2LT5kcml2ZXIp OwpAQCAtNDc2LDYgKzQ5OCw3IEBAIGludCB4ZW5idXNfcmVnaXN0ZXJfZnJvbnRlbmQoc3Ry dWN0IHhlbmIKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHhlbmJ1c19yZWdpc3Rlcl9mcm9udGVu ZCk7CiAKKyNpZmRlZiBDT05GSUdfWEVOX0JBQ0tFTkQKIGludCB4ZW5idXNfcmVnaXN0ZXJf YmFja2VuZChzdHJ1Y3QgeGVuYnVzX2RyaXZlciAqZHJ2KQogewogCWRydi0+cmVhZF9vdGhl cmVuZF9kZXRhaWxzID0gcmVhZF9mcm9udGVuZF9kZXRhaWxzOwpAQCAtNDgzLDYgKzUwNiw3 IEBAIGludCB4ZW5idXNfcmVnaXN0ZXJfYmFja2VuZChzdHJ1Y3QgeGVuYnUKIAlyZXR1cm4g eGVuYnVzX3JlZ2lzdGVyX2RyaXZlcl9jb21tb24oZHJ2LCAmeGVuYnVzX2JhY2tlbmQpOwog fQogRVhQT1JUX1NZTUJPTF9HUEwoeGVuYnVzX3JlZ2lzdGVyX2JhY2tlbmQpOworI2VuZGlm CiAKIHZvaWQgeGVuYnVzX3VucmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCB4ZW5idXNfZHJpdmVy ICpkcnYpCiB7CkBAIC01ODEsMTQgKzYwNSwyMCBAQCBjaGFyICprYXNwcmludGYoY29uc3Qg Y2hhciAqZm10LCAuLi4pCiB9CiAKIHN0YXRpYyBzc2l6ZV90IHhlbmRldl9zaG93X25vZGVu YW1lKHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCQkgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUgKmF0dHIsIGNoYXIgKmJ1ZikKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPiBLRVJORUxf VkVSU0lPTigyLDYsMTYpIC8qIFRPRE86IGNvbmZpcm0gdmVyc2lvbiAqLworCQkJCSAgICBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKyNlbmRpZgorCQkJCSAgICBjaGFyICpi dWYpCiB7CiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJXNcbiIsIHRvX3hlbmJ1c19kZXZpY2Uo ZGV2KS0+bm9kZW5hbWUpOwogfQogREVWSUNFX0FUVFIobm9kZW5hbWUsIFNfSVJVU1IgfCBT X0lSR1JQIHwgU19JUk9USCwgeGVuZGV2X3Nob3dfbm9kZW5hbWUsIE5VTEwpOwogCiBzdGF0 aWMgc3NpemVfdCB4ZW5kZXZfc2hvd19kZXZ0eXBlKHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJ CQkgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA+IEtFUk5FTF9WRVJTSU9OKDIsNiwxNikgLyogVE9ETzogY29u ZmlybSB2ZXJzaW9uICovCisJCQkJICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIs CisjZW5kaWYKKwkJCQkgICBjaGFyICpidWYpCiB7CiAJcmV0dXJuIHNwcmludGYoYnVmLCAi JXNcbiIsIHRvX3hlbmJ1c19kZXZpY2UoZGV2KS0+ZGV2aWNldHlwZSk7CiB9CkBAIC02Njcs NiArNjk3LDcgQEAgc3RhdGljIGludCB4ZW5idXNfcHJvYmVfZnJvbnRlbmQoY29uc3QgYwog CXJldHVybiBlcnI7CiB9CiAKKyNpZmRlZiBDT05GSUdfWEVOX0JBQ0tFTkQKIC8qIGJhY2tl bmQvPHR5cGVuYW1lPi88ZnJvbnRlbmQtdXVpZD4vPG5hbWU+ICovCiBzdGF0aWMgaW50IHhl bmJ1c19wcm9iZV9iYWNrZW5kX3VuaXQoY29uc3QgY2hhciAqZGlyLAogCQkJCSAgICAgY29u c3QgY2hhciAqdHlwZSwKQEAgLTcxNSw2ICs3NDYsNyBAQCBzdGF0aWMgaW50IHhlbmJ1c19w cm9iZV9iYWNrZW5kKGNvbnN0IGNoCiAJa2ZyZWUobm9kZW5hbWUpOwogCXJldHVybiBlcnI7 CiB9CisjZW5kaWYKIAogc3RhdGljIGludCB4ZW5idXNfcHJvYmVfZGV2aWNlX3R5cGUoc3Ry dWN0IHhlbl9idXNfdHlwZSAqYnVzLCBjb25zdCBjaGFyICp0eXBlKQogewpAQCAtODIzLDYg Kzg1NSw3IEBAIHN0YXRpYyB2b2lkIGZyb250ZW5kX2NoYW5nZWQoc3RydWN0IHhlbmIKIAlk ZXZfY2hhbmdlZCh2ZWNbWFNfV0FUQ0hfUEFUSF0sICZ4ZW5idXNfZnJvbnRlbmQpOwogfQog CisjaWZkZWYgQ09ORklHX1hFTl9CQUNLRU5ECiBzdGF0aWMgdm9pZCBiYWNrZW5kX2NoYW5n ZWQoc3RydWN0IHhlbmJ1c193YXRjaCAqd2F0Y2gsCiAJCQkgICAgY29uc3QgY2hhciAqKnZl YywgdW5zaWduZWQgaW50IGxlbikKIHsKQEAgLTgzMCw2ICs4NjMsNyBAQCBzdGF0aWMgdm9p ZCBiYWNrZW5kX2NoYW5nZWQoc3RydWN0IHhlbmJ1CiAKIAlkZXZfY2hhbmdlZCh2ZWNbWFNf V0FUQ0hfUEFUSF0sICZ4ZW5idXNfYmFja2VuZCk7CiB9CisjZW5kaWYKIAogLyogV2Ugd2F0 Y2ggZm9yIGRldmljZXMgYXBwZWFyaW5nIGFuZCB2YW5pc2hpbmcuICovCiBzdGF0aWMgc3Ry dWN0IHhlbmJ1c193YXRjaCBmZV93YXRjaCA9IHsKQEAgLTgzNywxMCArODcxLDEyIEBAIHN0 YXRpYyBzdHJ1Y3QgeGVuYnVzX3dhdGNoIGZlX3dhdGNoID0gewogCS5jYWxsYmFjayA9IGZy b250ZW5kX2NoYW5nZWQsCiB9OwogCisjaWZkZWYgQ09ORklHX1hFTl9CQUNLRU5ECiBzdGF0 aWMgc3RydWN0IHhlbmJ1c193YXRjaCBiZV93YXRjaCA9IHsKIAkubm9kZSA9ICJiYWNrZW5k IiwKIAkuY2FsbGJhY2sgPSBiYWNrZW5kX2NoYW5nZWQsCiB9OworI2VuZGlmCiAKIHN0YXRp YyBpbnQgc3VzcGVuZF9kZXYoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQogewpA QCAtOTEyLDcgKzk0OCw5IEBAIHZvaWQgeGVuYnVzX3N1c3BlbmQodm9pZCkKIAlEUFJJTlRL KCIiKTsKIAogCWJ1c19mb3JfZWFjaF9kZXYoJnhlbmJ1c19mcm9udGVuZC5idXMsIE5VTEws IE5VTEwsIHN1c3BlbmRfZGV2KTsKKyNpZmRlZiBDT05GSUdfWEVOX0JBQ0tFTkQKIAlidXNf Zm9yX2VhY2hfZGV2KCZ4ZW5idXNfYmFja2VuZC5idXMsIE5VTEwsIE5VTEwsIHN1c3BlbmRf ZGV2KTsKKyNlbmRpZgogCXhzX3N1c3BlbmQoKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHhl bmJ1c19zdXNwZW5kKTsKQEAgLTkyMiw3ICs5NjAsOSBAQCB2b2lkIHhlbmJ1c19yZXN1bWUo dm9pZCkKIAl4Yl9pbml0X2NvbW1zKCk7CiAJeHNfcmVzdW1lKCk7CiAJYnVzX2Zvcl9lYWNo X2RldigmeGVuYnVzX2Zyb250ZW5kLmJ1cywgTlVMTCwgTlVMTCwgcmVzdW1lX2Rldik7Cisj aWZkZWYgQ09ORklHX1hFTl9CQUNLRU5ECiAJYnVzX2Zvcl9lYWNoX2RldigmeGVuYnVzX2Jh Y2tlbmQuYnVzLCBOVUxMLCBOVUxMLCByZXN1bWVfZGV2KTsKKyNlbmRpZgogfQogRVhQT1JU X1NZTUJPTF9HUEwoeGVuYnVzX3Jlc3VtZSk7CiAKQEAgLTk1NywxMSArOTk3LDE1IEBAIHZv aWQgeGVuYnVzX3Byb2JlKHZvaWQgKnVudXNlZCkKIAogCS8qIEVudW1lcmF0ZSBkZXZpY2Vz IGluIHhlbnN0b3JlLiAqLwogCXhlbmJ1c19wcm9iZV9kZXZpY2VzKCZ4ZW5idXNfZnJvbnRl bmQpOworI2lmZGVmIENPTkZJR19YRU5fQkFDS0VORAogCXhlbmJ1c19wcm9iZV9kZXZpY2Vz KCZ4ZW5idXNfYmFja2VuZCk7CisjZW5kaWYKIAogCS8qIFdhdGNoIGZvciBjaGFuZ2VzLiAq LwogCXJlZ2lzdGVyX3hlbmJ1c193YXRjaCgmZmVfd2F0Y2gpOworI2lmZGVmIENPTkZJR19Y RU5fQkFDS0VORAogCXJlZ2lzdGVyX3hlbmJ1c193YXRjaCgmYmVfd2F0Y2gpOworI2VuZGlm CiAKIAkvKiBOb3RpZnkgb3RoZXJzIHRoYXQgeGVuc3RvcmUgaXMgdXAgKi8KIAlub3RpZmll cl9jYWxsX2NoYWluKCZ4ZW5zdG9yZV9jaGFpbiwgMCwgTlVMTCk7CkBAIC05NzMsNiArMTAx Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnhzZF9rdmFfaW4KIHN0YXRp YyBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnhzZF9rdmFfaW50ZjsKIHN0YXRpYyBzdHJ1Y3Qg cHJvY19kaXJfZW50cnkgKnhzZF9wb3J0X2ludGY7CiAKKyNpZmRlZiBDT05GSUdfWEVOX1BS SVZJTEVHRURfR1VFU1QKIHN0YXRpYyBpbnQgeHNkX2t2YV9tbWFwKHN0cnVjdCBmaWxlICpm aWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsKIAlzaXplX3Qgc2l6ZSA9IHZt YS0+dm1fZW5kIC0gdm1hLT52bV9zdGFydDsKQEAgLTk4Niw2ICsxMDMxLDkgQEAgc3RhdGlj IGludCB4c2Rfa3ZhX21tYXAoc3RydWN0IGZpbGUgKmZpbAogCiAJcmV0dXJuIDA7CiB9Cisj ZWxzZQorI2RlZmluZSB4c2Rfa3ZhX21tYXAgTlVMTAorI2VuZGlmCiAKIHN0YXRpYyBpbnQg eHNkX2t2YV9yZWFkKGNoYXIgKnBhZ2UsIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2ZmLAogCQkJ aW50IGNvdW50LCBpbnQgKmVvZiwgdm9pZCAqZGF0YSkKQEAgLTEwMjAsNyArMTA2OCw5IEBA IHN0YXRpYyBpbnQgX19pbml0IHhlbmJ1c19wcm9iZV9pbml0KHZvaWQKIAogCS8qIFJlZ2lz dGVyIG91cnNlbHZlcyB3aXRoIHRoZSBrZXJuZWwgYnVzIHN1YnN5c3RlbSAqLwogCWJ1c19y ZWdpc3RlcigmeGVuYnVzX2Zyb250ZW5kLmJ1cyk7CisjaWZkZWYgQ09ORklHX1hFTl9CQUNL RU5ECiAJYnVzX3JlZ2lzdGVyKCZ4ZW5idXNfYmFja2VuZC5idXMpOworI2VuZGlmCiAKIAkv KgogCSAqIERvbWFpbjAgZG9lc24ndCBoYXZlIGEgc3RvcmVfZXZ0Y2huIG9yIHN0b3JlX21m biB5ZXQuCkBAIC0xMDkxLDcgKzExNDEsOSBAQCBzdGF0aWMgaW50IF9faW5pdCB4ZW5idXNf cHJvYmVfaW5pdCh2b2lkCiAKIAkvKiBSZWdpc3RlciBvdXJzZWx2ZXMgd2l0aCB0aGUga2Vy bmVsIGRldmljZSBzdWJzeXN0ZW0gKi8KIAlkZXZpY2VfcmVnaXN0ZXIoJnhlbmJ1c19mcm9u dGVuZC5kZXYpOworI2lmZGVmIENPTkZJR19YRU5fQkFDS0VORAogCWRldmljZV9yZWdpc3Rl cigmeGVuYnVzX2JhY2tlbmQuZGV2KTsKKyNlbmRpZgogCiAJaWYgKCFpc19pbml0aWFsX3hl bmRvbWFpbigpKQogCQl4ZW5idXNfcHJvYmUoTlVMTCk7CmRpZmYgLXIgYWI4NWMyMGQzM2U1 IC1yIDYwNTI5N2ZiODYxOCBsaW51eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi94ZW5i dXMveGVuYnVzX3hzLmMKLS0tIGEvbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4v eGVuYnVzL3hlbmJ1c194cy5jCU1vbiBPY3QgMDkgMjM6MzQ6MDAgMjAwNiArMDEwMAorKysg Yi9saW51eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3hzLmMJ VHVlIE9jdCAxMCAxNDoyOTozNiAyMDA2ICswOTAwCkBAIC00Miw4ICs0MiwxMyBAQAogI2lu Y2x1ZGUgPGxpbnV4L2ZjbnRsLmg+CiAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgogI2lu Y2x1ZGUgPGxpbnV4L3J3c2VtLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5j bHVkZSA8eGVuL3hlbmJ1cy5oPgogI2luY2x1ZGUgInhlbmJ1c19jb21tcy5oIgorCisjaWZk ZWYgSEFWRV9DT01QQVRfSAorI2luY2x1ZGUgPGNvbXBhdC5oPgorI2VuZGlmCiAKIC8qIHhl bmJ1c19wcm9iZS5jICovCiBleHRlcm4gY2hhciAqa2FzcHJpbnRmKGNvbnN0IGNoYXIgKmZt dCwgLi4uKTsKZGlmZiAtciBhYjg1YzIwZDMzZTUgLXIgNjA1Mjk3ZmI4NjE4IGxpbnV4LTIu Ni14ZW4tc3BhcnNlL2luY2x1ZGUvYXNtLWkzODYvbWFjaC14ZW4vYXNtL3N5bmNoX2JpdG9w cy5oCi0tLSBhL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2luY2x1ZGUvYXNtLWkzODYvbWFjaC14 ZW4vYXNtL3N5bmNoX2JpdG9wcy5oCU1vbiBPY3QgMDkgMjM6MzQ6MDAgMjAwNiArMDEwMAor KysgYi9saW51eC0yLjYteGVuLXNwYXJzZS9pbmNsdWRlL2FzbS1pMzg2L21hY2gteGVuL2Fz bS9zeW5jaF9iaXRvcHMuaAlUdWUgT2N0IDEwIDE0OjI5OjM2IDIwMDYgKzA5MDAKQEAgLTgs NiArOCwxMCBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4KKworI2lmZGVm IEhBVkVfQ09NUEFUX0gKKyNpbmNsdWRlIDxjb21wYXQuaD4KKyNlbmRpZgogCiAjZGVmaW5l IEFERFIgKCoodm9sYXRpbGUgbG9uZyAqKSBhZGRyKQogCmRpZmYgLXIgYWI4NWMyMGQzM2U1 IC1yIDYwNTI5N2ZiODYxOCBsaW51eC0yLjYteGVuLXNwYXJzZS9pbmNsdWRlL3hlbi94ZW5i dXMuaAotLS0gYS9saW51eC0yLjYteGVuLXNwYXJzZS9pbmNsdWRlL3hlbi94ZW5idXMuaAlN b24gT2N0IDA5IDIzOjM0OjAwIDIwMDYgKzAxMDAKKysrIGIvbGludXgtMi42LXhlbi1zcGFy c2UvaW5jbHVkZS94ZW4veGVuYnVzLmgJVHVlIE9jdCAxMCAxNDoyOTozNiAyMDA2ICswOTAw CkBAIC0zOCwxMCArMzgsMTUgQEAKICNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgogI2lu Y2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgor I2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL3hlbi5o PgogI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvZ3JhbnRfdGFibGUuaD4KICNpbmNsdWRlIDx4 ZW4vaW50ZXJmYWNlL2lvL3hlbmJ1cy5oPgogI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvaW8v eHNfd2lyZS5oPgorCisjaWZkZWYgSEFWRV9DT01QQVRfSAorI2luY2x1ZGUgPGNvbXBhdC5o PgorI2VuZGlmCiAKIC8qIFJlZ2lzdGVyIGNhbGxiYWNrIHRvIHdhdGNoIHRoaXMgbm9kZS4g Ki8KIHN0cnVjdCB4ZW5idXNfd2F0Y2gKZGlmZiAtciBhYjg1YzIwZDMzZTUgLXIgNjA1Mjk3 ZmI4NjE4IHVubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvb3ZlcnJpZGVzLm1rCi0tLSBh L3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvb3ZlcnJpZGVzLm1rCU1vbiBPY3QgMDkg MjM6MzQ6MDAgMjAwNiArMDEwMAorKysgYi91bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42 L292ZXJyaWRlcy5tawlUdWUgT2N0IDEwIDE0OjI5OjM2IDIwMDYgKzA5MDAKQEAgLTksNCAr OSw0IEBAIEVYVFJBX0NGTEFHUyArPSAtRENPTkZJR19YRU5fQkxLREVWX0dSQU4KIEVYVFJB X0NGTEFHUyArPSAtRENPTkZJR19YRU5fQkxLREVWX0dSQU5UIC1EWEVOX0VWVENITl9NQVNL X09QUwogRVhUUkFfQ0ZMQUdTICs9IC1EQ09ORklHX1hFTl9ORVRERVZfR1JBTlRfUlggLURD T05GSUdfWEVOX05FVERFVl9HUkFOVF9UWAogRVhUUkFfQ0ZMQUdTICs9IC1EX19YRU5fSU5U RVJGQUNFX1ZFUlNJT05fXz0weDAwMDMwMjAyCi1FWFRSQV9DRkxBR1MgKz0gLUkkKE0pL2lu Y2x1ZGUKK0VYVFJBX0NGTEFHUyArPSAtSSQoTSkvaW5jbHVkZSAtSSQoTSkvY29tcGF0LWlu Y2x1ZGUgLURIQVZFX0NPTVBBVF9ICmRpZmYgLXIgYWI4NWMyMGQzM2U1IC1yIDYwNTI5N2Zi ODYxOCB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L3BsYXRmb3JtLXBjaS9LYnVpbGQK LS0tIGEvdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9wbGF0Zm9ybS1wY2kvS2J1aWxk CU1vbiBPY3QgMDkgMjM6MzQ6MDAgMjAwNiArMDEwMAorKysgYi91bm1vZGlmaWVkX2RyaXZl cnMvbGludXgtMi42L3BsYXRmb3JtLXBjaS9LYnVpbGQJVHVlIE9jdCAxMCAxNDoyOTozNiAy MDA2ICswOTAwCkBAIC00LDQgKzQsMTAgQEAgb2JqLW0gOj0geGVuLXBsYXRmb3JtLXBjaS5v CiAKIEVYVFJBX0NGTEFHUyArPSAtSSQoTSkvcGxhdGZvcm0tcGNpCiAKLXhlbi1wbGF0Zm9y bS1wY2ktb2JqcyA6PSBldnRjaG4ubyBwbGF0Zm9ybS1wY2kubyBnbnR0YWIubyB4ZW5fc3Vw cG9ydC5vIGZlYXR1cmVzLm8KK3hlbi1wbGF0Zm9ybS1wY2ktb2JqcyA6PQoreGVuLXBsYXRm b3JtLXBjaS1vYmpzICs9IHBsYXRmb3JtLXBjaS5vCit4ZW4tcGxhdGZvcm0tcGNpLW9ianMg Kz0gZmVhdHVyZXMubworeGVuLXBsYXRmb3JtLXBjaS1vYmpzICs9IGV2dGNobi5vCit4ZW4t cGxhdGZvcm0tcGNpLW9ianMgKz0gZ250dGFiLm8KK3hlbi1wbGF0Zm9ybS1wY2ktb2JqcyAr PSB4ZW5fc3VwcG9ydC5vCit4ZW4tcGxhdGZvcm0tcGNpLW9ianMgKz0gY29tcGF0Lm8KZGlm ZiAtciBhYjg1YzIwZDMzZTUgLXIgNjA1Mjk3ZmI4NjE4IHVubW9kaWZpZWRfZHJpdmVycy9s aW51eC0yLjYvcGxhdGZvcm0tcGNpL2V2dGNobi5jCi0tLSBhL3VubW9kaWZpZWRfZHJpdmVy cy9saW51eC0yLjYvcGxhdGZvcm0tcGNpL2V2dGNobi5jCU1vbiBPY3QgMDkgMjM6MzQ6MDAg MjAwNiArMDEwMAorKysgYi91bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L3BsYXRmb3Jt LXBjaS9ldnRjaG4uYwlUdWUgT2N0IDEwIDE0OjI5OjM2IDIwMDYgKzA5MDAKQEAgLTM1LDYg KzM1LDEwIEBACiAjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS9odm0vaW9yZXEuaD4KICNpbmNs dWRlIDx4ZW4vZmVhdHVyZXMuaD4KICNpbmNsdWRlICJwbGF0Zm9ybS1wY2kuaCIKKworI2lm ZGVmIEhBVkVfQ09NUEFUX0gKKyNpbmNsdWRlIDxjb21wYXQuaD4KKyNlbmRpZgogCiB2b2lk ICpzaGFyZWRfaW5mb19hcmVhOwogCmRpZmYgLXIgYWI4NWMyMGQzM2U1IC1yIDYwNTI5N2Zi ODYxOCB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L3BsYXRmb3JtLXBjaS9wbGF0Zm9y bS1wY2kuYwotLS0gYS91bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L3BsYXRmb3JtLXBj aS9wbGF0Zm9ybS1wY2kuYwlNb24gT2N0IDA5IDIzOjM0OjAwIDIwMDYgKzAxMDAKKysrIGIv dW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9wbGF0Zm9ybS1wY2kvcGxhdGZvcm0tcGNp LmMJVHVlIE9jdCAxMCAxNDoyOTozNiAyMDA2ICswOTAwCkBAIC0zOCw2ICszOCwxMCBAQAog CiAjaW5jbHVkZSAicGxhdGZvcm0tcGNpLmgiCiAKKyNpZmRlZiBIQVZFX0NPTVBBVF9ICisj aW5jbHVkZSA8Y29tcGF0Lmg+CisjZW5kaWYKKwogI2RlZmluZSBEUlZfTkFNRSAgICAieGVu LXBsYXRmb3JtLXBjaSIKICNkZWZpbmUgRFJWX1ZFUlNJT04gIjAuMTAiCiAjZGVmaW5lIERS Vl9SRUxEQVRFICIwMy8wMy8yMDA1IgpkaWZmIC1yIGFiODVjMjBkMzNlNSAtciA2MDUyOTdm Yjg2MTggdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9wbGF0Zm9ybS1wY2kveGVuX3N1 cHBvcnQuYwotLS0gYS91bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L3BsYXRmb3JtLXBj aS94ZW5fc3VwcG9ydC5jCU1vbiBPY3QgMDkgMjM6MzQ6MDAgMjAwNiArMDEwMAorKysgYi91 bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L3BsYXRmb3JtLXBjaS94ZW5fc3VwcG9ydC5j CVR1ZSBPY3QgMTAgMTQ6Mjk6MzYgMjAwNiArMDkwMApAQCAtMjYsNiArMjYsMTAgQEAKICNp bmNsdWRlIDxhc20vaHlwZXJ2aXNvci5oPgogI2luY2x1ZGUgInBsYXRmb3JtLXBjaS5oIgog CisjaWZkZWYgSEFWRV9DT01QQVRfSAorI2luY2x1ZGUgPGNvbXBhdC5oPgorI2VuZGlmCisK IHZvaWQgeGVuX21hY2hwaHlzX3VwZGF0ZSh1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQg bG9uZyBwZm4pCiB7CiAJQlVHKCk7CmRpZmYgLXIgYWI4NWMyMGQzM2U1IC1yIDYwNTI5N2Zi ODYxOCB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L2Jsa2Zyb250L01ha2VmaWxlCi0t LSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDowMCAxOTcwICswMDAwCisrKyBiL3VubW9k aWZpZWRfZHJpdmVycy9saW51eC0yLjYvYmxrZnJvbnQvTWFrZWZpbGUJVHVlIE9jdCAxMCAx NDoyOTozNiAyMDA2ICswOTAwCkBAIC0wLDAgKzEsMyBAQAoraWZuZXEgKCQoS0VSTkVMUkVM RUFTRSksKQoraW5jbHVkZSAkKHNyYykvS2J1aWxkCitlbmRpZgpkaWZmIC1yIGFiODVjMjBk MzNlNSAtciA2MDUyOTdmYjg2MTggdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9jb21w YXQtaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcG1kLmgKLS0tIC9kZXYvbnVsbAlU aHUgSmFuIDAxIDAwOjAwOjAwIDE5NzAgKzAwMDAKKysrIGIvdW5tb2RpZmllZF9kcml2ZXJz L2xpbnV4LTIuNi9jb21wYXQtaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcG1kLmgJ VHVlIE9jdCAxMCAxNDoyOTozNiAyMDA2ICswOTAwCkBAIC0wLDAgKzEsMTQgQEAKKyNpZm5k ZWYgX1BHVEFCTEVfTk9QTURfSAorI2RlZmluZSBfUEdUQUJMRV9OT1BNRF9ICisKKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPiBLRVJORUxfVkVSU0lPTigyLDYsMTApCisjZXJyb3IgIlRo aXMgdmVyc2lvbiBvZiBMaW51eCBzaG91bGQgbm90IG5lZWQgY29tcGF0IHBndGFibGUtbm9w bWQuaCIKKyNlbmRpZgorCisjZGVmaW5lIHB1ZF90IHBnZF90CisjZGVmaW5lIHB1ZF9vZmZz ZXQoZCwgdmEpIGQKKyNkZWZpbmUgcHVkX25vbmUocHVkKSAgICAgICAgICAgMAorI2RlZmlu ZSBwdWRfcHJlc2VudChwdWQpICAgICAgICAxCisjZGVmaW5lIFBUUlNfUEVSX1BVRCAgICAg ICAgICAgIDEKKworI2VuZGlmIC8qIF9QR1RBQkxFX05PUE1EX0ggKi8KZGlmZiAtciBhYjg1 YzIwZDMzZTUgLXIgNjA1Mjk3ZmI4NjE4IHVubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYv Y29tcGF0LWluY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS1ub3B1ZC5oCi0tLSAvZGV2L251 bGwJVGh1IEphbiAwMSAwMDowMDowMCAxOTcwICswMDAwCisrKyBiL3VubW9kaWZpZWRfZHJp dmVycy9saW51eC0yLjYvY29tcGF0LWluY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS1ub3B1 ZC5oCVR1ZSBPY3QgMTAgMTQ6Mjk6MzYgMjAwNiArMDkwMApAQCAtMCwwICsxLDE0IEBACisj aWZuZGVmIF9QR1RBQkxFX05PUFVEX0gKKyNkZWZpbmUgX1BHVEFCTEVfTk9QVURfSAorCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFID4gS0VSTkVMX1ZFUlNJT04oMiw2LDEwKQorI2Vycm9y ICJUaGlzIHZlcnNpb24gb2YgTGludXggc2hvdWxkIG5vdCBuZWVkIGNvbXBhdCBwZ3RhYmxl LW5vcHVkLmgiCisjZW5kaWYKKworI2RlZmluZSBwdWRfdCBwZ2RfdAorI2RlZmluZSBwdWRf b2Zmc2V0KGQsIHZhKSBkCisjZGVmaW5lIHB1ZF9ub25lKHB1ZCkgICAgICAgICAgIDAKKyNk ZWZpbmUgcHVkX3ByZXNlbnQocHVkKSAgICAgICAgMQorI2RlZmluZSBQVFJTX1BFUl9QVUQg ICAgICAgICAgICAxCisKKyNlbmRpZiAvKiBfUEdUQUJMRV9OT1BVRF9IICovCmRpZmYgLXIg YWI4NWMyMGQzM2U1IC1yIDYwNTI5N2ZiODYxOCB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgt Mi42L2NvbXBhdC1pbmNsdWRlL2NvbXBhdC5oCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAw MDowMDowMCAxOTcwICswMDAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYv Y29tcGF0LWluY2x1ZGUvY29tcGF0LmgJVHVlIE9jdCAxMCAxNDoyOTozNiAyMDA2ICswOTAw CkBAIC0wLDAgKzEsNTIgQEAKKyNpZm5kZWYgQ09NUEFUX0lOQ0xVREVfQ09NUEFUX0gKKyNk ZWZpbmUgQ09NUEFUX0lOQ0xVREVfQ09NUEFUX0gKKworI2luY2x1ZGUgPGxpbnV4L3ZlcnNp b24uaD4KKworI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlu bG9jay5oPgorCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDE0KQorLyoqCisgKiBremFsbG9jIC0gYWxsb2NhdGUgbWVtb3J5LiBUaGUgbWVtb3J5IGlz IHNldCB0byB6ZXJvLgorICogQHNpemU6IGhvdyBtYW55IGJ5dGVzIG9mIG1lbW9yeSBhcmUg cmVxdWlyZWQuCisgKiBAZmxhZ3M6IHRoZSB0eXBlIG9mIG1lbW9yeSB0byBhbGxvY2F0ZS4K KyAqLworc3RhdGljIGlubGluZSB2b2lkICpremFsbG9jKHNpemVfdCBzaXplLCBpbnQgZmxh Z3MpCit7CisgICAgICAgIHZvaWQgKnJldCA9IGttYWxsb2Moc2l6ZSwgZmxhZ3MpOworICAg ICAgICBpZiAocmV0KQorICAgICAgICAgICAgICAgIG1lbXNldChyZXQsIDAsIHNpemUpOwor ICAgICAgICByZXR1cm4gcmV0OworfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fTElOVVhf Q09NUElMRVJfSCkgJiYgIWRlZmluZWQoX19hbHdheXNfaW5saW5lKQorI2RlZmluZSBfX2Fs d2F5c19pbmxpbmUgaW5saW5lCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19MSU5VWF9TUElO TE9DS19IKSAmJiAhZGVmaW5lZChERUZJTkVfU1BJTkxPQ0spCisjZGVmaW5lIERFRklORV9T UElOTE9DSyh4KSBzcGlubG9ja190IHggPSBTUElOX0xPQ0tfVU5MT0NLRUQKKyNlbmRpZgor CisjaWYgZGVmaW5lZChfTElOVVhfSU5JVF9IKSAmJiAhZGVmaW5lZChfX2luaXQpCisjZGVm aW5lIF9faW5pdAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fTElOVVhfQ0FDSEVfSCkgJiYg IWRlZmluZWQoX19yZWFkX21vc3RseSkKKyNkZWZpbmUgX19yZWFkX21vc3RseQorI2VuZGlm CisKKyNpZiBkZWZpbmVkKF9MSU5VWF9NTV9IKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMTApCit1bnNpZ25lZCBsb25nIHZtYWxsb2NfdG9fcGZuKHZv aWQgKmFkZHIpOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9MSU5VWF9CTEtERVZfSCkgJiYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDE2KQorI2RlZmluZSBl bmRfdGhhdF9yZXF1ZXN0X2xhc3QocmVxLCB1cHRvZGF0ZSkgZW5kX3RoYXRfcmVxdWVzdF9s YXN0KHJlcSkKKyNlbmRpZgorCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDE0KQorc2lnbmVkIGxvbmcgX19zY2hlZCBzY2hlZHVsZV90aW1lb3V0X2lu dGVycnVwdGlibGUoc2lnbmVkIGxvbmcgdGltZW91dCk7CisjZW5kaWYKKworI2VuZGlmIC8q ICFDT01QQVRfSU5DTFVERV9DT01QQVRfSCAqLwpkaWZmIC1yIGFiODVjMjBkMzNlNSAtciA2 MDUyOTdmYjg2MTggdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9jb21wYXQtaW5jbHVk ZS9saW51eC9pby5oCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDowMCAxOTcwICsw MDAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvY29tcGF0LWluY2x1ZGUv bGludXgvaW8uaAlUdWUgT2N0IDEwIDE0OjI5OjM2IDIwMDYgKzA5MDAKQEAgLTAsMCArMSwx MCBAQAorI2lmbmRlZiBfTElOVVhfSU9fSAorI2RlZmluZSBfTElOVVhfSU9fSAorCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFID4gS0VSTkVMX1ZFUlNJT04oMiw2LDE2KQorI2Vycm9yICJU aGlzIHZlcnNpb24gb2YgTGludXggc2hvdWxkIG5vdCBuZWVkIGNvbXBhdCBsaW51eC9pby5o IgorI2VuZGlmCisKKyNpbmNsdWRlIDxhc20vaW8uaD4KKworI2VuZGlmCmRpZmYgLXIgYWI4 NWMyMGQzM2U1IC1yIDYwNTI5N2ZiODYxOCB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42 L2NvbXBhdC1pbmNsdWRlL2xpbnV4L211dGV4LmgKLS0tIC9kZXYvbnVsbAlUaHUgSmFuIDAx IDAwOjAwOjAwIDE5NzAgKzAwMDAKKysrIGIvdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIu Ni9jb21wYXQtaW5jbHVkZS9saW51eC9tdXRleC5oCVR1ZSBPY3QgMTAgMTQ6Mjk6MzYgMjAw NiArMDkwMApAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA2IENp c2NvIFN5c3RlbXMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgZmlsZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgR1BMdjIuCisgKi8KKworLyogbXV0ZXggY29tcGF0aWJp bGl0eSBmb3IgcHJlLTIuNi4xNiBrZXJuZWxzICovCisKKyNpZm5kZWYgX19MSU5VWF9NVVRF WF9ICisjZGVmaW5lIF9fTElOVVhfTVVURVhfSAorCisjaW5jbHVkZSA8bGludXgvdmVyc2lv bi5oPgorI2luY2x1ZGUgPGFzbS9zZW1hcGhvcmUuaD4KKworI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA+IEtFUk5FTF9WRVJTSU9OKDIsNiwxNikKKyNlcnJvciAiVGhpcyB2ZXJzaW9uIG9m IExpbnV4IHNob3VsZCBub3QgbmVlZCBjb21wYXQgbXV0ZXguaCIKKyNlbmRpZgorCisjZGVm aW5lIG11dGV4IHNlbWFwaG9yZQorI2RlZmluZSBERUZJTkVfTVVURVgoZm9vKSBERUNMQVJF X01VVEVYKGZvbykKKyNkZWZpbmUgbXV0ZXhfaW5pdChmb28pIGluaXRfTVVURVgoZm9vKQor I2RlZmluZSBtdXRleF9sb2NrKGZvbykgZG93bihmb28pCisjZGVmaW5lIG11dGV4X2xvY2tf aW50ZXJydXB0aWJsZShmb28pIGRvd25faW50ZXJydXB0aWJsZShmb28pCisvKiB0aGlzIGZ1 bmN0aW9uIGZvbGxvd3MgdGhlIHNwaW5fdHJ5bG9jaygpIGNvbnZlbnRpb24sIHNvICAgICAg ICAqCisgKiBpdCBpcyBuZWdhdGVkIHRvIHRoZSBkb3duX3RyeWxvY2soKSByZXR1cm4gdmFs dWVzISBCZSBjYXJlZnVsICAqLworI2RlZmluZSBtdXRleF90cnlsb2NrKGZvbykgIWRvd25f dHJ5bG9jayhmb28pCisjZGVmaW5lIG11dGV4X3VubG9jayhmb28pIHVwKGZvbykKKworI2Vu ZGlmIC8qIF9fTElOVVhfTVVURVhfSCAqLwpkaWZmIC1yIGFiODVjMjBkMzNlNSAtciA2MDUy OTdmYjg2MTggdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9uZXRmcm9udC9NYWtlZmls ZQotLS0gL2Rldi9udWxsCVRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCArMDAwMAorKysgYi91 bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L25ldGZyb250L01ha2VmaWxlCVR1ZSBPY3Qg MTAgMTQ6Mjk6MzYgMjAwNiArMDkwMApAQCAtMCwwICsxLDMgQEAKK2lmbmVxICgkKEtFUk5F TFJFTEVBU0UpLCkKK2luY2x1ZGUgJChzcmMpL0tidWlsZAorZW5kaWYKZGlmZiAtciBhYjg1 YzIwZDMzZTUgLXIgNjA1Mjk3ZmI4NjE4IHVubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYv cGxhdGZvcm0tcGNpL01ha2VmaWxlCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDow MCAxOTcwICswMDAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvcGxhdGZv cm0tcGNpL01ha2VmaWxlCVR1ZSBPY3QgMTAgMTQ6Mjk6MzYgMjAwNiArMDkwMApAQCAtMCww ICsxLDMgQEAKK2lmbmVxICgkKEtFUk5FTFJFTEVBU0UpLCkKK2luY2x1ZGUgJChzcmMpL0ti dWlsZAorZW5kaWYKZGlmZiAtciBhYjg1YzIwZDMzZTUgLXIgNjA1Mjk3ZmI4NjE4IHVubW9k aWZpZWRfZHJpdmVycy9saW51eC0yLjYvcGxhdGZvcm0tcGNpL2NvbXBhdC5jCi0tLSAvZGV2 L251bGwJVGh1IEphbiAwMSAwMDowMDowMCAxOTcwICswMDAwCisrKyBiL3VubW9kaWZpZWRf ZHJpdmVycy9saW51eC0yLjYvcGxhdGZvcm0tcGNpL2NvbXBhdC5jCVR1ZSBPY3QgMTAgMTQ6 Mjk6MzYgMjAwNiArMDkwMApAQCAtMCwwICsxLDQ4IEBACisjaW5jbHVkZSA8bGludXgvY29u ZmlnLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2hp Z2htZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9t bS5oPgorCisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxhc20vaHlwZXJ2 aXNvci5oPgorCisjaWZkZWYgSEFWRV9DT01QQVRfSAorI2luY2x1ZGUgPGNvbXBhdC5oPgor I2VuZGlmCisKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MTApCisvKgorICogTWFwIGEgdm1hbGxvYygpLXNwYWNlIHZpcnR1YWwgYWRkcmVzcyB0byB0 aGUgcGh5c2ljYWwgcGFnZSBmcmFtZSBudW1iZXIuCisgKi8KK3Vuc2lnbmVkIGxvbmcgdm1h bGxvY190b19wZm4odm9pZCAqIHZtYWxsb2NfYWRkcikKK3sKKwlyZXR1cm4gcGFnZV90b19w Zm4odm1hbGxvY190b19wYWdlKHZtYWxsb2NfYWRkcikpOworfQorCitFWFBPUlRfU1lNQk9M KHZtYWxsb2NfdG9fcGZuKTsKKyNlbmRpZgorCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDEyKQorLyoKKyAgICBmYWtlIGRvX2V4aXQgdXNpbmcgY29t cGxldGVfYW5kX2V4aXQKKyAqLworYXNtbGlua2FnZSBOT1JFVF9UWVBFIHZvaWQgZG9fZXhp dChsb25nIGNvZGUpCit7CisgICAgY29tcGxldGVfYW5kX2V4aXQoTlVMTCwgY29kZSk7Cit9 CitFWFBPUlRfU1lNQk9MKGRvX2V4aXQpOworI2VuZGlmCisKKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTQpCisvKgorICogV2UgY2FuIHVzZSBfX3Nl dF9jdXJyZW50X3N0YXRlKCkgaGVyZSBiZWNhdXNlIHNjaGVkdWxlX3RpbWVvdXQoKSBjYWxs cworICogc2NoZWR1bGUoKSB1bmNvbmRpdGlvbmFsbHkuCisgKi8KK3NpZ25lZCBsb25nIF9f c2NoZWQgc2NoZWR1bGVfdGltZW91dF9pbnRlcnJ1cHRpYmxlKHNpZ25lZCBsb25nIHRpbWVv dXQpCit7CisJX19zZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOworCXJl dHVybiBzY2hlZHVsZV90aW1lb3V0KHRpbWVvdXQpOworfQorRVhQT1JUX1NZTUJPTChzY2hl ZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUpOworI2VuZGlmCmRpZmYgLXIgYWI4NWMyMGQz M2U1IC1yIDYwNTI5N2ZiODYxOCB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L3hlbmJ1 cy9NYWtlZmlsZQotLS0gL2Rldi9udWxsCVRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCArMDAw MAorKysgYi91bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L3hlbmJ1cy9NYWtlZmlsZQlU dWUgT2N0IDEwIDE0OjI5OjM2IDIwMDYgKzA5MDAKQEAgLTAsMCArMSwzIEBACitpZm5lcSAo JChLRVJORUxSRUxFQVNFKSwpCitpbmNsdWRlICQoc3JjKS9LYnVpbGQKK2VuZGlmCg== --------------040508050002050305040805 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------040508050002050305040805--