From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Mammedov Subject: Re: [Qemu-devel] [PATCH v5 20/24] hw: acpi: Define ACPI tables builder interface Date: Fri, 16 Nov 2018 17:02:26 +0100 Message-ID: <20181116170226.35385388@redhat.com> References: <20181105014047.26447-1-sameo@linux.intel.com> <20181105014047.26447-21-sameo@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gNgZn-0004od-B3 for xen-devel@lists.xenproject.org; Fri, 16 Nov 2018 16:02:35 +0000 In-Reply-To: <20181105014047.26447-21-sameo@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Samuel Ortiz Cc: Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , qemu-devel@nongnu.org, Shannon Zhao , qemu-arm@nongnu.org, xen-devel@lists.xenproject.org, Anthony Perard , Paolo Bonzini , Richard Henderson List-Id: xen-devel@lists.xenproject.org T24gTW9uLCAgNSBOb3YgMjAxOCAwMjo0MDo0MyArMDEwMApTYW11ZWwgT3J0aXogPHNhbWVvQGxp bnV4LmludGVsLmNvbT4gd3JvdGU6Cgo+IEluIG9yZGVyIHRvIGRlY291cGxlIEFDUEkgQVBJcyBm cm9tIHNwZWNpZmljIG1hY2hpbmUgdHlwZXMsIHdlIGFyZQo+IGNyZWF0aW5nIGFuIEFDUEkgYnVp bGRlciBpbnRlcmZhY2UgdGhhdCBlYWNoIEFDUEkgcGxhdGZvcm0gY2FuIGNob29zZSB0bwo+IGlt cGxlbWVudC4KPiBUaGlzIHdheSwgYSBuZXcgbWFjaGluZSB0eXBlIGNhbiByZS11c2UgdGhlIGhp Z2ggbGV2ZWwgQUNQSSBBUElzIGFuZAo+IGRlZmluZSBzb21lIGN1c3RvbSB0YWJsZSBidWlsZCBt ZXRob2RzLCB3aXRob3V0IGhhdmluZyB0byBkdXBsaWNhdGUgbW9zdAo+IG9mIHRoZSBleGlzdGlu ZyBpbXBsZW1lbnRhdGlvbiBvbmx5IHRvIGFkZCBzbWFsbCB2YXJpYXRpb25zIHRvIGl0LgpJJ20g bm90IHN1cmUgYWJvdXQgbW90aXZhdGlvbiBiZWhpbmQgc28gaGlnaCBBUElzLAp3aGF0IG9idmlv dXMgaGVyZSBpcyBhbiBleHRyYSBsZXZlbCBvZiBpbmRpcmVjdGlvbiBmb3Igbm90IGNsZWFyIGdh aW4uCgpZZXAgdXNpbmcgdGFibGUgY2FsbGJhY2tzLCBvbmUgY2FuIGF0dGVtcHQgdG8gZ2VuZXJh bGl6ZQphY3BpX3NldHVwKCkgYW5kIGhlbHAgYm9hcmRzIHRvIGRlY2lkZSB3aGljaCB0YWJsZXMg ZG8gbm90IGJ1aWxkCihNQ0ZHIGNvbWVzIHRvIHRoZSBtaW5kKS4gQnV0IEknbSBub3QgY29udmlu Y2VkIHRoYXQgYWNwaV9zZXR1cCgpCmNvdWxkIGJlIGNsZWFubHkgZ2VuZXJhbGl6ZWQgYXMgYSB3 aG9sZSAocHJvYmFibHkgc29tZSBwYXJ0cyBidXQKbm90IGV2ZXJ5dGhpbmcpIHNvIGl0J3MgbWlu b3IgYmVuZWZpdCBmb3IgZXh0cmEgaGVhZGFjaGUgb2YKZmlndXJpbmcgb3V0IHdoYXQgY2FsbGJh Y2sgd2lsbCBiZSBhY3R1YWxseSBjYWxsZWQgd2hlbiByZWFkaW5nIGNvZGUuCgpIb3dldmVyIGlm IGJvYXJkIG5lZWRzIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHRhYmxlLCBpdCB3aWxsIGhhdmUgdG8K ZHVwbGljYXRlIGFuIGV4aXRpbmcgb25lIGFuZCB0aGVuIG1vZGlmeSB0byBzdWl0IGl0cyBuZWVk cy4KCnRvIG1lIGl0IHByZXR0eSBtdWNoIGxvb2tzIHRoZSBzYW1lIGFzIGNhbGxpbmcgYnVpbGRf Zm9vKCkKd2UgdXNlIG5vdyBidXQgd2l0aCBhbiBleHRyYSBpbmRpcmVjdGlvbiBsZXZlbCBhbmQg dGhlbgpkdXBsaWNhdGluZyB0aGUgbGF0ZXIgZm9yIHVzYWdlIGluIGFub3RoZXIgYm9hcmQgaW4g c2xpZ2h0bHkKZGlmZmVyZW50IG1hbm5lci4KCkkgYWdyZWUgd2l0aCBQYW9sbydzIHN1Z2dlc3Rp b24gdG8gdXNlIGludGVyZmFjZXMgZm9yIGdlbmVyYWxpemF0aW9uLApob3dldmVyIEknZCBzdWdn ZXN0IGEgZmluZSBncmFpbmVkIGFwcHJvYWNoIGZvciBwcm92aWRpbmcgYm9hcmQvdGFyZ2V0CnNw ZWNpZmljIGl0ZW1zL2FjdGlvbnMgZm9yIGdlbmVyaWMgdGFibGVzLgoKRm9yIGV4YW1wbGUgdGFr ZSBhIGxvb2sgYXQgQWNwaURldmljZUlmQ2xhc3MgaW50ZXJmYWNlIHRoYXQgaXMKaW1wbGVtZW50 ZWQgYnkgR1BFIGRldmljZXMgYW5kIGl0cyBtYWR0X2NwdSgpIG1ldGhvZC4gVGhhdCBzaG91bGQK c2ltcGxpZnkgZ2VuZXJhbGl6aW5nIGNwdSBob3RwbHVnIGZvciBhcm0vdmlydCBhbmQgYWxzbyBo ZWxwCnRvIGdlbmVyYWxpemUgYnVpbGRfbWFkdCgpLiBJdCdzIG5vdCBjbGVhbmVzdCBpbXBsLiBi eSBmYXIgYnV0CmhlYWRlZCBpbiB0aGUgcmlnaHQgZ2VuZXJpYyBkaXJlY3Rpb24uIEkgaGF2ZSBp dCBvbiBteSBUT0RPIGxpc3QgdG8KZG8gbGlzdCB0byBnZW5lcmFsaXplIGFjcGkgcGFydHMgb2Yg YnVpbGRfZmFkdCgpL2NwdSBob3RwbHVnCnNvbWUgZGF5IGFzIHBhcnQgb2YgdGhlIHByb2plY3Qg dGhhdCBhZGRzIGNwdSBob3RwbHVnIHRvIGFybS92aXJ0IGJvYXJkLgoKR1BFL0dFRCBkZXZpY2Ug bWlnaHQgYmUgbm90IGlkZWFsIHBsYWNlIHRvIGltcGxlbWVudCB0aGF0IGludGVyZmFjZQood29y a2VkIGZvciBwYy9xMzUpIGFuZCBtYXkgYmUgd2Ugc2hvdWxkIG1vdmUgaXQgdG8gbWFjaGluZSBs ZXZlbAphcyBib2FyZCBoYXMgYWNjZXNzIHRvIG11Y2ggbW9yZSBkYXRhIGZvciBidWlsZGluZyBB Q1BJIHRhYmxlcy4KRm9yIGkzODYvdmlydCwgSSdkIGV4dGVuZC9tb2RpZnkgQWNwaURldmljZUlm Q2xhc3Mgd2hlbi93aGVyZSBpdCdzCm5lY2Vzc2FyeSBpbnN0ZWFkIG9mIGFkZGluZyBoaWdoIGxl dmVsIHRhYmxlIGhvb2tzLgpUaGF0IHdheSBnZW5lcmljIGJ1aWxkX2ZvbygpIEFQSSdzIHdvdWxk IHNoYXJlIG11Y2ggbW9yZSBjb2RlLgoKPiBSZXZpZXdlZC1ieTogUGhpbGlwcGUgTWF0aGlldS1E YXVkw6kgPHBoaWxtZEByZWRoYXQuY29tPgo+IFRlc3RlZC1ieTogUGhpbGlwcGUgTWF0aGlldS1E YXVkw6kgPHBoaWxtZEByZWRoYXQuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFNhbXVlbCBPcnRpeiA8 c2FtZW9AbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBpbmNsdWRlL2h3L2FjcGkvYnVpbGRlci5o IHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGh3L2FjcGkv YnVpbGRlci5jICAgICAgICAgfCAgOTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCj4gIGh3L2FjcGkvTWFrZWZpbGUub2JqcyAgICAgfCAgIDEgKwo+ICAzIGZpbGVzIGNoYW5n ZWQsIDE5OCBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2h3L2Fj cGkvYnVpbGRlci5oCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBody9hY3BpL2J1aWxkZXIuYwo+IAo+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2FjcGkvYnVpbGRlci5oIGIvaW5jbHVkZS9ody9hY3Bp L2J1aWxkZXIuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMC4uYTYz Yjg4ZmZlOQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9pbmNsdWRlL2h3L2FjcGkvYnVpbGRlci5o Cj4gQEAgLTAsMCArMSwxMDAgQEAKPiArLyoKPiArICoKPiArICogQ29weXJpZ2h0IChjKSAyMDE4 IEludGVsIENvcnBvcmF0aW9uCj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cj4gKyAqIHVuZGVy IHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UsCj4gKyAqIHZlcnNpb24gMiBvciBsYXRlciwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24uCj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKPiArICogQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklM SVRZIG9yCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKPiArICogbW9yZSBkZXRhaWxzLgo+ICsgKgo+ ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoCj4gKyAqIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KPiArICovCj4gKwo+ICsjaWZuZGVmIEFD UElfQlVJTERFUl9ICj4gKyNkZWZpbmUgQUNQSV9CVUlMREVSX0gKPiArCj4gKyNpbmNsdWRlICJx ZW11L29zZGVwLmgiCj4gKyNpbmNsdWRlICJody9hY3BpL2Jpb3MtbGlua2VyLWxvYWRlci5oIgo+ ICsjaW5jbHVkZSAicW9tL29iamVjdC5oIgo+ICsKPiArI2RlZmluZSBUWVBFX0FDUElfQlVJTERF UiAiYWNwaS1idWlsZGVyIgo+ICsKPiArI2RlZmluZSBBQ1BJX0JVSUxERVJfTUVUSE9EUyhrbGFz cykgXAo+ICsgICAgIE9CSkVDVF9DTEFTU19DSEVDSyhBY3BpQnVpbGRlck1ldGhvZHMsIChrbGFz cyksIFRZUEVfQUNQSV9CVUlMREVSKQo+ICsjZGVmaW5lIEFDUElfQlVJTERFUl9HRVRfTUVUSE9E UyhvYmopIFwKPiArICAgICBPQkpFQ1RfR0VUX0NMQVNTKEFjcGlCdWlsZGVyTWV0aG9kcywgKG9i aiksIFRZUEVfQUNQSV9CVUlMREVSKQo+ICsjZGVmaW5lIEFDUElfQlVJTERFUihvYmopICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgIElOVEVSRkFDRV9DSEVD SyhBY3BpQnVpbGRlciwgKG9iaiksIFRZUEVfQUNQSV9CVUlMREVSKQo+ICsKPiArdHlwZWRlZiBz dHJ1Y3QgQWNwaUNvbmZpZ3VyYXRpb24gQWNwaUNvbmZpZ3VyYXRpb247Cj4gK3R5cGVkZWYgc3Ry dWN0IEFjcGlCdWlsZFN0YXRlIEFjcGlCdWlsZFN0YXRlOwo+ICt0eXBlZGVmIHN0cnVjdCBBY3Bp TWNmZ0luZm8gQWNwaU1jZmdJbmZvOwo+ICsKPiArdHlwZWRlZiBzdHJ1Y3QgQWNwaUJ1aWxkZXIg ewo+ICsgICAgLyogPHByaXZhdGU+ICovCj4gKyAgICBPYmplY3QgUGFyZW50Owo+ICt9IEFjcGlC dWlsZGVyOwo+ICsKPiArLyoqCj4gKyAqIEFjcGlCdWlsZE1ldGhvZHM6Cj4gKyAqCj4gKyAqIElu dGVyZmFjZSB0byBiZSBpbXBsZW1lbnRlZCBieSBhIG1hY2hpbmUgdHlwZSB0aGF0IG5lZWRzIHRv IHByb3ZpZGUKPiArICogY3VzdG9tIEFDUEkgdGFibGVzIGJ1aWxkIG1ldGhvZC4KPiArICoKPiAr ICogQHBhcmVudDogT3BhcXVlIHBhcmVudCBpbnRlcmZhY2UuCj4gKyAqIEByc2RwOiBBQ1BJIFJT RFAgKFJvb3QgU3lzdGVtIERlc2NyaXB0aW9uIFBvaW50ZXIpIHRhYmxlIGJ1aWxkIGNhbGxiYWNr Lgo+ICsgKiBAbWFkdDogQUNQSSBNQURUIChNdWx0aXBsZSBBUElDIERlc2NyaXB0aW9uIFRhYmxl KSB0YWJsZSBidWlsZCBjYWxsYmFjay4KPiArICogQG1jZmc6IEFDUEkgTUNGRyB0YWJsZSBidWls ZCBjYWxsYmFjay4KPiArICogQHNyYXQ6IEFDUEkgU1JBVCAoU3lzdGVtL1N0YXRpYyBSZXNvdXJj ZSBBZmZpbml0eSBUYWJsZSkKPiArICogICAgICAgIHRhYmxlIGJ1aWxkIGNhbGxiYWNrLgo+ICsg KiBAc2xpdDogQUNQSSBTTElUIChTeXN0ZW0gTG9jYWxpdHkgU3lzdGVtIEluZm9ybWF0aW9uIFRh YmxlKQo+ICsgKiAgICAgICAgdGFibGUgYnVpbGQgY2FsbGJhY2suCj4gKyAqIEBjb25maWd1cmF0 aW9uOiBBQ1BJIGNvbmZpZ3VyYXRpb24gZ2V0dGVyLgo+ICsgKiAgICAgICAgICAgICAgICAgVGhp cyBpcyB1c2VkIHRvIHF1ZXJ5IHRoZSBtYWNoaW5lIGluc3RhbmNlIGZvciBpdHMKPiArICogICAg ICAgICAgICAgICAgIEFjcGlDb25maWd1cmF0aW9uIHBvaW50ZXIuCj4gKyAqLwo+ICt0eXBlZGVm IHN0cnVjdCBBY3BpQnVpbGRlck1ldGhvZHMgewo+ICsgICAgLyogPHByaXZhdGU+ICovCj4gKyAg ICBJbnRlcmZhY2VDbGFzcyBwYXJlbnQ7Cj4gKwo+ICsgICAgLyogPHB1YmxpYz4gKi8KPiArICAg IHZvaWQgKCpyc2RwKShHQXJyYXkgKnRhYmxlX2RhdGEsIEJJT1NMaW5rZXIgKmxpbmtlciwKPiAr ICAgICAgICAgICAgICAgICB1bnNpZ25lZCByc2R0X3RibF9vZmZzZXQpOwo+ICsgICAgdm9pZCAo Km1hZHQpKEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xpbmtlciAqbGlua2VyLAo+ICsgICAgICAg ICAgICAgICAgIE1hY2hpbmVTdGF0ZSAqbXMsIEFjcGlDb25maWd1cmF0aW9uICpjb25mKTsKPiAr ICAgIHZvaWQgKCptY2ZnKShHQXJyYXkgKnRhYmxlX2RhdGEsIEJJT1NMaW5rZXIgKmxpbmtlciwK PiArICAgICAgICAgICAgICAgICBBY3BpTWNmZ0luZm8gKmluZm8pOwo+ICsgICAgdm9pZCAoKnNy YXQpKEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xpbmtlciAqbGlua2VyLAo+ICsgICAgICAgICAg ICAgICAgIE1hY2hpbmVTdGF0ZSAqbWFjaGluZSwgQWNwaUNvbmZpZ3VyYXRpb24gKmNvbmYpOwo+ ICsgICAgdm9pZCAoKnNsaXQpKEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xpbmtlciAqbGlua2Vy KTsKPiArCj4gKyAgICBBY3BpQ29uZmlndXJhdGlvbiAqKCpjb25maWd1cmF0aW9uKShBY3BpQnVp bGRlciAqYnVpbGRlcik7Cj4gK30gQWNwaUJ1aWxkZXJNZXRob2RzOwo+ICsKPiArdm9pZCBhY3Bp X2J1aWxkZXJfcnNkcChBY3BpQnVpbGRlciAqYnVpbGRlciwKPiArICAgICAgICAgICAgICAgICAg ICAgICBHQXJyYXkgKnRhYmxlX2RhdGEsIEJJT1NMaW5rZXIgKmxpbmtlciwKPiArICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCByc2R0X3RibF9vZmZzZXQpOwo+ICsKPiArdm9pZCBhY3Bp X2J1aWxkZXJfbWFkdChBY3BpQnVpbGRlciAqYnVpbGRlciwKPiArICAgICAgICAgICAgICAgICAg ICAgICBHQXJyYXkgKnRhYmxlX2RhdGEsIEJJT1NMaW5rZXIgKmxpbmtlciwKPiArICAgICAgICAg ICAgICAgICAgICAgICBNYWNoaW5lU3RhdGUgKm1zLCBBY3BpQ29uZmlndXJhdGlvbiAqY29uZik7 Cj4gKwo+ICt2b2lkIGFjcGlfYnVpbGRlcl9tY2ZnKEFjcGlCdWlsZGVyICpidWlsZGVyLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgIEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xpbmtlciAqbGlu a2VyLAo+ICsgICAgICAgICAgICAgICAgICAgICAgIEFjcGlNY2ZnSW5mbyAqaW5mbyk7Cj4gKwo+ ICt2b2lkIGFjcGlfYnVpbGRlcl9zcmF0KEFjcGlCdWlsZGVyICpidWlsZGVyLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgIEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xpbmtlciAqbGlua2VyLAo+ ICsgICAgICAgICAgICAgICAgICAgICAgIE1hY2hpbmVTdGF0ZSAqbWFjaGluZSwgQWNwaUNvbmZp Z3VyYXRpb24gKmNvbmYpOwo+ICsKPiArdm9pZCBhY3BpX2J1aWxkZXJfc2xpdChBY3BpQnVpbGRl ciAqYnVpbGRlciwKPiArICAgICAgICAgICAgICAgICAgICAgICBHQXJyYXkgKnRhYmxlX2RhdGEs IEJJT1NMaW5rZXIgKmxpbmtlcik7Cj4gKwo+ICtBY3BpQ29uZmlndXJhdGlvbiAqYWNwaV9idWls ZGVyX2NvbmZpZ3VyYXRpb24oQWNwaUJ1aWxkZXIgKmJ1aWxkZXIpOwo+ICsKPiArI2VuZGlmCj4g ZGlmZiAtLWdpdCBhL2h3L2FjcGkvYnVpbGRlci5jIGIvaHcvYWNwaS9idWlsZGVyLmMKPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAuLmMyOWE2MTQ3OTMKPiAtLS0gL2Rl di9udWxsCj4gKysrIGIvaHcvYWNwaS9idWlsZGVyLmMKPiBAQCAtMCwwICsxLDk3IEBACj4gKy8q Cj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeSBpdAo+ICsgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAo+ICsgKiB2ZXJzaW9uIDIgb3IgbGF0 ZXIsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ICsgKgo+ ICsgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgaXQgd2lsbCBiZSB1 c2VmdWwsIGJ1dCBXSVRIT1VUCj4gKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgo+ICsgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yCj4gKyAqIG1vcmUgZGV0YWlscy4KPiArICoKPiArICogWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aAo+ ICsgKiB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgInFlbXUvb3NkZXAuaCIKPiArI2luY2x1ZGUg InFlbXUvbW9kdWxlLmgiCj4gKyNpbmNsdWRlICJxb20vb2JqZWN0LmgiCj4gKyNpbmNsdWRlICJo dy9hY3BpL2J1aWxkZXIuaCIKPiArCj4gK3ZvaWQgYWNwaV9idWlsZGVyX3JzZHAoQWNwaUJ1aWxk ZXIgKmJ1aWxkZXIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgR0FycmF5ICp0YWJsZV9kYXRh LCBCSU9TTGlua2VyICpsaW5rZXIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg cnNkdF90Ymxfb2Zmc2V0KQo+ICt7Cj4gKyAgICBBY3BpQnVpbGRlck1ldGhvZHMgKmFibSA9IEFD UElfQlVJTERFUl9HRVRfTUVUSE9EUyhidWlsZGVyKTsKPiArCj4gKyAgICBpZiAoYWJtICYmIGFi bS0+cnNkcCkgewo+ICsgICAgICAgIGFibS0+cnNkcCh0YWJsZV9kYXRhLCBsaW5rZXIsIHJzZHRf dGJsX29mZnNldCk7Cj4gKyAgICB9Cj4gK30KPiArCj4gK3ZvaWQgYWNwaV9idWlsZGVyX21hZHQo QWNwaUJ1aWxkZXIgKmJ1aWxkZXIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgR0FycmF5ICp0 YWJsZV9kYXRhLCBCSU9TTGlua2VyICpsaW5rZXIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg TWFjaGluZVN0YXRlICptcywgQWNwaUNvbmZpZ3VyYXRpb24gKmNvbmYpCj4gK3sKPiArICAgIEFj cGlCdWlsZGVyTWV0aG9kcyAqYWJtID0gQUNQSV9CVUlMREVSX0dFVF9NRVRIT0RTKGJ1aWxkZXIp Owo+ICsKPiArICAgIGlmIChhYm0gJiYgYWJtLT5tYWR0KSB7Cj4gKyAgICAgICAgYWJtLT5tYWR0 KHRhYmxlX2RhdGEsIGxpbmtlciwgbXMsIGNvbmYpOwo+ICsgICAgfQo+ICt9Cj4gKwo+ICt2b2lk IGFjcGlfYnVpbGRlcl9tY2ZnKEFjcGlCdWlsZGVyICpidWlsZGVyLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgIEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xpbmtlciAqbGlua2VyLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgIEFjcGlNY2ZnSW5mbyAqaW5mbykKPiArewo+ICsgICAgQWNwaUJ1 aWxkZXJNZXRob2RzICphYm0gPSBBQ1BJX0JVSUxERVJfR0VUX01FVEhPRFMoYnVpbGRlcik7Cj4g Kwo+ICsgICAgaWYgKGFibSAmJiBhYm0tPm1jZmcpIHsKPiArICAgICAgICBhYm0tPm1jZmcodGFi bGVfZGF0YSwgbGlua2VyLCBpbmZvKTsKPiArICAgIH0KPiArfQo+ICsKPiArdm9pZCBhY3BpX2J1 aWxkZXJfc3JhdChBY3BpQnVpbGRlciAqYnVpbGRlciwKPiArICAgICAgICAgICAgICAgICAgICAg ICBHQXJyYXkgKnRhYmxlX2RhdGEsIEJJT1NMaW5rZXIgKmxpbmtlciwKPiArICAgICAgICAgICAg ICAgICAgICAgICBNYWNoaW5lU3RhdGUgKm1hY2hpbmUsIEFjcGlDb25maWd1cmF0aW9uICpjb25m KQo+ICt7Cj4gKyAgICBBY3BpQnVpbGRlck1ldGhvZHMgKmFibSA9IEFDUElfQlVJTERFUl9HRVRf TUVUSE9EUyhidWlsZGVyKTsKPiArCj4gKyAgICBpZiAoYWJtICYmIGFibS0+c3JhdCkgewo+ICsg ICAgICAgIGFibS0+c3JhdCh0YWJsZV9kYXRhLCBsaW5rZXIsIG1hY2hpbmUsIGNvbmYpOwo+ICsg ICAgfQo+ICt9Cj4gKwo+ICt2b2lkIGFjcGlfYnVpbGRlcl9zbGl0KEFjcGlCdWlsZGVyICpidWls ZGVyLAo+ICsgICAgICAgICAgICAgICAgICAgICAgIEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xp bmtlciAqbGlua2VyKQo+ICt7Cj4gKyAgICBBY3BpQnVpbGRlck1ldGhvZHMgKmFibSA9IEFDUElf QlVJTERFUl9HRVRfTUVUSE9EUyhidWlsZGVyKTsKPiArCj4gKyAgICBpZiAoYWJtICYmIGFibS0+ c2xpdCkgewo+ICsgICAgICAgIGFibS0+c2xpdCh0YWJsZV9kYXRhLCBsaW5rZXIpOwo+ICsgICAg fQo+ICt9Cj4gKwo+ICtBY3BpQ29uZmlndXJhdGlvbiAqYWNwaV9idWlsZGVyX2NvbmZpZ3VyYXRp b24oQWNwaUJ1aWxkZXIgKmJ1aWxkZXIpCj4gK3sKPiArICAgIEFjcGlCdWlsZGVyTWV0aG9kcyAq YWJtID0gQUNQSV9CVUlMREVSX0dFVF9NRVRIT0RTKGJ1aWxkZXIpOwo+ICsgICAgaWYgKGFibSAm JiBhYm0tPmNvbmZpZ3VyYXRpb24pIHsKPiArICAgICAgICByZXR1cm4gYWJtLT5jb25maWd1cmF0 aW9uKGJ1aWxkZXIpOwo+ICsgICAgfQo+ICsgICAgcmV0dXJuIE5VTEw7Cj4gK30KPiArCj4gK3N0 YXRpYyBjb25zdCBUeXBlSW5mbyBhY3BpX2J1aWxkZXJfaW5mbyA9IHsKPiArICAgIC5uYW1lICAg ICAgICAgID0gVFlQRV9BQ1BJX0JVSUxERVIsCj4gKyAgICAucGFyZW50ICAgICAgICA9IFRZUEVf SU5URVJGQUNFLAo+ICsgICAgLmNsYXNzX3NpemUgICAgPSBzaXplb2YoQWNwaUJ1aWxkZXJNZXRo b2RzKSwKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lkIGFjcGlfYnVpbGRlcl9yZWdpc3Rlcl90eXBl KHZvaWQpCj4gK3sKPiArICAgIHR5cGVfcmVnaXN0ZXJfc3RhdGljKCZhY3BpX2J1aWxkZXJfaW5m byk7Cj4gK30KPiArCj4gK3R5cGVfaW5pdChhY3BpX2J1aWxkZXJfcmVnaXN0ZXJfdHlwZSkKPiBk aWZmIC0tZ2l0IGEvaHcvYWNwaS9NYWtlZmlsZS5vYmpzIGIvaHcvYWNwaS9NYWtlZmlsZS5vYmpz Cj4gaW5kZXggMTFjMzViY2I0NC4uMmYzODNhZGM2ZiAxMDA2NDQKPiAtLS0gYS9ody9hY3BpL01h a2VmaWxlLm9ianMKPiArKysgYi9ody9hY3BpL01ha2VmaWxlLm9ianMKPiBAQCAtMTEsNiArMTEs NyBAQCBjb21tb24tb2JqLSQoY2FsbCBsbm90LCQoQ09ORklHX0FDUElfWDg2KSkgKz0gYWNwaS1z dHViLm8KPiAgY29tbW9uLW9iai15ICs9IGFjcGlfaW50ZXJmYWNlLm8KPiAgY29tbW9uLW9iai15 ICs9IGJpb3MtbGlua2VyLWxvYWRlci5vCj4gIGNvbW1vbi1vYmoteSArPSBhbWwtYnVpbGQubwo+ ICtjb21tb24tb2JqLXkgKz0gYnVpbGRlci5vCj4gIAo+ICBjb21tb24tb2JqLSQoQ09ORklHX0lQ TUkpICs9IGlwbWkubwo+ICBjb21tb24tb2JqLSQoY2FsbCBsbm90LCQoQ09ORklHX0lQTUkpKSAr PSBpcG1pLXN0dWIubwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw=