From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCH v5 02/14] libxc: Prepare a start info structure for hvmloader Date: Thu, 23 Jun 2016 10:44:26 -0400 Message-ID: <576BF5CA.1070001@oracle.com> References: <20160622171545.5304-1-anthony.perard@citrix.com> <20160622171545.5304-3-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160622171545.5304-3-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Anthony PERARD , xen-devel@lists.xen.org Cc: Wei Liu , Ian Jackson , roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org T24gMDYvMjIvMjAxNiAwMToxNSBQTSwgQW50aG9ueSBQRVJBUkQgd3JvdGU6Cj4gLi4uIGFuZCBs b2FkIEJJT1MvVUVGSSBmaXJtd2FyZSBpbnRvIGd1ZXN0IG1lbW9yeS4KPgo+IFRoaXMgYWRkcyBh IG5ldyBmaXJtd2FyZSBtb2R1bGUsIHN5c3RlbV9maXJtd2FyZV9tb2R1bGUuIEl0IGlzIGxvYWRl ZCBpbgo+IHRoZSBndWVzdCBtZW1vcnkgYW5kIGZpbmFsIGxvY2F0aW9uIGlzIHByb3ZpZGVkIHRv IGh2bWxvYWRlciB2aWEgdGhlCj4gaHZtX3N0YXJ0X2luZm8gc3RydWN0Lgo+Cj4gVGhpcyBwYXRj aCBjcmVhdGUgdGhlIGh2bV9zdGFydF9pbmZvIHN0cnVjdCBmb3IgSFZNIGd1ZXN0IHRoYXQgaGF2 ZSBhCj4gZGV2aWNlIG1vZGVsLCBzbyB0aGlzIGlzIG5vdyBjb21tb24gY29kZSB3aXRoIEhWTSBn dWVzdCB3aXRob3V0IGRldmljZQo+IG1vZGVsLgo+Cj4gU2lnbmVkLW9mZi1ieTogQW50aG9ueSBQ RVJBUkQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+Cj4gLS0tCj4gQ0M6IGJvcmlzLm9zdHJv dnNreUBvcmFjbGUuY29tCj4gQ0M6IHJvZ2VyLnBhdUBjaXRyaXguY29tCj4KPiBDaGFuZ2VzIGlu IFY1Ogo+IC0gaW4gYWxsb2NfbWFnaWNfcGFnZXNfaHZtLCBjaGVjayBkb20tPmRldmljZV9tb2Rl bCBvbmx5IG9uY2UgaW5zdGVhZCBvZgo+ICAgdHdpY2UgKGZvbGQgc2Vjb25kIGlmIGludG8gcHJl dmlvdXMgZWxzZSkKPiAtIHJld29yayBhZGRfbW9kdWxlX3RvX2xpc3QgdG8gbWFrZSBpdCBlYXNp ZXIgdG8gcmVhZAo+IC0gYWxzbyBjb21tZW50IGFib3V0IHRoZSBpbnRlbmRlZCBtZW1vcnkgbGF5 b3V0IG9mIHN0YXJ0X2luZm8gYW5kIHRoZQo+ICAgbW9kdWxlcwo+IC0gaW4gYm9vdGxhdGVfaHZt KCksIGRyb3Agc3RhcnRfcGFnZSBhbmQgdXNlIHN0YXJ0X2luZm8gYXMgdGhleSBwb2ludCB0bwo+ ICAgdGhlIHNhbWUgYWRkcmVzcwo+IC0gcmVuYW1lIHhjX2RvbV9pbWFnZS5iaW9zX21vZHVsZSB0 byB4Y19kb21faW1hZ2Uuc3lzdGVtX2Zpcm13YXJlX21vZHVsZQo+IC0gcmVuYW1lIG1vZHVsZSBu YW1lIHRvICJmaXJtd2FyZSIgKHdhcyAiYmlvcyIpCj4KPiBDaGFuZ2VzIGluIFY0Ogo+IC0gY2hh bmdlIHRpdGxlIHRvIHN1Z2dlc3QgdGhlIGNoYW5nZSBvZiBiZWF2aW9yCj4gLSByZW1vdmUgY29k ZSB0byBsb2FkIGFjcGkgdGFibGVzIChkc2R0KQo+IC0gVXBkYXRlIHB1YmxpYy94ZW4uaCBhYm91 dCBodm1fc3RhcnRfaW5mbyBhdmFpbGFibGUgb24gb3RoZXIgSFZNIGd1ZXN0Cj4gICBpbiAlZWJ4 Lgo+Cj4gQ2hhbmdlcyBpbiBWMzoKPiAtIHJlbmFtZSBhY3BpX3RhYmxlX21vZHVsZSB0byBmdWxs X2FjcGlfbW9kdWxlLgo+IC0gZmFjdG9yaXNlIG1vZHVsZSBsb2FkaW5nLCB1c2luZyBuZXcgZnVu Y3Rpb24gdG8gbG9hZCBleGlzdGluZyBvcHRpbmFsCj4gICBtb2R1bGUsIHRoaXMgc2hvdWxkIG5v dCBjaGFuZ2UgYW55dGhpbmcKPiAtIHNob3VsZCBub3cgdXNlIHRoZSBzYW1lIGNvZGUgdG8gbG9h ZHMgbW9kdWxlcyBhcyBmb3IgSFZNbGl0ZSBWTXMuCj4gICB0aGlzIGF2b2lkIGR1cGxpY2F0aW9u IG9mIGNvZGUuCj4gLSBubyBtb3JlIGdlbmVyaWMgY21kbGluZSB3aXRoIGEgbGlzdCBvZiBtb2R1 bGVzLCBlYWNoIG1vZHVsZSBoYXZlIGl0cyBuYW1lCj4gICBpbiB0aGUgbW9kdWxlIHNwZWNpZmlj IGNtZGxpbmUuCj4gLSBzY29wZSBjaGFuZ2UgZm9yIGNvbW1vbiBjb2RlIGJldHdlZW4gaHZtbGl0 ZSBhbmQgaHZtbG9hZGVyCj4gLS0tCj4gIHRvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmggICB8 ICAgMyArCj4gIHRvb2xzL2xpYnhjL3hjX2RvbV9odm1sb2FkZXIuYyB8ICAgMyArCj4gIHRvb2xz L2xpYnhjL3hjX2RvbV94ODYuYyAgICAgICB8IDE1MiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLQo+ICB4ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmggICAgICAgfCAgIDIg Ky0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMTYgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0p Cj4KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaCBiL3Rvb2xzL2xp YnhjL2luY2x1ZGUveGNfZG9tLmgKPiBpbmRleCA2Y2IxMGM0Li4wNjI5OTcxIDEwMDY0NAo+IC0t LSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmgKPiArKysgYi90b29scy9saWJ4Yy9pbmNs dWRlL3hjX2RvbS5oCj4gQEAgLTIwOSw2ICsyMDksOSBAQCBzdHJ1Y3QgeGNfZG9tX2ltYWdlIHsK PiAgICAgIC8qIElmIHVuc2V0IGRpc2FibGVzIHRoZSBzZXR1cCBvZiB0aGUgSU9SRVEgcGFnZXMu ICovCj4gICAgICBib29sIGRldmljZV9tb2RlbDsKPiAgCj4gKyAgICAvKiBCSU9TL0Zpcm13YXJl IHBhc3NlZCB0byBIVk1MT0FERVIgKi8KPiArICAgIHN0cnVjdCB4Y19odm1fZmlybXdhcmVfbW9k dWxlIHN5c3RlbV9maXJtd2FyZV9tb2R1bGU7Cj4gKwo+ICAgICAgLyogRXh0cmEgQUNQSSB0YWJs ZXMgcGFzc2VkIHRvIEhWTUxPQURFUiAqLwo+ICAgICAgc3RydWN0IHhjX2h2bV9maXJtd2FyZV9t b2R1bGUgYWNwaV9tb2R1bGU7Cj4gIAo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19kb21f aHZtbG9hZGVyLmMgYi90b29scy9saWJ4Yy94Y19kb21faHZtbG9hZGVyLmMKPiBpbmRleCBkYThi OTk1Li5jZjJkNTdjIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2xpYnhjL3hjX2RvbV9odm1sb2FkZXIu Ywo+ICsrKyBiL3Rvb2xzL2xpYnhjL3hjX2RvbV9odm1sb2FkZXIuYwo+IEBAIC0xNjcsNiArMTY3 LDkgQEAgc3RhdGljIGludCBtb2R1bGVzX2luaXQoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQo+ ICB7Cj4gICAgICBpbnQgcmM7Cj4gIAo+ICsgICAgcmMgPSBtb2R1bGVfaW5pdF9vbmUoZG9tLCAm ZG9tLT5zeXN0ZW1fZmlybXdhcmVfbW9kdWxlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg IlN5c3RlbSBGaXJtd2FyZSBtb2R1bGUiKTsKPiArICAgIGlmICggcmMgKSBnb3RvIGVycjsKPiAg ICAgIHJjID0gbW9kdWxlX2luaXRfb25lKGRvbSwgJmRvbS0+YWNwaV9tb2R1bGUsICJBQ1BJIG1v ZHVsZSIpOwo+ICAgICAgaWYgKCByYyApIGdvdG8gZXJyOwo+ICAgICAgcmMgPSBtb2R1bGVfaW5p dF9vbmUoZG9tLCAmZG9tLT5zbWJpb3NfbW9kdWxlLCAiU01CSU9TIG1vZHVsZSIpOwo+IGRpZmYg LS1naXQgYS90b29scy9saWJ4Yy94Y19kb21feDg2LmMgYi90b29scy9saWJ4Yy94Y19kb21feDg2 LmMKPiBpbmRleCAwMjFmOGE4Li5mMDE3ZmJkIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2xpYnhjL3hj X2RvbV94ODYuYwo+ICsrKyBiL3Rvb2xzL2xpYnhjL3hjX2RvbV94ODYuYwo+IEBAIC02OSw2ICs2 OSw5IEBACj4gICNkZWZpbmUgcm91bmRfdXAoYWRkciwgbWFzaykgICAgICgoYWRkcikgfCAobWFz aykpCj4gICNkZWZpbmUgcm91bmRfcGdfdXAoYWRkcikgICgoKGFkZHIpICsgUEFHRV9TSVpFX1g4 NiAtIDEpICYgfihQQUdFX1NJWkVfWDg2IC0gMSkpCj4gIAo+ICsjZGVmaW5lIEhWTUxPQURFUl9N T0RVTEVfTUFYX0NPVU5UIDEKPiArI2RlZmluZSBIVk1MT0FERVJfTU9EVUxFX05BTUVfU0laRSAx MAo+ICsKPiAgc3RydWN0IHhjX2RvbV9wYXJhbXMgewo+ICAgICAgdW5zaWduZWQgbGV2ZWxzOwo+ ICAgICAgeGVuX3ZhZGRyX3QgdmFkZHJfbWFzazsKPiBAQCAtNTkwLDYgKzU5Myw3IEBAIHN0YXRp YyBpbnQgYWxsb2NfbWFnaWNfcGFnZXNfaHZtKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKPiAg ICAgIHhlbl9wZm5fdCBzcGVjaWFsX2FycmF5W1g4Nl9IVk1fTlJfU1BFQ0lBTF9QQUdFU107Cj4g ICAgICB4ZW5fcGZuX3QgaW9yZXFfc2VydmVyX2FycmF5W05SX0lPUkVRX1NFUlZFUl9QQUdFU107 Cj4gICAgICB4Y19pbnRlcmZhY2UgKnhjaCA9IGRvbS0+eGNoOwo+ICsgICAgc2l6ZV90IHN0YXJ0 X2luZm9fc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaHZtX3N0YXJ0X2luZm8pOwo+ICAKPiAgICAgIC8q IEFsbG9jYXRlIGFuZCBjbGVhciBzcGVjaWFsIHBhZ2VzLiAqLwo+ICAgICAgZm9yICggaSA9IDA7 IGkgPCBYODZfSFZNX05SX1NQRUNJQUxfUEFHRVM7IGkrKyApCj4gQEAgLTYyNCw4ICs2MjgsNiBA QCBzdGF0aWMgaW50IGFsbG9jX21hZ2ljX3BhZ2VzX2h2bShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpk b20pCj4gIAo+ICAgICAgaWYgKCAhZG9tLT5kZXZpY2VfbW9kZWwgKQo+ICAgICAgewo+IC0gICAg ICAgIHNpemVfdCBzdGFydF9pbmZvX3NpemUgPSBzaXplb2Yoc3RydWN0IGh2bV9zdGFydF9pbmZv KTsKPiAtCj4gICAgICAgICAgaWYgKCBkb20tPmNtZGxpbmUgKQo+ICAgICAgICAgIHsKPiAgICAg ICAgICAgICAgZG9tLT5jbWRsaW5lX3NpemUgPSBST1VORFVQKHN0cmxlbihkb20tPmNtZGxpbmUp ICsgMSwgOCk7Cj4gQEAgLTYzNSwxNyArNjM3LDE4IEBAIHN0YXRpYyBpbnQgYWxsb2NfbWFnaWNf cGFnZXNfaHZtKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKPiAgICAgICAgICAvKiBMaW1pdGVk IHRvIG9uZSBtb2R1bGUuICovCj4gICAgICAgICAgaWYgKCBkb20tPnJhbWRpc2tfYmxvYiApCj4g ICAgICAgICAgICAgIHN0YXJ0X2luZm9fc2l6ZSArPSBzaXplb2Yoc3RydWN0IGh2bV9tb2RsaXN0 X2VudHJ5KTsKPiAtCj4gLSAgICAgICAgcmMgPSB4Y19kb21fYWxsb2Nfc2VnbWVudChkb20sICZk b20tPnN0YXJ0X2luZm9fc2VnLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IkhWTWxpdGUgc3RhcnQgaW5mbyIsIDAsIHN0YXJ0X2luZm9fc2l6ZSk7Cj4gLSAgICAgICAgaWYg KCByYyAhPSAwICkKPiAtICAgICAgICB7Cj4gLSAgICAgICAgICAgIERPTVBSSU5URigiVW5hYmxl IHRvIHJlc2VydmUgbWVtb3J5IGZvciB0aGUgc3RhcnQgaW5mbyIpOwo+IC0gICAgICAgICAgICBn b3RvIG91dDsKPiAtICAgICAgICB9Cj4gICAgICB9Cj4gICAgICBlbHNlCj4gICAgICB7Cj4gKyAg ICAgICAgc3RhcnRfaW5mb19zaXplICs9Cj4gKyAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaHZt X21vZGxpc3RfZW50cnkpICogSFZNTE9BREVSX01PRFVMRV9NQVhfQ09VTlQ7Cj4gKyAgICAgICAg LyoKPiArICAgICAgICAgKiBBZGQgZXh0cmEgc3BhY2UgdG8gd3JpdGUgbW9kdWxlcyBuYW1lLgo+ ICsgICAgICAgICAqIFRoZSBIVk1MT0FERVJfTU9EVUxFX05BTUVfU0laRSBhY2NvdW50cyBmb3Ig TlVMIGJ5dGUuCj4gKyAgICAgICAgICovCj4gKyAgICAgICAgc3RhcnRfaW5mb19zaXplICs9Cj4g KyAgICAgICAgICAgIEhWTUxPQURFUl9NT0RVTEVfTkFNRV9TSVpFICogSFZNTE9BREVSX01PRFVM RV9NQVhfQ09VTlQ7Cj4gKwo+ICAgICAgICAgIC8qCj4gICAgICAgICAgICogQWxsb2NhdGUgYW5k IGNsZWFyIGFkZGl0aW9uYWwgaW9yZXEgc2VydmVyIHBhZ2VzLiBUaGUgZGVmYXVsdAo+ICAgICAg ICAgICAqIHNlcnZlciB3aWxsIHVzZSB0aGUgSU9SRVEgYW5kIEJVRklPUkVRIHNwZWNpYWwgcGFn ZXMgYWJvdmUuCj4gQEAgLTY3Miw2ICs2NzUsMTQgQEAgc3RhdGljIGludCBhbGxvY19tYWdpY19w YWdlc19odm0oc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlJfSU9SRVFfU0VSVkVSX1BBR0VTKTsKPiAgICAgIH0KPiAgCj4gKyAgICByYyA9IHhj X2RvbV9hbGxvY19zZWdtZW50KGRvbSwgJmRvbS0+c3RhcnRfaW5mb19zZWcsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJIVk1saXRlIHN0YXJ0IGluZm8iLCAwLCBzdGFydF9pbmZv X3NpemUpOwo+ICsgICAgaWYgKCByYyAhPSAwICkKPiArICAgIHsKPiArICAgICAgICBET01QUklO VEYoIlVuYWJsZSB0byByZXNlcnZlIG1lbW9yeSBmb3IgdGhlIHN0YXJ0IGluZm8iKTsKPiArICAg ICAgICBnb3RvIG91dDsKPiArICAgIH0KPiArCj4gICAgICAvKgo+ICAgICAgICogSWRlbnRpdHkt bWFwIHBhZ2UgdGFibGUgaXMgcmVxdWlyZWQgZm9yIHJ1bm5pbmcgd2l0aCBDUjAuUEc9MCB3aGVu Cj4gICAgICAgKiB1c2luZyBJbnRlbCBFUFQuIENyZWF0ZSBhIDMyLWJpdCBub24tUEFFIHBhZ2Ug ZGlyZWN0b3J5IG9mIHN1cGVycGFnZXMuCj4gQEAgLTE2ODksNDIgKzE3MDAsODkgQEAgc3RhdGlj IGludCBhbGxvY19wZ3RhYmxlc19odm0oc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQo+ICAgICAg cmV0dXJuIDA7Cj4gIH0KPiAgCj4gKy8qCj4gKyAqIFRoZSBtZW1vcnkgbGF5b3V0IG9mIHRoZSBz dGFydF9pbmZvIHBhZ2UgYW5kIHRoZSBtb2R1bGVzLCBhbmQgd2hlcmUgdGhlCj4gKyAqIGFkZHJl c3NlcyBhcmUgc3RvcmVkOgo+ICsgKgo+ICsgKiAvLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLVwKPiArICogfCBzdHJ1Y3QgaHZtX3N0YXJ0X2luZm8gICAgICAgICAgICB8Cj4gKyAq ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LSBzdGFydF9pbmZvLT5tb2Rs aXN0X3BhZGRyCj4gKyAqIHwgc3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5WzBdICAgICAgfAo+ICsg KiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiArICogfCBzdHJ1Y3QgaHZt X21vZGxpc3RfZW50cnlbMV0gICAgICB8Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKyA8LSBtb2RsaXN0WzBdLmNtZGxpbmVfcGFkZHIKPiArICogfCBjbWRsaW5lIG9m IG1vZHVsZSAwICAgICAgICAgICAgICB8Cj4gKyAqIHwgY2hhcltIVk1MT0FERVJfTU9EVUxFX05B TUVfU0laRV0gfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0g bW9kbGlzdFsxXS5jbWRsaW5lX3BhZGRyCj4gKyAqIHwgY21kbGluZSBvZiBtb2R1bGUgMSAgICAg ICAgICAgICAgfAo+ICsgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiAr ICovCgpTaG91bGQgdGhpcyBnbyB0byBwdWJsaWMveGVuLmg/Cgo+ICtzdGF0aWMgdm9pZCBhZGRf bW9kdWxlX3RvX2xpc3Qoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX2h2bV9maXJtd2FyZV9tb2R1bGUgKm1vZHVsZSwK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZtX21vZGxpc3RfZW50cnkgKm1v ZGxpc3QsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZtX3N0YXJ0 X2luZm8gKnN0YXJ0X2luZm8pCj4gK3sKPiArICAgIHVpbnQzMl90IGluZGV4ID0gc3RhcnRfaW5m by0+bnJfbW9kdWxlczsKPiArICAgIHZvaWQgKm1vZHVsZXNfY21kbGluZV9zdGFydCA9IG1vZGxp c3QgKyBIVk1MT0FERVJfTU9EVUxFX01BWF9DT1VOVDsKPiArICAgIHVpbnQ2NF90IG1vZGxpc3Rf cGFkZHIgPSAoZG9tLT5zdGFydF9pbmZvX3NlZy5wZm4gPDwgUEFHRV9TSElGVCkgKwo+ICsgICAg ICAgICgodWludHB0cl90KW1vZGxpc3QgLSAodWludHB0cl90KXN0YXJ0X2luZm8pOwo+ICsgICAg dWludDY0X3QgbW9kdWxlc19jbWRsaW5lX3BhZGRyID0gbW9kbGlzdF9wYWRkciArCj4gKyAgICAg ICAgc2l6ZW9mKHN0cnVjdCBodm1fbW9kbGlzdF9lbnRyeSkgKiBIVk1MT0FERVJfTU9EVUxFX01B WF9DT1VOVDsKPiArCj4gKyAgICBpZiAoIG1vZHVsZS0+bGVuZ3RoID09IDAgKQo+ICsgICAgICAg IHJldHVybjsKPiArCj4gKyAgICBhc3NlcnQoc3RhcnRfaW5mby0+bnJfbW9kdWxlcyA8IEhWTUxP QURFUl9NT0RVTEVfTUFYX0NPVU5UKTsKPiArICAgIGFzc2VydChzdHJubGVuKG5hbWUsIEhWTUxP QURFUl9NT0RVTEVfTkFNRV9TSVpFKQo+ICsgICAgICAgICAgIDwgSFZNTE9BREVSX01PRFVMRV9O QU1FX1NJWkUpOwo+ICsKPiArICAgIG1vZGxpc3RbaW5kZXhdLnBhZGRyID0gbW9kdWxlLT5ndWVz dF9hZGRyX291dDsKPiArICAgIG1vZGxpc3RbaW5kZXhdLnNpemUgPSBtb2R1bGUtPmxlbmd0aDsK PiArCj4gKyAgICBzdHJuY3B5KG1vZHVsZXNfY21kbGluZV9zdGFydCArIEhWTUxPQURFUl9NT0RV TEVfTkFNRV9TSVpFICogaW5kZXgsCj4gKyAgICAgICAgICAgIG5hbWUsIEhWTUxPQURFUl9NT0RV TEVfTkFNRV9TSVpFKTsKPiArICAgIG1vZGxpc3RbaW5kZXhdLmNtZGxpbmVfcGFkZHIgPQo+ICsg ICAgICAgIG1vZHVsZXNfY21kbGluZV9wYWRkciArIEhWTUxPQURFUl9NT0RVTEVfTkFNRV9TSVpF ICogaW5kZXg7Cj4gKwo+ICsgICAgc3RhcnRfaW5mby0+bnJfbW9kdWxlcysrOwo+ICt9Cj4gKwo+ ICBzdGF0aWMgaW50IGJvb3RsYXRlX2h2bShzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCj4gIHsK PiAgICAgIHVpbnQzMl90IGRvbWlkID0gZG9tLT5ndWVzdF9kb21pZDsKPiAgICAgIHhjX2ludGVy ZmFjZSAqeGNoID0gZG9tLT54Y2g7Cj4gKyAgICBzdHJ1Y3QgaHZtX3N0YXJ0X2luZm8gKnN0YXJ0 X2luZm87Cj4gKyAgICBzaXplX3Qgc3RhcnRfaW5mb19zaXplOwo+ICsgICAgc3RydWN0IGh2bV9t b2RsaXN0X2VudHJ5ICptb2RsaXN0Owo+ICAKPiAtICAgIGlmICggIWRvbS0+ZGV2aWNlX21vZGVs ICkKPiAtICAgIHsKPiAtICAgICAgICBzdHJ1Y3QgaHZtX3N0YXJ0X2luZm8gKnN0YXJ0X2luZm87 Cj4gLSAgICAgICAgc2l6ZV90IHN0YXJ0X2luZm9fc2l6ZTsKPiAtICAgICAgICB2b2lkICpzdGFy dF9wYWdlOwo+IC0KPiAtICAgICAgICBzdGFydF9pbmZvX3NpemUgPSBzaXplb2YoKnN0YXJ0X2lu Zm8pICsgZG9tLT5jbWRsaW5lX3NpemU7Cj4gLSAgICAgICAgaWYgKCBkb20tPnJhbWRpc2tfYmxv YiApCj4gLSAgICAgICAgICAgIHN0YXJ0X2luZm9fc2l6ZSArPSBzaXplb2Yoc3RydWN0IGh2bV9t b2RsaXN0X2VudHJ5KTsKPiArICAgIHN0YXJ0X2luZm9fc2l6ZSA9IHNpemVvZigqc3RhcnRfaW5m bykgKyBkb20tPmNtZGxpbmVfc2l6ZTsKPiArICAgIGlmICggZG9tLT5yYW1kaXNrX2Jsb2IgKQo+ ICsgICAgICAgIHN0YXJ0X2luZm9fc2l6ZSArPSBzaXplb2Yoc3RydWN0IGh2bV9tb2RsaXN0X2Vu dHJ5KTsKPiAgCj4gLSAgICAgICAgaWYgKCBzdGFydF9pbmZvX3NpemUgPgo+IC0gICAgICAgICAg ICAgZG9tLT5zdGFydF9pbmZvX3NlZy5wYWdlcyA8PCBYQ19ET01fUEFHRV9TSElGVChkb20pICkK PiAtICAgICAgICB7Cj4gLSAgICAgICAgICAgIERPTVBSSU5URigiVHJ5aW5nIHRvIG1hcCBiZXlv bmQgc3RhcnRfaW5mb19zZWciKTsKPiAtICAgICAgICAgICAgcmV0dXJuIC0xOwo+IC0gICAgICAg IH0KPiArICAgIGlmICggc3RhcnRfaW5mb19zaXplID4KPiArICAgICAgICAgZG9tLT5zdGFydF9p bmZvX3NlZy5wYWdlcyA8PCBYQ19ET01fUEFHRV9TSElGVChkb20pICkKPiArICAgIHsKPiArICAg ICAgICBET01QUklOVEYoIlRyeWluZyB0byBtYXAgYmV5b25kIHN0YXJ0X2luZm9fc2VnIik7Cj4g KyAgICAgICAgcmV0dXJuIC0xOwo+ICsgICAgfQo+ICAKPiAtICAgICAgICBzdGFydF9wYWdlID0g eGNfbWFwX2ZvcmVpZ25fcmFuZ2UoeGNoLCBkb21pZCwgc3RhcnRfaW5mb19zaXplLAo+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dS SVRFLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb20tPnN0 YXJ0X2luZm9fc2VnLnBmbik7Cj4gLSAgICAgICAgaWYgKCBzdGFydF9wYWdlID09IE5VTEwgKQo+ IC0gICAgICAgIHsKPiAtICAgICAgICAgICAgRE9NUFJJTlRGKCJVbmFibGUgdG8gbWFwIEhWTSBz dGFydCBpbmZvIHBhZ2UiKTsKPiAtICAgICAgICAgICAgcmV0dXJuIC0xOwo+IC0gICAgICAgIH0K PiArICAgIHN0YXJ0X2luZm8gPSB4Y19tYXBfZm9yZWlnbl9yYW5nZSh4Y2gsIGRvbWlkLCBzdGFy dF9pbmZvX3NpemUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJP VF9SRUFEIHwgUFJPVF9XUklURSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkb20tPnN0YXJ0X2luZm9fc2VnLnBmbik7Cj4gKyAgICBpZiAoIHN0YXJ0X2luZm8gPT0g TlVMTCApCj4gKyAgICB7Cj4gKyAgICAgICAgRE9NUFJJTlRGKCJVbmFibGUgdG8gbWFwIEhWTSBz dGFydCBpbmZvIHBhZ2UiKTsKPiArICAgICAgICByZXR1cm4gLTE7Cj4gKyAgICB9Cj4gIAo+IC0g ICAgICAgIHN0YXJ0X2luZm8gPSBzdGFydF9wYWdlOwo+ICsgICAgbW9kbGlzdCA9ICh2b2lkKiko c3RhcnRfaW5mbyArIDEpICsgZG9tLT5jbWRsaW5lX3NpemU7Cj4gIAo+ICsgICAgaWYgKCAhZG9t LT5kZXZpY2VfbW9kZWwgKQo+ICsgICAgewo+ICAgICAgICAgIGlmICggZG9tLT5jbWRsaW5lICkK PiAgICAgICAgICB7Cj4gLSAgICAgICAgICAgIGNoYXIgKmNtZGxpbmUgPSBzdGFydF9wYWdlICsg c2l6ZW9mKCpzdGFydF9pbmZvKTsKPiArICAgICAgICAgICAgY2hhciAqY21kbGluZSA9ICh2b2lk Kikoc3RhcnRfaW5mbyArIDEpOwo+ICAKPiAgICAgICAgICAgICAgc3RybmNweShjbWRsaW5lLCBk b20tPmNtZGxpbmUsIGRvbS0+Y21kbGluZV9zaXplKTsKPiAgICAgICAgICAgICAgc3RhcnRfaW5m by0+Y21kbGluZV9wYWRkciA9IChkb20tPnN0YXJ0X2luZm9fc2VnLnBmbiA8PCBQQUdFX1NISUZU KSArCj4gQEAgLTE3MzMsMjIgKzE3OTEsMzAgQEAgc3RhdGljIGludCBib290bGF0ZV9odm0oc3Ry dWN0IHhjX2RvbV9pbWFnZSAqZG9tKQo+ICAKPiAgICAgICAgICBpZiAoIGRvbS0+cmFtZGlza19i bG9iICkKPiAgICAgICAgICB7Cj4gLSAgICAgICAgICAgIHN0cnVjdCBodm1fbW9kbGlzdF9lbnRy eSAqbW9kbGlzdCA9Cj4gLSAgICAgICAgICAgICAgICBzdGFydF9wYWdlICsgc2l6ZW9mKCpzdGFy dF9pbmZvKSArIGRvbS0+Y21kbGluZV9zaXplOwo+ICAKPiAgICAgICAgICAgICAgbW9kbGlzdFsw XS5wYWRkciA9IGRvbS0+cmFtZGlza19zZWcudnN0YXJ0IC0gZG9tLT5wYXJtcy52aXJ0X2Jhc2U7 Cj4gICAgICAgICAgICAgIG1vZGxpc3RbMF0uc2l6ZSA9IGRvbS0+cmFtZGlza19zZWcudmVuZCAt IGRvbS0+cmFtZGlza19zZWcudnN0YXJ0Owo+IC0gICAgICAgICAgICBzdGFydF9pbmZvLT5tb2Rs aXN0X3BhZGRyID0gKGRvbS0+c3RhcnRfaW5mb19zZWcucGZuIDw8IFBBR0VfU0hJRlQpICsKPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVpbnRwdHJfdCltb2RsaXN0IC0gKHVp bnRwdHJfdClzdGFydF9pbmZvKTsKPiAgICAgICAgICAgICAgc3RhcnRfaW5mby0+bnJfbW9kdWxl cyA9IDE7Cj4gICAgICAgICAgfQo+IC0KPiAtICAgICAgICBzdGFydF9pbmZvLT5tYWdpYyA9IFhF Tl9IVk1fU1RBUlRfTUFHSUNfVkFMVUU7Cj4gLQo+IC0gICAgICAgIG11bm1hcChzdGFydF9wYWdl LCBzdGFydF9pbmZvX3NpemUpOwo+ICAgICAgfQo+ICAgICAgZWxzZQo+ICAgICAgewo+ICsgICAg ICAgIGFkZF9tb2R1bGVfdG9fbGlzdChkb20sICZkb20tPnN5c3RlbV9maXJtd2FyZV9tb2R1bGUs ICJmaXJtd2FyZSIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGxpc3QsIHN0YXJ0 X2luZm8pOwo+ICsgICAgfQoKSXMgaXQgcG9zc2libGUgdG8gYWRkIFBWSCdzIHJhbWRpc2sgdmlh IHRoaXMgcm91dGluZSBhcyB3ZWxsPwoKLWJvcmlzCgo+ICsKPiArICAgIGlmICggc3RhcnRfaW5m by0+bnJfbW9kdWxlcyApCj4gKyAgICB7Cj4gKyAgICAgICAgc3RhcnRfaW5mby0+bW9kbGlzdF9w YWRkciA9IChkb20tPnN0YXJ0X2luZm9fc2VnLnBmbiA8PCBQQUdFX1NISUZUKSArCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoKHVpbnRwdHJfdCltb2RsaXN0IC0gKHVpbnRwdHJfdClz dGFydF9pbmZvKTsKPiArICAgIH0KPiArCj4gKyAgICBzdGFydF9pbmZvLT5tYWdpYyA9IFhFTl9I Vk1fU1RBUlRfTUFHSUNfVkFMVUU7Cj4gKwo+ICsgICAgbXVubWFwKHN0YXJ0X2luZm8sIHN0YXJ0 X2luZm9fc2l6ZSk7Cj4gKwo+ICsgICAgaWYgKCBkb20tPmRldmljZV9tb2RlbCApCj4gKyAgICB7 Cj4gICAgICAgICAgdm9pZCAqaHZtX2luZm9fcGFnZTsKPiAgCj4gICAgICAgICAgaWYgKCAoaHZt X2luZm9fcGFnZSA9IHhjX21hcF9mb3JlaWduX3JhbmdlKAo+IGRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9wdWJsaWMveGVuLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKPiBpbmRleCAzN2Ji YjIyLi5kOWRkZWU3IDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaAo+ICsr KyBiL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaAo+IEBAIC04MTQsNyArODE0LDcgQEAgc3RydWN0 IHN0YXJ0X2luZm8gewo+ICB0eXBlZGVmIHN0cnVjdCBzdGFydF9pbmZvIHN0YXJ0X2luZm9fdDsK PiAgCj4gIC8qCj4gLSAqIFN0YXJ0IG9mIGRheSBzdHJ1Y3R1cmUgcGFzc2VkIHRvIFBWSCBndWVz dHMgaW4gJWVieC4KPiArICogU3RhcnQgb2YgZGF5IHN0cnVjdHVyZSBwYXNzZWQgdG8gUFZIIGd1 ZXN0cyBhbmQgdG8gSFZNIGd1ZXN0cyBpbiAlZWJ4Lgo+ICAgKgo+ICAgKiBOT1RFOiBub3RoaW5n IHdpbGwgYmUgbG9hZGVkIGF0IHBoeXNpY2FsIGFkZHJlc3MgMCwgc28gYSAwIHZhbHVlIGluIGFu eQo+ICAgKiBvZiB0aGUgYWRkcmVzcyBmaWVsZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgbm90IHBy ZXNlbnQuCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==