From mboxrd@z Thu Jan 1 00:00:00 1970 From: zhoucm1 Subject: Re: [PATCH 8/9] drm/syncobj: add timeline signal ioctl for syncobj v3 Date: Wed, 20 Mar 2019 11:53:19 +0800 Message-ID: References: <20190315120959.25489-1-david1.zhou@amd.com> <20190315120959.25489-8-david1.zhou@amd.com> <78d9e191-7cdd-c9f1-c33e-2707b44e4932@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <78d9e191-7cdd-c9f1-c33e-2707b44e4932-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Lionel Landwerlin , Chunming Zhou , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, jason-fQELhIk9awXprZlt/sZkLg@public.gmane.org, Christian.Koenig-5C7GfCeVMHo@public.gmane.org List-Id: dri-devel@lists.freedesktop.org CgpPbiAyMDE55bm0MDPmnIgxOeaXpSAxOTo1NCwgTGlvbmVsIExhbmR3ZXJsaW4gd3JvdGU6Cj4g T24gMTUvMDMvMjAxOSAxMjowOSwgQ2h1bm1pbmcgWmhvdSB3cm90ZToKPj4gdjI6IGluZGl2aWR1 YWxseSBhbGxvY2F0ZSBjaGFpbiBhcnJheSwgc2luY2UgY2hhaW4gbm9kZSBpcyBmcmVlIAo+PiBp bmRlcGVuZGVudGx5Lgo+PiB2MzogYWxsIGV4aXN0aW5nIHBvaW50cyBtdXN0IGJlIGFscmVhZHkg c2lnbmFsZWQgYmVmb3JlIGNwdSBwZXJmb3JtIAo+PiBzaWduYWwgb3BlcmF0aW9uLAo+PiDCoMKg wqDCoCBzbyBhZGQgY2hlY2sgY29uZGl0aW9uIGZvciB0aGF0Lgo+Pgo+PiBTaWduZWQtb2ZmLWJ5 OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgo+PiAtLS0KPj4gwqAgZHJpdmVy cy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIHzCoMKgIDIgKwo+PiDCoCBkcml2ZXJzL2dwdS9kcm0v ZHJtX2lvY3RsLmPCoMKgwqAgfMKgwqAgMiArCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9kcm1fc3lu Y29iai5jwqAgfCAxMDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+IMKgIGlu Y2x1ZGUvdWFwaS9kcm0vZHJtLmjCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDEgKwo+PiDCoCA0IGZp bGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2ludGVybmFsLmggCj4+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5h bC5oCj4+IGluZGV4IGRkMTFhZTVmMWVlZi4uZDlhNDgzYTVmY2UwIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9pbnRlcm5hbC5oCj4+IEBAIC0xOTAsNiArMTkwLDggQEAgaW50IGRybV9zeW5jb2JqX3Jlc2V0 X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlIAo+PiAqZGV2LCB2b2lkICpkYXRhLAo+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRl KTsKPj4gwqAgaW50IGRybV9zeW5jb2JqX3NpZ25hbF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOwo+PiAraW50IGRybV9zeW5jb2JqX3RpbWVs aW5lX3NpZ25hbF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkIAo+PiAqZGF0YSwK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdmF0ZSk7Cj4+IMKgIGludCBkcm1fc3luY29ial9xdWVyeV9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKPj4gwqAgZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1faW9jdGwuYwo+PiBpbmRleCA5MmIzYjdiMmZkODEuLmQzMzdmMTYxOTA5YyAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1faW9jdGwuYwo+PiBAQCAtNjk2LDYgKzY5Niw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rsc1tdID0gewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAo+PiDCoMKgwqDCoMKgIERS TV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfU0lHTkFMLCBkcm1fc3luY29ial9zaWduYWxf aW9jdGwsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBEUk1fVU5MT0NLRUR8RFJN X1JFTkRFUl9BTExPVyksCj4+ICvCoMKgwqAgRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09C Sl9USU1FTElORV9TSUdOQUwsIAo+PiBkcm1fc3luY29ial90aW1lbGluZV9zaWduYWxfaW9jdGws Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9B TExPVyksCj4+IMKgwqDCoMKgwqAgRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9RVUVS WSwgZHJtX3N5bmNvYmpfcXVlcnlfaW9jdGwsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCj4+IMKgwqDCoMKgwqAgRFJNX0lP Q1RMX0RFRihEUk1fSU9DVExfQ1JUQ19HRVRfU0VRVUVOQ0UsIAo+PiBkcm1fY3J0Y19nZXRfc2Vx dWVuY2VfaW9jdGwsIERSTV9VTkxPQ0tFRCksCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX3N5bmNvYmouYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYwo+PiBp bmRleCAzMDZjN2I3ZTI3NzAuLmVhZWIwMzhmOTdkNyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9zeW5jb2JqLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2Jq LmMKPj4gQEAgLTExODMsNiArMTE4MywxMDkgQEAgZHJtX3N5bmNvYmpfc2lnbmFsX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlIAo+PiAqZGV2LCB2b2lkICpkYXRhLAo+PiDCoMKgwqDCoMKgIHJldHVy biByZXQ7Cj4+IMKgIH0KPj4gwqAgK2ludAo+PiArZHJtX3N5bmNvYmpfdGltZWxpbmVfc2lnbmFs X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKQo+ PiArewo+PiArwqDCoMKgIHN0cnVjdCBkcm1fc3luY29ial90aW1lbGluZV9hcnJheSAqYXJncyA9 IGRhdGE7Cj4+ICvCoMKgwqAgc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianM7Cj4+ICvCoMKg wqAgc3RydWN0IGRtYV9mZW5jZV9jaGFpbiAqKmNoYWluczsKPj4gK8KgwqDCoCB1aW50NjRfdCAq cG9pbnRzOwo+PiArwqDCoMKgIHVpbnQzMl90IGksIGosIHRpbWVsaW5lX2NvdW50ID0gMDsKPj4g K8KgwqDCoCBpbnQgcmV0Owo+PiArCj4+ICvCoMKgwqAgaWYgKCFkcm1fY29yZV9jaGVja19mZWF0 dXJlKGRldiwgRFJJVkVSX1NZTkNPQkopKQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FT1BO T1RTVVBQOwo+PiArCj4+ICvCoMKgwqAgaWYgKGFyZ3MtPnBhZCAhPSAwKQo+PiArwqDCoMKgwqDC oMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gK8KgwqDCoCBpZiAoYXJncy0+Y291bnRfaGFu ZGxlcyA9PSAwKQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gK8Kg wqDCoCByZXQgPSBkcm1fc3luY29ial9hcnJheV9maW5kKGZpbGVfcHJpdmF0ZSwKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTY0X3RvX3VzZXJfcHRyKGFyZ3Mt PmhhbmRsZXMpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBh cmdzLT5jb3VudF9oYW5kbGVzLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAmc3luY29ianMpOwo+PiArwqDCoMKgIGlmIChyZXQgPCAwKQo+PiArwqDCoMKgwqDC oMKgwqAgcmV0dXJuIHJldDsKPj4gKwo+PiArwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBhcmdzLT5j b3VudF9oYW5kbGVzOyBpKyspIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBkbWFfZmVuY2Vf Y2hhaW4gKmNoYWluOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg ZmVuY2UgPSBkcm1fc3luY29ial9mZW5jZV9nZXQoc3luY29ianNbaV0pOwo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNoYWluID0gdG9fZG1hX2ZlbmNlX2NoYWluKGZlbmNlKTsK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoY2hhaW4pIHsKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRtYV9mZW5j ZSAqaXRlcjsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBkbWFfZmVuY2VfY2hhaW5fZm9yX2VhY2goaXRlciwgZmVuY2UpIHsKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGlmICghaXRlcikKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIWRtYV9mZW5jZV9pc19zaWduYWxlZChpdGVyKSkg ewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZG1hX2ZlbmNlX3B1 dChpdGVyKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERSTV9F UlJPUigiQ2xpZW50IG11c3QgZ3VhcmFudGVlIGFsbCBleGlzdGluZyAKPj4gdGltZWxpbmUgcG9p bnRzIHNpZ25hbGVkIGJlZm9yZSBwZXJmb3JtaW5nIGhvc3Qgc2lnbmFsIG9wZXJhdGlvbiEiKTsK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IC1FUEVSTTsK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gb3V0Owo+Cj4K PiBTb3JyeSBpZiBJJ20gZmFpbGluZyB0byByZW1lbWJlciB3aGV0aGVyIHdlIGRpc2N1c3NlZCB0 aGlzIGJlZm9yZS4KPgo+Cj4gU2lnbmFsaW5nIGEgcG9pbnQgZnJvbSB0aGUgaG9zdCBzaG91bGQg YmUgZmluZSBldmVuIGlmIHRoZSBwcmV2aW91cyAKPiBwb2ludHMgaW4gdGhlIHRpbWVsaW5lIGFy ZSBub3Qgc2lnbmFsZWQuCm9rLCB3aWxsIHJlbW92ZSB0aGF0IGNoZWNraW5nLgoKPgo+IEFmdGVy IGFsbCB0aGlzIGNhbiBoYXBwZW4gb24gdGhlIGRldmljZSBzaWRlIGFzIHdlbGwgKG91dCBvZiBv cmRlciAKPiBzaWduYWxpbmcpLgo+Cj4KPiBJIHRob3VnaHQgdGhlIHRoaW5nIHdlIGRpZG4ndCB3 YW50IGlzIG91dCBvZiBvcmRlciBzdWJtaXNzaW9uLgo+Cj4gSnVzdCBjaGVja2luZyB0aGUgbGFz dCBjaGFpbiBub2RlIHNlcW5vIGFnYWluc3QgdGhlIGhvc3Qgc2lnbmFsIHBvaW50IAo+IHNob3Vs ZCBiZSBlbm91Z2guCj4KPgo+IFdoYXQgYWJvdXQgc2ltcGx5IHJldHVybmluZyAtRVBFUk0sIHdl IGNhbiB3YXJuIHRoZSBhcHBsaWNhdGlvbiBmcm9tIAo+IHVzZXJzcGFjZT8KT0ssIHdpbGwgYWRk IHRoYXQuCgo+Cj4KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICsKPj4gK8Kg wqDCoCBwb2ludHMgPSBrbWFsbG9jX2FycmF5KGFyZ3MtPmNvdW50X2hhbmRsZXMsIHNpemVvZigq cG9pbnRzKSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBHRlBfS0VS TkVMKTsKPj4gK8KgwqDCoCBpZiAoIXBvaW50cykgewo+PiArwqDCoMKgwqDCoMKgwqAgcmV0ID0g LUVOT01FTTsKPj4gK8KgwqDCoMKgwqDCoMKgIGdvdG8gb3V0Owo+PiArwqDCoMKgIH0KPj4gK8Kg wqDCoCBpZiAoIXU2NF90b191c2VyX3B0cihhcmdzLT5wb2ludHMpKSB7Cj4+ICvCoMKgwqDCoMKg wqDCoCBtZW1zZXQocG9pbnRzLCAwLCBhcmdzLT5jb3VudF9oYW5kbGVzICogc2l6ZW9mKHVpbnQ2 NF90KSk7Cj4+ICvCoMKgwqAgfSBlbHNlIGlmIChjb3B5X2Zyb21fdXNlcihwb2ludHMsIHU2NF90 b191c2VyX3B0cihhcmdzLT5wb2ludHMpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBzaXplb2YodWludDY0X3QpICogYXJncy0+Y291bnRfaGFuZGxlcykpIHsKPj4gK8Kg wqDCoMKgwqDCoMKgIHJldCA9IC1FRkFVTFQ7Cj4+ICvCoMKgwqDCoMKgwqDCoCBnb3RvIGVycl9w b2ludHM7Cj4+ICvCoMKgwqAgfQo+PiArCj4+ICsKPj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwg YXJncy0+Y291bnRfaGFuZGxlczsgaSsrKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAocG9pbnRz W2ldKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0aW1lbGluZV9jb3VudCsrOwo+PiArwqDC oMKgIH0KPj4gK8KgwqDCoCBjaGFpbnMgPSBrbWFsbG9jX2FycmF5KHRpbWVsaW5lX2NvdW50LCBz aXplb2Yodm9pZCAqKSwgR0ZQX0tFUk5FTCk7Cj4+ICvCoMKgwqAgaWYgKCFjaGFpbnMpIHsKPj4g K8KgwqDCoMKgwqDCoMKgIHJldCA9IC1FTk9NRU07Cj4+ICvCoMKgwqDCoMKgwqDCoCBnb3RvIGVy cl9wb2ludHM7Cj4+ICvCoMKgwqAgfQo+PiArwqDCoMKgIGZvciAoaSA9IDA7IGkgPCB0aW1lbGlu ZV9jb3VudDsgaSsrKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBjaGFpbnNbaV0gPSBremFsbG9jKHNp emVvZihzdHJ1Y3QgZG1hX2ZlbmNlX2NoYWluKSwgCj4+IEdGUF9LRVJORUwpOwo+PiArwqDCoMKg wqDCoMKgwqAgaWYgKCFjaGFpbnNbaV0pIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm9y IChqID0gMDsgaiA8IGk7IGorKykKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBr ZnJlZShjaGFpbnNbal0pOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSAtRU5PTUVN Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycl9jaGFpbnM7Cj4+ICvCoMKgwqDC oMKgwqDCoCB9Cj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgZm9yIChpID0gMCwgaiA9IDA7 IGkgPCBhcmdzLT5jb3VudF9oYW5kbGVzOyBpKyspIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChw b2ludHNbaV0pIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UgPSBkbWFfZmVuY2VfZ2V0X3N0dWIoKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBkcm1fc3luY29ial9hZGRfcG9pbnQoc3luY29ianNbaV0sIGNoYWluc1tqKytdLAo+Cj4K PiBJc24ndCB0aGlzIGJyZWFraW5nIHdpdGggaisrID8sIGl0IHNob3VsZCBiZSBwYXJ0IG9mIHRo ZSBmb3IoKSBsb29wIAo+IGV4cHJlc3Npb24gOiBmb3IgKGkgPSAwLCBqID0gMDsgaSA8IGFycmFn cy0+Y291bnRfaGFuZGxlczsgaSsrLCBqKyspCj4KPgo+IE90aGVyd2lzZSBqIHdpbGwgbm90IGlu Y3JlbWVudCBhdCB0aGUgc2FtZSBwYWNlIGFzIGkuCkkgdGhpbmsgdGhhdCBpcyBpbnRlbnRpb25h bCwgYmVjYXVzZSBzeW5jb2JqIGFycmF5IGNvdWxkIGNvbnRhaW4gYm90aCAKYmluYXJ5IGFuZCB0 aW1lbGluZS4gaiBpcyBmb3IgdGltZWxpZW5fY291bnQgaW4gdGhpcyBjb250ZXh0LgoKLURhdmlk Cj4KPgo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgZmVuY2UsIHBvaW50c1tpXSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRtYV9mZW5j ZV9wdXQoZmVuY2UpOwo+PiArwqDCoMKgwqDCoMKgwqAgfSBlbHNlCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGRybV9zeW5jb2JqX2Fzc2lnbl9udWxsX2hhbmRsZShzeW5jb2Jqc1tpXSk7Cj4+ ICvCoMKgwqAgfQo+PiArZXJyX2NoYWluczoKPj4gK8KgwqDCoCBrZnJlZShjaGFpbnMpOwo+PiAr ZXJyX3BvaW50czoKPj4gK8KgwqDCoCBrZnJlZShwb2ludHMpOwo+PiArb3V0Ogo+PiArwqDCoMKg IGRybV9zeW5jb2JqX2FycmF5X2ZyZWUoc3luY29ianMsIGFyZ3MtPmNvdW50X2hhbmRsZXMpOwo+ PiArCj4+ICvCoMKgwqAgcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiDCoCBpbnQgZHJtX3N5bmNv YmpfcXVlcnlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dmF0ZSkKPj4gwqAgewo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaCBiL2lu Y2x1ZGUvdWFwaS9kcm0vZHJtLmgKPj4gaW5kZXggNGMxZTJlNjU3OWZhLi5mZTAwYjc0MjY4ZWIg MTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKPj4gKysrIGIvaW5jbHVkZS91 YXBpL2RybS9kcm0uaAo+PiBAQCAtOTQzLDYgKzk0Myw3IEBAIGV4dGVybiAiQyIgewo+PiDCoCAj ZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JKX1RJTUVMSU5FX1dBSVTCoMKgwqAgRFJNX0lPV1IoMHhD QSwgc3RydWN0IAo+PiBkcm1fc3luY29ial90aW1lbGluZV93YWl0KQo+PiDCoCAjZGVmaW5lIERS TV9JT0NUTF9TWU5DT0JKX1FVRVJZwqDCoMKgwqDCoMKgwqAgRFJNX0lPV1IoMHhDQiwgc3RydWN0 IAo+PiBkcm1fc3luY29ial90aW1lbGluZV9hcnJheSkKPj4gwqAgI2RlZmluZSBEUk1fSU9DVExf U1lOQ09CSl9UUkFOU0ZFUsKgwqDCoCBEUk1fSU9XUigweENDLCBzdHJ1Y3QgCj4+IGRybV9zeW5j b2JqX3RyYW5zZmVyKQo+PiArI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9USU1FTElORV9TSUdO QUzCoMKgwqAgRFJNX0lPV1IoMHhDRCwgc3RydWN0IAo+PiBkcm1fc3luY29ial90aW1lbGluZV9h cnJheSkKPj4gwqAgwqAgLyoqCj4+IMKgwqAgKiBEZXZpY2Ugc3BlY2lmaWMgaW9jdGxzIHNob3Vs ZCBvbmx5IGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgaGVhZGVycwo+Cj4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA==