From mboxrd@z Thu Jan 1 00:00:00 1970 From: DOI Tsunehisa Subject: Re: [PATCH][RESEND] PV drivers for HVM guests Date: Tue, 24 Oct 2006 11:54:13 +0900 Message-ID: <453D8055.4030509@jp.fujitsu.com> References: <4535F8F5.E57C.0030.0@novell.com>Your message of Wed, 18 Oct 2006 07:51:45 -0600. <4535F8F5.E57C.0030.0@novell.com> <200610182356.k9INuAF03840@photon.sky.yk.fujitsu.co.jp><45374AE9.E57C.0030.0@novell.com>Your message of Thu, 19 Oct 2006 07:53:42 -0600. <45374AE9.E57C.0030.0@novell.com> <200610201012.k9KACIF29714@photon.sky.yk.fujitsu.co.jp><45389CA5.E57C.0030.0@novell.com> <200610230145.k9N1jGF01307@photon.sky.yk.fujitsu.co.jp> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030901090501030104030303" Return-path: In-Reply-To: <200610230145.k9N1jGF01307@photon.sky.yk.fujitsu.co.jp> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com Cc: Ky Srinivasan , Ian Campbell List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------030901090501030104030303 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Hi all, "Ky Srinivasan" wrote: > I am enclosing the patch I have been working on. I have tested this on > sles9 (2.6.5) and RHEL 4 (2.6.9). The patch applies cleanly on > ChangeSet 11635. This patch was cleaned up based on Ian's and DOI's > work. I merged Srinivasan's work and a part of modification for IA64 platform. I tested only compiling on RHEL4 Update 2. Thanks, - Tsunehisa Doi --------------030901090501030104030303 Content-Type: text/plain; name="pv-backport4.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="pv-backport4.patch" IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIERvaS5Uc3VuZWhpc2FAanAuZnVqaXRzdS5j b20KIyBOb2RlIElEIGUwOGNkNDZiOTUxNTM1YTdkMjFiZWIxZDQ3NmRjOWM4OTVjNGQ0ZWYK IyBQYXJlbnQgIDI5YjAyZDkyOWI3ZTRkZjYwMTZjMTZlYmJhNzFkNmQ3MzQ2Mjg4MmUKTW9k aWZ5IGZvciBiYWNrcG9ydGluZyBQVi1vbi1IVk0gZHJpdmVycwoKU2lnbmVkLW9mZi1ieTog SWFuIENhbXBiZWxsIDxJYW4uQ2FtcGJlbGxAWGVuU291cmNlLmNvbT4KU2lnbmVkLW9mZi1i eTogSy4gWS4gU3Jpbml2YXNhbiAoa3NyaW5pdmFzYW5Abm92ZWxsLmNvbSkKU2lnbmVkLW9m Zi1ieTogVHN1bmVoaXNhIERvaSA8RG9pLlRzdW5laGlzYUBqcC5mdWppdHN1LmNvbT4KCmRp ZmYgLXIgMjliMDJkOTI5YjdlIC1yIGUwOGNkNDZiOTUxNSBsaW51eC0yLjYteGVuLXNwYXJz ZS9kcml2ZXJzL3hlbi9ibGtmcm9udC9ibGtmcm9udC5jCi0tLSBhL2xpbnV4LTIuNi14ZW4t c3BhcnNlL2RyaXZlcnMveGVuL2Jsa2Zyb250L2Jsa2Zyb250LmMJTW9uIE9jdCAyMyAxNDo0 Mjo1MiAyMDA2ICswMTAwCisrKyBiL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVu L2Jsa2Zyb250L2Jsa2Zyb250LmMJVHVlIE9jdCAyNCAxMTowMDowOCAyMDA2ICswOTAwCkBA IC00OCw2ICs0OCwxMCBAQAogI2luY2x1ZGUgPGFzbS9oeXBlcnZpc29yLmg+CiAjaW5jbHVk ZSA8YXNtL21hZGRyLmg+CiAKKyNpZmRlZiBIQVZFX0NPTVBBVF9ICisjaW5jbHVkZSA8Y29t cGF0Lmg+CisjZW5kaWYKKwogI2RlZmluZSBCTEtJRl9TVEFURV9ESVNDT05ORUNURUQgMAog I2RlZmluZSBCTEtJRl9TVEFURV9DT05ORUNURUQgICAgMQogI2RlZmluZSBCTEtJRl9TVEFU RV9TVVNQRU5ERUQgICAgMgpAQCAtNDY4LDYgKzQ3MiwyNyBAQCBpbnQgYmxraWZfaW9jdGwo c3RydWN0IGlub2RlICppbm9kZSwgc3RyCiAJCSAgICAgIGNvbW1hbmQsIChsb25nKWFyZ3Vt ZW50LCBpbm9kZS0+aV9yZGV2KTsKIAogCXN3aXRjaCAoY29tbWFuZCkgeworI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwxNikKKwljYXNlIEhESU9fR0VU R0VPOiB7CisJCXN0cnVjdCBibG9ja19kZXZpY2UgKmJkID0gaW5vZGUtPmlfYmRldjsKKwkJ c3RydWN0IGhkX2dlb21ldHJ5IGdlbzsKKwkJaW50IHJldDsKKworICAgICAgICAgICAgICAg IGlmICghYXJndW1lbnQpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZB TDsKKworCQlnZW8uc3RhcnQgPSBnZXRfc3RhcnRfc2VjdChiZCk7CisJCXJldCA9IGJsa2lm X2dldGdlbyhiZCwgJmdlbyk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCWlm IChjb3B5X3RvX3VzZXIoKHN0cnVjdCBoZF9nZW9tZXRyeSBfX3VzZXIgKilhcmd1bWVudCwg JmdlbywKKwkJCQkgc2l6ZW9mKGdlbykpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKwl9CisjZW5kaWYK IAljYXNlIENEUk9NTVVMVElTRVNTSU9OOgogCQlEUFJJTlRLKCJGSVhNRTogc3VwcG9ydCBt dWx0aXNlc3Npb24gQ0RzIGxhdGVyXG4iKTsKIAkJZm9yIChpID0gMDsgaSA8IHNpemVvZihz dHJ1Y3QgY2Ryb21fbXVsdGlzZXNzaW9uKTsgaSsrKQpkaWZmIC1yIDI5YjAyZDkyOWI3ZSAt ciBlMDhjZDQ2Yjk1MTUgbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4vYmxrZnJv bnQvdmJkLmMKLS0tIGEvbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4vYmxrZnJv bnQvdmJkLmMJTW9uIE9jdCAyMyAxNDo0Mjo1MiAyMDA2ICswMTAwCisrKyBiL2xpbnV4LTIu Ni14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL2Jsa2Zyb250L3ZiZC5jCVR1ZSBPY3QgMjQgMTE6 MDA6MDggMjAwNiArMDkwMApAQCAtMzYsNiArMzYsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9i bGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAKKyNpZmRlZiBIQVZFX0NPTVBB VF9ICisjaW5jbHVkZSA8Y29tcGF0Lmg+CisjZW5kaWYKKwogI2RlZmluZSBCTEtJRl9NQUpP UihkZXYpICgoZGV2KT4+OCkKICNkZWZpbmUgQkxLSUZfTUlOT1IoZGV2KSAoKGRldikgJiAw eGZmKQogCkBAIC05MSw3ICs5NSw5IEBAIHN0YXRpYyBzdHJ1Y3QgYmxvY2tfZGV2aWNlX29w ZXJhdGlvbnMgeGwKIAkub3BlbiA9IGJsa2lmX29wZW4sCiAJLnJlbGVhc2UgPSBibGtpZl9y ZWxlYXNlLAogCS5pb2N0bCAgPSBibGtpZl9pb2N0bCwKKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPiBLRVJORUxfVkVSU0lPTigyLDYsMTUpCiAJLmdldGdlbyA9IGJsa2lmX2dldGdlbwor I2VuZGlmCiB9OwogCiBERUZJTkVfU1BJTkxPQ0soYmxraWZfaW9fbG9jayk7CkBAIC0xODYs NyArMTkyLDExIEBAIHhsdmJkX2luaXRfYmxrX3F1ZXVlKHN0cnVjdCBnZW5kaXNrICpnZCwK IAlpZiAocnEgPT0gTlVMTCkKIAkJcmV0dXJuIC0xOwogCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFID4gS0VSTkVMX1ZFUlNJT04oMiw2LDkpCiAJZWxldmF0b3JfaW5pdChycSwgIm5vb3Ai KTsKKyNlbHNlCisJZWxldmF0b3JfaW5pdChycSwgJmVsZXZhdG9yX25vb3ApOworI2VuZGlm CiAKIAkvKiBIYXJkIHNlY3RvciBzaXplIGFuZCBtYXggc2VjdG9ycyBpbXBlcnNvbmF0ZSB0 aGUgZXF1aXYuIGhhcmR3YXJlLiAqLwogCWJsa19xdWV1ZV9oYXJkc2VjdF9zaXplKHJxLCBz ZWN0b3Jfc2l6ZSk7CmRpZmYgLXIgMjliMDJkOTI5YjdlIC1yIGUwOGNkNDZiOTUxNSBsaW51 eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi9jb3JlL2ZlYXR1cmVzLmMKLS0tIGEvbGlu dXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4vY29yZS9mZWF0dXJlcy5jCU1vbiBPY3Qg MjMgMTQ6NDI6NTIgMjAwNiArMDEwMAorKysgYi9saW51eC0yLjYteGVuLXNwYXJzZS9kcml2 ZXJzL3hlbi9jb3JlL2ZlYXR1cmVzLmMJVHVlIE9jdCAyNCAxMTowMDowOCAyMDA2ICswOTAw CkBAIC0xMCw2ICsxMCwxMCBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1 ZGUgPGFzbS9oeXBlcnZpc29yLmg+CiAjaW5jbHVkZSA8eGVuL2ZlYXR1cmVzLmg+CisKKyNp ZmRlZiBIQVZFX0NPTVBBVF9ICisjaW5jbHVkZSA8Y29tcGF0Lmg+CisjZW5kaWYKIAogdTgg eGVuX2ZlYXR1cmVzW1hFTkZFQVRfTlJfU1VCTUFQUyAqIDMyXSBfX3JlYWRfbW9zdGx5Owog LyogTm90IGEgR1BMIHN5bWJvbDogdXNlZCBpbiB1YmlxdWl0b3VzIG1hY3Jvcywgc28gdG9v IHJlc3RyaWN0aXZlLiAqLwpkaWZmIC1yIDI5YjAyZDkyOWI3ZSAtciBlMDhjZDQ2Yjk1MTUg bGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4vY29yZS9nbnR0YWIuYwotLS0gYS9s aW51eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi9jb3JlL2dudHRhYi5jCU1vbiBPY3Qg MjMgMTQ6NDI6NTIgMjAwNiArMDEwMAorKysgYi9saW51eC0yLjYteGVuLXNwYXJzZS9kcml2 ZXJzL3hlbi9jb3JlL2dudHRhYi5jCVR1ZSBPY3QgMjQgMTE6MDA6MDggMjAwNiArMDkwMApA QCAtNDQsNiArNDQsMTAgQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDx4ZW4v aW50ZXJmYWNlL21lbW9yeS5oPgogCisjaWZkZWYgSEFWRV9DT01QQVRfSAorI2luY2x1ZGUg PGNvbXBhdC5oPgorI2VuZGlmCisKIC8qIEV4dGVybmFsIHRvb2xzIHJlc2VydmUgZmlyc3Qg ZmV3IGdyYW50IHRhYmxlIGVudHJpZXMuICovCiAjZGVmaW5lIE5SX1JFU0VSVkVEX0VOVFJJ RVMgOAogCmRpZmYgLXIgMjliMDJkOTI5YjdlIC1yIGUwOGNkNDZiOTUxNSBsaW51eC0yLjYt eGVuLXNwYXJzZS9kcml2ZXJzL3hlbi9uZXRmcm9udC9uZXRmcm9udC5jCi0tLSBhL2xpbnV4 LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL25ldGZyb250L25ldGZyb250LmMJTW9uIE9j dCAyMyAxNDo0Mjo1MiAyMDA2ICswMTAwCisrKyBiL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2Ry aXZlcnMveGVuL25ldGZyb250L25ldGZyb250LmMJVHVlIE9jdCAyNCAxMTowMDowOCAyMDA2 ICswOTAwCkBAIC02NCw2ICs2NCwxMCBAQAogI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvZ3Jh bnRfdGFibGUuaD4KICNpbmNsdWRlIDx4ZW4vZ250dGFiLmg+CiAKKyNpZmRlZiBIQVZFX0NP TVBBVF9ICisjaW5jbHVkZSA8Y29tcGF0Lmg+CisjZW5kaWYKKwogLyoKICAqIE11dHVhbGx5 LWV4Y2x1c2l2ZSBtb2R1bGUgb3B0aW9ucyB0byBzZWxlY3QgcmVjZWl2ZSBkYXRhIHBhdGg6 CiAgKiAgcnhfY29weSA6IFBhY2tldHMgYXJlIGNvcGllZCBieSBuZXR3b3JrIGJhY2tlbmQg aW50byBsb2NhbCBtZW1vcnkKZGlmZiAtciAyOWIwMmQ5MjliN2UgLXIgZTA4Y2Q0NmI5NTE1 IGxpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50 LmMKLS0tIGEvbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1 c19jbGllbnQuYwlNb24gT2N0IDIzIDE0OjQyOjUyIDIwMDYgKzAxMDAKKysrIGIvbGludXgt Mi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jbGllbnQuYwlUdWUg T2N0IDI0IDExOjAwOjA4IDIwMDYgKzA5MDAKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVk ZSA8eGVuL2dudHRhYi5oPgogI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KICNpbmNsdWRlIDx4 ZW4vZHJpdmVyX3V0aWwuaD4KKworI2lmZGVmIEhBVkVfQ09NUEFUX0gKKyNpbmNsdWRlIDxj b21wYXQuaD4KKyNlbmRpZgogCiAvKiB4ZW5idXNfcHJvYmUuYyAqLwogZXh0ZXJuIGNoYXIg Kmthc3ByaW50Zihjb25zdCBjaGFyICpmbXQsIC4uLik7CmRpZmYgLXIgMjliMDJkOTI5Yjdl IC1yIGUwOGNkNDZiOTUxNSBsaW51eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi94ZW5i dXMveGVuYnVzX2NvbW1zLmMKLS0tIGEvbGludXgtMi42LXhlbi1zcGFyc2UvZHJpdmVycy94 ZW4veGVuYnVzL3hlbmJ1c19jb21tcy5jCU1vbiBPY3QgMjMgMTQ6NDI6NTIgMjAwNiArMDEw MAorKysgYi9saW51eC0yLjYteGVuLXNwYXJzZS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVz X2NvbW1zLmMJVHVlIE9jdCAyNCAxMTowMDowOCAyMDA2ICswOTAwCkBAIC0zOSw2ICszOSwx MCBAQAogI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KICNpbmNsdWRlICJ4ZW5idXNfY29tbXMu aCIKIAorI2lmZGVmIEhBVkVfQ09NUEFUX0gKKyNpbmNsdWRlIDxjb21wYXQuaD4KKyNlbmRp ZgorCiBzdGF0aWMgaW50IHhlbmJ1c19pcnE7CiAKIGV4dGVybiB2b2lkIHhlbmJ1c19wcm9i ZSh2b2lkICopOwpkaWZmIC1yIDI5YjAyZDkyOWI3ZSAtciBlMDhjZDQ2Yjk1MTUgbGludXgt Mi42LXhlbi1zcGFyc2UvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19wcm9iZS5jCi0tLSBh L2xpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfcHJvYmUu YwlNb24gT2N0IDIzIDE0OjQyOjUyIDIwMDYgKzAxMDAKKysrIGIvbGludXgtMi42LXhlbi1z cGFyc2UvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19wcm9iZS5jCVR1ZSBPY3QgMjQgMTE6 MDA6MDggMjAwNiArMDkwMApAQCAtNTYsNiArNTYsMTAgQEAKIAogI2luY2x1ZGUgInhlbmJ1 c19jb21tcy5oIgogCisjaWZkZWYgSEFWRV9DT01QQVRfSAorI2luY2x1ZGUgPGNvbXBhdC5o PgorI2VuZGlmCisKIGludCB4ZW5fc3RvcmVfZXZ0Y2huOwogc3RydWN0IHhlbnN0b3JlX2Rv bWFpbl9pbnRlcmZhY2UgKnhlbl9zdG9yZV9pbnRlcmZhY2U7CiBzdGF0aWMgdW5zaWduZWQg bG9uZyB4ZW5fc3RvcmVfbWZuOwpAQCAtNjcsMTMgKzcxLDE3IEBAIHN0YXRpYyB2b2lkIHdh aXRfZm9yX2RldmljZXMoc3RydWN0IHhlbmIKIHN0YXRpYyB2b2lkIHdhaXRfZm9yX2Rldmlj ZXMoc3RydWN0IHhlbmJ1c19kcml2ZXIgKnhlbmRydik7CiAKIHN0YXRpYyBpbnQgeGVuYnVz X3Byb2JlX2Zyb250ZW5kKGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpOwor I2lmZGVmIENPTkZJR19YRU5fQkFDS0VORAogc3RhdGljIGludCB4ZW5idXNfdWV2ZW50X2Jh Y2tlbmQoc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICoqZW52cCwKIAkJCQkgaW50IG51bV9l bnZwLCBjaGFyICpidWZmZXIsIGludCBidWZmZXJfc2l6ZSk7CiBzdGF0aWMgaW50IHhlbmJ1 c19wcm9iZV9iYWNrZW5kKGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKmRvbWlkKTsK KyNlbmRpZgogCiBzdGF0aWMgaW50IHhlbmJ1c19kZXZfcHJvYmUoc3RydWN0IGRldmljZSAq X2Rldik7CiBzdGF0aWMgaW50IHhlbmJ1c19kZXZfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKl9k ZXYpOworI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+IEtFUk5FTF9WRVJTSU9OKDIsNiwxNSkK IHN0YXRpYyB2b2lkIHhlbmJ1c19kZXZfc2h1dGRvd24oc3RydWN0IGRldmljZSAqX2Rldik7 CisjZW5kaWYKIAogLyogSWYgc29tZXRoaW5nIGluIGFycmF5IG9mIGlkcyBtYXRjaGVzIHRo aXMgZGV2aWNlLCByZXR1cm4gaXQuICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhlbmJ1c19k ZXZpY2VfaWQgKgpAQCAtMTc2LDEwICsxODQsMTIgQEAgc3RhdGljIGludCByZWFkX2JhY2tl bmRfZGV0YWlscyhzdHJ1Y3QgeAogfQogCiAKKyNpZmRlZiBDT05GSUdfWEVOX0JBQ0tFTkQK IHN0YXRpYyBpbnQgcmVhZF9mcm9udGVuZF9kZXRhaWxzKHN0cnVjdCB4ZW5idXNfZGV2aWNl ICp4ZW5kZXYpCiB7CiAJcmV0dXJuIHJlYWRfb3RoZXJlbmRfZGV0YWlscyh4ZW5kZXYsICJm cm9udGVuZC1pZCIsICJmcm9udGVuZCIpOwogfQorI2VuZGlmCiAKIAogLyogQnVzIHR5cGUg Zm9yIGZyb250ZW5kIGRyaXZlcnMuICovCkBAIC0xOTEsMTUgKzIwMSwxOCBAQCBzdGF0aWMg c3RydWN0IHhlbl9idXNfdHlwZSB4ZW5idXNfZnJvbnRlCiAJLmJ1cyA9IHsKIAkJLm5hbWUg ICAgID0gInhlbiIsCiAJCS5tYXRjaCAgICA9IHhlbmJ1c19tYXRjaCwKKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPiBLRVJORUxfVkVSU0lPTigyLDYsMTUpCiAJCS5wcm9iZSAgICA9IHhl bmJ1c19kZXZfcHJvYmUsCiAJCS5yZW1vdmUgICA9IHhlbmJ1c19kZXZfcmVtb3ZlLAogCQku c2h1dGRvd24gPSB4ZW5idXNfZGV2X3NodXRkb3duLAorI2VuZGlmCiAJfSwKIAkuZGV2ID0g ewogCQkuYnVzX2lkID0gInhlbiIsCiAJfSwKIH07CiAKKyNpZmRlZiBDT05GSUdfWEVOX0JB Q0tFTkQKIC8qIGJhY2tlbmQvPHR5cGU+LzxmZS11dWlkPi88aWQ+ID0+IDx0eXBlPi08ZmUt ZG9taWQ+LTxpZD4gKi8KIHN0YXRpYyBpbnQgYmFja2VuZF9idXNfaWQoY2hhciBidXNfaWRb QlVTX0lEX1NJWkVdLCBjb25zdCBjaGFyICpub2RlbmFtZSkKIHsKQEAgLTI5OSw2ICszMTIs NyBAQCBzdGF0aWMgaW50IHhlbmJ1c191ZXZlbnRfYmFja2VuZChzdHJ1Y3QgCiAKIAlyZXR1 cm4gMDsKIH0KKyNlbmRpZgogCiBzdGF0aWMgdm9pZCBvdGhlcmVuZF9jaGFuZ2VkKHN0cnVj dCB4ZW5idXNfd2F0Y2ggKndhdGNoLAogCQkJICAgICBjb25zdCBjaGFyICoqdmVjLCB1bnNp Z25lZCBpbnQgbGVuKQpAQCAtNDIzLDYgKzQzNyw3IEBAIHN0YXRpYyBpbnQgeGVuYnVzX2Rl dl9yZW1vdmUoc3RydWN0IGRldmkKIAlyZXR1cm4gMDsKIH0KIAorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+IEtFUk5FTF9WRVJTSU9OKDIsNiwxNSkKIHN0YXRpYyB2b2lkIHhlbmJ1c19k ZXZfc2h1dGRvd24oc3RydWN0IGRldmljZSAqX2RldikKIHsKIAlzdHJ1Y3QgeGVuYnVzX2Rl dmljZSAqZGV2ID0gdG9feGVuYnVzX2RldmljZShfZGV2KTsKQEAgLTQ0Myw2ICs0NTgsNyBA QCBzdGF0aWMgdm9pZCB4ZW5idXNfZGV2X3NodXRkb3duKHN0cnVjdCBkCiAgb3V0OgogCXB1 dF9kZXZpY2UoJmRldi0+ZGV2KTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgaW50IHhlbmJ1c19y ZWdpc3Rlcl9kcml2ZXJfY29tbW9uKHN0cnVjdCB4ZW5idXNfZHJpdmVyICpkcnYsCiAJCQkJ CSBzdHJ1Y3QgeGVuX2J1c190eXBlICpidXMpCkBAIC00NTEsNyArNDY3LDEzIEBAIHN0YXRp YyBpbnQgeGVuYnVzX3JlZ2lzdGVyX2RyaXZlcl9jb21tb24KIAogCWRydi0+ZHJpdmVyLm5h bWUgPSBkcnYtPm5hbWU7CiAJZHJ2LT5kcml2ZXIuYnVzID0gJmJ1cy0+YnVzOworI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA+IEtFUk5FTF9WRVJTSU9OKDIsNiw5KQogCWRydi0+ZHJpdmVy Lm93bmVyID0gZHJ2LT5vd25lcjsKKyNlbmRpZgorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwxNikKKwlkcnYtPmRyaXZlci5wcm9iZSA9IHhlbmJ1c19k ZXZfcHJvYmU7CisJZHJ2LT5kcml2ZXIucmVtb3ZlID0geGVuYnVzX2Rldl9yZW1vdmU7Cisj ZW5kaWYKIAogCW11dGV4X2xvY2soJnhlbndhdGNoX211dGV4KTsKIAlyZXQgPSBkcml2ZXJf cmVnaXN0ZXIoJmRydi0+ZHJpdmVyKTsKQEAgLTQ3Niw2ICs0OTgsNyBAQCBpbnQgeGVuYnVz X3JlZ2lzdGVyX2Zyb250ZW5kKHN0cnVjdCB4ZW5iCiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh4 ZW5idXNfcmVnaXN0ZXJfZnJvbnRlbmQpOwogCisjaWZkZWYgQ09ORklHX1hFTl9CQUNLRU5E CiBpbnQgeGVuYnVzX3JlZ2lzdGVyX2JhY2tlbmQoc3RydWN0IHhlbmJ1c19kcml2ZXIgKmRy dikKIHsKIAlkcnYtPnJlYWRfb3RoZXJlbmRfZGV0YWlscyA9IHJlYWRfZnJvbnRlbmRfZGV0 YWlsczsKQEAgLTQ4Myw2ICs1MDYsNyBAQCBpbnQgeGVuYnVzX3JlZ2lzdGVyX2JhY2tlbmQo c3RydWN0IHhlbmJ1CiAJcmV0dXJuIHhlbmJ1c19yZWdpc3Rlcl9kcml2ZXJfY29tbW9uKGRy diwgJnhlbmJ1c19iYWNrZW5kKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHhlbmJ1c19yZWdp c3Rlcl9iYWNrZW5kKTsKKyNlbmRpZgogCiB2b2lkIHhlbmJ1c191bnJlZ2lzdGVyX2RyaXZl cihzdHJ1Y3QgeGVuYnVzX2RyaXZlciAqZHJ2KQogewpAQCAtNTgxLDE0ICs2MDUsMjAgQEAg Y2hhciAqa2FzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogfQogCiBzdGF0aWMgc3Np emVfdCB4ZW5kZXZfc2hvd19ub2RlbmFtZShzdHJ1Y3QgZGV2aWNlICpkZXYsCi0JCQkJICAg IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFID4gS0VSTkVMX1ZFUlNJT04oMiw2LDEyKQorCQkJCSAgICBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKyNlbmRpZgorCQkJCSAgICBjaGFyICpidWYpCiB7 CiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJXNcbiIsIHRvX3hlbmJ1c19kZXZpY2UoZGV2KS0+ bm9kZW5hbWUpOwogfQogREVWSUNFX0FUVFIobm9kZW5hbWUsIFNfSVJVU1IgfCBTX0lSR1JQ IHwgU19JUk9USCwgeGVuZGV2X3Nob3dfbm9kZW5hbWUsIE5VTEwpOwogCiBzdGF0aWMgc3Np emVfdCB4ZW5kZXZfc2hvd19kZXZ0eXBlKHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCQkgICBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA+IEtFUk5FTF9WRVJTSU9OKDIsNiwxMikKKwkJCQkgICBzdHJ1Y3QgZGV2 aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKyNlbmRpZgorCQkJCSAgIGNoYXIgKmJ1ZikKIHsKIAly ZXR1cm4gc3ByaW50ZihidWYsICIlc1xuIiwgdG9feGVuYnVzX2RldmljZShkZXYpLT5kZXZp Y2V0eXBlKTsKIH0KQEAgLTY2Nyw2ICs2OTcsNyBAQCBzdGF0aWMgaW50IHhlbmJ1c19wcm9i ZV9mcm9udGVuZChjb25zdCBjCiAJcmV0dXJuIGVycjsKIH0KIAorI2lmZGVmIENPTkZJR19Y RU5fQkFDS0VORAogLyogYmFja2VuZC88dHlwZW5hbWU+Lzxmcm9udGVuZC11dWlkPi88bmFt ZT4gKi8KIHN0YXRpYyBpbnQgeGVuYnVzX3Byb2JlX2JhY2tlbmRfdW5pdChjb25zdCBjaGFy ICpkaXIsCiAJCQkJICAgICBjb25zdCBjaGFyICp0eXBlLApAQCAtNzE1LDYgKzc0Niw3IEBA IHN0YXRpYyBpbnQgeGVuYnVzX3Byb2JlX2JhY2tlbmQoY29uc3QgY2gKIAlrZnJlZShub2Rl bmFtZSk7CiAJcmV0dXJuIGVycjsKIH0KKyNlbmRpZgogCiBzdGF0aWMgaW50IHhlbmJ1c19w cm9iZV9kZXZpY2VfdHlwZShzdHJ1Y3QgeGVuX2J1c190eXBlICpidXMsIGNvbnN0IGNoYXIg KnR5cGUpCiB7CkBAIC04MjMsNiArODU1LDcgQEAgc3RhdGljIHZvaWQgZnJvbnRlbmRfY2hh bmdlZChzdHJ1Y3QgeGVuYgogCWRldl9jaGFuZ2VkKHZlY1tYU19XQVRDSF9QQVRIXSwgJnhl bmJ1c19mcm9udGVuZCk7CiB9CiAKKyNpZmRlZiBDT05GSUdfWEVOX0JBQ0tFTkQKIHN0YXRp YyB2b2lkIGJhY2tlbmRfY2hhbmdlZChzdHJ1Y3QgeGVuYnVzX3dhdGNoICp3YXRjaCwKIAkJ CSAgICBjb25zdCBjaGFyICoqdmVjLCB1bnNpZ25lZCBpbnQgbGVuKQogewpAQCAtODMwLDYg Kzg2Myw3IEBAIHN0YXRpYyB2b2lkIGJhY2tlbmRfY2hhbmdlZChzdHJ1Y3QgeGVuYnUKIAog CWRldl9jaGFuZ2VkKHZlY1tYU19XQVRDSF9QQVRIXSwgJnhlbmJ1c19iYWNrZW5kKTsKIH0K KyNlbmRpZgogCiAvKiBXZSB3YXRjaCBmb3IgZGV2aWNlcyBhcHBlYXJpbmcgYW5kIHZhbmlz aGluZy4gKi8KIHN0YXRpYyBzdHJ1Y3QgeGVuYnVzX3dhdGNoIGZlX3dhdGNoID0gewpAQCAt ODM3LDEwICs4NzEsMTIgQEAgc3RhdGljIHN0cnVjdCB4ZW5idXNfd2F0Y2ggZmVfd2F0Y2gg PSB7CiAJLmNhbGxiYWNrID0gZnJvbnRlbmRfY2hhbmdlZCwKIH07CiAKKyNpZmRlZiBDT05G SUdfWEVOX0JBQ0tFTkQKIHN0YXRpYyBzdHJ1Y3QgeGVuYnVzX3dhdGNoIGJlX3dhdGNoID0g ewogCS5ub2RlID0gImJhY2tlbmQiLAogCS5jYWxsYmFjayA9IGJhY2tlbmRfY2hhbmdlZCwK IH07CisjZW5kaWYKIAogc3RhdGljIGludCBzdXNwZW5kX2RldihzdHJ1Y3QgZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEpCiB7CkBAIC05MTIsNyArOTQ4LDkgQEAgdm9pZCB4ZW5idXNfc3Vz cGVuZCh2b2lkKQogCURQUklOVEsoIiIpOwogCiAJYnVzX2Zvcl9lYWNoX2RldigmeGVuYnVz X2Zyb250ZW5kLmJ1cywgTlVMTCwgTlVMTCwgc3VzcGVuZF9kZXYpOworI2lmZGVmIENPTkZJ R19YRU5fQkFDS0VORAogCWJ1c19mb3JfZWFjaF9kZXYoJnhlbmJ1c19iYWNrZW5kLmJ1cywg TlVMTCwgTlVMTCwgc3VzcGVuZF9kZXYpOworI2VuZGlmCiAJeHNfc3VzcGVuZCgpOwogfQog RVhQT1JUX1NZTUJPTF9HUEwoeGVuYnVzX3N1c3BlbmQpOwpAQCAtOTIyLDcgKzk2MCw5IEBA IHZvaWQgeGVuYnVzX3Jlc3VtZSh2b2lkKQogCXhiX2luaXRfY29tbXMoKTsKIAl4c19yZXN1 bWUoKTsKIAlidXNfZm9yX2VhY2hfZGV2KCZ4ZW5idXNfZnJvbnRlbmQuYnVzLCBOVUxMLCBO VUxMLCByZXN1bWVfZGV2KTsKKyNpZmRlZiBDT05GSUdfWEVOX0JBQ0tFTkQKIAlidXNfZm9y X2VhY2hfZGV2KCZ4ZW5idXNfYmFja2VuZC5idXMsIE5VTEwsIE5VTEwsIHJlc3VtZV9kZXYp OworI2VuZGlmCiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh4ZW5idXNfcmVzdW1lKTsKIApAQCAt OTU3LDExICs5OTcsMTUgQEAgdm9pZCB4ZW5idXNfcHJvYmUodm9pZCAqdW51c2VkKQogCiAJ LyogRW51bWVyYXRlIGRldmljZXMgaW4geGVuc3RvcmUuICovCiAJeGVuYnVzX3Byb2JlX2Rl dmljZXMoJnhlbmJ1c19mcm9udGVuZCk7CisjaWZkZWYgQ09ORklHX1hFTl9CQUNLRU5ECiAJ eGVuYnVzX3Byb2JlX2RldmljZXMoJnhlbmJ1c19iYWNrZW5kKTsKKyNlbmRpZgogCiAJLyog V2F0Y2ggZm9yIGNoYW5nZXMuICovCiAJcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKCZmZV93YXRj aCk7CisjaWZkZWYgQ09ORklHX1hFTl9CQUNLRU5ECiAJcmVnaXN0ZXJfeGVuYnVzX3dhdGNo KCZiZV93YXRjaCk7CisjZW5kaWYKIAogCS8qIE5vdGlmeSBvdGhlcnMgdGhhdCB4ZW5zdG9y ZSBpcyB1cCAqLwogCW5vdGlmaWVyX2NhbGxfY2hhaW4oJnhlbnN0b3JlX2NoYWluLCAwLCBO VUxMKTsKQEAgLTk3Myw2ICsxMDE3LDcgQEAgc3RhdGljIHN0cnVjdCBwcm9jX2Rpcl9lbnRy eSAqeHNkX2t2YV9pbgogc3RhdGljIHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqeHNkX2t2YV9p bnRmOwogc3RhdGljIHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqeHNkX3BvcnRfaW50ZjsKIAor I2lmZGVmIENPTkZJR19YRU5fUFJJVklMRUdFRF9HVUVTVAogc3RhdGljIGludCB4c2Rfa3Zh X21tYXAoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQog ewogCXNpemVfdCBzaXplID0gdm1hLT52bV9lbmQgLSB2bWEtPnZtX3N0YXJ0OwpAQCAtOTg2 LDYgKzEwMzEsOSBAQCBzdGF0aWMgaW50IHhzZF9rdmFfbW1hcChzdHJ1Y3QgZmlsZSAqZmls CiAKIAlyZXR1cm4gMDsKIH0KKyNlbHNlCisjZGVmaW5lIHhzZF9rdmFfbW1hcCBOVUxMCisj ZW5kaWYKIAogc3RhdGljIGludCB4c2Rfa3ZhX3JlYWQoY2hhciAqcGFnZSwgY2hhciAqKnN0 YXJ0LCBvZmZfdCBvZmYsCiAJCQlpbnQgY291bnQsIGludCAqZW9mLCB2b2lkICpkYXRhKQpA QCAtMTAyMCw3ICsxMDY4LDkgQEAgc3RhdGljIGludCBfX2luaXQgeGVuYnVzX3Byb2JlX2lu aXQodm9pZAogCiAJLyogUmVnaXN0ZXIgb3Vyc2VsdmVzIHdpdGggdGhlIGtlcm5lbCBidXMg c3Vic3lzdGVtICovCiAJYnVzX3JlZ2lzdGVyKCZ4ZW5idXNfZnJvbnRlbmQuYnVzKTsKKyNp ZmRlZiBDT05GSUdfWEVOX0JBQ0tFTkQKIAlidXNfcmVnaXN0ZXIoJnhlbmJ1c19iYWNrZW5k LmJ1cyk7CisjZW5kaWYKIAogCS8qCiAJICogRG9tYWluMCBkb2Vzbid0IGhhdmUgYSBzdG9y ZV9ldnRjaG4gb3Igc3RvcmVfbWZuIHlldC4KQEAgLTEwOTEsNyArMTE0MSw5IEBAIHN0YXRp YyBpbnQgX19pbml0IHhlbmJ1c19wcm9iZV9pbml0KHZvaWQKIAogCS8qIFJlZ2lzdGVyIG91 cnNlbHZlcyB3aXRoIHRoZSBrZXJuZWwgZGV2aWNlIHN1YnN5c3RlbSAqLwogCWRldmljZV9y ZWdpc3RlcigmeGVuYnVzX2Zyb250ZW5kLmRldik7CisjaWZkZWYgQ09ORklHX1hFTl9CQUNL RU5ECiAJZGV2aWNlX3JlZ2lzdGVyKCZ4ZW5idXNfYmFja2VuZC5kZXYpOworI2VuZGlmCiAK IAlpZiAoIWlzX2luaXRpYWxfeGVuZG9tYWluKCkpCiAJCXhlbmJ1c19wcm9iZShOVUxMKTsK ZGlmZiAtciAyOWIwMmQ5MjliN2UgLXIgZTA4Y2Q0NmI5NTE1IGxpbnV4LTIuNi14ZW4tc3Bh cnNlL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfeHMuYwotLS0gYS9saW51eC0yLjYteGVu LXNwYXJzZS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3hzLmMJTW9uIE9jdCAyMyAxNDo0 Mjo1MiAyMDA2ICswMTAwCisrKyBiL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2RyaXZlcnMveGVu L3hlbmJ1cy94ZW5idXNfeHMuYwlUdWUgT2N0IDI0IDExOjAwOjA4IDIwMDYgKzA5MDAKQEAg LTQyLDggKzQyLDEzIEBACiAjaW5jbHVkZSA8bGludXgvZmNudGwuaD4KICNpbmNsdWRlIDxs aW51eC9rdGhyZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvcndzZW0uaD4KKyNpbmNsdWRlIDxs aW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CiAjaW5jbHVkZSAieGVu YnVzX2NvbW1zLmgiCisKKyNpZmRlZiBIQVZFX0NPTVBBVF9ICisjaW5jbHVkZSA8Y29tcGF0 Lmg+CisjZW5kaWYKIAogLyogeGVuYnVzX3Byb2JlLmMgKi8KIGV4dGVybiBjaGFyICprYXNw cmludGYoY29uc3QgY2hhciAqZm10LCAuLi4pOwpkaWZmIC1yIDI5YjAyZDkyOWI3ZSAtciBl MDhjZDQ2Yjk1MTUgbGludXgtMi42LXhlbi1zcGFyc2UvaW5jbHVkZS9hc20taTM4Ni9tYWNo LXhlbi9hc20vc3luY2hfYml0b3BzLmgKLS0tIGEvbGludXgtMi42LXhlbi1zcGFyc2UvaW5j bHVkZS9hc20taTM4Ni9tYWNoLXhlbi9hc20vc3luY2hfYml0b3BzLmgJTW9uIE9jdCAyMyAx NDo0Mjo1MiAyMDA2ICswMTAwCisrKyBiL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2luY2x1ZGUv YXNtLWkzODYvbWFjaC14ZW4vYXNtL3N5bmNoX2JpdG9wcy5oCVR1ZSBPY3QgMjQgMTE6MDA6 MDggMjAwNiArMDkwMApAQCAtOCw2ICs4LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4 L2NvbmZpZy5oPgorCisjaWZkZWYgSEFWRV9DT01QQVRfSAorI2luY2x1ZGUgPGNvbXBhdC5o PgorI2VuZGlmCiAKICNkZWZpbmUgQUREUiAoKih2b2xhdGlsZSBsb25nICopIGFkZHIpCiAK ZGlmZiAtciAyOWIwMmQ5MjliN2UgLXIgZTA4Y2Q0NmI5NTE1IGxpbnV4LTIuNi14ZW4tc3Bh cnNlL2luY2x1ZGUveGVuL3hlbmJ1cy5oCi0tLSBhL2xpbnV4LTIuNi14ZW4tc3BhcnNlL2lu Y2x1ZGUveGVuL3hlbmJ1cy5oCU1vbiBPY3QgMjMgMTQ6NDI6NTIgMjAwNiArMDEwMAorKysg Yi9saW51eC0yLjYteGVuLXNwYXJzZS9pbmNsdWRlL3hlbi94ZW5idXMuaAlUdWUgT2N0IDI0 IDExOjAwOjA4IDIwMDYgKzA5MDAKQEAgLTM4LDEwICszOCwxNSBAQAogI2luY2x1ZGUgPGxp bnV4L25vdGlmaWVyLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxs aW51eC9jb21wbGV0aW9uLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUg PHhlbi9pbnRlcmZhY2UveGVuLmg+CiAjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS9ncmFudF90 YWJsZS5oPgogI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvaW8veGVuYnVzLmg+CiAjaW5jbHVk ZSA8eGVuL2ludGVyZmFjZS9pby94c193aXJlLmg+CisKKyNpZmRlZiBIQVZFX0NPTVBBVF9I CisjaW5jbHVkZSA8Y29tcGF0Lmg+CisjZW5kaWYKIAogLyogUmVnaXN0ZXIgY2FsbGJhY2sg dG8gd2F0Y2ggdGhpcyBub2RlLiAqLwogc3RydWN0IHhlbmJ1c193YXRjaApkaWZmIC1yIDI5 YjAyZDkyOWI3ZSAtciBlMDhjZDQ2Yjk1MTUgdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIu Ni9vdmVycmlkZXMubWsKLS0tIGEvdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9vdmVy cmlkZXMubWsJTW9uIE9jdCAyMyAxNDo0Mjo1MiAyMDA2ICswMTAwCisrKyBiL3VubW9kaWZp ZWRfZHJpdmVycy9saW51eC0yLjYvb3ZlcnJpZGVzLm1rCVR1ZSBPY3QgMjQgMTE6MDA6MDgg MjAwNiArMDkwMApAQCAtOSw0ICs5LDQgQEAgRVhUUkFfQ0ZMQUdTICs9IC1EQ09ORklHX1hF Tl9CTEtERVZfR1JBTgogRVhUUkFfQ0ZMQUdTICs9IC1EQ09ORklHX1hFTl9CTEtERVZfR1JB TlQgLURYRU5fRVZUQ0hOX01BU0tfT1BTCiBFWFRSQV9DRkxBR1MgKz0gLURDT05GSUdfWEVO X05FVERFVl9HUkFOVF9SWCAtRENPTkZJR19YRU5fTkVUREVWX0dSQU5UX1RYCiBFWFRSQV9D RkxBR1MgKz0gLURfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fPTB4MDAwMzAyMDIKLUVYVFJB X0NGTEFHUyArPSAtSSQoTSkvaW5jbHVkZQorRVhUUkFfQ0ZMQUdTICs9IC1JJChNKS9pbmNs dWRlIC1JJChNKS9jb21wYXQtaW5jbHVkZSAtREhBVkVfQ09NUEFUX0gKZGlmZiAtciAyOWIw MmQ5MjliN2UgLXIgZTA4Y2Q0NmI5NTE1IHVubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYv cGxhdGZvcm0tcGNpL0tidWlsZAotLS0gYS91bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42 L3BsYXRmb3JtLXBjaS9LYnVpbGQJTW9uIE9jdCAyMyAxNDo0Mjo1MiAyMDA2ICswMTAwCisr KyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvcGxhdGZvcm0tcGNpL0tidWlsZAlU dWUgT2N0IDI0IDExOjAwOjA4IDIwMDYgKzA5MDAKQEAgLTQsNCArNCwxMCBAQCBvYmotbSA6 PSB4ZW4tcGxhdGZvcm0tcGNpLm8KIAogRVhUUkFfQ0ZMQUdTICs9IC1JJChNKS9wbGF0Zm9y bS1wY2kKIAoteGVuLXBsYXRmb3JtLXBjaS1vYmpzIDo9IGV2dGNobi5vIHBsYXRmb3JtLXBj aS5vIGdudHRhYi5vIHhlbl9zdXBwb3J0Lm8gZmVhdHVyZXMubworeGVuLXBsYXRmb3JtLXBj aS1vYmpzIDo9Cit4ZW4tcGxhdGZvcm0tcGNpLW9ianMgKz0gcGxhdGZvcm0tcGNpLm8KK3hl bi1wbGF0Zm9ybS1wY2ktb2JqcyArPSBmZWF0dXJlcy5vCit4ZW4tcGxhdGZvcm0tcGNpLW9i anMgKz0gZXZ0Y2huLm8KK3hlbi1wbGF0Zm9ybS1wY2ktb2JqcyArPSBnbnR0YWIubworeGVu LXBsYXRmb3JtLXBjaS1vYmpzICs9IHhlbl9zdXBwb3J0Lm8KK3hlbi1wbGF0Zm9ybS1wY2kt b2JqcyArPSBjb21wYXQubwpkaWZmIC1yIDI5YjAyZDkyOWI3ZSAtciBlMDhjZDQ2Yjk1MTUg dW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9wbGF0Zm9ybS1wY2kvZXZ0Y2huLmMKLS0t IGEvdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9wbGF0Zm9ybS1wY2kvZXZ0Y2huLmMJ TW9uIE9jdCAyMyAxNDo0Mjo1MiAyMDA2ICswMTAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVy cy9saW51eC0yLjYvcGxhdGZvcm0tcGNpL2V2dGNobi5jCVR1ZSBPY3QgMjQgMTE6MDA6MDgg MjAwNiArMDkwMApAQCAtMzUsNiArMzUsMTAgQEAKICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNl L2h2bS9pb3JlcS5oPgogI2luY2x1ZGUgPHhlbi9mZWF0dXJlcy5oPgogI2luY2x1ZGUgInBs YXRmb3JtLXBjaS5oIgorCisjaWZkZWYgSEFWRV9DT01QQVRfSAorI2luY2x1ZGUgPGNvbXBh dC5oPgorI2VuZGlmCiAKIHZvaWQgKnNoYXJlZF9pbmZvX2FyZWE7CiAKZGlmZiAtciAyOWIw MmQ5MjliN2UgLXIgZTA4Y2Q0NmI5NTE1IHVubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYv cGxhdGZvcm0tcGNpL3BsYXRmb3JtLXBjaS5jCi0tLSBhL3VubW9kaWZpZWRfZHJpdmVycy9s aW51eC0yLjYvcGxhdGZvcm0tcGNpL3BsYXRmb3JtLXBjaS5jCU1vbiBPY3QgMjMgMTQ6NDI6 NTIgMjAwNiArMDEwMAorKysgYi91bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L3BsYXRm b3JtLXBjaS9wbGF0Zm9ybS1wY2kuYwlUdWUgT2N0IDI0IDExOjAwOjA4IDIwMDYgKzA5MDAK QEAgLTM4LDYgKzM4LDEwIEBACiAKICNpbmNsdWRlICJwbGF0Zm9ybS1wY2kuaCIKIAorI2lm ZGVmIEhBVkVfQ09NUEFUX0gKKyNpbmNsdWRlIDxjb21wYXQuaD4KKyNlbmRpZgorCiAjZGVm aW5lIERSVl9OQU1FICAgICJ4ZW4tcGxhdGZvcm0tcGNpIgogI2RlZmluZSBEUlZfVkVSU0lP TiAiMC4xMCIKICNkZWZpbmUgRFJWX1JFTERBVEUgIjAzLzAzLzIwMDUiCmRpZmYgLXIgMjli MDJkOTI5YjdlIC1yIGUwOGNkNDZiOTUxNSB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42 L3BsYXRmb3JtLXBjaS94ZW5fc3VwcG9ydC5jCi0tLSBhL3VubW9kaWZpZWRfZHJpdmVycy9s aW51eC0yLjYvcGxhdGZvcm0tcGNpL3hlbl9zdXBwb3J0LmMJTW9uIE9jdCAyMyAxNDo0Mjo1 MiAyMDA2ICswMTAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvcGxhdGZv cm0tcGNpL3hlbl9zdXBwb3J0LmMJVHVlIE9jdCAyNCAxMTowMDowOCAyMDA2ICswOTAwCkBA IC0yNiw2ICsyNiwxMCBAQAogI2luY2x1ZGUgPGFzbS9oeXBlcnZpc29yLmg+CiAjaW5jbHVk ZSAicGxhdGZvcm0tcGNpLmgiCiAKKyNpZmRlZiBIQVZFX0NPTVBBVF9ICisjaW5jbHVkZSA8 Y29tcGF0Lmg+CisjZW5kaWYKKwogdm9pZCB4ZW5fbWFjaHBoeXNfdXBkYXRlKHVuc2lnbmVk IGxvbmcgbWZuLCB1bnNpZ25lZCBsb25nIHBmbikKIHsKIAlCVUcoKTsKZGlmZiAtciAyOWIw MmQ5MjliN2UgLXIgZTA4Y2Q0NmI5NTE1IHVubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYv YmxrZnJvbnQvTWFrZWZpbGUKLS0tIC9kZXYvbnVsbAlUaHUgSmFuIDAxIDAwOjAwOjAwIDE5 NzAgKzAwMDAKKysrIGIvdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9ibGtmcm9udC9N YWtlZmlsZQlUdWUgT2N0IDI0IDExOjAwOjA4IDIwMDYgKzA5MDAKQEAgLTAsMCArMSwzIEBA CitpZm5lcSAoJChLRVJORUxSRUxFQVNFKSwpCitpbmNsdWRlICQoc3JjKS9LYnVpbGQKK2Vu ZGlmCmRpZmYgLXIgMjliMDJkOTI5YjdlIC1yIGUwOGNkNDZiOTUxNSB1bm1vZGlmaWVkX2Ry aXZlcnMvbGludXgtMi42L2NvbXBhdC1pbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUtbm9w bWQuaAotLS0gL2Rldi9udWxsCVRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCArMDAwMAorKysg Yi91bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L2NvbXBhdC1pbmNsdWRlL2FzbS1nZW5l cmljL3BndGFibGUtbm9wbWQuaAlUdWUgT2N0IDI0IDExOjAwOjA4IDIwMDYgKzA5MDAKQEAg LTAsMCArMSwxNCBAQAorI2lmbmRlZiBfUEdUQUJMRV9OT1BNRF9ICisjZGVmaW5lIF9QR1RB QkxFX05PUE1EX0gKKworI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+IEtFUk5FTF9WRVJTSU9O KDIsNiwxMCkKKyNlcnJvciAiVGhpcyB2ZXJzaW9uIG9mIExpbnV4IHNob3VsZCBub3QgbmVl ZCBjb21wYXQgcGd0YWJsZS1ub3BtZC5oIgorI2VuZGlmCisKKyNkZWZpbmUgcHVkX3QgcGdk X3QKKyNkZWZpbmUgcHVkX29mZnNldChkLCB2YSkJKGQpCisjZGVmaW5lIHB1ZF9ub25lKHB1 ZCkJCTAKKyNkZWZpbmUgcHVkX3ByZXNlbnQocHVkKQkxCisjZGVmaW5lIFBUUlNfUEVSX1BV RAkJMQorCisjZW5kaWYgLyogX1BHVEFCTEVfTk9QTURfSCAqLwpkaWZmIC1yIDI5YjAyZDky OWI3ZSAtciBlMDhjZDQ2Yjk1MTUgdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9jb21w YXQtaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcHVkLmgKLS0tIC9kZXYvbnVsbAlU aHUgSmFuIDAxIDAwOjAwOjAwIDE5NzAgKzAwMDAKKysrIGIvdW5tb2RpZmllZF9kcml2ZXJz L2xpbnV4LTIuNi9jb21wYXQtaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcHVkLmgJ VHVlIE9jdCAyNCAxMTowMDowOCAyMDA2ICswOTAwCkBAIC0wLDAgKzEsMTUgQEAKKyNpZm5k ZWYgX1BHVEFCTEVfTk9QVURfSAorI2RlZmluZSBfUEdUQUJMRV9OT1BVRF9ICisKKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPiBLRVJORUxfVkVSU0lPTigyLDYsMTApCisjZXJyb3IgIlRo aXMgdmVyc2lvbiBvZiBMaW51eCBzaG91bGQgbm90IG5lZWQgY29tcGF0IHBndGFibGUtbm9w dWQuaCIKKyNlbmRpZgorCisjZGVmaW5lIHB1ZF90IHBnZF90CisjZGVmaW5lIHB1ZF9vZmZz ZXQoZCwgdmEpCShkKQorI2RlZmluZSBwdWRfbm9uZShwdWQpCQkwCisjZGVmaW5lIHB1ZF9i YWQocHVkKQkJMAorI2RlZmluZSBwdWRfcHJlc2VudChwdWQpCTEKKyNkZWZpbmUgUFRSU19Q RVJfUFVECQkxCisKKyNlbmRpZiAvKiBfUEdUQUJMRV9OT1BVRF9IICovCmRpZmYgLXIgMjli MDJkOTI5YjdlIC1yIGUwOGNkNDZiOTUxNSB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42 L2NvbXBhdC1pbmNsdWRlL2NvbXBhdC5oCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDow MDowMCAxOTcwICswMDAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvY29t cGF0LWluY2x1ZGUvY29tcGF0LmgJVHVlIE9jdCAyNCAxMTowMDowOCAyMDA2ICswOTAwCkBA IC0wLDAgKzEsNjIgQEAKKyNpZm5kZWYgQ09NUEFUX0lOQ0xVREVfQ09NUEFUX0gKKyNkZWZp bmUgQ09NUEFUX0lOQ0xVREVfQ09NUEFUX0gKKworI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24u aD4KKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorCisjaW5jbHVkZSA8bGludXgvc2xh Yi5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisKKyNpZiBkZWZpbmVkKF9fTElO VVhfQ09NUElMRVJfSCkgJiYgIWRlZmluZWQoX19hbHdheXNfaW5saW5lKQorI2RlZmluZSBf X2Fsd2F5c19pbmxpbmUgaW5saW5lCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19MSU5VWF9D T01QSUxFUl9IKSAmJiAhZGVmaW5lZChfX25vY2FzdCkKKyNkZWZpbmUgX19ub2Nhc3QKKyNl bmRpZgorCisjaWYgZGVmaW5lZChfX0xJTlVYX1NQSU5MT0NLX0gpICYmICFkZWZpbmVkKERF RklORV9TUElOTE9DSykKKyNkZWZpbmUgREVGSU5FX1NQSU5MT0NLKHgpIHNwaW5sb2NrX3Qg eCA9IFNQSU5fTE9DS19VTkxPQ0tFRAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9MSU5VWF9J TklUX0gpICYmICFkZWZpbmVkKF9faW5pdCkKKyNkZWZpbmUgX19pbml0CisjZW5kaWYKKwor I2lmIGRlZmluZWQoX19MSU5VWF9DQUNIRV9IKSAmJiAhZGVmaW5lZChfX3JlYWRfbW9zdGx5 KQorI2RlZmluZSBfX3JlYWRfbW9zdGx5CisjZW5kaWYKKworI2lmIGRlZmluZWQoX0xJTlVY X1NDSEVEX0gpICYmICFkZWZpbmVkKF9fc2NoZWQpCisjZGVmaW5lIF9fc2NoZWQKKyNlbmRp ZgorCisjaWYgZGVmaW5lZChfTElOVVhfVFlQRVNfSCkgJiYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDE0KQordHlwZWRlZiB1bnNpZ25lZCBfX25vY2FzdCBn ZnBfdDsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTElOVVhfTU1fSCkgJiYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDEwKQordW5zaWduZWQgbG9uZyB2bWFs bG9jX3RvX3Bmbih2b2lkICphZGRyKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTElOVVhf U0xBQl9IKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTQp Cit2b2lkICpremFsbG9jKHNpemVfdCBzaXplLCBpbnQgZmxhZ3MpOworI2VuZGlmCisKKyNp ZiBkZWZpbmVkKF9MSU5VWF9TQ0hFRF9IKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMTQpCitzaWduZWQgbG9uZyBfX3NjaGVkIHNjaGVkdWxlX3RpbWVv dXRfaW50ZXJydXB0aWJsZShzaWduZWQgbG9uZyB0aW1lb3V0KTsKKyNlbmRpZgorCisjaWYg ZGVmaW5lZChfTElOVVhfRVJSX0gpICYmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwxMikKKyNkZWZpbmUgSVNfRVJSX1ZBTFVFKHgpIHVubGlrZWx5KCh4KSA+ ICh1bnNpZ25lZCBsb25nKS0xMDAwTCkKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTElOVVhf QkxLREVWX0gpICYmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwx NikKKyNkZWZpbmUgZW5kX3RoYXRfcmVxdWVzdF9sYXN0KHJlcSwgdXB0b2RhdGUpIGVuZF90 aGF0X3JlcXVlc3RfbGFzdChyZXEpCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19pYTY0X18p ICYmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwxMSkKKyNpbmNs dWRlIDxhc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcHVkLmg+CisjZW5kaWYKKworI2VuZGlmIC8q ICFDT01QQVRfSU5DTFVERV9DT01QQVRfSCAqLwpkaWZmIC1yIDI5YjAyZDkyOWI3ZSAtciBl MDhjZDQ2Yjk1MTUgdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9jb21wYXQtaW5jbHVk ZS9saW51eC9pby5oCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDowMCAxOTcwICsw MDAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvY29tcGF0LWluY2x1ZGUv bGludXgvaW8uaAlUdWUgT2N0IDI0IDExOjAwOjA4IDIwMDYgKzA5MDAKQEAgLTAsMCArMSwx MCBAQAorI2lmbmRlZiBfTElOVVhfSU9fSAorI2RlZmluZSBfTElOVVhfSU9fSAorCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFID4gS0VSTkVMX1ZFUlNJT04oMiw2LDE1KQorI2Vycm9yICJU aGlzIHZlcnNpb24gb2YgTGludXggc2hvdWxkIG5vdCBuZWVkIGNvbXBhdCBsaW51eC9pby5o IgorI2VuZGlmCisKKyNpbmNsdWRlIDxhc20vaW8uaD4KKworI2VuZGlmCmRpZmYgLXIgMjli MDJkOTI5YjdlIC1yIGUwOGNkNDZiOTUxNSB1bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42 L2NvbXBhdC1pbmNsdWRlL2xpbnV4L211dGV4LmgKLS0tIC9kZXYvbnVsbAlUaHUgSmFuIDAx IDAwOjAwOjAwIDE5NzAgKzAwMDAKKysrIGIvdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIu Ni9jb21wYXQtaW5jbHVkZS9saW51eC9tdXRleC5oCVR1ZSBPY3QgMjQgMTE6MDA6MDggMjAw NiArMDkwMApAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA2IENp c2NvIFN5c3RlbXMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgZmlsZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgR1BMdjIuCisgKi8KKworLyogbXV0ZXggY29tcGF0aWJp bGl0eSBmb3IgcHJlLTIuNi4xNiBrZXJuZWxzICovCisKKyNpZm5kZWYgX19MSU5VWF9NVVRF WF9ICisjZGVmaW5lIF9fTElOVVhfTVVURVhfSAorCisjaW5jbHVkZSA8bGludXgvdmVyc2lv bi5oPgorI2luY2x1ZGUgPGFzbS9zZW1hcGhvcmUuaD4KKworI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA+IEtFUk5FTF9WRVJTSU9OKDIsNiwxNSkKKyNlcnJvciAiVGhpcyB2ZXJzaW9uIG9m IExpbnV4IHNob3VsZCBub3QgbmVlZCBjb21wYXQgbXV0ZXguaCIKKyNlbmRpZgorCisjZGVm aW5lIG11dGV4IHNlbWFwaG9yZQorI2RlZmluZSBERUZJTkVfTVVURVgoZm9vKSBERUNMQVJF X01VVEVYKGZvbykKKyNkZWZpbmUgbXV0ZXhfaW5pdChmb28pIGluaXRfTVVURVgoZm9vKQor I2RlZmluZSBtdXRleF9sb2NrKGZvbykgZG93bihmb28pCisjZGVmaW5lIG11dGV4X2xvY2tf aW50ZXJydXB0aWJsZShmb28pIGRvd25faW50ZXJydXB0aWJsZShmb28pCisvKiB0aGlzIGZ1 bmN0aW9uIGZvbGxvd3MgdGhlIHNwaW5fdHJ5bG9jaygpIGNvbnZlbnRpb24sIHNvICAgICAg ICAqCisgKiBpdCBpcyBuZWdhdGVkIHRvIHRoZSBkb3duX3RyeWxvY2soKSByZXR1cm4gdmFs dWVzISBCZSBjYXJlZnVsICAqLworI2RlZmluZSBtdXRleF90cnlsb2NrKGZvbykgIWRvd25f dHJ5bG9jayhmb28pCisjZGVmaW5lIG11dGV4X3VubG9jayhmb28pIHVwKGZvbykKKworI2Vu ZGlmIC8qIF9fTElOVVhfTVVURVhfSCAqLwpkaWZmIC1yIDI5YjAyZDkyOWI3ZSAtciBlMDhj ZDQ2Yjk1MTUgdW5tb2RpZmllZF9kcml2ZXJzL2xpbnV4LTIuNi9uZXRmcm9udC9NYWtlZmls ZQotLS0gL2Rldi9udWxsCVRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCArMDAwMAorKysgYi91 bm1vZGlmaWVkX2RyaXZlcnMvbGludXgtMi42L25ldGZyb250L01ha2VmaWxlCVR1ZSBPY3Qg MjQgMTE6MDA6MDggMjAwNiArMDkwMApAQCAtMCwwICsxLDMgQEAKK2lmbmVxICgkKEtFUk5F TFJFTEVBU0UpLCkKK2luY2x1ZGUgJChzcmMpL0tidWlsZAorZW5kaWYKZGlmZiAtciAyOWIw MmQ5MjliN2UgLXIgZTA4Y2Q0NmI5NTE1IHVubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYv cGxhdGZvcm0tcGNpL01ha2VmaWxlCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAwMDowMDow MCAxOTcwICswMDAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYvcGxhdGZv cm0tcGNpL01ha2VmaWxlCVR1ZSBPY3QgMjQgMTE6MDA6MDggMjAwNiArMDkwMApAQCAtMCww ICsxLDMgQEAKK2lmbmVxICgkKEtFUk5FTFJFTEVBU0UpLCkKK2luY2x1ZGUgJChzcmMpL0ti dWlsZAorZW5kaWYKZGlmZiAtciAyOWIwMmQ5MjliN2UgLXIgZTA4Y2Q0NmI5NTE1IHVubW9k aWZpZWRfZHJpdmVycy9saW51eC0yLjYvcGxhdGZvcm0tcGNpL2NvbXBhdC5jCi0tLSAvZGV2 L251bGwJVGh1IEphbiAwMSAwMDowMDowMCAxOTcwICswMDAwCisrKyBiL3VubW9kaWZpZWRf ZHJpdmVycy9saW51eC0yLjYvcGxhdGZvcm0tcGNpL2NvbXBhdC5jCVR1ZSBPY3QgMjQgMTE6 MDA6MDggMjAwNiArMDkwMApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvbXBhdGliaWxp dHkgc2hpbSBmb3IgaG9zdGluZyBYZW4gUFYgZHJpdmVycyBpbiB1bm1vZGlmaWVkCisgKiAy LjYuNSBhbmQgMi42LjkgYmFzZWQga2VybmVscy4KKyAqLworI2luY2x1ZGUgPGxpbnV4L2Nv bmZpZy5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9z bGFiLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9oaWdo bWVtLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc2No ZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorCisjaW5jbHVkZSA8YXNtL3BndGFibGUu aD4KKyNpbmNsdWRlIDxhc20vaHlwZXJ2aXNvci5oPgorCisjaWZkZWYgSEFWRV9DT01QQVRf SAorI2luY2x1ZGUgPGNvbXBhdC5oPgorI2VuZGlmCisKKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsOSkKK2ludCBzeXN0ZW1fc3RhdGUgPSAxOworRVhQ T1JUX1NZTUJPTChzeXN0ZW1fc3RhdGUpOworCisvKioKKyAqIHN0cmNzcG4gLSBDYWxjdWxh dGUgdGhlIGxlbmd0aCBvZiB0aGUgaW5pdGlhbCBzdWJzdHJpbmcgb2YgQHMgd2hpY2ggZG9l cworICogICAgIG5vdCBjb250YWluIGxldHRlcnMgaW4gQHJlamVjdAorICogQHM6IFRoZSBz dHJpbmcgdG8gYmUgc2VhcmNoZWQKKyAqIEByZWplY3Q6IFRoZSBzdHJpbmcgdG8gYXZvaWQK KyAqLworc2l6ZV90IHN0cmNzcG4oY29uc3QgY2hhciAqcywgY29uc3QgY2hhciAqcmVqZWN0 KQoreworCWNvbnN0IGNoYXIgKnA7CisJY29uc3QgY2hhciAqcjsKKwlzaXplX3QgY291bnQg PSAwOworCisJZm9yIChwID0gczsgKnAgIT0gJ1wwJzsgKytwKSB7CisJCWZvciAociA9IHJl amVjdDsgKnIgIT0gJ1wwJzsgKytyKSB7CisJCQlpZiAoKnAgPT0gKnIpCisJCQkJcmV0dXJu IGNvdW50OworCQl9CisJCSsrY291bnQ7CisJfQorCXJldHVybiBjb3VudDsKK30KK0VYUE9S VF9TWU1CT0woc3RyY3Nwbik7CisjZW5kaWYKKworI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwxMCkKKy8qCisgKiBNYXAgYSB2bWFsbG9jKCktc3BhY2Ug dmlydHVhbCBhZGRyZXNzIHRvIHRoZSBwaHlzaWNhbCBwYWdlIGZyYW1lIG51bWJlci4KKyAq LwordW5zaWduZWQgbG9uZyB2bWFsbG9jX3RvX3Bmbih2b2lkICogdm1hbGxvY19hZGRyKQor eworCXJldHVybiBwYWdlX3RvX3Bmbih2bWFsbG9jX3RvX3BhZ2Uodm1hbGxvY19hZGRyKSk7 Cit9CisKK0VYUE9SVF9TWU1CT0wodm1hbGxvY190b19wZm4pOworI2VuZGlmCisKKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTIpCisvKgorICAgIGZh a2UgZG9fZXhpdCB1c2luZyBjb21wbGV0ZV9hbmRfZXhpdAorICovCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDEwKQorYXNtbGlua2FnZSBOT1JFVF9U WVBFIHZvaWQgZG9fZXhpdChsb25nIGNvZGUpCisjZWxzZQorZmFzdGNhbGwgTk9SRVRfVFlQ RSB2b2lkIGRvX2V4aXQobG9uZyBjb2RlKQorI2VuZGlmCit7CisgICAgY29tcGxldGVfYW5k X2V4aXQoTlVMTCwgY29kZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRvX2V4aXQpOworI2VuZGlm CisKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTQpCisv KioKKyAqIGt6YWxsb2MgLSBhbGxvY2F0ZSBtZW1vcnkuIFRoZSBtZW1vcnkgaXMgc2V0IHRv IHplcm8uCisgKiBAc2l6ZTogaG93IG1hbnkgYnl0ZXMgb2YgbWVtb3J5IGFyZSByZXF1aXJl ZC4KKyAqIEBmbGFnczogdGhlIHR5cGUgb2YgbWVtb3J5IHRvIGFsbG9jYXRlLgorICovCit2 b2lkICpremFsbG9jKHNpemVfdCBzaXplLCBpbnQgZmxhZ3MpCit7CisJdm9pZCAqcmV0ID0g a21hbGxvYyhzaXplLCBmbGFncyk7CisJaWYgKHJldCkKKwkJbWVtc2V0KHJldCwgMCwgc2l6 ZSk7CisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0woa3phbGxvYyk7CisKKy8qCisg KiBXZSBjYW4gdXNlIF9fc2V0X2N1cnJlbnRfc3RhdGUoKSBoZXJlIGJlY2F1c2Ugc2NoZWR1 bGVfdGltZW91dCgpIGNhbGxzCisgKiBzY2hlZHVsZSgpIHVuY29uZGl0aW9uYWxseS4KKyAq Lworc2lnbmVkIGxvbmcgX19zY2hlZCBzY2hlZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUo c2lnbmVkIGxvbmcgdGltZW91dCkKK3sKKwlfX3NldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5U RVJSVVBUSUJMRSk7CisJcmV0dXJuIHNjaGVkdWxlX3RpbWVvdXQodGltZW91dCk7Cit9CitF WFBPUlRfU1lNQk9MKHNjaGVkdWxlX3RpbWVvdXRfaW50ZXJydXB0aWJsZSk7CisjZW5kaWYK ZGlmZiAtciAyOWIwMmQ5MjliN2UgLXIgZTA4Y2Q0NmI5NTE1IHVubW9kaWZpZWRfZHJpdmVy cy9saW51eC0yLjYveGVuYnVzL01ha2VmaWxlCi0tLSAvZGV2L251bGwJVGh1IEphbiAwMSAw MDowMDowMCAxOTcwICswMDAwCisrKyBiL3VubW9kaWZpZWRfZHJpdmVycy9saW51eC0yLjYv eGVuYnVzL01ha2VmaWxlCVR1ZSBPY3QgMjQgMTE6MDA6MDggMjAwNiArMDkwMApAQCAtMCww ICsxLDMgQEAKK2lmbmVxICgkKEtFUk5FTFJFTEVBU0UpLCkKK2luY2x1ZGUgJChzcmMpL0ti dWlsZAorZW5kaWYK --------------030901090501030104030303 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 --------------030901090501030104030303--