From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH libdrm 5/5] [libdrm] add syncobj timeline tests Date: Mon, 5 Nov 2018 10:39:04 +0100 Message-ID: <20181105093904.GI21967@phenom.ffwll.local> References: <20181102082649.4542-1-david1.zhou@amd.com> <20181102082649.4542-5-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181102082649.4542-5-david1.zhou-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Chunming Zhou Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org T24gRnJpLCBOb3YgMDIsIDIwMTggYXQgMDQ6MjY6NDlQTSArMDgwMCwgQ2h1bm1pbmcgWmhvdSB3 cm90ZToKPiBTaWduZWQtb2ZmLWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29t Pgo+IC0tLQo+ICB0ZXN0cy9hbWRncHUvTWFrZWZpbGUuYW0gICAgIHwgICAzICstCj4gIHRlc3Rz L2FtZGdwdS9hbWRncHVfdGVzdC5jICAgfCAgMTIgKysKPiAgdGVzdHMvYW1kZ3B1L2FtZGdwdV90 ZXN0LmggICB8ICAyMSArKysKPiAgdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkICAgICB8ICAgMiAr LQo+ICB0ZXN0cy9hbWRncHUvc3luY29ial90ZXN0cy5jIHwgMjYzICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4gIDUgZmlsZXMgY2hhbmdlZCwgMjk5IGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9hbWRncHUvc3luY29i al90ZXN0cy5jCgpUaGlzIHRlc3RjYXNlIHNlZW1zIHZlcnkgbXVjaCBhIGhhcHB5IHN1bmRheSBz Y2VuYXJpbywgbm8gdGVzdHMgYXQgYWxsIGZvcgpjb3JuZXIgY2FzZXMsIGludmFsaWQgaW5wdXQs IGFuZCBnZW5lcmFsbHkgdHJ5aW5nIHRvIHB1bGwgdGhlIGtlcm5lbCBvdmVyCnRoZSB0YWJsZS4g SSB0aGluayB3ZSBuZWVkIGEgbG90IG1vcmUsIGFuZCBwcmVmZXJyYWJseSBpbiBpZ3QsIHdoZXJl IHdlCmFscmVhZHkgaGF2ZSBhIGdvb2QgYmFzZWxpbmUgb2YgZHJtX3N5bmNvYmogdGVzdHMuCi1E YW5pZWwKCj4gCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9NYWtlZmlsZS5hbSBiL3Rlc3Rz L2FtZGdwdS9NYWtlZmlsZS5hbQo+IGluZGV4IDQ0N2ZmMjE3Li5kM2ZiZTJiYiAxMDA2NDQKPiAt LS0gYS90ZXN0cy9hbWRncHUvTWFrZWZpbGUuYW0KPiArKysgYi90ZXN0cy9hbWRncHUvTWFrZWZp bGUuYW0KPiBAQCAtMzMsNCArMzMsNSBAQCBhbWRncHVfdGVzdF9TT1VSQ0VTID0gXAo+ICAJdmNu X3Rlc3RzLmMgXAo+ICAJdXZlX2liLmggXAo+ICAJZGVhZGxvY2tfdGVzdHMuYyBcCj4gLQl2bV90 ZXN0cy5jCj4gKwl2bV90ZXN0cy5jIFwKPiArCXN5bmNvYmpfdGVzdHMuYwo+IGRpZmYgLS1naXQg YS90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5j Cj4gaW5kZXggOTZmY2Q2ODcuLmNkY2I5M2E1IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2FtZGdwdS9h bWRncHVfdGVzdC5jCj4gKysrIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMKPiBAQCAtNTYs NiArNTYsNyBAQAo+ICAjZGVmaW5lIFVWRF9FTkNfVEVTVFNfU1RSICJVVkQgRU5DIFRlc3RzIgo+ ICAjZGVmaW5lIERFQURMT0NLX1RFU1RTX1NUUiAiRGVhZGxvY2sgVGVzdHMiCj4gICNkZWZpbmUg Vk1fVEVTVFNfU1RSICJWTSBUZXN0cyIKPiArI2RlZmluZSBTWU5DT0JKX1RJTUVMSU5FX1RFU1RT X1NUUiAiU1lOQ09CSiBUSU1FTElORSBUZXN0cyIKPiAgCj4gIC8qKgo+ICAgKiAgT3BlbiBoYW5k bGVzIGZvciBhbWRncHUgZGV2aWNlcwo+IEBAIC0xMTYsNiArMTE3LDEyIEBAIHN0YXRpYyBDVV9T dWl0ZUluZm8gc3VpdGVzW10gPSB7Cj4gIAkJLnBDbGVhbnVwRnVuYyA9IHN1aXRlX3ZtX3Rlc3Rz X2NsZWFuLAo+ICAJCS5wVGVzdHMgPSB2bV90ZXN0cywKPiAgCX0sCj4gKwl7Cj4gKwkJLnBOYW1l ID0gU1lOQ09CSl9USU1FTElORV9URVNUU19TVFIsCj4gKwkJLnBJbml0RnVuYyA9IHN1aXRlX3N5 bmNvYmpfdGltZWxpbmVfdGVzdHNfaW5pdCwKPiArCQkucENsZWFudXBGdW5jID0gc3VpdGVfc3lu Y29ial90aW1lbGluZV90ZXN0c19jbGVhbiwKPiArCQkucFRlc3RzID0gc3luY29ial90aW1lbGlu ZV90ZXN0cywKPiArCX0sCj4gIAo+ICAJQ1VfU1VJVEVfSU5GT19OVUxMLAo+ICB9Owo+IEBAIC0x NjUsNiArMTcyLDExIEBAIHN0YXRpYyBTdWl0ZXNfQWN0aXZlX1N0YXR1cyBzdWl0ZXNfYWN0aXZl X3N0YXRbXSA9IHsKPiAgCQkJLnBOYW1lID0gVk1fVEVTVFNfU1RSLAo+ICAJCQkucEFjdGl2ZSA9 IHN1aXRlX3ZtX3Rlc3RzX2VuYWJsZSwKPiAgCQl9LAo+ICsJCXsKPiArCQkJLnBOYW1lID0gU1lO Q09CSl9USU1FTElORV9URVNUU19TVFIsCj4gKwkJCS5wQWN0aXZlID0gc3VpdGVfc3luY29ial90 aW1lbGluZV90ZXN0c19lbmFibGUsCj4gKwkJfSwKPiArCj4gIH07Cj4gIAo+ICAKPiBkaWZmIC0t Z2l0IGEvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmggYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rl c3QuaAo+IGluZGV4IDA2MDlhNzRiLi45NDZlOTFjMiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9hbWRn cHUvYW1kZ3B1X3Rlc3QuaAo+ICsrKyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oCj4gQEAg LTE5NCw2ICsxOTQsMjcgQEAgQ1VfQk9PTCBzdWl0ZV92bV90ZXN0c19lbmFibGUodm9pZCk7Cj4g ICAqLwo+ICBleHRlcm4gQ1VfVGVzdEluZm8gdm1fdGVzdHNbXTsKPiAgCj4gKy8qKgo+ICsgKiBJ bml0aWFsaXplIHN5bmNvYmogdGltZWxpbmUgdGVzdCBzdWl0ZQo+ICsgKi8KPiAraW50IHN1aXRl X3N5bmNvYmpfdGltZWxpbmVfdGVzdHNfaW5pdCgpOwo+ICsKPiArLyoqCj4gKyAqIERlaW5pdGlh bGl6ZSBzeW5jb2JqIHRpbWVsaW5lIHRlc3Qgc3VpdGUKPiArICovCj4gK2ludCBzdWl0ZV9zeW5j b2JqX3RpbWVsaW5lX3Rlc3RzX2NsZWFuKCk7Cj4gKwo+ICsvKioKPiArICogRGVjaWRlIGlmIHRo ZSBzdWl0ZSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3Igbm90Lgo+ICsgKi8KPiArQ1VfQk9PTCBz dWl0ZV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3RzX2VuYWJsZSh2b2lkKTsKPiArCj4gKy8qKgo+ICsg KiBUZXN0cyBpbiBzeW5jb2JqIHRpbWVsaW5lIHRlc3Qgc3VpdGUKPiArICovCj4gK2V4dGVybiBD VV9UZXN0SW5mbyBzeW5jb2JqX3RpbWVsaW5lX3Rlc3RzW107Cj4gKwo+ICsKPiAgLyoqCj4gICAq IEhlbHBlciBmdW5jdGlvbnMKPiAgICovCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9tZXNv bi5idWlsZCBiL3Rlc3RzL2FtZGdwdS9tZXNvbi5idWlsZAo+IGluZGV4IDRjMTIzN2M2Li4zY2Vl YzcxNSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9hbWRncHUvbWVzb24uYnVpbGQKPiArKysgYi90ZXN0 cy9hbWRncHUvbWVzb24uYnVpbGQKPiBAQCAtMjQsNyArMjQsNyBAQCBpZiBkZXBfY3VuaXQuZm91 bmQoKQo+ICAgICAgZmlsZXMoCj4gICAgICAgICdhbWRncHVfdGVzdC5jJywgJ2Jhc2ljX3Rlc3Rz LmMnLCAnYm9fdGVzdHMuYycsICdjc190ZXN0cy5jJywKPiAgICAgICAgJ3ZjZV90ZXN0cy5jJywg J3V2ZF9lbmNfdGVzdHMuYycsICd2Y25fdGVzdHMuYycsICdkZWFkbG9ja190ZXN0cy5jJywKPiAt ICAgICAgJ3ZtX3Rlc3RzLmMnLAo+ICsgICAgICAndm1fdGVzdHMuYycsICdzeW5jb2JqX3Rlc3Rz LmMnLAo+ICAgICAgKSwKPiAgICAgIGRlcGVuZGVuY2llcyA6IFtkZXBfY3VuaXQsIGRlcF90aHJl YWRzXSwKPiAgICAgIGluY2x1ZGVfZGlyZWN0b3JpZXMgOiBbaW5jX3Jvb3QsIGluY19kcm0sIGlu Y2x1ZGVfZGlyZWN0b3JpZXMoJy4uLy4uL2FtZGdwdScpXSwKPiBkaWZmIC0tZ2l0IGEvdGVzdHMv YW1kZ3B1L3N5bmNvYmpfdGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9zeW5jb2JqX3Rlc3RzLmMKPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwLi4yYTM0NTQ5MAo+IC0tLSAvZGV2 L251bGwKPiArKysgYi90ZXN0cy9hbWRncHUvc3luY29ial90ZXN0cy5jCj4gQEAgLTAsMCArMSwy NjMgQEAKPiArLyoKPiArICogQ29weXJpZ2h0IDIwMTcgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp bmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Ig c2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv bSB0aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPiAr ICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4g KyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4g Tk8gRVZFTlQgU0hBTEwKPiArICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMp IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCj4gKyAqIE9USEVSIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAo+ ICsgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX QVJFIE9SIFRIRSBVU0UgT1IKPiArICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ ICsgKgo+ICsqLwo+ICsKPiArI2luY2x1ZGUgIkNVbml0L0Jhc2ljLmgiCj4gKwo+ICsjaW5jbHVk ZSAiYW1kZ3B1X3Rlc3QuaCIKPiArI2luY2x1ZGUgImFtZGdwdV9kcm0uaCIKPiArI2luY2x1ZGUg ImFtZGdwdV9pbnRlcm5hbC5oIgo+ICsjaW5jbHVkZSA8cHRocmVhZC5oPgo+ICsKPiArc3RhdGlj ICBhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlOwo+ICtzdGF0aWMgIHVpbnQzMl90 ICBtYWpvcl92ZXJzaW9uOwo+ICtzdGF0aWMgIHVpbnQzMl90ICBtaW5vcl92ZXJzaW9uOwo+ICsK PiArc3RhdGljIHZvaWQgYW1kZ3B1X3N5bmNvYmpfdGltZWxpbmVfdGVzdCh2b2lkKTsKPiArCj4g K0NVX0JPT0wgc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19lbmFibGUodm9pZCkKPiArewo+ ICsJcmV0dXJuIENVX1RSVUU7Cj4gK30KPiArCj4gK2ludCBzdWl0ZV9zeW5jb2JqX3RpbWVsaW5l X3Rlc3RzX2luaXQodm9pZCkKPiArewo+ICsJaW50IHI7Cj4gKwo+ICsJciA9IGFtZGdwdV9kZXZp Y2VfaW5pdGlhbGl6ZShkcm1fYW1kZ3B1WzBdLCAmbWFqb3JfdmVyc2lvbiwKPiArCQkJCSAgICZt aW5vcl92ZXJzaW9uLCAmZGV2aWNlX2hhbmRsZSk7Cj4gKwo+ICsJaWYgKHIpIHsKPiArCQlpZiAo KHIgPT0gLUVBQ0NFUykgJiYgKGVycm5vID09IEVBQ0NFUykpCj4gKwkJCXByaW50ZigiXG5cbkVy cm9yOiVzLiAiCj4gKwkJCQkiSGludDpUcnkgdG8gcnVuIHRoaXMgdGVzdCBwcm9ncmFtIGFzIHJv b3QuIiwKPiArCQkJCXN0cmVycm9yKGVycm5vKSk7Cj4gKwkJcmV0dXJuIENVRV9TSU5JVF9GQUlM RUQ7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIENVRV9TVUNDRVNTOwo+ICt9Cj4gKwo+ICtpbnQgc3Vp dGVfc3luY29ial90aW1lbGluZV90ZXN0c19jbGVhbih2b2lkKQo+ICt7Cj4gKwlpbnQgciA9IGFt ZGdwdV9kZXZpY2VfZGVpbml0aWFsaXplKGRldmljZV9oYW5kbGUpOwo+ICsKPiArCWlmIChyID09 IDApCj4gKwkJcmV0dXJuIENVRV9TVUNDRVNTOwo+ICsJZWxzZQo+ICsJCXJldHVybiBDVUVfU0NM RUFOX0ZBSUxFRDsKPiArfQo+ICsKPiArCj4gK0NVX1Rlc3RJbmZvIHN5bmNvYmpfdGltZWxpbmVf dGVzdHNbXSA9IHsKPiArCXsgInN5bmNvYmogdGltZWxpbmUgdGVzdCIsICBhbWRncHVfc3luY29i al90aW1lbGluZV90ZXN0IH0sCj4gKwlDVV9URVNUX0lORk9fTlVMTCwKPiArfTsKPiArCj4gKyNk ZWZpbmUgR0ZYX0NPTVBVVEVfTk9QICAweGZmZmYxMDAwCj4gKyNkZWZpbmUgU0RNQV9OT1AgIDB4 MAo+ICtzdGF0aWMgaW50IHN5bmNvYmpfY29tbWFuZF9zdWJtaXNzaW9uX2hlbHBlcih1aW50MzJf dCBzeW5jb2JqX2hhbmRsZSwgYm9vbAo+ICsJCQkJCSAgICAgd2FpdF9vcl9zaWduYWwsIHVpbnQ2 NF90IHBvaW50KQo+ICt7Cj4gKwlhbWRncHVfY29udGV4dF9oYW5kbGUgY29udGV4dF9oYW5kbGU7 Cj4gKwlhbWRncHVfYm9faGFuZGxlIGliX3Jlc3VsdF9oYW5kbGU7Cj4gKwl2b2lkICppYl9yZXN1 bHRfY3B1Owo+ICsJdWludDY0X3QgaWJfcmVzdWx0X21jX2FkZHJlc3M7Cj4gKwlzdHJ1Y3QgZHJt X2FtZGdwdV9jc19jaHVuayBjaHVua3NbMl07Cj4gKwlzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVu a19kYXRhIGNodW5rX2RhdGE7Cj4gKwlzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19zeW5jb2Jq IHN5bmNvYmpfZGF0YTsKPiArCXN0cnVjdCBhbWRncHVfY3NfZmVuY2UgZmVuY2Vfc3RhdHVzOwo+ ICsJYW1kZ3B1X2JvX2xpc3RfaGFuZGxlIGJvX2xpc3Q7Cj4gKwlhbWRncHVfdmFfaGFuZGxlIHZh X2hhbmRsZTsKPiArCXVpbnQzMl90IGV4cGlyZWQsIGZsYWdzOwo+ICsJaW50IGksIHI7Cj4gKwl1 aW50NjRfdCBzZXFfbm87Cj4gKwlzdGF0aWMgdWludDMyX3QgKnB0cjsKPiArCj4gKwlyID0gYW1k Z3B1X2NzX2N0eF9jcmVhdGUoZGV2aWNlX2hhbmRsZSwgJmNvbnRleHRfaGFuZGxlKTsKPiArCUNV X0FTU0VSVF9FUVVBTChyLCAwKTsKPiArCj4gKwlyID0gYW1kZ3B1X2JvX2FsbG9jX2FuZF9tYXAo ZGV2aWNlX2hhbmRsZSwgNDA5NiwgNDA5NiwKPiArCQkJCSAgICBBTURHUFVfR0VNX0RPTUFJTl9H VFQsIDAsCj4gKwkJCQkgICAgJmliX3Jlc3VsdF9oYW5kbGUsICZpYl9yZXN1bHRfY3B1LAo+ICsJ CQkJICAgICZpYl9yZXN1bHRfbWNfYWRkcmVzcywgJnZhX2hhbmRsZSk7Cj4gKwlDVV9BU1NFUlRf RVFVQUwociwgMCk7Cj4gKwo+ICsJciA9IGFtZGdwdV9nZXRfYm9fbGlzdChkZXZpY2VfaGFuZGxl LCBpYl9yZXN1bHRfaGFuZGxlLCBOVUxMLAo+ICsJCQkgICAgICAgJmJvX2xpc3QpOwo+ICsJQ1Vf QVNTRVJUX0VRVUFMKHIsIDApOwo+ICsKPiArCXB0ciA9IGliX3Jlc3VsdF9jcHU7Cj4gKwo+ICsJ Zm9yIChpID0gMDsgaSA8IDE2OyArK2kpCj4gKwkJcHRyW2ldID0gd2FpdF9vcl9zaWduYWwgPyBH RlhfQ09NUFVURV9OT1A6IFNETUFfTk9QOwo+ICsKPiArCWNodW5rc1swXS5jaHVua19pZCA9IEFN REdQVV9DSFVOS19JRF9JQjsKPiArCWNodW5rc1swXS5sZW5ndGhfZHcgPSBzaXplb2Yoc3RydWN0 IGRybV9hbWRncHVfY3NfY2h1bmtfaWIpIC8gNDsKPiArCWNodW5rc1swXS5jaHVua19kYXRhID0g KHVpbnQ2NF90KSh1aW50cHRyX3QpJmNodW5rX2RhdGE7Cj4gKwljaHVua19kYXRhLmliX2RhdGEu X3BhZCA9IDA7Cj4gKwljaHVua19kYXRhLmliX2RhdGEudmFfc3RhcnQgPSBpYl9yZXN1bHRfbWNf YWRkcmVzczsKPiArCWNodW5rX2RhdGEuaWJfZGF0YS5pYl9ieXRlcyA9IDE2ICogNDsKPiArCWNo dW5rX2RhdGEuaWJfZGF0YS5pcF90eXBlID0gd2FpdF9vcl9zaWduYWwgPyBBTURHUFVfSFdfSVBf R0ZYIDoKPiArCQlBTURHUFVfSFdfSVBfRE1BOwo+ICsJY2h1bmtfZGF0YS5pYl9kYXRhLmlwX2lu c3RhbmNlID0gMDsKPiArCWNodW5rX2RhdGEuaWJfZGF0YS5yaW5nID0gMDsKPiArCWNodW5rX2Rh dGEuaWJfZGF0YS5mbGFncyA9IDA7Cj4gKwo+ICsJY2h1bmtzWzFdLmNodW5rX2lkID0gd2FpdF9v cl9zaWduYWwgPwo+ICsJCUFNREdQVV9DSFVOS19JRF9TWU5DT0JKX1RJTUVMSU5FX1dBSVQgOgo+ ICsJCUFNREdQVV9DSFVOS19JRF9TWU5DT0JKX1RJTUVMSU5FX1NJR05BTDsKPiArCWNodW5rc1sx XS5sZW5ndGhfZHcgPSBzaXplb2Yoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc3luY29iaikg LyA0Owo+ICsJY2h1bmtzWzFdLmNodW5rX2RhdGEgPSAodWludDY0X3QpKHVpbnRwdHJfdCkmc3lu Y29ial9kYXRhOwo+ICsJc3luY29ial9kYXRhLmhhbmRsZSA9IHN5bmNvYmpfaGFuZGxlOwo+ICsJ c3luY29ial9kYXRhLnBvaW50ID0gcG9pbnQ7Cj4gKwlzeW5jb2JqX2RhdGEuZmxhZ3MgPSBEUk1f U1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVDsKPiArCj4gKwlyID0gYW1kZ3B1X2Nz X3N1Ym1pdF9yYXcoZGV2aWNlX2hhbmRsZSwKPiArCQkJCSBjb250ZXh0X2hhbmRsZSwKPiArCQkJ CSBib19saXN0LAo+ICsJCQkJIDIsCj4gKwkJCQkgY2h1bmtzLAo+ICsJCQkJICZzZXFfbm8pOwo+ ICsJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+ICsKPiArCj4gKwltZW1zZXQoJmZlbmNlX3N0YXR1 cywgMCwgc2l6ZW9mKHN0cnVjdCBhbWRncHVfY3NfZmVuY2UpKTsKPiArCWZlbmNlX3N0YXR1cy5j b250ZXh0ID0gY29udGV4dF9oYW5kbGU7Cj4gKwlmZW5jZV9zdGF0dXMuaXBfdHlwZSA9IHdhaXRf b3Jfc2lnbmFsID8gQU1ER1BVX0hXX0lQX0dGWDoKPiArCQlBTURHUFVfSFdfSVBfRE1BOwo+ICsJ ZmVuY2Vfc3RhdHVzLmlwX2luc3RhbmNlID0gMDsKPiArCWZlbmNlX3N0YXR1cy5yaW5nID0gMDsK PiArCWZlbmNlX3N0YXR1cy5mZW5jZSA9IHNlcV9ubzsKPiArCj4gKwlyID0gYW1kZ3B1X2NzX3F1 ZXJ5X2ZlbmNlX3N0YXR1cygmZmVuY2Vfc3RhdHVzLAo+ICsJCQlBTURHUFVfVElNRU9VVF9JTkZJ TklURSwwLCAmZXhwaXJlZCk7Cj4gKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4gKwo+ICsJciA9 IGFtZGdwdV9ib19saXN0X2Rlc3Ryb3koYm9fbGlzdCk7Cj4gKwlDVV9BU1NFUlRfRVFVQUwociwg MCk7Cj4gKwo+ICsJciA9IGFtZGdwdV9ib191bm1hcF9hbmRfZnJlZShpYl9yZXN1bHRfaGFuZGxl LCB2YV9oYW5kbGUsCj4gKwkJCQkgICAgIGliX3Jlc3VsdF9tY19hZGRyZXNzLCA0MDk2KTsKPiAr CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKPiArCj4gKwlyID0gYW1kZ3B1X2NzX2N0eF9mcmVlKGNv bnRleHRfaGFuZGxlKTsKPiArCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKPiArCj4gKwlyZXR1cm4g cjsKPiArfQo+ICsKPiArc3RydWN0IHN5bmNvYmpfcG9pbnQgewo+ICsJdWludDMyX3Qgc3luY29i al9oYW5kbGU7Cj4gKwl1aW50NjRfdCBwb2ludDsKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lkICpz eW5jb2JqX3dhaXQodm9pZCAqZGF0YSkKPiArewo+ICsJc3RydWN0IHN5bmNvYmpfcG9pbnQgKnNw ID0gKHN0cnVjdCBzeW5jb2JqX3BvaW50ICopZGF0YTsKPiArCWludCByOwo+ICsKPiArCXIgPSBz eW5jb2JqX2NvbW1hbmRfc3VibWlzc2lvbl9oZWxwZXIoc3AtPnN5bmNvYmpfaGFuZGxlLCB0cnVl LAo+ICsJCQkJCSAgICAgIHNwLT5wb2ludCk7Cj4gKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4g Kwo+ICsJcmV0dXJuICh2b2lkICopcjsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgKnN5bmNvYmpf c2lnbmFsKHZvaWQgKmRhdGEpCj4gK3sKPiArCXN0cnVjdCBzeW5jb2JqX3BvaW50ICpzcCA9IChz dHJ1Y3Qgc3luY29ial9wb2ludCAqKWRhdGE7Cj4gKwlpbnQgcjsKPiArCj4gKwlyID0gc3luY29i al9jb21tYW5kX3N1Ym1pc3Npb25faGVscGVyKHNwLT5zeW5jb2JqX2hhbmRsZSwgZmFsc2UsCj4g KwkJCQkJICAgICAgc3AtPnBvaW50KTsKPiArCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKPiArCj4g KwlyZXR1cm4gKHZvaWQgKilyOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBhbWRncHVfc3luY29i al90aW1lbGluZV90ZXN0KHZvaWQpCj4gK3sKPiArCXN0YXRpYyBwdGhyZWFkX3Qgd2FpdF90aHJl YWQ7Cj4gKwlzdGF0aWMgcHRocmVhZF90IHNpZ25hbF90aHJlYWQ7Cj4gKwlzdGF0aWMgcHRocmVh ZF90IGNfdGhyZWFkOwo+ICsJc3RydWN0IHN5bmNvYmpfcG9pbnQgc3AxLCBzcDIsIHNwMzsKPiAr CXVpbnQzMl90IHN5bmNvYmpfaGFuZGxlOwo+ICsJdWludDY0X3QgcGF5bG9hZDsKPiArCXVpbnQ2 NF90ICpwX3BheWxvYWQ7Cj4gKwl1aW50NjRfdCB3YWl0X3BvaW50Owo+ICsJaW50IHI7Cj4gKwl2 b2lkICp0bXA7Cj4gKwo+ICsJciA9ICBhbWRncHVfY3NfY3JlYXRlX3N5bmNvYmoyKGRldmljZV9o YW5kbGUsIERSTV9TWU5DT0JKX0NSRUFURV9UWVBFX1RJTUVMSU5FLAo+ICsJCQkJICAgICAgICZz eW5jb2JqX2hhbmRsZSk7Cj4gKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4gKwo+ICsJLy8gd2Fp dCBvbiBwb2ludCA1Cj4gKwlzcDEuc3luY29ial9oYW5kbGUgPSBzeW5jb2JqX2hhbmRsZTsKPiAr CXNwMS5wb2ludCA9IDU7Cj4gKwlyID0gcHRocmVhZF9jcmVhdGUoJndhaXRfdGhyZWFkLCBOVUxM LCBzeW5jb2JqX3dhaXQsICZzcDEpOwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+ICsKPiAr CS8vIHNpZ25hbCBvbiBwb2ludCAxMAo+ICsJc3AyLnN5bmNvYmpfaGFuZGxlID0gc3luY29ial9o YW5kbGU7Cj4gKwlzcDIucG9pbnQgPSAxMDsKPiArCXIgPSBwdGhyZWFkX2NyZWF0ZSgmc2lnbmFs X3RocmVhZCwgTlVMTCwgc3luY29ial9zaWduYWwsICZzcDIpOwo+ICsJQ1VfQVNTRVJUX0VRVUFM KHIsIDApOwo+ICsKPiArCXIgPSBwdGhyZWFkX2pvaW4od2FpdF90aHJlYWQsICZ0bXApOwo+ICsJ Q1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHRtcCwgMCk7Cj4gKwo+ ICsJciA9IHB0aHJlYWRfam9pbihzaWduYWxfdGhyZWFkLCAmdG1wKTsKPiArCUNVX0FTU0VSVF9F UVVBTChyLCAwKTsKPiArCUNVX0FTU0VSVF9FUVVBTCh0bXAsIDApOwo+ICsKPiArCS8vcXVlcnkg dGltZWxpbmUgcGF5bG9hZAo+ICsJcF9wYXlsb2FkID0gJnBheWxvYWQ7Cj4gKwlyID0gYW1kZ3B1 X2NzX3N5bmNvYmpfcXVlcnkoZGV2aWNlX2hhbmRsZSwgJnN5bmNvYmpfaGFuZGxlLCAmcF9wYXls b2FkLCAxKTsKPiArCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKPiArCUNVX0FTU0VSVF9FUVVBTChw YXlsb2FkLCAxMCk7Cj4gKwo+ICsJLy9zaWduYWwgb24gcG9pbnQgMTYKPiArCXNwMy5zeW5jb2Jq X2hhbmRsZSA9IHN5bmNvYmpfaGFuZGxlOwo+ICsJc3AzLnBvaW50ID0gMTY7Cj4gKwlyID0gcHRo cmVhZF9jcmVhdGUoJmNfdGhyZWFkLCBOVUxMLCBzeW5jb2JqX3NpZ25hbCwgJnNwMyk7Cj4gKwlD VV9BU1NFUlRfRVFVQUwociwgMCk7Cj4gKwkvL0NQVSB3YWl0IG9uIHBvaW50IDE2Cj4gKwl3YWl0 X3BvaW50ID0gMTY7Cj4gKwlyID0gYW1kZ3B1X2NzX3N5bmNvYmpfdGltZWxpbmVfd2FpdChkZXZp Y2VfaGFuZGxlLCAmc3luY29ial9oYW5kbGUsCj4gKwkJCQkJICAgICZ3YWl0X3BvaW50LCAxLAo+ ICsJCQkJCSAgICAweDEwMDAwMDAwMDAwLCAvLzEwcwo+ICsJCQkJCSAgICBEUk1fU1lOQ09CSl9X QUlUX0ZMQUdTX1dBSVRfQUxMIHwKPiArCQkJCQkgICAgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19X QUlUX0NPTVBMRVRFRCB8Cj4gKwkJCQkJICAgIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9G T1JfU1VCTUlULAo+ICsJCQkJCSAgICBOVUxMKTsKPiArCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsK PiArCXIgPSBwdGhyZWFkX2pvaW4oY190aHJlYWQsICZ0bXApOwo+ICsJQ1VfQVNTRVJUX0VRVUFM KHIsIDApOwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHRtcCwgMCk7Cj4gKwo+ICsJciA9IGFtZGdwdV9j c19kZXN0cm95X3N5bmNvYmooZGV2aWNlX2hhbmRsZSwgc3luY29ial9oYW5kbGUpOwo+ICsJQ1Vf QVNTRVJUX0VRVUFMKHIsIDApOwo+ICsKPiArfQo+IC0tIAo+IDIuMTcuMQo+IAo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxp bmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkRhbmllbCBW ZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZm d2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFt ZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=