From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: Re: [PATCH 03/59] drm/prime: Update docs Date: Sat, 15 Jun 2019 13:41:53 +0200 Message-ID: <20190615114153.GA20240@ravnborg.org> References: <20190614203615.12639-1-daniel.vetter@ffwll.ch> <20190614203615.12639-4-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190614203615.12639-4-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Daniel Vetter , Intel Graphics Development , DRI Development List-Id: dri-devel@lists.freedesktop.org SGkgRGFuaWVsCgpCZXR0ZXIgYW5kIG1vcmUgY29uc2lzdGVudCBkb2NzIC0gZ29vZCEKV2l0aCBy ZWxldmFudCBjb21tZW50cyBhZGRyZXNzZWQ6ClJldmlld2VkLWJ5OiBTYW0gUmF2bmJvcmcgPHNh bUByYXZuYm9yZy5vcmc+Cgo+ICsvKioKPiArICogRE9DOiBvdmVydmlldyBhbmQgbGlmZXRpbWUg cnVsZXMKPiArICoKPiArICogU2ltaWxhciB0byBHRU0gZ2xvYmFsIG5hbWVzLCBQUklNRSBmaWxl IGRlc2NyaXB0b3JzIGFyZSBhbHNvIHVzZWQgdG8gc2hhcmUKPiArICogYnVmZmVyIG9iamVjdHMg YWNyb3NzIHByb2Nlc3Nlcy4gVGhleSBvZmZlciBhZGRpdGlvbmFsIHNlY3VyaXR5OiBhcyBmaWxl Cj4gKyAqIGRlc2NyaXB0b3JzIG11c3QgYmUgZXhwbGljaXRseSBzZW50IG92ZXIgVU5JWCBkb21h aW4gc29ja2V0cyB0byBiZSBzaGFyZWQKPiArICogYmV0d2VlbiBhcHBsaWNhdGlvbnMsIHRoZXkg Y2FuJ3QgYmUgZ3Vlc3NlZCBsaWtlIHRoZSBnbG9iYWxseSB1bmlxdWUgR0VNCj4gKyAqIG5hbWVz LgpGb3IgYSBuZXdiaWUgbGlrZSBtZSB0aGUgYWJvdmUgZG9lcyBub3QgcmVhbGx5IGhlbHAgdG8g dW5kZXJzdGFuZCB3aGF0ClBSSU1FIGlzLgpZZXMsIGl0IGlzIGZpbGUgZGVzY3JpcHRvcnMgdXNl ZCB0byBzaGFyZSBidWZmZXIgb2JqZWN0cyBhY3Jvc3MKcHJvY2Vzc2VzLgpCdXQgdGhlIHRleHQg c2F5ICJhbHNvIHVzZWQgLi4iLCBzbyB0aGUgbWFpbiB1c2FnZSBvZiBQUklNRSBpcyBzb21ldGhp bmcKZWxzZS4KCkJ1dCBhcyBzYWlkLCBuZXdiaWUgc28gaXQgbWF5IGJlIGZpbmUgZm9yIG1vc3Qg cmVhZGVycy4KCj4gKyAqCj4gKyAqIERyaXZlcnMgdGhhdCBzdXBwb3J0IHRoZSBQUklNRSBBUEkg bXVzdCBzZXQgdGhlIERSSVZFUl9QUklNRSBiaXQgaW4gdGhlCj4gKyAqICZkcm1fZHJpdmVyLmRy aXZlcl9mZWF0dXJlcyBmaWVsZCwgYW5kIGltcGxlbWVudCB0aGUKPiArICogJmRybV9kcml2ZXIu cHJpbWVfaGFuZGxlX3RvX2ZkIGFuZCAmZHJtX2RyaXZlci5wcmltZV9mZF90b19oYW5kbGUgb3Bl cmF0aW9ucy4KCj4gKyAqIEdFTSBiYXNlZCBkcml2ZXJzIG11c3QgdXNlIGRybV9nZW1fcHJpbWVf aGFuZGxlX3RvX2ZkKCkgYW4KPiArICogZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUoKSB0byBp bXBsZW1lbnQgdGhlc2UuCmFuID0+IGFuZCBpbiB0aGUgYWJvdmUuCgo+ICsgKiBkcm1fZ2VtX3By aW1lX2ZkX3RvX2hhbmRsZSAtIFBSSU1FIGltcG9ydCBmdW5jdGlvbiBmb3IgR0VNIGRyaXZlcnMK PiArICogQGRldjogZGV2IHRvIGV4cG9ydCB0aGUgYnVmZmVyIGZyb20KPiArICogQGZpbGVfcHJp djogZHJtIGZpbGUtcHJpdmF0ZSBzdHJ1Y3R1cmUKPiArICogQHByaW1lX2ZkOiBmZCBpZCBvZiB0 aGUgZG1hLWJ1ZiB3aGljaCBzaG91bGQgYmUgaW1wb3J0ZWQKPiArICogQGhhbmRsZTogcG9pbnRl ciB0byBzdG9yYWdlIGZvciB0aGUgaGFuZGxlIG9mIHRoZSBpbXBvcnRlZCBidWZmZXIgb2JqZWN0 Cj4gICAqCj4gKyAqIFRoaXMgaXMgdGhlIFBSSU1FIGltcG9ydCBmdW5jdGlvbiB3aGljaCBtdXN0 IGJlIHVzZWQgbWFuZGF0b3JpbHkgYnkgR0VNCj4gKyAqIGRyaXZlcnMgdG8gZW5zdXJlIGNvcnJl Y3QgbGlmZXRpbWUgbWFuYWdlbWVudCBvZiB0aGUgdW5kZXJseWluZyBHRU0gb2JqZWN0Lgo+ICsg KiBUaGUgYWN0dWFsIGltcG9ydGluZyBvZiBHRU0gb2JqZWN0IGZyb20gdGhlIGRtYS1idWYgaXMg ZG9uZSB0aHJvdWdoIHRoZQo+ICsgKiAmZHJtX2RyaXZlci5nZW1faW1wb3J0X2V4cG9ydCBkcml2 ZXIgY2FsbGJhY2suCkhlcmUgbWF5YmUgYWRkIGEgZGVzY3JpcHRpb24gb2YgdGhlIHJldHVybiBy ZXN1bHQuCklmIEkgcmVhZCB0aGUgY29kZSBjb3JyZWN0OgpSZXR1cm5zIDAgb24gc3VjY2VzcyBv ciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCgo+ICAgKi8KPiAtdm9pZCAqZHJtX2dl bV9kbWFidWZfdm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZikKPiAraW50IGRybV9nZW1fcHJp bWVfZmRfdG9faGFuZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCSAgICAgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgaW50IHByaW1lX2ZkLAo+ICsJCQkgICAgICAgdWludDMy X3QgKmhhbmRsZSkKPiAgewo+IC0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVm LT5wcml2Owo+IC0Jdm9pZCAqdmFkZHI7Cj4gKwlzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZjsKPiAr CXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwo+ICsJaW50IHJldDsKPiAgCj4gLQl2YWRkciA9 IGRybV9nZW1fdm1hcChvYmopOwo+IC0JaWYgKElTX0VSUih2YWRkcikpCj4gLQkJdmFkZHIgPSBO VUxMOwo+ICsJZG1hX2J1ZiA9IGRtYV9idWZfZ2V0KHByaW1lX2ZkKTsKPiArCWlmIChJU19FUlIo ZG1hX2J1ZikpCj4gKwkJcmV0dXJuIFBUUl9FUlIoZG1hX2J1Zik7Cj4gIAo+ICsJbXV0ZXhfbG9j aygmZmlsZV9wcml2LT5wcmltZS5sb2NrKTsKPiAgCj4gKwlyZXQgPSBkcm1fcHJpbWVfbG9va3Vw X2J1Zl9oYW5kbGUoJmZpbGVfcHJpdi0+cHJpbWUsCj4gKwkJCWRtYV9idWYsIGhhbmRsZSk7Cj4g KwlpZiAocmV0ID09IDApCj4gKwkJZ290byBvdXRfcHV0Owo+ICAKPiArCS8qIG5ldmVyIHNlZW4g dGhpcyBvbmUsIG5lZWQgdG8gaW1wb3J0ICovCj4gKwltdXRleF9sb2NrKCZkZXYtPm9iamVjdF9u YW1lX2xvY2spOwo+ICsJaWYgKGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfaW1wb3J0KQo+ICsJCW9i aiA9IGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfaW1wb3J0KGRldiwgZG1hX2J1Zik7Cj4gKwllbHNl Cj4gKwkJb2JqID0gZHJtX2dlbV9wcmltZV9pbXBvcnQoZGV2LCBkbWFfYnVmKTsKPiArCWlmIChJ U19FUlIob2JqKSkgewo+ICsJCXJldCA9IFBUUl9FUlIob2JqKTsKPiArCQlnb3RvIG91dF91bmxv Y2s7Cj4gKwl9Cj4gKwlpZiAob2JqLT5kbWFfYnVmKSB7Cj4gKwkJV0FSTl9PTihvYmotPmRtYV9i dWYgIT0gZG1hX2J1Zik7Cj4gKwl9IGVsc2Ugewo+ICsJCW9iai0+ZG1hX2J1ZiA9IGRtYV9idWY7 Cj4gKwkJZ2V0X2RtYV9idWYoZG1hX2J1Zik7Cj4gKwl9Cj4gIAo+ICsJLyogX2hhbmRsZV9jcmVh dGVfdGFpbCB1bmNvbmRpdGlvbmFsbHkgdW5sb2NrcyBkZXYtPm9iamVjdF9uYW1lX2xvY2suICov Cj4gKwlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGVfdGFpbChmaWxlX3ByaXYsIG9iaiwgaGFu ZGxlKTsKPiArCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmopOwo+ICsJaWYgKHJldCkK PiArCQlnb3RvIG91dF9wdXQ7Cj4gIAo+ICsJcmV0ID0gZHJtX3ByaW1lX2FkZF9idWZfaGFuZGxl KCZmaWxlX3ByaXYtPnByaW1lLAo+ICsJCQlkbWFfYnVmLCAqaGFuZGxlKTsKPiArCW11dGV4X3Vu bG9jaygmZmlsZV9wcml2LT5wcmltZS5sb2NrKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBmYWls Owo+ICsJZG1hX2J1Zl9wdXQoZG1hX2J1Zik7Cj4gIAo+ICsJcmV0dXJuIDA7Cj4gIAo+ICtmYWls Ogo+ICsJLyogaG1tLCBpZiBkcml2ZXIgYXR0YWNoZWQsIHdlIGFyZSByZWx5aW5nIG9uIHRoZSBm cmVlLW9iamVjdCBwYXRoCj4gKwkgKiB0byBkZXRhY2guLiB3aGljaCBzZWVtcyBvay4uCj4gKwkg Ki8KPiArCWRybV9nZW1faGFuZGxlX2RlbGV0ZShmaWxlX3ByaXYsICpoYW5kbGUpOwo+ICsJZG1h X2J1Zl9wdXQoZG1hX2J1Zik7Cj4gKwlyZXR1cm4gcmV0Owo+ICsKPiArb3V0X3VubG9jazoKPiAr CW11dGV4X3VubG9jaygmZGV2LT5vYmplY3RfbmFtZV9sb2NrKTsKPiArb3V0X3B1dDoKPiArCW11 dGV4X3VubG9jaygmZmlsZV9wcml2LT5wcmltZS5sb2NrKTsKPiArCWRtYV9idWZfcHV0KGRtYV9i dWYpOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9nZW1fcHJpbWVf ZmRfdG9faGFuZGxlKTsKPiArCj4gKwo+ICsvKioKPiArICogRE9DOiBQUklNRSBIZWxwZXJzCj4g KyAqCj4gKyAqIERyaXZlcnMgY2FuIGltcGxlbWVudCAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZXhw b3J0IGFuZAo+ICsgKiAmZHJtX2RyaXZlci5nZW1fcHJpbWVfaW1wb3J0IGluIHRlcm1zIG9mIHNp bXBsZXIgQVBJcyBieSB1c2luZyB0aGUgaGVscGVyCj4gKyAqIGZ1bmN0aW9ucyBkcm1fZ2VtX3By aW1lX2V4cG9ydCgpIGFuZCBkcm1fZ2VtX3ByaW1lX2ltcG9ydCgpLiAgVGhlc2UgZnVuY3Rpb25z Cj4gKyAqIGltcGxlbWVudCBkbWEtYnVmIHN1cHBvcnQgaW4gdGVybXMgb2Ygc29tZSBsb3dlci1s ZXZlbCBoZWxwZXJzLCB3aGljaCBhcmUKPiArICogYWdhaW4gZXhwb3J0ZWQgZm9yIGRyaXZlcnMg dG8gdXNlIGluZGl2aWR1YWxseToKPiArICoKPiArICogRXhwb3J0aW5nIGJ1ZmZlcnMKPiArICog fn5+fn5+fn5+fn5+fn5+fn4KPiArICoKPiArICogT3B0aW9uYWwgcGlubmluZyBvZiBidWZmZXJz IGlzIGhhbmRsZWQgYXQgZG1hLWJ1ZiBhdHRhY2ggYW5kIGRldGFjaCB0aW1lIGluCj4gKyAqIGRy bV9nZW1fbWFwX2F0dGFjaCgpIGFuZCBkcm1fZ2VtX21hcF9kZXRhY2goKS4gQmFja2luZyBzdG9y YWdlIGl0c2VsZiBpcwo+ICsgKiBoYW5kbGVkIGJ5IGRybV9nZW1fbWFwX2RtYV9idWYoKSBhbmQg ZHJtX2dlbV91bm1hcF9kbWFfYnVmKCksIHdoaWNoIHJlbGllcyBvbgo+ICsgKiAmZHJtX2dlbV9v YmplY3RfZnVuY3MuZ2V0X3NnX3RhYmxlLgo+ICsgKgo+ICsgKiBGb3Iga2VybmVsLWludGVybmFs IGFjY2VzcyB0aGVyZSdzIGRybV9nZW1fZG1hYnVmX3ZtYXAoKSBhbmQKPiArICogZHJtX2dlbV9k bWFidWZfdnVubWFwKCkuIFVzZXJzcGFjZSBtbWFwIHN1cHBvcnQgaXMgcHJvdmlkZWQgYnkKPiAr ICogZHJtX2dlbV9kbWFidWZfbW1hcCgpLgo+ICsgKgo+ICsgKiBOb3RlIHRoYXQgdGhlc2UgZXhw b3J0IGhlbHBlcnMgY2FuIG9ubHkgYmUgdXNlZCBpZiB0aGUgdW5kZXJseWluZyBiYWNraW5nCj4g KyAqIHN0b3JhZ2UgaXMgZnVsbHkgY29oZXJlbnQgYW5kIGVpdGhlciBwZXJtYW5lbnRseSBwaW5u ZWQsIG9yIGl0IGlzIHNhZmUgdG8gcGluCj4gKyAqIGl0IGluZGVmaW5pdGVseS4KPiArICoKPiAr ICogRklYTUU6IFRoZSB1bmRlcmx5aW5nIGhlbHBlciBmdW5jdGlvbnMgYXJlIG5hbWVkIHJhdGhl ciBpbmNvbnNpc3RlbnRseS4KPiArICoKPiArICogRXhwb3J0aW5nIGJ1ZmZlcnMKPiArICogfn5+ fn5+fn5+fn5+fn5+fn4KPiArICoKPiArICogSW1wb3J0aW5nIGRtYS1idWZzIHVzaW5nIGRybV9n ZW1fcHJpbWVfaW1wb3J0KCkgcmVsaWVzIG9uCj4gKyAqICZkcm1fZHJpdmVyLmdlbV9wcmltZV9p bXBvcnRfc2dfdGFibGUuCj4gKyAqCj4gKyAqIE5vdGUgdGhhdCBzaW1pbGFybHkgdG8gdGhlIGV4 cG9ydCBoZWxwZXJzIHRoaXMgcGVybWFuZW50bHkgcGlucyB0aGUKPiArICogdW5kZXJseWluZyBi YWNraW5nIHN0b3JhZ2UuIFdoaWNoIGlzIG9rIGZvciBzY2Fub3V0LCBidXQgaXMgbm90IHRoZSBi ZXN0Cj4gKyAqIG9wdGlvbiBmb3Igc2hhcmluZyBsb3RzIG9mIGJ1ZmZlcnMgZm9yIHJlbmRlcmlu Zy4KPiArICovCj4gKwo+ICsvKioKPiArICogZHJtX2dlbV9tYXBfYXR0YWNoIC0gZG1hX2J1ZiBh dHRhY2ggaW1wbGVtZW50YXRpb24gZm9yIEdFTQo+ICsgKiBAZG1hX2J1ZjogYnVmZmVyIHRvIGF0 dGFjaCBkZXZpY2UgdG8KPiArICogQGF0dGFjaDogYnVmZmVyIGF0dGFjaG1lbnQgZGF0YQo+ICsg Kgo+ICsgKiBDYWxscyAmZHJtX2dlbV9vYmplY3RfZnVuY3MucGluIGZvciBkZXZpY2Ugc3BlY2lm aWMgaGFuZGxpbmcuIFRoaXMgY2FuIGJlCj4gKyAqIHVzZWQgYXMgdGhlICZkbWFfYnVmX29wcy5h dHRhY2ggY2FsbGJhY2suIE11c3QgYmUgdXNlZCB0b2dldGhlciB3aXRoCj4gKyAqIGRybV9nZW1f bWFwX2RldGFjaCgpLgo+ICsgKgo+ICsgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUg ZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsgKi8KPiAraW50IGRybV9nZW1fbWFwX2F0dGFjaChz dHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPiArCQkgICAgICAgc3RydWN0IGRtYV9idWZfYXR0YWNo bWVudCAqYXR0YWNoKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGRtYV9i dWYtPnByaXY7Cj4gKwo+ICsJcmV0dXJuIGRybV9nZW1fcGluKG9iaik7Cj4gK30KPiArRVhQT1JU X1NZTUJPTChkcm1fZ2VtX21hcF9hdHRhY2gpOwo+ICsKPiArLyoqCj4gKyAqIGRybV9nZW1fbWFw X2RldGFjaCAtIGRtYV9idWYgZGV0YWNoIGltcGxlbWVudGF0aW9uIGZvciBHRU0KPiArICogQGRt YV9idWY6IGJ1ZmZlciB0byBkZXRhY2ggZnJvbQo+ICsgKiBAYXR0YWNoOiBhdHRhY2htZW50IHRv IGJlIGRldGFjaGVkCj4gKyAqCj4gKyAqIENhbGxzICZkcm1fZ2VtX29iamVjdF9mdW5jcy5waW4g Zm9yIGRldmljZSBzcGVjaWZpYyBoYW5kbGluZy4gIENsZWFucyB1cAo+ICsgKiAmZG1hX2J1Zl9h dHRhY2htZW50IGZyb20gZHJtX2dlbV9tYXBfYXR0YWNoKCkuIFRoaXMgY2FuIGJlIHVzZWQgYXMg dGhlCj4gKyAqICZkbWFfYnVmX29wcy5kZXRhY2ggY2FsbGJhY2suCj4gKyAqLwo+ICt2b2lkIGRy bV9nZW1fbWFwX2RldGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPiArCQkJc3RydWN0IGRt YV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iaiA9IGRtYV9idWYtPnByaXY7Cj4gKwo+ICsJZHJtX2dlbV91bnBpbihvYmopOwo+ICt9Cj4g K0VYUE9SVF9TWU1CT0woZHJtX2dlbV9tYXBfZGV0YWNoKTsKPiArCj4gKy8qKgo+ICsgKiBkcm1f Z2VtX21hcF9kbWFfYnVmIC0gbWFwX2RtYV9idWYgaW1wbGVtZW50YXRpb24gZm9yIEdFTQo+ICsg KiBAYXR0YWNoOiBhdHRhY2htZW50IHdob3NlIHNjYXR0ZXJsaXN0IGlzIHRvIGJlIHJldHVybmVk Cj4gKyAqIEBkaXI6IGRpcmVjdGlvbiBvZiBETUEgdHJhbnNmZXIKPiArICoKPiArICogQ2FsbHMg JmRybV9nZW1fb2JqZWN0X2Z1bmNzLmdldF9zZ190YWJsZSBhbmQgdGhlbiBtYXBzIHRoZSBzY2F0 dGVybGlzdC4gVGhpcwo+ICsgKiBjYW4gYmUgdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLm1hcF9k bWFfYnVmIGNhbGxiYWNrLiBTaG91bGQgYmUgdXNlZCB0b2dldGhlcgo+ICsgKiB3aXRoIGRybV9n ZW1fdW5tYXBfZG1hX2J1ZigpLgo+ICsgKgo+ICsgKiBSZXR1cm5zOnNnX3RhYmxlIGNvbnRhaW5p bmcgdGhlIHNjYXR0ZXJsaXN0IHRvIGJlIHJldHVybmVkOyByZXR1cm5zIEVSUl9QVFIKPiArICog b24gZXJyb3IuIE1heSByZXR1cm4gLUVJTlRSIGlmIGl0IGlzIGludGVycnVwdGVkIGJ5IGEgc2ln bmFsLgo+ICsgKi8KTml0IC0gYWRkIHNwYWNlIGFmdGVyICc6JwoKPiArCj4gKy8qKgo+ICsgKiBk cm1fZ2VtX2RtYWJ1Zl92bWFwIC0gZG1hX2J1ZiB2bWFwIGltcGxlbWVudGF0aW9uIGZvciBHRU0K PiArICogQGRtYV9idWY6IGJ1ZmZlciB0byBiZSBtYXBwZWQKPiArICoKPiArICogU2V0cyB1cCBh IGtlcm5lbCB2aXJ0dWFsIG1hcHBpbmcuIFRoaXMgY2FuIGJlIHVzZWQgYXMgdGhlICZkbWFfYnVm X29wcy52bWFwCj4gKyAqIGNhbGxiYWNrLiBDYWxscyBpbnRvICZkcm1fZ2VtX29iamVjdF9mdW5j cy52bWFwIGZvciBkZXZpY2Ugc3BlY2lmaWMgaGFuZGxpbmcuCj4gKyAqCj4gKyAqIFJldHVybnMg dGhlIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3MuCm9yIE5VTEwgaWYgZmFpbGVkIHRvIHNldHVwIHZp cnR1YWwgbWFwcGluZy4KCj4gKyAqLwo+ICt2b2lkICpkcm1fZ2VtX2RtYWJ1Zl92bWFwKHN0cnVj dCBkbWFfYnVmICpkbWFfYnVmKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9 IGRtYV9idWYtPnByaXY7Cj4gKwl2b2lkICp2YWRkcjsKPiArCj4gKwl2YWRkciA9IGRybV9nZW1f dm1hcChvYmopOwo+ICsJaWYgKElTX0VSUih2YWRkcikpCj4gKwkJdmFkZHIgPSBOVUxMOwo+ICsK PiArCXJldHVybiB2YWRkcjsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1hYnVmX3Zt YXApOwoKCj4gIC8qKgo+ICAgKiBkcm1fZ2VtX3ByaW1lX2ltcG9ydF9kZXYgLSBjb3JlIGltcGxl bWVudGF0aW9uIG9mIHRoZSBpbXBvcnQgY2FsbGJhY2sKPiAgICogQGRldjogZHJtX2RldmljZSB0 byBpbXBvcnQgaW50bwo+ICAgKiBAZG1hX2J1ZjogZG1hLWJ1ZiBvYmplY3QgdG8gaW1wb3J0Cj4g ICAqIEBhdHRhY2hfZGV2OiBzdHJ1Y3QgZGV2aWNlIHRvIGRtYV9idWYgYXR0YWNoCj4gICAqCj4g LSAqIFRoaXMgaXMgdGhlIGNvcmUgb2YgZHJtX2dlbV9wcmltZV9pbXBvcnQuIEl0J3MgZGVzaWdu ZWQgdG8gYmUgY2FsbGVkIGJ5Cj4gLSAqIGRyaXZlcnMgd2hvIHdhbnQgdG8gdXNlIGEgZGlmZmVy ZW50IGRldmljZSBzdHJ1Y3R1cmUgdGhhbiBkZXYtPmRldiBmb3IKPiAtICogYXR0YWNoaW5nIHZp YSBkbWFfYnVmLgo+ICsgKiBUaGlzIGlzIHRoZSBjb3JlIG9mIGRybV9nZW1fcHJpbWVfaW1wb3J0 KCkuIEl0J3MgZGVzaWduZWQgdG8gYmUgY2FsbGVkIGJ5Cj4gKyAqIGRyaXZlcnMgd2hvIHdhbnQg dG8gdXNlIGEgZGlmZmVyZW50IGRldmljZSBzdHJ1Y3R1cmUgdGhhbiAmZHJtX2RldmljZS5kZXYg Zm9yCj4gKyAqIGF0dGFjaGluZyB2aWEgZG1hX2J1Zi4gVGhpcyBmdW5jdGlvbiBjYWxscwo+ICsg KiAmZHJtX2RyaXZlci5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlIGludGVybmFsbHkuCj4gKyAq Cj4gKyAqIERyaXZlcnMgbXVzdCBhcnJhbmdlIHRvIGNhbGwgZHJtX3ByaW1lX2dlbV9kZXN0cm95 KCkgZnJvbSB0aGVpcgo+ICsgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3MuZnJlZSBob29rIHdoZW4g dXNpbmcgdGhpcyBmdW5jdGlvbi4KPiAgICovCj4gIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZHJt X2dlbV9wcmltZV9pbXBvcnRfZGV2KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkJICAg IHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLAo+IEBAIC03MjgsNyArOTIzLDExIEBAIEVYUE9SVF9T WU1CT0woZHJtX2dlbV9wcmltZV9pbXBvcnRfZGV2KTsKPiAgICogQGRtYV9idWY6IGRtYS1idWYg b2JqZWN0IHRvIGltcG9ydAo+ICAgKgo+ICAgKiBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBv ZiB0aGUgZ2VtX3ByaW1lX2ltcG9ydCBmdW5jdGlvbnMgZm9yIEdFTSBkcml2ZXJzCj4gLSAqIHVz aW5nIHRoZSBQUklNRSBoZWxwZXJzLgo+ICsgKiB1c2luZyB0aGUgUFJJTUUgaGVscGVycy4gRHJp dmVycyBjYW4gdXNlIHRoaXMgYXMgdGhlaXIKPiArICogJmRybV9kcml2ZXIuZ2VtX3ByaW1lX2lt cG9ydCBpbXBsZW1lbnRhdGlvbi4KPiArICoKPiArICogRHJpdmVycyBtdXN0IGFycmFuZ2UgdG8g Y2FsbCBkcm1fcHJpbWVfZ2VtX2Rlc3Ryb3koKSBmcm9tIHRoZWlyCj4gKyAqICZkcm1fZ2VtX29i amVjdF9mdW5jcy5mcmVlIGhvb2sgd2hlbiB1c2luZyB0aGlzIGZ1bmN0aW9uLgoKQ291bGQgd2Ug aGVyZSBkb2N1bWVudCB3aGF0IGZ1bmN0aW9uIHdlIHByb3ZpZGUgYXMgdGhlIGRlZmF1bHQKJmRy bV9nZW1fb2JqZWN0X2Z1bmNzLmZyZWUgaG9vaywgd2hpY2ggZG8gdGhlIGRybV9wcmltZV9nZW1f ZGVzdHJveSgpCmNhbGwuCkkgcmVhZCB0aGUgYWJvdmUgdGhhdCBkcml2ZXJzIGhhdmUgdG8gcHJv dmlkZSB0aGVpciBvd24gaW1wbGVtZW50YXRpb24Kb2YgYSAuZnJlZSBob29rLCBhbmQgSSBkbyBu b3QgdGhpbmsgdGhpcyBpcyByaWdodC4KCgo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaAo+ IEBAIC01MDUsMjEgKzUwNSwyNSBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7Cj4gIAkgKiBAZ2VtX2Zy ZWVfb2JqZWN0OiBkZWNvbnN0cnVjdG9yIGZvciBkcm1fZ2VtX29iamVjdHMKPiAgCSAqCj4gIAkg KiBUaGlzIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBieSBuZXcgZHJpdmVy cy4gVXNlCj4gLQkgKiBAZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkIGluc3RlYWQuCj4gKwkgKiAm ZHJtX2dlbV9vYmplY3RfZnVuY3MuZnJlZSBpbnN0ZWFkLgo+ICAJICovCj4gIAl2b2lkICgqZ2Vt X2ZyZWVfb2JqZWN0KSAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+ICAKPiAgCS8qKgo+ ICAJICogQGdlbV9mcmVlX29iamVjdF91bmxvY2tlZDogZGVjb25zdHJ1Y3RvciBmb3IgZHJtX2dl bV9vYmplY3RzCj4gIAkgKgo+IC0JICogVGhpcyBpcyBmb3IgZHJpdmVycyB3aGljaCBhcmUgbm90 IGVuY3VtYmVyZWQgd2l0aCAmZHJtX2RldmljZS5zdHJ1Y3RfbXV0ZXgKPiAtCSAqIGxlZ2FjeSBs b2NraW5nIHNjaGVtZXMuIFVzZSB0aGlzIGhvb2sgaW5zdGVhZCBvZiBAZ2VtX2ZyZWVfb2JqZWN0 Lgo+ICsJICogVGhpcyBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYnkgbmV3 IGRyaXZlcnMuIFVzZQo+ICsJICogJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmZyZWUgaW5zdGVhZC4K PiArCSAqIENvbXBhcmVkIHRvIEBnZW1fZnJlZV9vYmplY3QgdGhpcyBpcyBub3QgZW5jdW1iZXJl ZCB3aXRoCj4gKwkgKiAmZHJtX2RldmljZS5zdHJ1Y3RfbXV0ZXggbGVnYWN5IGxvY2tpbmcgc2No ZW1lcy4KPiAgCSAqLwpJdCBpcyBjb25mdXNpbmcgd2h5IHRoZSBhYm92ZSBjb21tZW50IHJlZmVy IHRvIGFub3RoZXIgY2FsbGJhY2suCklzIHRoaXMgdGhlIHJpZ2h0IHdvcmRpbmc/CgkqIENvbXBh cmVkIHRvIEBnZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgdGhpcyBpcyBub3QgZW5jdW1iZXJlZCB3 aXRoCgkqICZkcm1fZGV2aWNlLnN0cnVjdF9tdXRleCBsZWdhY3kgbG9ja2luZyBzY2hlbWVzLgoK RG8gZ2VtX2ZyZWVfb2JqZWN0KCkgd2FycmFudCBhIHNpbWlsYXIgY29tbWVudD8KCgo+IEBAIC01 NDgsNTYgKzU1NywxMjAgQEAgc3RydWN0IGRybV9kcml2ZXIgewo+ICAJLyoqCj4gIAkgKiBAZ2Vt X2NyZWF0ZV9vYmplY3Q6IGNvbnN0cnVjdG9yIGZvciBnZW0gb2JqZWN0cwo+ICAJICoKPiAtCSAq IEhvb2sgZm9yIGFsbG9jYXRpbmcgdGhlIEdFTSBvYmplY3Qgc3RydWN0LCBmb3IgdXNlIGJ5IGNv cmUKPiAtCSAqIGhlbHBlcnMuCj4gKwkgKiBIb29rIGZvciBhbGxvY2F0aW5nIHRoZSBHRU0gb2Jq ZWN0IHN0cnVjdCwgZm9yIHVzZSBieSB0aGUgQ01BIGFuZAo+ICsJICogU0hNRU0gR0VNIGhlbHBl cnMuCj4gIAkgKi8KPiAgCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKCpnZW1fY3JlYXRlX29iamVj dCkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCQkJICAgIHNpemVfdCBzaXplKTsKTml0 OiBJbiBzb21lIHBsYWNlcyB3ZSBkbzoKCWludCAoZm9vKSAoaW50IGJhcik7Cm90aGVyOgoJaW50 IChmb28pKGludCBiYXIpOwoKTm8gcHJlZmVyZW5jZSBoZXJlLCBidXQgaXQgaHVydHMgbXkgT0NE IGEgbGl0dGxlIHRoYXQgaXQgaXMKaW5jb25zaXN0ZW50LgoKPiAtCj4gLQkvKiBwcmltZTogKi8K PiAgCS8qKgo+ICAJICogQHByaW1lX2hhbmRsZV90b19mZDoKPiAgCSAqCj4gLQkgKiBleHBvcnQg aGFuZGxlIC0+IGZkIChzZWUgZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQoKSBoZWxwZXIpCj4g KwkgKiBNYWluIFBSSU1FIGV4cG9ydCBmdW5jdGlvbi4gU2hvdWxkIGJlIGltcGxlbnRlZCB3aXRo CnMvaW1wbGVudGVkL2ltcGxlbWVudGVkLwoKPiArCSAqIGRybV9nZW1fcHJpbWVfaGFuZGxlX3Rv X2ZkKCkgZm9yIEdFTSBiYXNlZCBkcml2ZXJzLgo+ICsJICoKPiArCSAqIEZvciBhbiBpbi1kZXB0 aCBkaXNjdXNzaW9uIHNlZSA6cmVmOmBQUklNRSBidWZmZXIgc2hhcmluZwo+ICsJICogZG9jdW1l bnRhdGlvbiA8cHJpbWVfYnVmZmVyX3NoYXJpbmc+YC4KPiAgCSAqLwo+ICAJaW50ICgqcHJpbWVf aGFuZGxlX3RvX2ZkKShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdiwKPiAgCQkJCXVpbnQzMl90IGhhbmRsZSwgdWludDMyX3QgZmxhZ3MsIGludCAqcHJp bWVfZmQpOwo+ICAJLyoqCj4gIAkgKiBAcHJpbWVfZmRfdG9faGFuZGxlOgo+ICAJICoKPiAtCSAq IGltcG9ydCBmZCAtPiBoYW5kbGUgKHNlZSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSgpIGhl bHBlcikKPiArCSAqIE1haW4gUFJJTUUgaW1wb3J0IGZ1bmN0aW9uLiBTaG91bGQgYmUgaW1wbGVu dGVkIHdpdGgKcy9pbXBsZW50ZWQvaW1wbGVtZW50ZWQvCgo+ICsJICogZHJtX2dlbV9wcmltZV9m ZF90b19oYW5kbGUoKSBmb3IgR0VNIGJhc2VkIGRyaXZlcnMuCj4gKwkgKgo+ICsJICogRm9yIGFu IGluLWRlcHRoIGRpc2N1c3Npb24gc2VlIDpyZWY6YFBSSU1FIGJ1ZmZlciBzaGFyaW5nCj4gKwkg KiBkb2N1bWVudGF0aW9uIDxwcmltZV9idWZmZXJfc2hhcmluZz5gLgo+ICAJICovCj4gIAlpbnQg KCpwcmltZV9mZF90b19oYW5kbGUpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2LAo+ICAJCQkJaW50IHByaW1lX2ZkLCB1aW50MzJfdCAqaGFuZGxlKTsK PiAgCS8qKgo+ICAJICogQGdlbV9wcmltZV9leHBvcnQ6Cj4gIAkgKgo+IC0JICogZXhwb3J0IEdF TSAtPiBkbWFidWYKPiAtCSAqCj4gLQkgKiBUaGlzIGRlZmF1bHRzIHRvIGRybV9nZW1fcHJpbWVf ZXhwb3J0KCkgaWYgbm90IHNldC4KPiArCSAqIEV4cG9ydCBob29rIGZvciBHRU0gZHJpdmVycy4g RGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YKPiArCSAqICZkcm1fZ2VtX29iamVjdF9mdW5jcy5leHBv cnQuCj4gIAkgKi8KPiAgCXN0cnVjdCBkbWFfYnVmICogKCpnZW1fcHJpbWVfZXhwb3J0KShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGlu dCBmbGFncyk7Cj4gIAkvKioKPiAgCSAqIEBnZW1fcHJpbWVfaW1wb3J0Ogo+ICAJICoKPiAtCSAq IGltcG9ydCBkbWFidWYgLT4gR0VNCj4gKwkgKiBJbXBvcnQgaG9vayBmb3IgR0VNIGRyaXZlcnMu Cj4gIAkgKgo+ICAJICogVGhpcyBkZWZhdWx0cyB0byBkcm1fZ2VtX3ByaW1lX2ltcG9ydCgpIGlm IG5vdCBzZXQuCj4gIAkgKi8KPiAgCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqICgqZ2VtX3ByaW1l X2ltcG9ydCkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCXN0cnVjdCBkbWFfYnVmICpk bWFfYnVmKTsKPiArCj4gKwkvKioKPiArCSAqIEBnZW1fcHJpbWVfcGluOgo+ICsJICoKPiArCSAq IERlcHJlY2F0ZWQgaG9vayBpbiBmYXZvdXIgb2YgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnBpbi4K PiArCSAqLwo+ICAJaW50ICgqZ2VtX3ByaW1lX3Bpbikoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpv YmopOwo+ICsKPiArCS8qKgo+ICsJICogQGdlbV9wcmltZV91bnBpbjoKPiArCSAqCj4gKwkgKiBE ZXByZWNhdGVkIGhvb2sgaW4gZmF2b3VyIG9mICZkcm1fZ2VtX29iamVjdF9mdW5jcy51bnBpbi4K PiArCSAqLwo+ICAJdm9pZCAoKmdlbV9wcmltZV91bnBpbikoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopOwo+ICsKPiArCj4gKwkvKioKPiArCSAqIEBnZW1fcHJpbWVfZ2V0X3NnX3RhYmxlOgo+ ICsJICoKPiArCSAqIERlcHJlY2F0ZWQgaG9vayBpbiBmYXZvdXIgb2YgJmRybV9nZW1fb2JqZWN0 X2Z1bmNzLmdldF9zZ190YWJsZS4KPiArCSAqLwo+ICsJc3RydWN0IHNnX3RhYmxlICooKmdlbV9w cmltZV9nZXRfc2dfdGFibGUpKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiArCj4gKwkv KioKPiArCSAqIEBnZW1fcHJpbWVfcmVzX29iajoKPiArCSAqCj4gKwkgKiBPcHRpb25hbCBob29r IHRvIGxvb2sgdXAgdGhlICZyZXNlcnZhdGlvbl9vYmplY3QgZm9yIGFuIGJ1ZmZlciB3aGVuCj4g KwkgKiBleHBvcnRpbmcgaXQuCj4gKwkgKgo+ICsJICogRklYTUU6IFRoaXMgaG9vayBpcyBkZXBy ZWNhdGVkLiBVc2VyIG9mIHRoaXMgaG9vayBzaG91bGQgYmUgcmVwbGFjZWQKVXNlciA9PiBVc2Vy cz8KCj4gKwkgKiBieSBzZXR0aW5nICZkcm1fZ2VtX29iamVjdC5yZXN2IGluc3RlYWQuCj4gKwkg Ki8KPiAgCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKiAoKmdlbV9wcmltZV9yZXNfb2JqKSgK PiAgCQkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiAtCXN0cnVjdCBzZ190YWJsZSAq KCpnZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4g Kwo+ICsJLyoqCj4gKwkgKiBAZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZToKPiArCSAqCj4gKwkg KiBPcHRpb25hbCBob29rIHVzZWQgYnkgdGhlIFBSSU1FIGhlbHBlciBmdW5jdGlvbnMKPiArCSAq IGRybV9nZW1fcHJpbWVfaW1wb3J0KCkgcmVzcGVjdGl2ZWx5IGRybV9nZW1fcHJpbWVfaW1wb3J0 X2RldigpLgo+ICsJICovCj4gIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKigqZ2VtX3ByaW1lX2lt cG9ydF9zZ190YWJsZSkoCj4gIAkJCQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJc3Ry dWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAo+ICAJCQkJc3RydWN0IHNnX3RhYmxlICpz Z3QpOwo+ICsJLyoqCj4gKwkgKiBAZ2VtX3ByaW1lX3ZtYXA6Cj4gKwkgKgo+ICsJICogRGVwcmVj YXRlZCB2bWFwIGhvb2sgZm9yIEdFTSBkcml2ZXJzLiBQbGVhc2UgdXNlCj4gKwkgKiAmZHJtX2dl bV9vYmplY3RfZnVuY3Mudm1hcCBpbnN0ZWFkLgpPcj8KCSAqIERlcHJlY2F0ZWQgaG9vayBpbiBm YXZvdXIgb2YgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLnZtYXAuCgooU2FtZSB3b3JkaW5nIGFzIGEg ZmV3IGZ1bmN0aW9ucyB1cCkKCj4gKwkgKi8KPiAgCXZvaWQgKigqZ2VtX3ByaW1lX3ZtYXApKHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiArCj4gKwkvKioKPiArCSAqIEBnZW1fcHJpbWVf dnVubWFwOgo+ICsJICoKPiArCSAqIERlcHJlY2F0ZWQgdnVubWFwIGhvb2sgZm9yIEdFTSBkcml2 ZXJzLiBQbGVhc2UgdXNlCj4gKwkgKiAmZHJtX2dlbV9vYmplY3RfZnVuY3MudnVubWFwIGluc3Rl YWQuCk9yPwpZCSAqIERlcHJlY2F0ZWQgaG9vayBpbiBmYXZvdXIgb2YgJmRybV9nZW1fb2JqZWN0 X2Z1bmNzLnZ1bm1hcC4KCj4gKwkgKi8KPiAgCXZvaWQgKCpnZW1fcHJpbWVfdnVubWFwKShzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgdm9pZCAqdmFkZHIpOwo+ICsKPiArCS8qKgo+ICsJICog QGdlbV9wcmltZV9tbWFwOgo+ICsJICoKPiArCSAqIG1tYXAgaG9vayBmb3IgR0VNIGRyaXZlcnMs IHVzZWQgdG8gaW1wbGVtZW50IGRtYS1idWYgbW1hcCBpbiB0aGUKPiArCSAqIFBSSU1FIGhlbHBl cnMuCj4gKwkgKgo+ICsJICogRklYTUU6IFRoZXJlJ3Mgd2F5IHRvbyBtdWNoIGR1cGxpY2F0aW9u IGdvaW5nIG9uIGhlcmUsIGFuZCBhbHNvIG1vdmVkCj4gKwkgKiB0byAmZHJtX2dlbV9vYmplY3Rf ZnVuY3MuCj4gKwkgKi8KPiAgCWludCAoKmdlbV9wcmltZV9tbWFwKShzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaiwKPiAgCQkJCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPiAgCj4gQEAg LTY2NSw2ICs3MzgsOSBAQCBzdHJ1Y3QgZHJtX2RyaXZlciB7Cj4gIAo+ICAJLyoqCj4gIAkgKiBA Z2VtX3ZtX29wczogRHJpdmVyIHByaXZhdGUgb3BzIGZvciB0aGlzIG9iamVjdAo+ICsJICoKPiAr CSAqIEZvciBHRU0gZHJpdmVyIHRoaXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YKPiArCSAq ICZkcm1fZ2VtX29iamVjdF9mdW5jcy52bV9vcHMuCk9yPwoJICogRGVwcmVjYXRlZCBob29rIGlu IGZhdm91ciBvZiAmZHJtX2dlbV9vYmplY3RfZnVuY3Mudm1fb3BzLgo+ICAJICovCj4gIAljb25z dCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgKmdlbV92bV9vcHM7Cj4gIAoKCVNhbQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=