From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH RFC v1 06/13] libxc: introduce a xc_dom_arch for hvm-3.0-x86_32 guests Date: Mon, 22 Jun 2015 18:11:20 +0200 Message-ID: <1434989487-74940-7-git-send-email-roger.pau@citrix.com> References: <1434989487-74940-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Z74K0-00080R-AF for xen-devel@lists.xenproject.org; Mon, 22 Jun 2015 16:11:44 +0000 In-Reply-To: <1434989487-74940-1-git-send-email-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Elena Ufimtseva , Wei Liu , Ian Campbell , Stefano Stabellini , Andrew Cooper , Ian Jackson , Jan Beulich , Boris Ostrovsky , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org VGhpcyB4Y19kb21fYXJjaCB3aWxsIGJlIHVzZWQgaW4gb3JkZXIgdG8gYnVpbGQgSFZNIGRvbWFp bnMuIFRoZSBjb2RlIGlzCmJhc2VkIG9uIHRoZSBleGlzdGluZyB4Y19odm1fcG9wdWxhdGVfcGFy YW1zIGZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1 QGNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4K Q2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFiZWxsaW5pQGV1LmNpdHJpeC5jb20+ CkNjOiBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29tPgpDYzogV2VpIExpdSA8 d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4K Q2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBCb3JpcyBP c3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRl ayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogRWxlbmEgVWZpbXRzZXZhIDxlbGVu YS51ZmltdHNldmFAb3JhY2xlLmNvbT4KLS0tClRoaXMgaXMgYWJ1c2luZyB0aGUgYWxsb2NfbWFn aWNfcGFnZXMgaG9vayBpbiBvcmRlciB0byBzZXR1cCBldmVyeXRoaW5nLAp3aGljaCBpcyBub3Qg dGhlIGJlc3QgYXBwcm9hY2ggYnV0IGl0IHdvcmtzLiBJbiBsYXRlciB2ZXJzaW9ucyBJIHdvdWxk IGxpa2UKdG8gYnJlYWsgYWxsb2NfbWFnaWNfcGFnZXNfaHZtIGludG8gc21hbGxlciBmdW5jdGlv bnMgdGhhdCBjYW4gYmUgdXNlZCB0bwpwb3B1bGF0ZSB0aGUgcmVtYWluaW5nIGhvb2tzIChzdGFy dF9pbmZvIGFuZCBzaGFyZWRfaW5mbykuCi0tLQogdG9vbHMvbGlieGMveGNfZG9tX3g4Ni5jIHwg MTgzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgMTgzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94 Y19kb21feDg2LmMgYi90b29scy9saWJ4Yy94Y19kb21feDg2LmMKaW5kZXggOGExZWYyNC4uMGQ5 ZWM0MiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9tX3g4Ni5jCisrKyBiL3Rvb2xzL2xp YnhjL3hjX2RvbV94ODYuYwpAQCAtNDksNiArNDksMjAgQEAKIAogI2RlZmluZSBWR0FfSE9MRV9T SVpFICgweDIwKQogCisjZGVmaW5lIFNQRUNJQUxQQUdFX1BBR0lORyAgIDAKKyNkZWZpbmUgU1BF Q0lBTFBBR0VfQUNDRVNTICAgMQorI2RlZmluZSBTUEVDSUFMUEFHRV9TSEFSSU5HICAyCisjZGVm aW5lIFNQRUNJQUxQQUdFX0JVRklPUkVRIDMKKyNkZWZpbmUgU1BFQ0lBTFBBR0VfWEVOU1RPUkUg NAorI2RlZmluZSBTUEVDSUFMUEFHRV9JT1JFUSAgICA1CisjZGVmaW5lIFNQRUNJQUxQQUdFX0lE RU5UX1BUIDYKKyNkZWZpbmUgU1BFQ0lBTFBBR0VfQ09OU09MRSAgNworI2RlZmluZSBOUl9TUEVD SUFMX1BBR0VTICAgICA4CisjZGVmaW5lIHNwZWNpYWxfcGZuKHgpICgweGZmMDAwdSAtIE5SX1NQ RUNJQUxfUEFHRVMgKyAoeCkpCisKKyNkZWZpbmUgTlJfSU9SRVFfU0VSVkVSX1BBR0VTIDgKKyNk ZWZpbmUgaW9yZXFfc2VydmVyX3Bmbih4KSAoc3BlY2lhbF9wZm4oMCkgLSBOUl9JT1JFUV9TRVJW RVJfUEFHRVMgKyAoeCkpCisKICNkZWZpbmUgYml0c190b19tYXNrKGJpdHMpICAgICAgICgoKHhl bl92YWRkcl90KTEgPDwgKGJpdHMpKS0xKQogI2RlZmluZSByb3VuZF9kb3duKGFkZHIsIG1hc2sp ICAgKChhZGRyKSAmIH4obWFzaykpCiAjZGVmaW5lIHJvdW5kX3VwKGFkZHIsIG1hc2spICAgICAo KGFkZHIpIHwgKG1hc2spKQpAQCAtNDY3LDYgKzQ4MSwxMzUgQEAgc3RhdGljIGludCBhbGxvY19t YWdpY19wYWdlcyhzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiAgICAgcmV0dXJuIDA7CiB9CiAK K3N0YXRpYyB2b2lkIGJ1aWxkX2h2bV9pbmZvKHZvaWQgKmh2bV9pbmZvX3BhZ2UsIHN0cnVjdCB4 Y19kb21faW1hZ2UgKmRvbSkKK3sKKyAgICBzdHJ1Y3QgaHZtX2luZm9fdGFibGUgKmh2bV9pbmZv ID0gKHN0cnVjdCBodm1faW5mb190YWJsZSAqKQorICAgICAgICAoKCh1bnNpZ25lZCBjaGFyICop aHZtX2luZm9fcGFnZSkgKyBIVk1fSU5GT19PRkZTRVQpOworICAgIHVpbnQ4X3Qgc3VtOworICAg IGludCBpOworCisgICAgbWVtc2V0KGh2bV9pbmZvX3BhZ2UsIDAsIFBBR0VfU0laRSk7CisKKyAg ICAvKiBGaWxsIGluIHRoZSBoZWFkZXIuICovCisgICAgc3RybmNweShodm1faW5mby0+c2lnbmF0 dXJlLCAiSFZNIElORk8iLCA4KTsKKyAgICBodm1faW5mby0+bGVuZ3RoID0gc2l6ZW9mKHN0cnVj dCBodm1faW5mb190YWJsZSk7CisKKyAgICAvKiBTZW5zaWJsZSBkZWZhdWx0czogdGhlc2UgY2Fu IGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNhbGxlci4gKi8KKyAgICBodm1faW5mby0+YXBpY19tb2Rl ID0gMTsKKyAgICBodm1faW5mby0+bnJfdmNwdXMgPSAxOworICAgIG1lbXNldChodm1faW5mby0+ dmNwdV9vbmxpbmUsIDB4ZmYsIHNpemVvZihodm1faW5mby0+dmNwdV9vbmxpbmUpKTsKKworICAg IC8qIE1lbW9yeSBwYXJhbWV0ZXJzLiAqLworICAgIGh2bV9pbmZvLT5sb3dfbWVtX3BnZW5kID0g ZG9tLT5sb3dtZW1fZW5kID4+IFBBR0VfU0hJRlQ7CisgICAgaHZtX2luZm8tPmhpZ2hfbWVtX3Bn ZW5kID0gZG9tLT5oaWdobWVtX2VuZCA+PiBQQUdFX1NISUZUOworICAgIGh2bV9pbmZvLT5yZXNl cnZlZF9tZW1fcGdzdGFydCA9IGlvcmVxX3NlcnZlcl9wZm4oMCk7CisKKyAgICAvKiBGaW5pc2gg d2l0aCB0aGUgY2hlY2tzdW0uICovCisgICAgZm9yICggaSA9IDAsIHN1bSA9IDA7IGkgPCBodm1f aW5mby0+bGVuZ3RoOyBpKysgKQorICAgICAgICBzdW0gKz0gKCh1aW50OF90ICopaHZtX2luZm8p W2ldOworICAgIGh2bV9pbmZvLT5jaGVja3N1bSA9IC1zdW07Cit9CisKK3N0YXRpYyBpbnQgYWxs b2NfbWFnaWNfcGFnZXNfaHZtKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKK3sKKyAgICB1bnNp Z25lZCBsb25nIGk7CisgICAgdm9pZCAqaHZtX2luZm9fcGFnZTsKKyAgICB1aW50MzJfdCAqaWRl bnRfcHQsIGRvbWlkID0gZG9tLT5ndWVzdF9kb21pZDsKKyAgICBpbnQgcmM7CisgICAgeGVuX3Bm bl90IHNwZWNpYWxfYXJyYXlbTlJfU1BFQ0lBTF9QQUdFU107CisgICAgeGVuX3Bmbl90IGlvcmVx X3NlcnZlcl9hcnJheVtOUl9JT1JFUV9TRVJWRVJfUEFHRVNdOworICAgIHhjX2ludGVyZmFjZSAq eGNoID0gZG9tLT54Y2g7CisKKyAgICBpZiAoIChodm1faW5mb19wYWdlID0geGNfbWFwX2ZvcmVp Z25fcmFuZ2UoCisgICAgICAgICAgICAgIHhjaCwgZG9taWQsIFBBR0VfU0laRSwgUFJPVF9SRUFE IHwgUFJPVF9XUklURSwKKyAgICAgICAgICAgICAgSFZNX0lORk9fUEZOKSkgPT0gTlVMTCApCisg ICAgICAgIGdvdG8gZXJyb3Jfb3V0OworICAgIGJ1aWxkX2h2bV9pbmZvKGh2bV9pbmZvX3BhZ2Us IGRvbSk7CisgICAgbXVubWFwKGh2bV9pbmZvX3BhZ2UsIFBBR0VfU0laRSk7CisKKyAgICAvKiBB bGxvY2F0ZSBhbmQgY2xlYXIgc3BlY2lhbCBwYWdlcy4gKi8KKyAgICBmb3IgKCBpID0gMDsgaSA8 IE5SX1NQRUNJQUxfUEFHRVM7IGkrKyApCisgICAgICAgIHNwZWNpYWxfYXJyYXlbaV0gPSBzcGVj aWFsX3BmbihpKTsKKworICAgIHJjID0geGNfZG9tYWluX3BvcHVsYXRlX3BoeXNtYXBfZXhhY3Qo eGNoLCBkb21pZCwgTlJfU1BFQ0lBTF9QQUdFUywgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNwZWNpYWxfYXJyYXkpOworICAgIGlmICggcmMgIT0gMCAp CisgICAgeworICAgICAgICBET01QUklOVEYoIkNvdWxkIG5vdCBhbGxvY2F0ZSBzcGVjaWFsIHBh Z2VzLiIpOworICAgICAgICBnb3RvIGVycm9yX291dDsKKyAgICB9CisKKyAgICBpZiAoIHhjX2Ns ZWFyX2RvbWFpbl9wYWdlcyh4Y2gsIGRvbWlkLCBzcGVjaWFsX3BmbigwKSwgTlJfU1BFQ0lBTF9Q QUdFUykgKQorICAgICAgICAgICAgZ290byBlcnJvcl9vdXQ7CisKKyAgICB4Y19odm1fcGFyYW1f c2V0KHhjaCwgZG9taWQsIEhWTV9QQVJBTV9TVE9SRV9QRk4sCisgICAgICAgICAgICAgICAgICAg ICBzcGVjaWFsX3BmbihTUEVDSUFMUEFHRV9YRU5TVE9SRSkpOworICAgIHhjX2h2bV9wYXJhbV9z ZXQoeGNoLCBkb21pZCwgSFZNX1BBUkFNX0JVRklPUkVRX1BGTiwKKyAgICAgICAgICAgICAgICAg ICAgIHNwZWNpYWxfcGZuKFNQRUNJQUxQQUdFX0JVRklPUkVRKSk7CisgICAgeGNfaHZtX3BhcmFt X3NldCh4Y2gsIGRvbWlkLCBIVk1fUEFSQU1fSU9SRVFfUEZOLAorICAgICAgICAgICAgICAgICAg ICAgc3BlY2lhbF9wZm4oU1BFQ0lBTFBBR0VfSU9SRVEpKTsKKyAgICB4Y19odm1fcGFyYW1fc2V0 KHhjaCwgZG9taWQsIEhWTV9QQVJBTV9DT05TT0xFX1BGTiwKKyAgICAgICAgICAgICAgICAgICAg IHNwZWNpYWxfcGZuKFNQRUNJQUxQQUdFX0NPTlNPTEUpKTsKKyAgICB4Y19odm1fcGFyYW1fc2V0 KHhjaCwgZG9taWQsIEhWTV9QQVJBTV9QQUdJTkdfUklOR19QRk4sCisgICAgICAgICAgICAgICAg ICAgICBzcGVjaWFsX3BmbihTUEVDSUFMUEFHRV9QQUdJTkcpKTsKKyAgICB4Y19odm1fcGFyYW1f c2V0KHhjaCwgZG9taWQsIEhWTV9QQVJBTV9NT05JVE9SX1JJTkdfUEZOLAorICAgICAgICAgICAg ICAgICAgICAgc3BlY2lhbF9wZm4oU1BFQ0lBTFBBR0VfQUNDRVNTKSk7CisgICAgeGNfaHZtX3Bh cmFtX3NldCh4Y2gsIGRvbWlkLCBIVk1fUEFSQU1fU0hBUklOR19SSU5HX1BGTiwKKyAgICAgICAg ICAgICAgICAgICAgIHNwZWNpYWxfcGZuKFNQRUNJQUxQQUdFX1NIQVJJTkcpKTsKKworICAgIC8q CisgICAgICogQWxsb2NhdGUgYW5kIGNsZWFyIGFkZGl0aW9uYWwgaW9yZXEgc2VydmVyIHBhZ2Vz LiBUaGUgZGVmYXVsdAorICAgICAqIHNlcnZlciB3aWxsIHVzZSB0aGUgSU9SRVEgYW5kIEJVRklP UkVRIHNwZWNpYWwgcGFnZXMgYWJvdmUuCisgICAgICovCisgICAgZm9yICggaSA9IDA7IGkgPCBO Ul9JT1JFUV9TRVJWRVJfUEFHRVM7IGkrKyApCisgICAgICAgIGlvcmVxX3NlcnZlcl9hcnJheVtp XSA9IGlvcmVxX3NlcnZlcl9wZm4oaSk7CisKKyAgICByYyA9IHhjX2RvbWFpbl9wb3B1bGF0ZV9w aHlzbWFwX2V4YWN0KHhjaCwgZG9taWQsIE5SX0lPUkVRX1NFUlZFUl9QQUdFUywgMCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGlvcmVxX3NlcnZlcl9hcnJh eSk7CisgICAgaWYgKCByYyAhPSAwICkKKyAgICB7CisgICAgICAgIERPTVBSSU5URigiQ291bGQg bm90IGFsbG9jYXRlIGlvcmVxIHNlcnZlciBwYWdlcy4iKTsKKyAgICAgICAgZ290byBlcnJvcl9v dXQ7CisgICAgfQorCisgICAgaWYgKCB4Y19jbGVhcl9kb21haW5fcGFnZXMoeGNoLCBkb21pZCwg aW9yZXFfc2VydmVyX3BmbigwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOUl9J T1JFUV9TRVJWRVJfUEFHRVMpICkKKyAgICAgICAgICAgIGdvdG8gZXJyb3Jfb3V0OworCisgICAg LyogVGVsbCB0aGUgZG9tYWluIHdoZXJlIHRoZSBwYWdlcyBhcmUgYW5kIGhvdyBtYW55IHRoZXJl IGFyZSAqLworICAgIHhjX2h2bV9wYXJhbV9zZXQoeGNoLCBkb21pZCwgSFZNX1BBUkFNX0lPUkVR X1NFUlZFUl9QRk4sCisgICAgICAgICAgICAgICAgICAgICBpb3JlcV9zZXJ2ZXJfcGZuKDApKTsK KyAgICB4Y19odm1fcGFyYW1fc2V0KHhjaCwgZG9taWQsIEhWTV9QQVJBTV9OUl9JT1JFUV9TRVJW RVJfUEFHRVMsCisgICAgICAgICAgICAgICAgICAgICBOUl9JT1JFUV9TRVJWRVJfUEFHRVMpOwor CisgICAgLyoKKyAgICAgKiBJZGVudGl0eS1tYXAgcGFnZSB0YWJsZSBpcyByZXF1aXJlZCBmb3Ig cnVubmluZyB3aXRoIENSMC5QRz0wIHdoZW4KKyAgICAgKiB1c2luZyBJbnRlbCBFUFQuIENyZWF0 ZSBhIDMyLWJpdCBub24tUEFFIHBhZ2UgZGlyZWN0b3J5IG9mIHN1cGVycGFnZXMuCisgICAgICov CisgICAgaWYgKCAoaWRlbnRfcHQgPSB4Y19tYXBfZm9yZWlnbl9yYW5nZSgKKyAgICAgICAgICAg ICAgeGNoLCBkb21pZCwgUEFHRV9TSVpFLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAorICAgICAg ICAgICAgICBzcGVjaWFsX3BmbihTUEVDSUFMUEFHRV9JREVOVF9QVCkpKSA9PSBOVUxMICkKKyAg ICAgICAgZ290byBlcnJvcl9vdXQ7CisgICAgZm9yICggaSA9IDA7IGkgPCBQQUdFX1NJWkUgLyBz aXplb2YoKmlkZW50X3B0KTsgaSsrICkKKyAgICAgICAgaWRlbnRfcHRbaV0gPSAoKGkgPDwgMjIp IHwgX1BBR0VfUFJFU0VOVCB8IF9QQUdFX1JXIHwgX1BBR0VfVVNFUiB8CisgICAgICAgICAgICAg ICAgICAgICAgIF9QQUdFX0FDQ0VTU0VEIHwgX1BBR0VfRElSVFkgfCBfUEFHRV9QU0UpOworICAg IG11bm1hcChpZGVudF9wdCwgUEFHRV9TSVpFKTsKKyAgICB4Y19odm1fcGFyYW1fc2V0KHhjaCwg ZG9taWQsIEhWTV9QQVJBTV9JREVOVF9QVCwKKyAgICAgICAgICAgICAgICAgICAgIHNwZWNpYWxf cGZuKFNQRUNJQUxQQUdFX0lERU5UX1BUKSA8PCBQQUdFX1NISUZUKTsKKworICAgIGRvbS0+Y29u c29sZV9wZm4gPSBzcGVjaWFsX3BmbihTUEVDSUFMUEFHRV9DT05TT0xFKTsKKyAgICBkb20tPnhl bnN0b3JlX3BmbiA9IHNwZWNpYWxfcGZuKFNQRUNJQUxQQUdFX1hFTlNUT1JFKTsKKyAgICBkb20t PnBhcm1zLnZpcnRfaHlwZXJjYWxsID0gLTE7CisKKyAgICByYyA9IDA7CisgICAgZ290byBvdXQ7 CisgZXJyb3Jfb3V0OgorICAgIHJjID0gLTE7Cisgb3V0OgorCisgICAgcmV0dXJuIHJjOworfQor CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogc3RhdGljIGludCBzdGFydF9pbmZvX3g4Nl8zMihz dHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCkBAIC02NzQsNiArODE3LDI4IEBAIHN0YXRpYyBpbnQg dmNwdV94ODZfNjQoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tLCB2b2lkICpwdHIpCiAgICAgcmV0 dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgdmNwdV9odm0oc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9t LCB2b2lkICpwdHIpCit7CisgICAgdmNwdV9ndWVzdF9jb250ZXh0X3g4Nl82NF90ICpjdHh0ID0g cHRyOworCisgICAgRE9NUFJJTlRGX0NBTExFRChkb20tPnhjaCk7CisKKyAgICAvKiBjbGVhciBl dmVyeXRoaW5nICovCisgICAgbWVtc2V0KGN0eHQsIDAsIHNpemVvZigqY3R4dCkpOworCisgICAg Y3R4dC0+dXNlcl9yZWdzLmRzID0gRkxBVF9LRVJORUxfRFNfWDg2XzMyOworICAgIGN0eHQtPnVz ZXJfcmVncy5lcyA9IEZMQVRfS0VSTkVMX0RTX1g4Nl8zMjsKKyAgICBjdHh0LT51c2VyX3JlZ3Mu ZnMgPSBGTEFUX0tFUk5FTF9EU19YODZfMzI7CisgICAgY3R4dC0+dXNlcl9yZWdzLmdzID0gRkxB VF9LRVJORUxfRFNfWDg2XzMyOworICAgIGN0eHQtPnVzZXJfcmVncy5zcyA9IEZMQVRfS0VSTkVM X1NTX1g4Nl8zMjsKKyAgICBjdHh0LT51c2VyX3JlZ3MuY3MgPSBGTEFUX0tFUk5FTF9DU19YODZf MzI7CisgICAgY3R4dC0+dXNlcl9yZWdzLnJpcCA9IGRvbS0+cGFybXMucGh5c19lbnRyeTsKKwor ICAgIGN0eHQtPmZsYWdzID0gVkdDRl9pbl9rZXJuZWxfWDg2XzMyIHwgVkdDRl9vbmxpbmVfWDg2 XzMyOworCisgICAgcmV0dXJuIDA7Cit9CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiBzdGF0 aWMgc3RydWN0IHhjX2RvbV9hcmNoIHhjX2RvbV8zMl9wYWUgPSB7CkBAIC03MDIsMTAgKzg2Nywy NCBAQCBzdGF0aWMgc3RydWN0IHhjX2RvbV9hcmNoIHhjX2RvbV82NCA9IHsKICAgICAudmNwdSA9 IHZjcHVfeDg2XzY0LAogfTsKIAorc3RhdGljIHN0cnVjdCB4Y19kb21fYXJjaCB4Y19odm1fMzIg PSB7CisgICAgLmd1ZXN0X3R5cGUgPSAiaHZtLTMuMC14ODZfMzIiLAorICAgIC5uYXRpdmVfcHJv dG9jb2wgPSBYRU5fSU9fUFJPVE9fQUJJX1g4Nl8zMiwKKyAgICAucGFnZV9zaGlmdCA9IFBBR0Vf U0hJRlRfWDg2LAorICAgIC5zaXplb2ZfcGZuID0gNCwKKyAgICAuYWxsb2NfbWFnaWNfcGFnZXMg PSBhbGxvY19tYWdpY19wYWdlc19odm0sCisgICAgLmNvdW50X3BndGFibGVzID0gTlVMTCwKKyAg ICAuc2V0dXBfcGd0YWJsZXMgPSBOVUxMLAorICAgIC5zdGFydF9pbmZvID0gTlVMTCwKKyAgICAu c2hhcmVkX2luZm8gPSBOVUxMLAorICAgIC52Y3B1ID0gdmNwdV9odm0sCit9OworCiBzdGF0aWMg dm9pZCBfX2luaXQgcmVnaXN0ZXJfYXJjaF9ob29rcyh2b2lkKQogewogICAgIHhjX2RvbV9yZWdp c3Rlcl9hcmNoX2hvb2tzKCZ4Y19kb21fMzJfcGFlKTsKICAgICB4Y19kb21fcmVnaXN0ZXJfYXJj aF9ob29rcygmeGNfZG9tXzY0KTsKKyAgICB4Y19kb21fcmVnaXN0ZXJfYXJjaF9ob29rcygmeGNf aHZtXzMyKTsKIH0KIAogc3RhdGljIGludCB4ODZfY29tcGF0KHhjX2ludGVyZmFjZSAqeGNoLCBk b21pZF90IGRvbWlkLCBjaGFyICpndWVzdF90eXBlKQpAQCAtMTM1Miw2ICsxNTMxLDEwIEBAIGlu dCBhcmNoX3NldHVwX2Jvb3RsYXRlKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKICAgICB4ZW5f cGZuX3Qgc2hpbmZvOwogICAgIGludCBpLCByYzsKIAorICAgIGlmICggZG9tLT5jb250YWluZXJf dHlwZSA9PSBYQ19ET01fSFZNX0NPTlRBSU5FUiApCisgICAgICAgIC8qIE5vdGhpbmcgdG8gZG8g Zm9yIEhWTS10eXBlIGd1ZXN0cy4gKi8KKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBmb3IgKCBp ID0gMDsgaSA8IEFSUkFZX1NJWkUodHlwZXMpOyBpKysgKQogICAgICAgICBpZiAoICFzdHJjbXAo dHlwZXNbaV0uZ3Vlc3QsIGRvbS0+Z3Vlc3RfdHlwZSkgKQogICAgICAgICAgICAgcGdkX3R5cGUg PSB0eXBlc1tpXS5wZ2RfdHlwZTsKLS0gCjEuOS41IChBcHBsZSBHaXQtNTAuMykKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=