From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 03/59] drm/i915: Move common request allocation code into a common function Date: Tue, 31 Mar 2015 16:48:53 +0100 Message-ID: <551AC1E5.8000007@intel.com> References: <1426768264-16996-1-git-send-email-John.C.Harrison@Intel.com> <1426768264-16996-4-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id C51D66E6F2 for ; Tue, 31 Mar 2015 08:48:55 -0700 (PDT) In-Reply-To: <1426768264-16996-4-git-send-email-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "John.C.Harrison@Intel.com" , "Intel-GFX@Lists.FreeDesktop.Org" List-Id: intel-gfx@lists.freedesktop.org T24gMTkvMDMvMjAxNSAxMjozMCwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gVGhlIHJl cXVlc3QgYWxsb2NhdGlvbiBjb2RlIGlzIGxhcmdlbHkgZHVwbGljYXRlZCBiZXR3ZWVuIGxlZ2Fj eSBtb2RlIGFuZAo+IGV4ZWNsaXN0IG1vZGUuIFRoZSBhY3R1YWwgZGlmZmVyZW5jZSBiZXR3ZWVu IHRoZSB0d28gdmVyc2lvbnMgb2YgdGhlIGNvZGUgaXMKPiBwcmV0dHkgbWluaW1hbC4KPgo+IFRo aXMgcGF0Y2ggbW92ZXMgdGhlIGNvbW1vbiBjb2RlIG91dCBpbnRvIGEgc2VwYXJhdGUgZnVuY3Rp b24uIFRoaXMgaXMgdGhlbgo+IGNhbGxlZCBieSB0aGUgZXhlY3V0aW9uIHNwZWNpZmljIHZlcnNp b24gcHJpb3IgdG8gc2V0dGluZyB1cCB0aGUgb25lIGRpZmZlcmVudAo+IHZhbHVlLgo+Cj4gRm9y OiBWSVotNTE5MAo+IFNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNv bkBJbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAg ICAgICAgfCAgICAyICsrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAg ICAgfCAgIDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAgIDM5ICsrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oICAgICAgICB8ICAg IDIgKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAgMjgg KysrLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oIHwgICAgMiArKwo+ICAgNiBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCsp LCA1NiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDFhMjM0 NDUuLjRlYmQ0MjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjExMyw2ICsy MTEzLDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKPgo+ICAgfTsKPgo+ICtpbnQg aTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICsJ CQkgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KTsKPiAgIHZvaWQgaTkxNV9nZW1fcmVxdWVz dF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKTsKPgo+ICAgc3RhdGljIGlubGluZSB1aW50MzJf dAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDUxY2RmYjcuLjQ4MjRhZGYgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMjUxOCw2ICsyNTE4LDQzIEBAIHZvaWQgaTkx NV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKQo+ICAgCWtmcmVlKHJlcSk7 Cj4gICB9Cj4KPiAraW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZywKPiArCQkJICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKPiArewo+ICsJ aW50IHJldDsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsKPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdmF0ZSA9IHJpbmctPmRldi0+ZGV2X3ByaXZh dGU7Cj4gKwo+ICsJaWYgKHJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdCkKPiArCQlyZXR1 cm4gMDsKPiArCj4gKwlyZXF1ZXN0ID0ga3phbGxvYyhzaXplb2YoKnJlcXVlc3QpLCBHRlBfS0VS TkVMKTsKPiArCWlmIChyZXF1ZXN0ID09IE5VTEwpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ ICsJcmV0ID0gaTkxNV9nZW1fZ2V0X3NlcW5vKHJpbmctPmRldiwgJnJlcXVlc3QtPnNlcW5vKTsK PiArCWlmIChyZXQpIHsKPiArCQlrZnJlZShyZXF1ZXN0KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJ fQo+ICsKPiArCWtyZWZfaW5pdCgmcmVxdWVzdC0+cmVmKTsKPiArCXJlcXVlc3QtPnJpbmcgPSBy aW5nOwo+ICsJcmVxdWVzdC0+dW5pcSA9IGRldl9wcml2YXRlLT5yZXF1ZXN0X3VuaXErKzsKPiAr Cj4gKwlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQo+ICsJCXJldCA9IGludGVsX2xvZ2ljYWxf cmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhyZXF1ZXN0LCBjdHgpOwo+ICsJZWxzZQo+ICsJCXJl dCA9IGludGVsX3JpbmdfYWxsb2NfcmVxdWVzdF9leHRyYXMocmVxdWVzdCk7Cj4gKwlpZiAocmV0 KSB7Cj4gKwkJa2ZyZWUocmVxdWVzdCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwly aW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QgPSByZXF1ZXN0Owo+ICsJcmV0dXJuIDA7Cj4g K30KPiArCj4gICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgo+ICAgaTkxNV9nZW1fZmlu ZF9hY3RpdmVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAgewo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggY2FkNDMwMC4uNjUwNDY4OSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTYxMSw0NCArNjExLDIxIEBAIHN0YXRpYyBpbnQg ZXhlY2xpc3RzX21vdmVfdG9fZ3B1KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+ ICAgCXJldHVybiBsb2dpY2FsX3JpbmdfaW52YWxpZGF0ZV9hbGxfY2FjaGVzKHJpbmdidWYsIGN0 eCk7Cj4gICB9Cj4KPiAtc3RhdGljIGludCBsb2dpY2FsX3JpbmdfYWxsb2NfcmVxdWVzdChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+IC0JCQkJICAgICAgc3RydWN0IGludGVsX2NvbnRl eHQgKmN0eCkKPiAraW50IGludGVsX2xvZ2ljYWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gKwkJCQkJICAgIHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjdHgpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3Q7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXZhdGUgPSByaW5n LT5kZXYtPmRldl9wcml2YXRlOwo+ICAgCWludCByZXQ7Cj4KPiAtCWlmIChyaW5nLT5vdXRzdGFu ZGluZ19sYXp5X3JlcXVlc3QpCj4gLQkJcmV0dXJuIDA7Cj4gLQo+IC0JcmVxdWVzdCA9IGt6YWxs b2Moc2l6ZW9mKCpyZXF1ZXN0KSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAocmVxdWVzdCA9PSBOVUxM KQo+IC0JCXJldHVybiAtRU5PTUVNOwo+IC0KPiAtCWlmIChjdHggIT0gcmluZy0+ZGVmYXVsdF9j b250ZXh0KSB7Cj4gLQkJcmV0ID0gaW50ZWxfbHJfY29udGV4dF9waW4ocmluZywgY3R4KTsKPiAt CQlpZiAocmV0KSB7Cj4gLQkJCWtmcmVlKHJlcXVlc3QpOwo+ICsJaWYgKGN0eCAhPSByZXF1ZXN0 LT5yaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKPiArCQlyZXQgPSBpbnRlbF9scl9jb250ZXh0X3Bp bihyZXF1ZXN0LT5yaW5nLCBjdHgpOwo+ICsJCWlmIChyZXQpCj4gICAJCQlyZXR1cm4gcmV0Owo+ IC0JCX0KPiAtCX0KPiAtCj4gLQlrcmVmX2luaXQoJnJlcXVlc3QtPnJlZik7Cj4gLQlyZXF1ZXN0 LT5yaW5nID0gcmluZzsKPiAtCXJlcXVlc3QtPnVuaXEgPSBkZXZfcHJpdmF0ZS0+cmVxdWVzdF91 bmlxKys7Cj4gLQo+IC0JcmV0ID0gaTkxNV9nZW1fZ2V0X3NlcW5vKHJpbmctPmRldiwgJnJlcXVl c3QtPnNlcW5vKTsKPiAtCWlmIChyZXQpIHsKPiAtCQlpbnRlbF9scl9jb250ZXh0X3VucGluKHJp bmcsIGN0eCk7Cj4gLQkJa2ZyZWUocmVxdWVzdCk7Cj4gLQkJcmV0dXJuIHJldDsKPiAgIAl9Cj4K PiAtCXJlcXVlc3QtPmN0eCA9IGN0eDsKPiArCXJlcXVlc3QtPnJpbmdidWYgPSBjdHgtPmVuZ2lu ZVtyZXF1ZXN0LT5yaW5nLT5pZF0ucmluZ2J1ZjsKPiArCXJlcXVlc3QtPmN0eCAgICAgPSBjdHg7 Cj4gICAJaTkxNV9nZW1fY29udGV4dF9yZWZlcmVuY2UocmVxdWVzdC0+Y3R4KTsKPiAtCXJlcXVl c3QtPnJpbmdidWYgPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZjsKPgo+IC0JcmluZy0+ b3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0ID0gcmVxdWVzdDsKPiAgIAlyZXR1cm4gMDsKPiAgIH0K Pgo+IEBAIC04NDAsNyArODE3LDcgQEAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3JpbmdfYmVn aW4oc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsCj4gICAJCXJldHVybiByZXQ7Cj4K PiAgIAkvKiBQcmVhbGxvY2F0ZSB0aGUgb2xyIGJlZm9yZSB0b3VjaGluZyB0aGUgcmluZyAqLwo+ IC0JcmV0ID0gbG9naWNhbF9yaW5nX2FsbG9jX3JlcXVlc3QocmluZywgY3R4KTsKPiArCXJldCA9 IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MocmluZywgY3R4KTsKPiAgIAlpZiAocmV0KQo+ICAgCQly ZXR1cm4gcmV0Owo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiBpbmRleCBhYzhmODFhLi4w NGQzYTZkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiBAQCAtMzYsNiArMzYsOCBA QAo+ICAgI2RlZmluZSBSSU5HX0NPTlRFWFRfU1RBVFVTX1BUUihyaW5nKQkoKHJpbmcpLT5tbWlv X2Jhc2UrMHgzYTApCj4KPiAgIC8qIExvZ2ljYWwgUmluZ3MgKi8KPiAraW50IGludGVsX2xvZ2lj YWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QsCj4gKwkJCQkJICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwo+ICAgdm9p ZCBpbnRlbF9sb2dpY2FsX3Jpbmdfc3RvcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsK PiAgIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2NsZWFudXAoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZyk7Cj4gICBpbnQgaW50ZWxfbG9naWNhbF9yaW5nc19pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRl eCA0NDFlMjUwLi45OWZiMmYwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYwo+IEBAIC0yMTgxLDMyICsyMTgxLDEwIEBAIGludCBpbnRlbF9yaW5nX2lkbGUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIAlyZXR1cm4gaTkxNV93YWl0X3JlcXVlc3Qo cmVxKTsKPiAgIH0KPgo+IC1zdGF0aWMgaW50Cj4gLWludGVsX3JpbmdfYWxsb2NfcmVxdWVzdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICtpbnQgaW50ZWxfcmluZ19hbGxvY19yZXF1 ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICB7Cj4g LQlpbnQgcmV0Owo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0Owo+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2YXRlID0gcmluZy0+ZGV2LT5kZXZfcHJp dmF0ZTsKPiAtCj4gLQlpZiAocmluZy0+b3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0KQo+IC0JCXJl dHVybiAwOwo+IC0KPiAtCXJlcXVlc3QgPSBremFsbG9jKHNpemVvZigqcmVxdWVzdCksIEdGUF9L RVJORUwpOwo+IC0JaWYgKHJlcXVlc3QgPT0gTlVMTCkKPiAtCQlyZXR1cm4gLUVOT01FTTsKPiAt Cj4gLQlrcmVmX2luaXQoJnJlcXVlc3QtPnJlZik7Cj4gLQlyZXF1ZXN0LT5yaW5nID0gcmluZzsK PiAtCXJlcXVlc3QtPnJpbmdidWYgPSByaW5nLT5idWZmZXI7Cj4gLQlyZXF1ZXN0LT51bmlxID0g ZGV2X3ByaXZhdGUtPnJlcXVlc3RfdW5pcSsrOwo+IC0KPiAtCXJldCA9IGk5MTVfZ2VtX2dldF9z ZXFubyhyaW5nLT5kZXYsICZyZXF1ZXN0LT5zZXFubyk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJa2Zy ZWUocmVxdWVzdCk7Cj4gLQkJcmV0dXJuIHJldDsKPiAtCX0KPiArCXJlcXVlc3QtPnJpbmdidWYg PSByZXF1ZXN0LT5yaW5nLT5idWZmZXI7Cj4KPiAtCXJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVx dWVzdCA9IHJlcXVlc3Q7Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiBAQCAtMjI0Nyw3ICsyMjI1 LDcgQEAgaW50IGludGVsX3JpbmdfYmVnaW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywK PiAgIAkJcmV0dXJuIHJldDsKPgo+ICAgCS8qIFByZWFsbG9jYXRlIHRoZSBvbHIgYmVmb3JlIHRv dWNoaW5nIHRoZSByaW5nICovCj4gLQlyZXQgPSBpbnRlbF9yaW5nX2FsbG9jX3JlcXVlc3Qocmlu Zyk7Cj4gKwlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHJpbmcsIHJpbmctPmRlZmF1bHRf Y29udGV4dCk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCBjNzYxZmUwLi42NTY2ZGQ0IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IEBAIC0zOTAsNiArMzkw LDggQEAgaW50IGludGVsX2FsbG9jX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gICB2b2lkIGludGVsX3N0b3BfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZyk7Cj4gICB2b2lkIGludGVsX2NsZWFudXBfcmluZ19idWZmZXIoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZyk7Cj4KPiAraW50IGludGVsX3JpbmdfYWxsb2NfcmVxdWVzdF9leHRy YXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KTsKPiArCj4gICBpbnQgX19t dXN0X2NoZWNrIGludGVsX3JpbmdfYmVnaW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywg aW50IG4pOwo+ICAgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9yaW5nX2NhY2hlbGluZV9hbGlnbihz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiAgIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRl bF9yaW5nX2VtaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPgoKUmV2aWV3ZWQtYnk6 IFRvbWFzIEVsZiA8dG9tYXMuZWxmQGludGVsLmNvbT4KClRoYW5rcywKVG9tYXMKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK