From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH i-g-t v2 06/14] lib/igt_kms: Export property blob functions for output/pipe/plane, v2. Date: Thu, 19 Oct 2017 14:24:44 +0300 Message-ID: <1508412284.3274.127.camel@intel.com> References: <20171012115435.18880-1-maarten.lankhorst@linux.intel.com> <20171012115435.18880-7-maarten.lankhorst@linux.intel.com> Reply-To: mika.kahola@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id F31C46E059 for ; Thu, 19 Oct 2017 11:31:19 +0000 (UTC) In-Reply-To: <20171012115435.18880-7-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmV2aWV3ZWQtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+CgpPbiBUaHUs IDIwMTctMTAtMTIgYXQgMTM6NTQgKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+IFdp dGggdGhlIHJlcGxhY2VfcHJvcF9ibG9iIGZ1bmN0aW9ucyB3ZSBjYW4gc2FmZWx5IHJlcGxhY2Ug dGhlIGJsb2IKPiBmb3IKPiBhbnkgcHJvcGVydHksIHdpdGhvdXQgaGF2aW5nIHRvIGNhcmUgYWJv dXQgZXJyb3IgaGFuZGxpbmcgb3Vyc2VsdmVzLgo+IAo+IFRoaXMgd2lsbCBmb3IgZXhhbXBsZSBh bGxvdyBvdmVycmlkaW5nIGNvbG9yIG1hbmFnZW1lbnQgYmxvYnMsIG9yIGZvcgo+IGttc19hdG9t aWMgc2V0IGludmFsaWQgbW9kZSBibG9icy4KPiAKPiBUaGUgY29sb3IgbWFuYWdlbWVudCBibG9i IGZ1bmN0aW9ucyBhcmUgcmVtb3ZlZCwgdGhleSBjYW4gbm93IGJlCj4gcmVwbGFjZWQgYnkgZGly ZWN0IGNhbGxzIHRvIHJlcGxhY2UgdGhlIHByb3BlcnRpZXMuCj4gCj4gQ2hhbmdlcyBzaW5jZSB2 MToKPiAtIEZpeCBjaGFtZWxpdW0gdGVzdHMuCj4gCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBM YW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiDCoGxp Yi9pZ3Rfa21zLmPCoMKgwqDCoMKgfCAxMTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0KPiAtLS0tLS0tLS0tCj4gwqBsaWIvaWd0X2ttcy5owqDCoMKgwqDCoHzC oMKgMTkgKysrKysrKy0tCj4gwqB0ZXN0cy9jaGFtZWxpdW0uYyB8wqDCoMKgNiArLS0KPiDCoHRl c3RzL2ttc19jb2xvci5jIHzCoMKgMTIgKysrLS0tCj4gwqA0IGZpbGVzIGNoYW5nZWQsIDExMCBp bnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9r bXMuYyBiL2xpYi9pZ3Rfa21zLmMKPiBpbmRleCBlN2I5ZmJhYmE3MDkuLjVmNTQwMjEzNTBhYyAx MDA2NDQKPiAtLS0gYS9saWIvaWd0X2ttcy5jCj4gKysrIGIvbGliL2lndF9rbXMuYwo+IEBAIC0y NDQzLDggKzI0NDMsODggQEAgc3RhdGljIGludCBpZ3Rfb3V0cHV0X2NvbW1pdChpZ3Rfb3V0cHV0 X3QKPiAqb3V0cHV0LAo+IMKgCXJldHVybiAwOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyB2b2lkCj4g LWlndF9waXBlX3JlcGxhY2VfYmxvYihpZ3RfcGlwZV90ICpwaXBlLCBlbnVtCj4gaWd0X2F0b21p Y19jcnRjX3Byb3BlcnRpZXMgcHJvcCwgdm9pZCAqcHRyLCBzaXplX3QgbGVuZ3RoKQo+ICsvKioK PiArICogaWd0X3BsYW5lX3JlcGxhY2VfcHJvcF9ibG9iOgo+ICsgKiBAcGxhbmU6IHBsYW5lIHRv IHNldCBwcm9wZXJ0eSBvbi4KPiArICogQHByb3A6IHByb3BlcnR5IGZvciB3aGljaCB0aGUgYmxv YiB3aWxsIGJlIHJlcGxhY2VkLgo+ICsgKiBAcHRyOiBQb2ludGVyIHRvIGNvbnRlbnRzIGZvciB0 aGUgcHJvcGVydHkuCj4gKyAqIEBsZW5ndGg6IExlbmd0aCBvZiBjb250ZW50cy4KPiArICoKPiAr ICogVGhpcyBmdW5jdGlvbiB3aWxsIGRlc3Ryb3kgdGhlIG9sZCBwcm9wZXJ0eSBibG9iIGZvciB0 aGUgZ2l2ZW4KPiBwcm9wZXJ0eSwKPiArICogYW5kIHdpbGwgY3JlYXRlIGEgbmV3IHByb3BlcnR5 IGJsb2Igd2l0aCB0aGUgdmFsdWVzIHBhc3NlZCB0bwo+IHRoaXMgZnVuY3Rpb24uCj4gKyAqCj4g KyAqIFRoZSBuZXcgcHJvcGVydHkgYmxvYiB3aWxsIGJlIGNvbW1pdHRlZCB3aGVuIHlvdSBjYWxs Cj4gaWd0X2Rpc3BsYXlfY29tbWl0KCksCj4gKyAqIGlndF9kaXNwbGF5X2NvbW1pdDIoKSBvciBp Z3RfZGlzcGxheV9jb21taXRfYXRvbWljKCkuCj4gKyAqLwo+ICt2b2lkCj4gK2lndF9wbGFuZV9y ZXBsYWNlX3Byb3BfYmxvYihpZ3RfcGxhbmVfdCAqcGxhbmUsIGVudW0KPiBpZ3RfYXRvbWljX3Bs YW5lX3Byb3BlcnRpZXMgcHJvcCwgY29uc3Qgdm9pZCAqcHRyLCBzaXplX3QgbGVuZ3RoKQo+ICt7 Cj4gKwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gcGxhbmUtPnBpcGUtPmRpc3BsYXk7Cj4gKwl1 aW50NjRfdCAqYmxvYiA9ICZwbGFuZS0+dmFsdWVzW3Byb3BdOwo+ICsJdWludDMyX3QgYmxvYl9p ZCA9IDA7Cj4gKwo+ICsJaWYgKCpibG9iICE9IDApCj4gKwkJaWd0X2Fzc2VydChkcm1Nb2RlRGVz dHJveVByb3BlcnR5QmxvYihkaXNwbGF5LQo+ID5kcm1fZmQsCj4gKwkJCQkJCcKgwqDCoMKgwqDC oCpibG9iKSA9PSAwKTsKPiArCj4gKwlpZiAobGVuZ3RoID4gMCkKPiArCQlpZ3RfYXNzZXJ0KGRy bU1vZGVDcmVhdGVQcm9wZXJ0eUJsb2IoZGlzcGxheS0KPiA+ZHJtX2ZkLAo+ICsJCQkJCQnCoMKg wqDCoMKgcHRyLCBsZW5ndGgsCj4gJmJsb2JfaWQpID09IDApOwo+ICsKPiArCSpibG9iID0gYmxv Yl9pZDsKPiArCWlndF9wbGFuZV9zZXRfcHJvcF9jaGFuZ2VkKHBsYW5lLCBwcm9wKTsKPiArfQo+ ICsKPiArLyoqCj4gKyAqIGlndF9vdXRwdXRfcmVwbGFjZV9wcm9wX2Jsb2I6Cj4gKyAqIEBvdXRw dXQ6IG91dHB1dCB0byBzZXQgcHJvcGVydHkgb24uCj4gKyAqIEBwcm9wOiBwcm9wZXJ0eSBmb3Ig d2hpY2ggdGhlIGJsb2Igd2lsbCBiZSByZXBsYWNlZC4KPiArICogQHB0cjogUG9pbnRlciB0byBj b250ZW50cyBmb3IgdGhlIHByb3BlcnR5Lgo+ICsgKiBAbGVuZ3RoOiBMZW5ndGggb2YgY29udGVu dHMuCj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gd2lsbCBkZXN0cm95IHRoZSBvbGQgcHJvcGVy dHkgYmxvYiBmb3IgdGhlIGdpdmVuCj4gcHJvcGVydHksCj4gKyAqIGFuZCB3aWxsIGNyZWF0ZSBh IG5ldyBwcm9wZXJ0eSBibG9iIHdpdGggdGhlIHZhbHVlcyBwYXNzZWQgdG8KPiB0aGlzIGZ1bmN0 aW9uLgo+ICsgKgo+ICsgKiBUaGUgbmV3IHByb3BlcnR5IGJsb2Igd2lsbCBiZSBjb21taXR0ZWQg d2hlbiB5b3UgY2FsbAo+IGlndF9kaXNwbGF5X2NvbW1pdCgpLAo+ICsgKiBpZ3RfZGlzcGxheV9j b21taXQyKCkgb3IgaWd0X2Rpc3BsYXlfY29tbWl0X2F0b21pYygpLgo+ICsgKi8KPiArdm9pZAo+ ICtpZ3Rfb3V0cHV0X3JlcGxhY2VfcHJvcF9ibG9iKGlndF9vdXRwdXRfdCAqb3V0cHV0LCBlbnVt Cj4gaWd0X2F0b21pY19jb25uZWN0b3JfcHJvcGVydGllcyBwcm9wLCBjb25zdCB2b2lkICpwdHIs IHNpemVfdCBsZW5ndGgpCj4gK3sKPiArCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSBvdXRwdXQt PmRpc3BsYXk7Cj4gKwl1aW50NjRfdCAqYmxvYiA9ICZvdXRwdXQtPnZhbHVlc1twcm9wXTsKPiAr CXVpbnQzMl90IGJsb2JfaWQgPSAwOwo+ICsKPiArCWlmICgqYmxvYiAhPSAwKQo+ICsJCWlndF9h c3NlcnQoZHJtTW9kZURlc3Ryb3lQcm9wZXJ0eUJsb2IoZGlzcGxheS0KPiA+ZHJtX2ZkLAo+ICsJ CQkJCQnCoMKgwqDCoMKgwqAqYmxvYikgPT0gMCk7Cj4gKwo+ICsJaWYgKGxlbmd0aCA+IDApCj4g KwkJaWd0X2Fzc2VydChkcm1Nb2RlQ3JlYXRlUHJvcGVydHlCbG9iKGRpc3BsYXktCj4gPmRybV9m ZCwKPiArCQkJCQkJwqDCoMKgwqDCoHB0ciwgbGVuZ3RoLAo+ICZibG9iX2lkKSA9PSAwKTsKPiAr Cj4gKwkqYmxvYiA9IGJsb2JfaWQ7Cj4gKwlpZ3Rfb3V0cHV0X3NldF9wcm9wX2NoYW5nZWQob3V0 cHV0LCBwcm9wKTsKPiArfQo+ICsKPiArLyoqCj4gKyAqIGlndF9waXBlX29ial9yZXBsYWNlX3By b3BfYmxvYjoKPiArICogQHBpcGU6IHBpcGUgdG8gc2V0IHByb3BlcnR5IG9uLgo+ICsgKiBAcHJv cDogcHJvcGVydHkgZm9yIHdoaWNoIHRoZSBibG9iIHdpbGwgYmUgcmVwbGFjZWQuCj4gKyAqIEBw dHI6IFBvaW50ZXIgdG8gY29udGVudHMgZm9yIHRoZSBwcm9wZXJ0eS4KPiArICogQGxlbmd0aDog TGVuZ3RoIG9mIGNvbnRlbnRzLgo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVzdHJv eSB0aGUgb2xkIHByb3BlcnR5IGJsb2IgZm9yIHRoZSBnaXZlbgo+IHByb3BlcnR5LAo+ICsgKiBh bmQgd2lsbCBjcmVhdGUgYSBuZXcgcHJvcGVydHkgYmxvYiB3aXRoIHRoZSB2YWx1ZXMgcGFzc2Vk IHRvCj4gdGhpcyBmdW5jdGlvbi4KPiArICoKPiArICogVGhlIG5ldyBwcm9wZXJ0eSBibG9iIHdp bGwgYmUgY29tbWl0dGVkIHdoZW4geW91IGNhbGwKPiBpZ3RfZGlzcGxheV9jb21taXQoKSwKPiAr ICogaWd0X2Rpc3BsYXlfY29tbWl0MigpIG9yIGlndF9kaXNwbGF5X2NvbW1pdF9hdG9taWMoKS4K PiArICoKPiArICogUGxlYXNlIHVzZSBpZ3Rfb3V0cHV0X292ZXJyaWRlX21vZGUoKSBpZiB5b3Ug d2FudCB0byBzZXQKPiAjSUdUX0NSVENfTU9ERV9JRCwKPiArICogaXQgd29ya3MgYmV0dGVyIHdp dGggbGVnYWN5IGNvbW1pdC4KPiArICovCj4gK3ZvaWQKPiAraWd0X3BpcGVfb2JqX3JlcGxhY2Vf cHJvcF9ibG9iKGlndF9waXBlX3QgKnBpcGUsIGVudW0KPiBpZ3RfYXRvbWljX2NydGNfcHJvcGVy dGllcyBwcm9wLCBjb25zdCB2b2lkICpwdHIsIHNpemVfdCBsZW5ndGgpCj4gwqB7Cj4gwqAJaWd0 X2Rpc3BsYXlfdCAqZGlzcGxheSA9IHBpcGUtPmRpc3BsYXk7Cj4gwqAJdWludDY0X3QgKmJsb2Ig PSAmcGlwZS0+dmFsdWVzW3Byb3BdOwo+IEBAIC0yODM2LDcgKzI5MTYsNyBAQCB2b2lkIGlndF9v dXRwdXRfb3ZlcnJpZGVfbW9kZShpZ3Rfb3V0cHV0X3QKPiAqb3V0cHV0LCBkcm1Nb2RlTW9kZUlu Zm8gKm1vZGUpCj4gwqAKPiDCoAlpZiAocGlwZSkgewo+IMKgCQlpZiAob3V0cHV0LT5kaXNwbGF5 LT5pc19hdG9taWMpCj4gLQkJCWlndF9waXBlX3JlcGxhY2VfYmxvYihwaXBlLAo+IElHVF9DUlRD X01PREVfSUQsIGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KSwgc2l6ZW9mKCptb2RlKSk7Cj4g KwkJCWlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihwaXBlLAo+IElHVF9DUlRDX01PREVf SUQsIGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KSwgc2l6ZW9mKCptb2RlKSk7Cj4gwqAJCWVs c2UKPiDCoAkJCWlndF9waXBlX29ial9zZXRfcHJvcF9jaGFuZ2VkKHBpcGUsCj4gSUdUX0NSVENf TU9ERV9JRCk7Cj4gwqAJfQo+IEBAIC0yODY1LDcgKzI5NDUsNyBAQCB2b2lkIGlndF9vdXRwdXRf c2V0X3BpcGUoaWd0X291dHB1dF90ICpvdXRwdXQsCj4gZW51bSBwaXBlIHBpcGUpCj4gwqAJCW9s ZF9vdXRwdXQgPSBpZ3RfcGlwZV9nZXRfb3V0cHV0KG9sZF9waXBlKTsKPiDCoAkJaWYgKCFvbGRf b3V0cHV0KSB7Cj4gwqAJCQlpZiAoZGlzcGxheS0+aXNfYXRvbWljKQo+IC0JCQkJaWd0X3BpcGVf cmVwbGFjZV9ibG9iKG9sZF9waXBlLAo+IElHVF9DUlRDX01PREVfSUQsIE5VTEwsIDApOwo+ICsJ CQkJaWd0X3BpcGVfb2JqX3JlcGxhY2VfcHJvcF9ibG9iKG9sZF9wCj4gaXBlLCBJR1RfQ1JUQ19N T0RFX0lELCBOVUxMLCAwKTsKPiDCoAkJCWVsc2UKPiDCoAkJCQlpZ3RfcGlwZV9vYmpfc2V0X3By b3BfY2hhbmdlZChvbGRfcGkKPiBwZSwgSUdUX0NSVENfTU9ERV9JRCk7Cj4gwqAKPiBAQCAtMjg3 OSw3ICsyOTU5LDcgQEAgdm9pZCBpZ3Rfb3V0cHV0X3NldF9waXBlKGlndF9vdXRwdXRfdCAqb3V0 cHV0LAo+IGVudW0gcGlwZSBwaXBlKQo+IMKgCj4gwqAJaWYgKHBpcGVfb2JqKSB7Cj4gwqAJCWlm IChkaXNwbGF5LT5pc19hdG9taWMpCj4gLQkJCWlndF9waXBlX3JlcGxhY2VfYmxvYihwaXBlX29i aiwKPiBJR1RfQ1JUQ19NT0RFX0lELCBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCksCj4gc2l6 ZW9mKGRybU1vZGVNb2RlSW5mbykpOwo+ICsJCQlpZ3RfcGlwZV9vYmpfcmVwbGFjZV9wcm9wX2Js b2IocGlwZV9vYmosCj4gSUdUX0NSVENfTU9ERV9JRCwgaWd0X291dHB1dF9nZXRfbW9kZShvdXRw dXQpLAo+IHNpemVvZihkcm1Nb2RlTW9kZUluZm8pKTsKPiDCoAkJZWxzZQo+IMKgCQkJaWd0X3Bp cGVfb2JqX3NldF9wcm9wX2NoYW5nZWQocGlwZV9vYmosCj4gSUdUX0NSVENfTU9ERV9JRCk7Cj4g wqAKPiBAQCAtMjkwOCwxOCArMjk4OCwxMSBAQCB2b2lkIGlndF9waXBlX3JlZnJlc2goaWd0X2Rp c3BsYXlfdCAqZGlzcGxheSwKPiBlbnVtIHBpcGUgcGlwZSwgYm9vbCBmb3JjZSkKPiDCoAo+IMKg CQlwaXBlX29iai0+dmFsdWVzW0lHVF9DUlRDX01PREVfSURdID0gMDsKPiDCoAkJaWYgKG91dHB1 dCkKPiAtCQkJaWd0X3BpcGVfcmVwbGFjZV9ibG9iKHBpcGVfb2JqLAo+IElHVF9DUlRDX01PREVf SUQsIGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KSwKPiBzaXplb2YoZHJtTW9kZU1vZGVJbmZv KSk7Cj4gKwkJCWlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihwaXBlX29iaiwKPiBJR1Rf Q1JUQ19NT0RFX0lELCBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCksCj4gc2l6ZW9mKGRybU1v ZGVNb2RlSW5mbykpOwo+IMKgCX0gZWxzZQo+IMKgCQlpZ3RfcGlwZV9vYmpfc2V0X3Byb3BfY2hh bmdlZChwaXBlX29iaiwKPiBJR1RfQ1JUQ19NT0RFX0lEKTsKPiDCoH0KPiDCoAo+IC12b2lkIGln dF9vdXRwdXRfc2V0X3NjYWxpbmdfbW9kZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgdWludDY0X3QK PiBzY2FsaW5nX21vZGUpCj4gLXsKPiAtCWlndF9vdXRwdXRfc2V0X3Byb3BfdmFsdWUob3V0cHV0 LAo+IElHVF9DT05ORUNUT1JfU0NBTElOR19NT0RFLCBzY2FsaW5nX21vZGUpOwo+IC0KPiAtCWln dF9yZXF1aXJlKG91dHB1dC0+cHJvcHNbSUdUX0NPTk5FQ1RPUl9TQ0FMSU5HX01PREVdKTsKPiAt fQo+IC0KPiDCoGlndF9wbGFuZV90ICppZ3Rfb3V0cHV0X2dldF9wbGFuZShpZ3Rfb3V0cHV0X3Qg Km91dHB1dCwgaW50Cj4gcGxhbmVfaWR4KQo+IMKgewo+IMKgCWlndF9waXBlX3QgKnBpcGU7Cj4g QEAgLTMxMTksMjQgKzMxOTIsNiBAQCB2b2lkIGlndF9waXBlX3JlcXVlc3Rfb3V0X2ZlbmNlKGln dF9waXBlX3QKPiAqcGlwZSkKPiDCoAlpZ3RfcGlwZV9vYmpfc2V0X3Byb3BfdmFsdWUocGlwZSwg SUdUX0NSVENfT1VUX0ZFTkNFX1BUUiwKPiAocHRyZGlmZl90KSZwaXBlLT5vdXRfZmVuY2VfZmQp Owo+IMKgfQo+IMKgCj4gLXZvaWQKPiAtaWd0X3BpcGVfc2V0X2RlZ2FtbWFfbHV0KGlndF9waXBl X3QgKnBpcGUsIHZvaWQgKnB0ciwgc2l6ZV90IGxlbmd0aCkKPiAtewo+IC0JaWd0X3BpcGVfcmVw bGFjZV9ibG9iKHBpcGUsIElHVF9DUlRDX0RFR0FNTUFfTFVULCBwdHIsCj4gbGVuZ3RoKTsKPiAt fQo+IC0KPiAtdm9pZAo+IC1pZ3RfcGlwZV9zZXRfY3RtX21hdHJpeChpZ3RfcGlwZV90ICpwaXBl LCB2b2lkICpwdHIsIHNpemVfdCBsZW5ndGgpCj4gLXsKPiAtCWlndF9waXBlX3JlcGxhY2VfYmxv YihwaXBlLCBJR1RfQ1JUQ19DVE0sIHB0ciwgbGVuZ3RoKTsKPiAtfQo+IC0KPiAtdm9pZAo+IC1p Z3RfcGlwZV9zZXRfZ2FtbWFfbHV0KGlndF9waXBlX3QgKnBpcGUsIHZvaWQgKnB0ciwgc2l6ZV90 IGxlbmd0aCkKPiAtewo+IC0JaWd0X3BpcGVfcmVwbGFjZV9ibG9iKHBpcGUsIElHVF9DUlRDX0dB TU1BX0xVVCwgcHRyLAo+IGxlbmd0aCk7Cj4gLX0KPiAtCj4gwqAvKioKPiDCoCAqIGlndF9jcnRj X3NldF9iYWNrZ3JvdW5kOgo+IMKgICogQHBpcGU6IHBpcGUgcG9pbnRlciB0byB3aGljaCBiYWNr Z3JvdW5kIGNvbG9yIHRvIGJlIHNldAo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5oIGIvbGli L2lndF9rbXMuaAo+IGluZGV4IGI1MzEyN2ZmZWY1Zi4uMmU0YzIzNDM3ZjRlIDEwMDY0NAo+IC0t LSBhL2xpYi9pZ3Rfa21zLmgKPiArKysgYi9saWIvaWd0X2ttcy5oCj4gQEAgLTM2Niw3ICszNjYs NiBAQCBjb25zdCBjaGFyICppZ3Rfb3V0cHV0X25hbWUoaWd0X291dHB1dF90Cj4gKm91dHB1dCk7 Cj4gwqBkcm1Nb2RlTW9kZUluZm8gKmlndF9vdXRwdXRfZ2V0X21vZGUoaWd0X291dHB1dF90ICpv dXRwdXQpOwo+IMKgdm9pZCBpZ3Rfb3V0cHV0X292ZXJyaWRlX21vZGUoaWd0X291dHB1dF90ICpv dXRwdXQsIGRybU1vZGVNb2RlSW5mbwo+ICptb2RlKTsKPiDCoHZvaWQgaWd0X291dHB1dF9zZXRf cGlwZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBwaXBlIHBpcGUpOwo+IC12b2lkIGlndF9v dXRwdXRfc2V0X3NjYWxpbmdfbW9kZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgdWludDY0X3QKPiBz Y2FsaW5nX21vZGUpOwo+IMKgaWd0X3BsYW5lX3QgKmlndF9vdXRwdXRfZ2V0X3BsYW5lKGlndF9v dXRwdXRfdCAqb3V0cHV0LCBpbnQKPiBwbGFuZV9pZHgpOwo+IMKgaWd0X3BsYW5lX3QgKmlndF9v dXRwdXRfZ2V0X3BsYW5lX3R5cGUoaWd0X291dHB1dF90ICpvdXRwdXQsIGludAo+IHBsYW5lX3R5 cGUpOwo+IMKgaWd0X291dHB1dF90ICppZ3Rfb3V0cHV0X2Zyb21fY29ubmVjdG9yKGlndF9kaXNw bGF5X3QgKmRpc3BsYXksCj4gQEAgLTM4MSw5ICszODAsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wK PiBpZ3RfcGxhbmVfc3VwcG9ydHNfcm90YXRpb24oaWd0X3BsYW5lX3QgKnBsYW5lKQo+IMKgCXJl dHVybiBwbGFuZS0+cHJvcHNbSUdUX1BMQU5FX1JPVEFUSU9OXSAhPSAwOwo+IMKgfQo+IMKgdm9p ZCBpZ3RfcGlwZV9yZXF1ZXN0X291dF9mZW5jZShpZ3RfcGlwZV90ICpwaXBlKTsKPiAtdm9pZCBp Z3RfcGlwZV9zZXRfZGVnYW1tYV9sdXQoaWd0X3BpcGVfdCAqcGlwZSwgdm9pZCAqcHRyLCBzaXpl X3QKPiBsZW5ndGgpOwo+IC12b2lkIGlndF9waXBlX3NldF9jdG1fbWF0cml4KGlndF9waXBlX3Qg KnBpcGUsIHZvaWQgKnB0ciwgc2l6ZV90Cj4gbGVuZ3RoKTsKPiAtdm9pZCBpZ3RfcGlwZV9zZXRf Z2FtbWFfbHV0KGlndF9waXBlX3QgKnBpcGUsIHZvaWQgKnB0ciwgc2l6ZV90Cj4gbGVuZ3RoKTsK PiDCoAo+IMKgdm9pZCBpZ3RfcGxhbmVfc2V0X2ZiKGlndF9wbGFuZV90ICpwbGFuZSwgc3RydWN0 IGlndF9mYiAqZmIpOwo+IMKgdm9pZCBpZ3RfcGxhbmVfc2V0X2ZlbmNlX2ZkKGlndF9wbGFuZV90 ICpwbGFuZSwgaW50IGZlbmNlX2ZkKTsKPiBAQCAtNTEzLDYgKzUwOSwxMCBAQCBzdGF0aWMgaW5s aW5lIGJvb2wKPiBpZ3Rfb3V0cHV0X2lzX2Nvbm5lY3RlZChpZ3Rfb3V0cHV0X3QgKm91dHB1dCkK PiDCoAkJaWd0X3BsYW5lX3NldF9wcm9wX2NoYW5nZWQocGxhbmUsIHByb3ApOyBcCj4gwqAJfSB3 aGlsZSAoMCkKPiDCoAo+ICtleHRlcm4gdm9pZCBpZ3RfcGxhbmVfcmVwbGFjZV9wcm9wX2Jsb2Io aWd0X3BsYW5lX3QgKnBsYW5lLAo+ICsJCQkJCWVudW0KPiBpZ3RfYXRvbWljX3BsYW5lX3Byb3Bl cnRpZXMgcHJvcCwKPiArCQkJCQljb25zdCB2b2lkICpwdHIsIHNpemVfdAo+IGxlbmd0aCk7Cj4g Kwo+IMKgI2RlZmluZSBpZ3Rfb3V0cHV0X2lzX3Byb3BfY2hhbmdlZChvdXRwdXQsIHByb3ApIFwK PiDCoAkoISEoKG91dHB1dCktPmNoYW5nZWQgJiAoMSA8PCAocHJvcCkpKSkKPiDCoCNkZWZpbmUg aWd0X291dHB1dF9zZXRfcHJvcF9jaGFuZ2VkKG91dHB1dCwgcHJvcCkgXAo+IEBAIC01MjcsNiAr NTI3LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbAo+IGlndF9vdXRwdXRfaXNfY29ubmVjdGVkKGln dF9vdXRwdXRfdCAqb3V0cHV0KQo+IMKgCQlpZ3Rfb3V0cHV0X3NldF9wcm9wX2NoYW5nZWQob3V0 cHV0LCBwcm9wKTsgXAo+IMKgCX0gd2hpbGUgKDApCj4gwqAKPiArZXh0ZXJuIHZvaWQgaWd0X291 dHB1dF9yZXBsYWNlX3Byb3BfYmxvYihpZ3Rfb3V0cHV0X3QgKm91dHB1dCwKPiArCQkJCQnCoGVu dW0KPiBpZ3RfYXRvbWljX2Nvbm5lY3Rvcl9wcm9wZXJ0aWVzIHByb3AsCj4gKwkJCQkJwqBjb25z dCB2b2lkICpwdHIsIHNpemVfdAo+IGxlbmd0aCk7Cj4gKwo+IMKgI2RlZmluZSBpZ3RfcGlwZV9v YmpfaXNfcHJvcF9jaGFuZ2VkKHBpcGVfb2JqLCBwcm9wKSBcCj4gwqAJKCEhKChwaXBlX29iaikt PmNoYW5nZWQgJiAoMSA8PCAocHJvcCkpKSkKPiDCoAo+IEBAIC01NTQsNiArNTU4LDEzIEBAIHN0 YXRpYyBpbmxpbmUgYm9vbAo+IGlndF9vdXRwdXRfaXNfY29ubmVjdGVkKGlndF9vdXRwdXRfdCAq b3V0cHV0KQo+IMKgI2RlZmluZSBpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBl LCBwcm9wLCB2YWx1ZSkgXAo+IMKgCWlndF9waXBlX29ial9zZXRfcHJvcF92YWx1ZSgmKGRpc3Bs YXkpLT5waXBlc1socGlwZSldLCBwcm9wLAo+IHZhbHVlKQo+IMKgCj4gK2V4dGVybiB2b2lkIGln dF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihpZ3RfcGlwZV90ICpwaXBlX29iaiwKPiArCQkJ CQnCoMKgwqBlbnVtCj4gaWd0X2F0b21pY19jcnRjX3Byb3BlcnRpZXMgcHJvcCwKPiArCQkJCQnC oMKgwqBjb25zdCB2b2lkICpwdHIsIHNpemVfdAo+IGxlbmd0aCk7Cj4gKwo+ICsjZGVmaW5lIGln dF9waXBlX3JlcGxhY2VfcHJvcF9ibG9iKGRpc3BsYXksIHBpcGUsIHByb3AsIHB0ciwgbGVuZ3Ro KQo+IFwKPiArCWlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYigmKGRpc3BsYXkpLT5waXBl c1socGlwZSldLAo+IHByb3AsIHB0ciwgbGVuZ3RoKQo+ICsKPiDCoHZvaWQgaWd0X3BpcGVfcmVm cmVzaChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwgYm9vbAo+IGZvcmNl KTsKPiDCoAo+IMKgdm9pZCBpZ3RfZW5hYmxlX2Nvbm5lY3RvcnModm9pZCk7Cj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2NoYW1lbGl1bS5jIGIvdGVzdHMvY2hhbWVsaXVtLmMKPiBpbmRleCBlM2Q4MTM1 N2IzMmIuLmFlMTY0OTIwZTg2ZSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9jaGFtZWxpdW0uYwo+ICsr KyBiL3Rlc3RzL2NoYW1lbGl1bS5jCj4gQEAgLTQ2Miw5ICs0NjIsOSBAQCBlbmFibGVfb3V0cHV0 KGRhdGFfdCAqZGF0YSwKPiDCoAlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgb3V0cHV0LT5j b25maWcucGlwZSk7Cj4gwqAKPiDCoAkvKiBDbGVhciBhbnkgY29sb3IgY29ycmVjdGlvbiB2YWx1 ZXMgdGhhdCBtaWdodCBiZSBlbmFibGVkCj4gKi8KPiAtCWlndF9waXBlX3NldF9kZWdhbW1hX2x1 dChwcmltYXJ5LT5waXBlLCBOVUxMLCAwKTsKPiAtCWlndF9waXBlX3NldF9nYW1tYV9sdXQocHJp bWFyeS0+cGlwZSwgTlVMTCwgMCk7Cj4gLQlpZ3RfcGlwZV9zZXRfY3RtX21hdHJpeChwcmltYXJ5 LT5waXBlLCBOVUxMLCAwKTsKPiArCWlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihwcmlt YXJ5LT5waXBlLAo+IElHVF9DUlRDX0RFR0FNTUFfTFVULCBOVUxMLCAwKTsKPiArCWlndF9waXBl X29ial9yZXBsYWNlX3Byb3BfYmxvYihwcmltYXJ5LT5waXBlLAo+IElHVF9DUlRDX0dBTU1BX0xV VCwgTlVMTCwgMCk7Cj4gKwlpZ3RfcGlwZV9vYmpfcmVwbGFjZV9wcm9wX2Jsb2IocHJpbWFyeS0+ cGlwZSwgSUdUX0NSVENfQ1RNLAo+IE5VTEwsIDApOwo+IMKgCj4gwqAJa21zdGVzdF9zZXRfY29u bmVjdG9yX2Jyb2FkY2FzdF9yZ2IoZGlzcGxheS0+ZHJtX2ZkLAo+IGNvbm5lY3RvciwKPiDCoAkJ CQkJwqDCoMKgwqBCUk9BRENBU1RfUkdCX0ZVTEwpOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNf Y29sb3IuYyBiL3Rlc3RzL2ttc19jb2xvci5jCj4gaW5kZXggYmNkNDhkODk4NzVjLi5lMzBlNmJm NGU0MDkgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX2NvbG9yLmMKPiArKysgYi90ZXN0cy9rbXNf Y29sb3IuYwo+IEBAIC0xODksNyArMTg5LDcgQEAgc3RhdGljIHZvaWQgc2V0X2RlZ2FtbWEoZGF0 YV90ICpkYXRhLAo+IMKgCQkJCQkJwqDCoMKgZGF0YS0KPiA+ZGVnYW1tYV9sdXRfc2l6ZSwKPiDC oAkJCQkJCcKgwqDCoGRhdGEtCj4gPmNvbG9yX2RlcHRoLCAwKTsKPiDCoAo+IC0JaWd0X3BpcGVf c2V0X2RlZ2FtbWFfbHV0KHBpcGUsIGx1dCwgc2l6ZSk7Cj4gKwlpZ3RfcGlwZV9vYmpfcmVwbGFj ZV9wcm9wX2Jsb2IocGlwZSwgSUdUX0NSVENfREVHQU1NQV9MVVQsCj4gbHV0LCBzaXplKTsKPiDC oAo+IMKgCWZyZWUobHV0KTsKPiDCoH0KPiBAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyB2b2lk IHNldF9nYW1tYShkYXRhX3QgKmRhdGEsCj4gwqAJCQkJCQnCoMKgwqBkYXRhLQo+ID5nYW1tYV9s dXRfc2l6ZSwKPiDCoAkJCQkJCcKgwqDCoGRhdGEtCj4gPmNvbG9yX2RlcHRoLCAwKTsKPiDCoAo+ IC0JaWd0X3BpcGVfc2V0X2dhbW1hX2x1dChwaXBlLCBsdXQsIHNpemUpOwo+ICsJCWlndF9waXBl X29ial9yZXBsYWNlX3Byb3BfYmxvYihwaXBlLAo+IElHVF9DUlRDX0dBTU1BX0xVVCwgbHV0LCBz aXplKTsKPiDCoAo+IMKgCWZyZWUobHV0KTsKPiDCoH0KPiBAQCAtMjI0LDEyICsyMjQsMTIgQEAg c3RhdGljIHZvaWQgc2V0X2N0bShpZ3RfcGlwZV90ICpwaXBlLCBjb25zdAo+IGRvdWJsZSAqY29l ZmZpY2llbnRzKQo+IMKgCQkJCShpbnQ2NF90KSAoY29lZmZpY2llbnRzW2ldICoKPiAoKGludDY0 X3QpIDFMIDw8IDMyKSk7Cj4gwqAJfQo+IMKgCj4gLQlpZ3RfcGlwZV9zZXRfY3RtX21hdHJpeChw aXBlLCAmY3RtLCBzaXplb2YoY3RtKSk7Cj4gKwlpZ3RfcGlwZV9vYmpfcmVwbGFjZV9wcm9wX2Js b2IocGlwZSwgSUdUX0NSVENfQ1RNLCAmY3RtLAo+IHNpemVvZihjdG0pKTsKPiDCoH0KPiDCoAo+ IC0jZGVmaW5lIGRpc2FibGVfZGVnYW1tYShwaXBlKSBpZ3RfcGlwZV9zZXRfZGVnYW1tYV9sdXQo cGlwZSwgTlVMTCwKPiAwKQo+IC0jZGVmaW5lIGRpc2FibGVfZ2FtbWEocGlwZSkgaWd0X3BpcGVf c2V0X2dhbW1hX2x1dChwaXBlLCBOVUxMLCAwKQo+IC0jZGVmaW5lIGRpc2FibGVfY3RtKHBpcGUp IGlndF9waXBlX3NldF9jdG1fbWF0cml4KHBpcGUsIE5VTEwsIDApCj4gKyNkZWZpbmUgZGlzYWJs ZV9kZWdhbW1hKHBpcGUpIGlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihwaXBlLAo+IElH VF9DUlRDX0RFR0FNTUFfTFVULCBOVUxMLCAwKQo+ICsjZGVmaW5lIGRpc2FibGVfZ2FtbWEocGlw ZSkgaWd0X3BpcGVfb2JqX3JlcGxhY2VfcHJvcF9ibG9iKHBpcGUsCj4gSUdUX0NSVENfR0FNTUFf TFVULCBOVUxMLCAwKQo+ICsjZGVmaW5lIGRpc2FibGVfY3RtKHBpcGUpIGlndF9waXBlX29ial9y ZXBsYWNlX3Byb3BfYmxvYihwaXBlLAo+IElHVF9DUlRDX0NUTSwgTlVMTCwgMCkKPiDCoAo+IMKg c3RhdGljIHZvaWQgb3V0cHV0X3NldF9wcm9wZXJ0eV9lbnVtKGlndF9vdXRwdXRfdCAqb3V0cHV0 LAo+IMKgCQkJCcKgwqDCoMKgwqBjb25zdCBjaGFyICpwcm9wZXJ0eSwKLS0gCk1pa2EgS2Fob2xh IC0gSW50ZWwgT1RDCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK