From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hongyang Yang Subject: Re: [PATCH V2] libxl: introduce asynchronous execution API Date: Mon, 12 May 2014 10:33:23 +0800 Message-ID: <537032F3.30201@cn.fujitsu.com> References: <1399263265-8696-1-git-send-email-yanghy@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1399263265-8696-1-git-send-email-yanghy@cn.fujitsu.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.xen.org Cc: ian.campbell@citrix.com, wency@cn.fujitsu.com, stefano.stabellini@eu.citrix.com, andrew.cooper3@citrix.com, yunhong.jiang@intel.com, ian.jackson@eu.citrix.com, laijs@cn.fujitsu.com, eddie.dong@intel.com, rshriram@cs.ubc.ca, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org UGluZyEKCk9uIDA1LzA1LzIwMTQgMTI6MTQgUE0sIFlhbmcgSG9uZ3lhbmcgd3JvdGU6Cj4gMS5p bnRyb2R1Y2UgYXN5bmNocm9ub3VzIGV4ZWN1dGlvbiBBUEk6Cj4gICAgbGlieGxfX2FzeW5jX2V4 ZWNfaW5pdAo+ICAgIGxpYnhsX19hc3luY19leGVjX3N0YXJ0Cj4gICAgbGlieGxfX2FzeW5jX2V4 ZWNfaW51c2UKPiAyLnVzZSB0aGUgYXN5bmMgZXhlYyBBUEkgdG8gZXhlY3V0ZSBkZXZpY2UgaG90 cGx1ZyBzY3JpcHRzCj4KPiBTaWduZWQtb2ZmLWJ5OiBMYWkgSmlhbmdzaGFuIDxsYWlqc0Bjbi5m dWppdHN1LmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBXZW4gQ29uZ3lhbmcgPHdlbmN5QGNuLmZ1aml0 c3UuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFlhbmcgSG9uZ3lhbmcgPHlhbmdoeUBjbi5mdWppdHN1 LmNvbT4KPiBBY2tlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ Cj4gLS0tCj4gICB0b29scy9saWJ4bC9saWJ4bF9hb3V0aWxzLmMgIHwgODkgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIHRvb2xzL2xpYnhsL2xpYnhsX2Rl dmljZS5jICAgfCA3OCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAg dG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCB8IDM0ICsrKysrKysrKysrKysrKy0tCj4gICAz IGZpbGVzIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspLCA2MCBkZWxldGlvbnMoLSkKPgo+IGRp ZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9hb3V0aWxzLmMgYi90b29scy9saWJ4bC9saWJ4 bF9hb3V0aWxzLmMKPiBpbmRleCAxYzllYjllLi5iMTBkMmUxIDEwMDY0NAo+IC0tLSBhL3Rvb2xz L2xpYnhsL2xpYnhsX2FvdXRpbHMuYwo+ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2FvdXRpbHMu Ywo+IEBAIC00NTEsMyArNDUxLDkyIEBAIGludCBsaWJ4bF9fb3BlbnB0eXMobGlieGxfX29wZW5w dHlfc3RhdGUgKm9wLAo+ICAgICAgIHJldHVybiByYzsKPiAgIH0KPgo+ICtzdGF0aWMgdm9pZCBh c3luY19leGVjX3RpbWVvdXQobGlieGxfX2VnYyAqZWdjLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfX2V2X3RpbWUgKmV2LAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IHRpbWV2YWwgKnJlcXVlc3RlZF9hYnMpCj4gK3sKPiArICAg IGxpYnhsX19hc3luY19leGVjX3N0YXRlICphZXMgPSBDT05UQUlORVJfT0YoZXYsICphZXMsIHRp bWUpOwo+ICsgICAgU1RBVEVfQU9fR0MoYWVzLT5hbyk7Cj4gKwo+ICsgICAgbGlieGxfX2V2X3Rp bWVfZGVyZWdpc3RlcihnYywgJmFlcy0+dGltZSk7Cj4gKwo+ICsgICAgYXNzZXJ0KGxpYnhsX19l dl9jaGlsZF9pbnVzZSgmYWVzLT5jaGlsZCkpOwo+ICsgICAgTE9HKEVSUk9SLCAia2lsbGluZyBl eGVjdXRpb24gb2YgJXMgYmVjYXVzZSBvZiB0aW1lb3V0IiwgYWVzLT53aGF0KTsKPiArCj4gKyAg ICBpZiAoa2lsbChhZXMtPmNoaWxkLnBpZCwgU0lHS0lMTCkpIHsKPiArICAgICAgICBMT0dFVihF UlJPUiwgZXJybm8sICJ1bmFibGUgdG8ga2lsbCAlcyBbJWxkXSIsCj4gKyAgICAgICAgICAgICAg YWVzLT53aGF0LCAodW5zaWduZWQgbG9uZylhZXMtPmNoaWxkLnBpZCk7Cj4gKyAgICB9Cj4gKwo+ ICsgICAgcmV0dXJuOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBhc3luY19leGVjX2RvbmUobGli eGxfX2VnYyAqZWdjLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2V2X2No aWxkICpjaGlsZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpZF90IHBpZCwgaW50 IHN0YXR1cykKPiArewo+ICsgICAgbGlieGxfX2FzeW5jX2V4ZWNfc3RhdGUgKmFlcyA9IENPTlRB SU5FUl9PRihjaGlsZCwgKmFlcywgY2hpbGQpOwo+ICsgICAgU1RBVEVfQU9fR0MoYWVzLT5hbyk7 Cj4gKwo+ICsgICAgbGlieGxfX2V2X3RpbWVfZGVyZWdpc3RlcihnYywgJmFlcy0+dGltZSk7Cj4g Kwo+ICsgICAgaWYgKHN0YXR1cykgewo+ICsgICAgICAgIGxpYnhsX3JlcG9ydF9jaGlsZF9leGl0 c3RhdHVzKENUWCwgTElCWExfX0xPR19FUlJPUiwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhZXMtPndoYXQsIHBpZCwgc3RhdHVzKTsKPiArICAgIH0KPiArCj4gKyAg ICBhZXMtPmNhbGxiYWNrKGVnYywgYWVzLCBzdGF0dXMpOwo+ICt9Cj4gKwo+ICt2b2lkIGxpYnhs X19hc3luY19leGVjX2luaXQobGlieGxfX2FzeW5jX2V4ZWNfc3RhdGUgKmFlcykKPiArewo+ICsg ICAgbGlieGxfX2V2X3RpbWVfaW5pdCgmYWVzLT50aW1lKTsKPiArICAgIGxpYnhsX19ldl9jaGls ZF9pbml0KCZhZXMtPmNoaWxkKTsKPiArfQo+ICsKPiAraW50IGxpYnhsX19hc3luY19leGVjX3N0 YXJ0KGxpYnhsX19nYyAqZ2MsIGxpYnhsX19hc3luY19leGVjX3N0YXRlICphZXMpCj4gK3sKPiAr ICAgIHBpZF90IHBpZDsKPiArCj4gKyAgICAvKiBDb252ZW5pZW5jZSBhbGlhc2VzICovCj4gKyAg ICBsaWJ4bF9fZXZfY2hpbGQgKmNvbnN0IGNoaWxkID0gJmFlcy0+Y2hpbGQ7Cj4gKyAgICBjaGFy ICoqIGNvbnN0IGFyZ3MgPSBhZXMtPmFyZ3M7Cj4gKwo+ICsgICAgLyogU2V0IGV4ZWN1dGlvbiB0 aW1lb3V0ICovCj4gKyAgICBpZiAobGlieGxfX2V2X3RpbWVfcmVnaXN0ZXJfcmVsKGdjLCAmYWVz LT50aW1lLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3luY19leGVj X3RpbWVvdXQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcy0+dGlt ZW91dF9tcykpIHsKPiArICAgICAgICBMT0coRVJST1IsICJ1bmFibGUgdG8gcmVnaXN0ZXIgdGlt ZW91dCBmb3IgZXhlY3V0aW5nOiAlcyIsIGFlcy0+d2hhdCk7Cj4gKyAgICAgICAgZ290byBvdXQ7 Cj4gKyAgICB9Cj4gKwo+ICsgICAgTE9HKERFQlVHLCAiZm9ya2luZyB0byBleGVjdXRlOiAlcyAi LCBhZXMtPndoYXQpOwo+ICsKPiArICAgIC8qIEZvcmsgYW5kIGV4ZWMgKi8KPiArICAgIHBpZCA9 IGxpYnhsX19ldl9jaGlsZF9mb3JrKGdjLCBjaGlsZCwgYXN5bmNfZXhlY19kb25lKTsKPiArICAg IGlmIChwaWQgPT0gLTEpIHsKPiArICAgICAgICBMT0coRVJST1IsICJ1bmFibGUgdG8gZm9yayIp Owo+ICsgICAgICAgIGdvdG8gb3V0Owo+ICsgICAgfQo+ICsKPiArICAgIGlmICghcGlkKSB7Cj4g KyAgICAgICAgLyogY2hpbGQgKi8KPiArICAgICAgICBsaWJ4bF9fZXhlYyhnYywgYWVzLT5zdGRm ZHNbMF0sIGFlcy0+c3RkZmRzWzFdLAo+ICsgICAgICAgICAgICAgICAgICAgIGFlcy0+c3RkZmRz WzJdLCBhcmdzWzBdLCBhcmdzLCBhZXMtPmVudik7Cj4gKyAgICAgICAgLyogbm90cmVhY2hlZCAq Lwo+ICsgICAgICAgIGFib3J0KCk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gKwo+ ICtvdXQ6Cj4gKyAgICByZXR1cm4gRVJST1JfRkFJTDsKPiArfQo+ICsKPiArYm9vbCBsaWJ4bF9f YXN5bmNfZXhlY19pbnVzZShjb25zdCBsaWJ4bF9fYXN5bmNfZXhlY19zdGF0ZSAqYWVzKQo+ICt7 Cj4gKyAgICBib29sIHRpbWVfaW51c2UgPSBsaWJ4bF9fZXZfdGltZV9pc3JlZ2lzdGVyZWQoJmFl cy0+dGltZSk7Cj4gKyAgICBib29sIGNoaWxkX2ludXNlID0gbGlieGxfX2V2X2NoaWxkX2ludXNl KCZhZXMtPmNoaWxkKTsKPiArICAgIGFzc2VydCh0aW1lX2ludXNlID09IGNoaWxkX2ludXNlKTsK PiArICAgIHJldHVybiBjaGlsZF9pbnVzZTsKPiArfQo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4 bC9saWJ4bF9kZXZpY2UuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RldmljZS5jCj4gaW5kZXggZmE5 OWY3Ny4uOTBhZTU2NCAxMDA2NDQKPiAtLS0gYS90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYwo+ ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RldmljZS5jCj4gQEAgLTQzMCw3ICs0MzAsNyBAQCB2 b2lkIGxpYnhsX19wcmVwYXJlX2FvX2RldmljZShsaWJ4bF9fYW8gKmFvLCBsaWJ4bF9fYW9fZGV2 aWNlICphb2RldikKPiAgICAgICBhb2Rldi0+cmMgPSAwOwo+ICAgICAgIGFvZGV2LT5kZXYgPSBO VUxMOwo+ICAgICAgIGFvZGV2LT5udW1fZXhlYyA9IDA7Cj4gLSAgICAvKiBJbml0aWFsaXplIHRp bWVyIGZvciBRRU1VIEJvZGdlIGFuZCBob3RwbHVnIGV4ZWN1dGlvbiAqLwo+ICsgICAgLyogSW5p dGlhbGl6ZSB0aW1lciBmb3IgUUVNVSBCb2RnZSAqLwo+ICAgICAgIGxpYnhsX19ldl90aW1lX2lu aXQoJmFvZGV2LT50aW1lb3V0KTsKPiAgICAgICAvKgo+ICAgICAgICAqIEluaXRpYWxpemUgeHNf d2F0Y2gsIGJlY2F1c2UgaXQncyBub3QgdXNlZCBvbiBhbGwgcG9zc2libGUKPiBAQCAtNDQwLDcg KzQ0MCw3IEBAIHZvaWQgbGlieGxfX3ByZXBhcmVfYW9fZGV2aWNlKGxpYnhsX19hbyAqYW8sIGxp YnhsX19hb19kZXZpY2UgKmFvZGV2KQo+ICAgICAgIGFvZGV2LT5hY3RpdmUgPSAxOwo+ICAgICAg IC8qIFdlIGluaXQgdGhpcyBoZXJlIGJlY2F1c2Ugd2UgbWlnaHQgY2FsbCBkZXZpY2VfaG90cGx1 Z19kb25lCj4gICAgICAgICogd2l0aG91dCBhY3R1YWxseSBjYWxsaW5nIGFueSBob3RwbHVnIHNj cmlwdCAqLwo+IC0gICAgbGlieGxfX2V2X2NoaWxkX2luaXQoJmFvZGV2LT5jaGlsZCk7Cj4gKyAg ICBsaWJ4bF9fYXN5bmNfZXhlY19pbml0KCZhb2Rldi0+YWVzKTsKPiAgIH0KPgo+ICAgLyogbXVs dGlkZXYgKi8KPiBAQCAtNzA3LDEyICs3MDcsOSBAQCBzdGF0aWMgdm9pZCBkZXZpY2VfYmFja2Vu ZF9jbGVhbnVwKGxpYnhsX19nYyAqZ2MsCj4KPiAgIHN0YXRpYyB2b2lkIGRldmljZV9ob3RwbHVn KGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2FvX2RldmljZSAqYW9kZXYpOwo+Cj4gLXN0YXRpYyB2 b2lkIGRldmljZV9ob3RwbHVnX3RpbWVvdXRfY2IobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZXZf dGltZSAqZXYsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHRpbWV2YWwgKnJlcXVlc3RlZF9hYnMpOwo+IC0KPiAgIHN0YXRpYyB2b2lkIGRldmlj ZV9ob3RwbHVnX2NoaWxkX2RlYXRoX2NiKGxpYnhsX19lZ2MgKmVnYywKPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2V2X2NoaWxkICpjaGlsZCwKPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlkX3QgcGlkLCBpbnQg c3RhdHVzKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfX2FzeW5jX2V4ZWNfc3RhdGUgKmFlcywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IHN0YXR1cyk7Cj4KPiAgIHN0YXRpYyB2b2lkIGRldmljZV9kZXN0 cm95X2JlX3RpbWVvdXRfY2IobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZXZfdGltZSAqZXYsCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0 aW1ldmFsICpyZXF1ZXN0ZWRfYWJzKTsKPiBAQCAtOTUzLDExICs5NTAsMTEgQEAgc3RhdGljIHZv aWQgZGV2aWNlX2JhY2tlbmRfY2xlYW51cChsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9fYW9fZGV2aWNl ICphb2RldikKPiAgIHN0YXRpYyB2b2lkIGRldmljZV9ob3RwbHVnKGxpYnhsX19lZ2MgKmVnYywg bGlieGxfX2FvX2RldmljZSAqYW9kZXYpCj4gICB7Cj4gICAgICAgU1RBVEVfQU9fR0MoYW9kZXYt PmFvKTsKPiArICAgIGxpYnhsX19hc3luY19leGVjX3N0YXRlICphZXMgPSAmYW9kZXYtPmFlczsK PiAgICAgICBjaGFyICpiZV9wYXRoID0gbGlieGxfX2RldmljZV9iYWNrZW5kX3BhdGgoZ2MsIGFv ZGV2LT5kZXYpOwo+ICAgICAgIGNoYXIgKiphcmdzID0gTlVMTCwgKiplbnYgPSBOVUxMOwo+ICAg ICAgIGludCByYyA9IDA7Cj4gICAgICAgaW50IGhvdHBsdWcsIG51bGxmZCA9IC0xOwo+IC0gICAg cGlkX3QgcGlkOwo+ICAgICAgIHVpbnQzMl90IGRvbWlkOwo+Cj4gICAgICAgLyoKPiBAQCAtMTAw OSwxNiArMTAwNiw2IEBAIHN0YXRpYyB2b2lkIGRldmljZV9ob3RwbHVnKGxpYnhsX19lZ2MgKmVn YywgbGlieGxfX2FvX2RldmljZSAqYW9kZXYpCj4gICAgICAgICAgIGdvdG8gb3V0Owo+ICAgICAg IH0KPgo+IC0gICAgLyogU2V0IGhvdHBsdWcgdGltZW91dCAqLwo+IC0gICAgcmMgPSBsaWJ4bF9f ZXZfdGltZV9yZWdpc3Rlcl9yZWwoZ2MsICZhb2Rldi0+dGltZW91dCwKPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZV9ob3RwbHVnX3RpbWVvdXRfY2IsCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9IT1RQTFVHX1RJTUVPVVQg KiAxMDAwKTsKPiAtICAgIGlmIChyYykgewo+IC0gICAgICAgIExPRyhFUlJPUiwgInVuYWJsZSB0 byByZWdpc3RlciB0aW1lb3V0IGZvciBob3RwbHVnIGRldmljZSAlcyIsIGJlX3BhdGgpOwo+IC0g ICAgICAgIGdvdG8gb3V0Owo+IC0gICAgfQo+IC0KPiAtICAgIGFvZGV2LT53aGF0ID0gR0NTUFJJ TlRGKCIlcyAlcyIsIGFyZ3NbMF0sIGFyZ3NbMV0pOwo+ICAgICAgIExPRyhERUJVRywgImNhbGxp bmcgaG90cGx1ZyBzY3JpcHQ6ICVzICVzIiwgYXJnc1swXSwgYXJnc1sxXSk7Cj4KPiAgICAgICBu dWxsZmQgPSBvcGVuKCIvZGV2L251bGwiLCBPX1JET05MWSk7Cj4gQEAgLTEwMjgsMjMgKzEwMTUs MjIgQEAgc3RhdGljIHZvaWQgZGV2aWNlX2hvdHBsdWcobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9f YW9fZGV2aWNlICphb2RldikKPiAgICAgICAgICAgZ290byBvdXQ7Cj4gICAgICAgfQo+Cj4gLSAg ICAvKiBmb3JrIGFuZCBleGVjdXRlIGhvdHBsdWcgc2NyaXB0ICovCj4gLSAgICBwaWQgPSBsaWJ4 bF9fZXZfY2hpbGRfZm9yayhnYywgJmFvZGV2LT5jaGlsZCwgZGV2aWNlX2hvdHBsdWdfY2hpbGRf ZGVhdGhfY2IpOwo+IC0gICAgaWYgKHBpZCA9PSAtMSkgewo+IC0gICAgICAgIExPRyhFUlJPUiwg InVuYWJsZSB0byBmb3JrIik7Cj4gLSAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwo+ICsgICAgYWVz LT5hbyA9IGFvOwo+ICsgICAgYWVzLT53aGF0ID0gR0NTUFJJTlRGKCIlcyAlcyIsIGFyZ3NbMF0s IGFyZ3NbMV0pOwo+ICsgICAgYWVzLT5lbnYgPSBlbnY7Cj4gKyAgICBhZXMtPmFyZ3MgPSBhcmdz Owo+ICsgICAgYWVzLT5jYWxsYmFjayA9IGRldmljZV9ob3RwbHVnX2NoaWxkX2RlYXRoX2NiOwo+ ICsgICAgYWVzLT50aW1lb3V0X21zID0gTElCWExfSE9UUExVR19USU1FT1VUICogMTAwMDsKPiAr ICAgIGFlcy0+c3RkZmRzWzBdID0gbnVsbGZkOwo+ICsgICAgYWVzLT5zdGRmZHNbMV0gPSAyOwo+ ICsgICAgYWVzLT5zdGRmZHNbMl0gPSAtMTsKPiArCj4gKyAgICByYyA9IGxpYnhsX19hc3luY19l eGVjX3N0YXJ0KGdjLCBhZXMpOwo+ICsgICAgaWYgKHJjKQo+ICAgICAgICAgICBnb3RvIG91dDsK PiAtICAgIH0KPiAtCj4gLSAgICBpZiAoIXBpZCkgewo+IC0gICAgICAgIC8qIGNoaWxkICovCj4g LSAgICAgICAgbGlieGxfX2V4ZWMoZ2MsIG51bGxmZCwgMiwgLTEsIGFyZ3NbMF0sIGFyZ3MsIGVu dik7Cj4gLSAgICAgICAgLyogbm90cmVhY2hlZCAqLwo+IC0gICAgICAgIGFib3J0KCk7Cj4gLSAg ICB9Cj4KPiAgICAgICBjbG9zZShudWxsZmQpOwo+IC0gICAgYXNzZXJ0KGxpYnhsX19ldl9jaGls ZF9pbnVzZSgmYW9kZXYtPmNoaWxkKSk7Cj4gKyAgICBhc3NlcnQobGlieGxfX2FzeW5jX2V4ZWNf aW51c2UoJmFvZGV2LT5hZXMpKTsKPgo+ICAgICAgIHJldHVybjsKPgo+IEBAIC0xMDU1LDI5ICsx MDQxLDExIEBAIG91dDoKPiAgICAgICByZXR1cm47Cj4gICB9Cj4KPiAtc3RhdGljIHZvaWQgZGV2 aWNlX2hvdHBsdWdfdGltZW91dF9jYihsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19ldl90aW1lICpl diwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg dGltZXZhbCAqcmVxdWVzdGVkX2FicykKPiAtewo+IC0gICAgbGlieGxfX2FvX2RldmljZSAqYW9k ZXYgPSBDT05UQUlORVJfT0YoZXYsICphb2RldiwgdGltZW91dCk7Cj4gLSAgICBTVEFURV9BT19H Qyhhb2Rldi0+YW8pOwo+IC0KPiAtICAgIGxpYnhsX19ldl90aW1lX2RlcmVnaXN0ZXIoZ2MsICZh b2Rldi0+dGltZW91dCk7Cj4gLQo+IC0gICAgYXNzZXJ0KGxpYnhsX19ldl9jaGlsZF9pbnVzZSgm YW9kZXYtPmNoaWxkKSk7Cj4gLSAgICBMT0coREVCVUcsICJraWxsaW5nIGhvdHBsdWcgc2NyaXB0 ICVzIGJlY2F1c2Ugb2YgdGltZW91dCIsIGFvZGV2LT53aGF0KTsKPiAtICAgIGlmIChraWxsKGFv ZGV2LT5jaGlsZC5waWQsIFNJR0tJTEwpKSB7Cj4gLSAgICAgICAgTE9HRVYoRVJST1IsIGVycm5v LCAidW5hYmxlIHRvIGtpbGwgaG90cGx1ZyBzY3JpcHQgJXMgWyVsZF0iLAo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYW9kZXYtPndoYXQsICh1bnNpZ25lZCBsb25nKWFvZGV2LT5jaGls ZC5waWQpOwo+IC0gICAgfQo+IC0KPiAtICAgIHJldHVybjsKPiAtfQo+IC0KPiAgIHN0YXRpYyB2 b2lkIGRldmljZV9ob3RwbHVnX2NoaWxkX2RlYXRoX2NiKGxpYnhsX19lZ2MgKmVnYywKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2V2X2NoaWxkICpj aGlsZCwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlkX3Qg cGlkLCBpbnQgc3RhdHVzKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9fYXN5bmNfZXhlY19zdGF0ZSAqYWVzLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhdHVzKQo+ICAgewo+IC0gICAgbGlieGxfX2Fv X2RldmljZSAqYW9kZXYgPSBDT05UQUlORVJfT0YoY2hpbGQsICphb2RldiwgY2hpbGQpOwo+ICsg ICAgbGlieGxfX2FvX2RldmljZSAqYW9kZXYgPSBDT05UQUlORVJfT0YoYWVzLCAqYW9kZXYsIGFl cyk7Cj4gICAgICAgU1RBVEVfQU9fR0MoYW9kZXYtPmFvKTsKPiAgICAgICBjaGFyICpiZV9wYXRo ID0gbGlieGxfX2RldmljZV9iYWNrZW5kX3BhdGgoZ2MsIGFvZGV2LT5kZXYpOwo+ICAgICAgIGNo YXIgKmhvdHBsdWdfZXJyb3I7Cj4gQEAgLTEwODUsOCArMTA1Myw2IEBAIHN0YXRpYyB2b2lkIGRl dmljZV9ob3RwbHVnX2NoaWxkX2RlYXRoX2NiKGxpYnhsX19lZ2MgKmVnYywKPiAgICAgICBkZXZp Y2VfaG90cGx1Z19jbGVhbihnYywgYW9kZXYpOwo+Cj4gICAgICAgaWYgKHN0YXR1cykgewo+IC0g ICAgICAgIGxpYnhsX3JlcG9ydF9jaGlsZF9leGl0c3RhdHVzKENUWCwgTElCWExfX0xPR19FUlJP UiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhb2Rldi0+d2hhdCwg cGlkLCBzdGF0dXMpOwo+ICAgICAgICAgICBob3RwbHVnX2Vycm9yID0gbGlieGxfX3hzX3JlYWQo Z2MsIFhCVF9OVUxMLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R0NTUFJJTlRGKCIlcy9ob3RwbHVnLWVycm9yIiwgYmVfcGF0aCkpOwo+ICAgICAgICAgICBpZiAo aG90cGx1Z19lcnJvcikKPiBAQCAtMTE3OCw3ICsxMTQ0LDcgQEAgc3RhdGljIHZvaWQgZGV2aWNl X2hvdHBsdWdfY2xlYW4obGlieGxfX2djICpnYywgbGlieGxfX2FvX2RldmljZSAqYW9kZXYpCj4g ICAgICAgLyogQ2xlYW4gZXZlbnRzIGFuZCBjaGVjayByZWVudHJhbmN5ICovCj4gICAgICAgbGli eGxfX2V2X3RpbWVfZGVyZWdpc3RlcihnYywgJmFvZGV2LT50aW1lb3V0KTsKPiAgICAgICBsaWJ4 bF9fZXZfeHN3YXRjaF9kZXJlZ2lzdGVyKGdjLCAmYW9kZXYtPnhzX3dhdGNoKTsKPiAtICAgIGFz c2VydCghbGlieGxfX2V2X2NoaWxkX2ludXNlKCZhb2Rldi0+Y2hpbGQpKTsKPiArICAgIGFzc2Vy dCghbGlieGxfX2FzeW5jX2V4ZWNfaW51c2UoJmFvZGV2LT5hZXMpKTsKPiAgIH0KPgo+ICAgc3Rh dGljIHZvaWQgZGV2aWNlc19yZW1vdmVfY2FsbGJhY2sobGlieGxfX2VnYyAqZWdjLAo+IGRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMvbGlieGwvbGlieGxf aW50ZXJuYWwuaAo+IGluZGV4IGMyYjczYzQuLmZlNGEzZDEgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMv bGlieGwvbGlieGxfaW50ZXJuYWwuaAo+ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFs LmgKPiBAQCAtMjAzMCw2ICsyMDMwLDMzIEBAIF9oaWRkZW4gY29uc3QgY2hhciAqbGlieGxfX3hl bl9zY3JpcHRfZGlyX3BhdGgodm9pZCk7Cj4gICBfaGlkZGVuIGNvbnN0IGNoYXIgKmxpYnhsX19s b2NrX2Rpcl9wYXRoKHZvaWQpOwo+ICAgX2hpZGRlbiBjb25zdCBjaGFyICpsaWJ4bF9fcnVuX2Rp cl9wYXRoKHZvaWQpOwo+Cj4gKy8qLS0tLS0gc3VicHJvY2VzcyBleGVjdXRpb24gd2l0aCB0aW1l b3V0IC0tLS0tKi8KPiArCj4gK3R5cGVkZWYgc3RydWN0IGxpYnhsX19hc3luY19leGVjX3N0YXRl IGxpYnhsX19hc3luY19leGVjX3N0YXRlOwo+ICsKPiArdHlwZWRlZiB2b2lkIGxpYnhsX19hc3lu Y19leGVjX2NhbGxiYWNrKGxpYnhsX19lZ2MgKmVnYywKPiArICAgICAgICAgICAgICAgICAgICAg ICAgbGlieGxfX2FzeW5jX2V4ZWNfc3RhdGUgKmFlcywgaW50IHN0YXR1cyk7Cj4gKwo+ICtzdHJ1 Y3QgbGlieGxfX2FzeW5jX2V4ZWNfc3RhdGUgewo+ICsgICAgLyogY2FsbGVyIG11c3QgZmlsbCB0 aGVzZSBpbiAqLwo+ICsgICAgbGlieGxfX2FvICphbzsKPiArICAgIGNvbnN0IGNoYXIgKndoYXQ7 IC8qIGZvciBlcnJvciBtc2dzLCB3aGF0IHdlJ3JlIGV4ZWN1dGluZyAqLwo+ICsgICAgaW50IHRp bWVvdXRfbXM7Cj4gKyAgICBsaWJ4bF9fYXN5bmNfZXhlY19jYWxsYmFjayAqY2FsbGJhY2s7Cj4g KyAgICAvKiBjYWxsZXIgbXVzdCBmaWxsIGluOyBhcyBmb3IgbGlieGxfX2V4ZWMgKi8KPiArICAg IGludCBzdGRmZHNbM107Cj4gKyAgICBjaGFyICoqYXJnczsgLyogZXhlY3V0aW9uIGFyZ3VtZW50 cyAqLwo+ICsgICAgY2hhciAqKmVudjsgLyogZXhlY3V0aW9uIGVudmlyb25tZW50ICovCj4gKwo+ ICsgICAgLyogcHJpdmF0ZSAqLwo+ICsgICAgbGlieGxfX2V2X3RpbWUgdGltZTsKPiArICAgIGxp YnhsX19ldl9jaGlsZCBjaGlsZDsKPiArfTsKPiArCj4gK3ZvaWQgbGlieGxfX2FzeW5jX2V4ZWNf aW5pdChsaWJ4bF9fYXN5bmNfZXhlY19zdGF0ZSAqYWVzKTsKPiAraW50IGxpYnhsX19hc3luY19l eGVjX3N0YXJ0KGxpYnhsX19nYyAqZ2MsIGxpYnhsX19hc3luY19leGVjX3N0YXRlICphZXMpOwo+ ICtib29sIGxpYnhsX19hc3luY19leGVjX2ludXNlKGNvbnN0IGxpYnhsX19hc3luY19leGVjX3N0 YXRlICphZXMpOwo+ICsKPiAgIC8qLS0tLS0gZGV2aWNlIGFkZGl0aW9uL3JlbW92YWwgLS0tLS0q Lwo+Cj4gICB0eXBlZGVmIHN0cnVjdCBsaWJ4bF9fYW9fZGV2aWNlIGxpYnhsX19hb19kZXZpY2U7 Cj4gQEAgLTIwNjYsMTQgKzIwOTMsMTMgQEAgc3RydWN0IGxpYnhsX19hb19kZXZpY2Ugewo+ICAg ICAgIGxpYnhsX19tdWx0aWRldiAqbXVsdGlkZXY7IC8qIHJlZmVyZW5jZSB0byB0aGUgY29udGFp bmluZyBtdWx0aWRldiAqLwo+ICAgICAgIC8qIHByaXZhdGUgZm9yIGFkZC9yZW1vdmUgaW1wbGVt ZW50YXRpb24gKi8KPiAgICAgICBsaWJ4bF9fZXZfZGV2c3RhdGUgYmFja2VuZF9kczsKPiAtICAg IC8qIEJvZGdlIGZvciBRZW11IGRldmljZXMsIGFsc28gdXNlZCBmb3IgdGltZW91dCBvZiBob3Rw bHVnIGV4ZWN1dGlvbiAqLwo+ICsgICAgLyogQm9kZ2UgZm9yIFFlbXUgZGV2aWNlcyAqLwo+ICAg ICAgIGxpYnhsX19ldl90aW1lIHRpbWVvdXQ7Cj4gICAgICAgLyogeGVuc3RvcmUgd2F0Y2ggZm9y IGJhY2tlbmQgcGF0aCBvZiBkcml2ZXIgZG9tYWlucyAqLwo+ICAgICAgIGxpYnhsX19ldl94c3dh dGNoIHhzX3dhdGNoOwo+IC0gICAgLyogZGV2aWNlIGhvdHBsdWcgZXhlY3V0aW9uICovCj4gLSAg ICBjb25zdCBjaGFyICp3aGF0Owo+ICAgICAgIGludCBudW1fZXhlYzsKPiAtICAgIGxpYnhsX19l dl9jaGlsZCBjaGlsZDsKPiArICAgIC8qIGZvciBjYWxsaW5nIGhvdHBsdWcgc2NyaXB0cyAqLwo+ ICsgICAgbGlieGxfX2FzeW5jX2V4ZWNfc3RhdGUgYWVzOwo+ICAgfTsKPgo+ICAgLyoKPgoKLS0g ClRoYW5rcywKWWFuZy4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==