From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH i-g-t 06/12] lib/igt_kms: Export property blob functions for output/pipe/plane Date: Wed, 11 Oct 2017 12:11:13 +0200 Message-ID: <20171011101119.32130-7-maarten.lankhorst@linux.intel.com> References: <20171011101119.32130-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id DDA796E626 for ; Wed, 11 Oct 2017 10:11:27 +0000 (UTC) In-Reply-To: <20171011101119.32130-1-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org V2l0aCB0aGUgcmVwbGFjZV9wcm9wX2Jsb2IgZnVuY3Rpb25zIHdlIGNhbiBzYWZlbHkgcmVwbGFj ZSB0aGUgYmxvYiBmb3IKYW55IHByb3BlcnR5LCB3aXRob3V0IGhhdmluZyB0byBjYXJlIGFib3V0 IGVycm9yIGhhbmRsaW5nIG91cnNlbHZlcy4KClRoaXMgd2lsbCBmb3IgZXhhbXBsZSBhbGxvdyBv dmVycmlkaW5nIGNvbG9yIG1hbmFnZW1lbnQgYmxvYnMsIG9yIGZvcgprbXNfYXRvbWljIHNldCBp bnZhbGlkIG1vZGUgYmxvYnMuCgpUaGUgY29sb3IgbWFuYWdlbWVudCBibG9iIGZ1bmN0aW9ucyBh cmUgcmVtb3ZlZCwgdGhleSBjYW4gbm93IGJlCnJlcGxhY2VkIGJ5IGRpcmVjdCBjYWxscyB0byBy ZXBsYWNlIHRoZSBwcm9wZXJ0aWVzLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBsaWIvaWd0X2ttcy5jICAg ICB8IDExNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0KIGxpYi9pZ3Rfa21zLmggICAgIHwgIDE5ICsrKysrKystLQogdGVzdHMva21zX2NvbG9y LmMgfCAgMTIgKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCA0MSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwpp bmRleCBlN2I5ZmJhYmE3MDkuLjVmNTQwMjEzNTBhYyAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMu YworKysgYi9saWIvaWd0X2ttcy5jCkBAIC0yNDQzLDggKzI0NDMsODggQEAgc3RhdGljIGludCBp Z3Rfb3V0cHV0X2NvbW1pdChpZ3Rfb3V0cHV0X3QgKm91dHB1dCwKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIHZvaWQKLWlndF9waXBlX3JlcGxhY2VfYmxvYihpZ3RfcGlwZV90ICpwaXBlLCBlbnVt IGlndF9hdG9taWNfY3J0Y19wcm9wZXJ0aWVzIHByb3AsIHZvaWQgKnB0ciwgc2l6ZV90IGxlbmd0 aCkKKy8qKgorICogaWd0X3BsYW5lX3JlcGxhY2VfcHJvcF9ibG9iOgorICogQHBsYW5lOiBwbGFu ZSB0byBzZXQgcHJvcGVydHkgb24uCisgKiBAcHJvcDogcHJvcGVydHkgZm9yIHdoaWNoIHRoZSBi bG9iIHdpbGwgYmUgcmVwbGFjZWQuCisgKiBAcHRyOiBQb2ludGVyIHRvIGNvbnRlbnRzIGZvciB0 aGUgcHJvcGVydHkuCisgKiBAbGVuZ3RoOiBMZW5ndGggb2YgY29udGVudHMuCisgKgorICogVGhp cyBmdW5jdGlvbiB3aWxsIGRlc3Ryb3kgdGhlIG9sZCBwcm9wZXJ0eSBibG9iIGZvciB0aGUgZ2l2 ZW4gcHJvcGVydHksCisgKiBhbmQgd2lsbCBjcmVhdGUgYSBuZXcgcHJvcGVydHkgYmxvYiB3aXRo IHRoZSB2YWx1ZXMgcGFzc2VkIHRvIHRoaXMgZnVuY3Rpb24uCisgKgorICogVGhlIG5ldyBwcm9w ZXJ0eSBibG9iIHdpbGwgYmUgY29tbWl0dGVkIHdoZW4geW91IGNhbGwgaWd0X2Rpc3BsYXlfY29t bWl0KCksCisgKiBpZ3RfZGlzcGxheV9jb21taXQyKCkgb3IgaWd0X2Rpc3BsYXlfY29tbWl0X2F0 b21pYygpLgorICovCit2b2lkCitpZ3RfcGxhbmVfcmVwbGFjZV9wcm9wX2Jsb2IoaWd0X3BsYW5l X3QgKnBsYW5lLCBlbnVtIGlndF9hdG9taWNfcGxhbmVfcHJvcGVydGllcyBwcm9wLCBjb25zdCB2 b2lkICpwdHIsIHNpemVfdCBsZW5ndGgpCit7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9IHBs YW5lLT5waXBlLT5kaXNwbGF5OworCXVpbnQ2NF90ICpibG9iID0gJnBsYW5lLT52YWx1ZXNbcHJv cF07CisJdWludDMyX3QgYmxvYl9pZCA9IDA7CisKKwlpZiAoKmJsb2IgIT0gMCkKKwkJaWd0X2Fz c2VydChkcm1Nb2RlRGVzdHJveVByb3BlcnR5QmxvYihkaXNwbGF5LT5kcm1fZmQsCisJCQkJCQkg ICAgICAqYmxvYikgPT0gMCk7CisKKwlpZiAobGVuZ3RoID4gMCkKKwkJaWd0X2Fzc2VydChkcm1N b2RlQ3JlYXRlUHJvcGVydHlCbG9iKGRpc3BsYXktPmRybV9mZCwKKwkJCQkJCSAgICAgcHRyLCBs ZW5ndGgsICZibG9iX2lkKSA9PSAwKTsKKworCSpibG9iID0gYmxvYl9pZDsKKwlpZ3RfcGxhbmVf c2V0X3Byb3BfY2hhbmdlZChwbGFuZSwgcHJvcCk7Cit9CisKKy8qKgorICogaWd0X291dHB1dF9y ZXBsYWNlX3Byb3BfYmxvYjoKKyAqIEBvdXRwdXQ6IG91dHB1dCB0byBzZXQgcHJvcGVydHkgb24u CisgKiBAcHJvcDogcHJvcGVydHkgZm9yIHdoaWNoIHRoZSBibG9iIHdpbGwgYmUgcmVwbGFjZWQu CisgKiBAcHRyOiBQb2ludGVyIHRvIGNvbnRlbnRzIGZvciB0aGUgcHJvcGVydHkuCisgKiBAbGVu Z3RoOiBMZW5ndGggb2YgY29udGVudHMuCisgKgorICogVGhpcyBmdW5jdGlvbiB3aWxsIGRlc3Ry b3kgdGhlIG9sZCBwcm9wZXJ0eSBibG9iIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHksCisgKiBhbmQg d2lsbCBjcmVhdGUgYSBuZXcgcHJvcGVydHkgYmxvYiB3aXRoIHRoZSB2YWx1ZXMgcGFzc2VkIHRv IHRoaXMgZnVuY3Rpb24uCisgKgorICogVGhlIG5ldyBwcm9wZXJ0eSBibG9iIHdpbGwgYmUgY29t bWl0dGVkIHdoZW4geW91IGNhbGwgaWd0X2Rpc3BsYXlfY29tbWl0KCksCisgKiBpZ3RfZGlzcGxh eV9jb21taXQyKCkgb3IgaWd0X2Rpc3BsYXlfY29tbWl0X2F0b21pYygpLgorICovCit2b2lkCitp Z3Rfb3V0cHV0X3JlcGxhY2VfcHJvcF9ibG9iKGlndF9vdXRwdXRfdCAqb3V0cHV0LCBlbnVtIGln dF9hdG9taWNfY29ubmVjdG9yX3Byb3BlcnRpZXMgcHJvcCwgY29uc3Qgdm9pZCAqcHRyLCBzaXpl X3QgbGVuZ3RoKQoreworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSBvdXRwdXQtPmRpc3BsYXk7 CisJdWludDY0X3QgKmJsb2IgPSAmb3V0cHV0LT52YWx1ZXNbcHJvcF07CisJdWludDMyX3QgYmxv Yl9pZCA9IDA7CisKKwlpZiAoKmJsb2IgIT0gMCkKKwkJaWd0X2Fzc2VydChkcm1Nb2RlRGVzdHJv eVByb3BlcnR5QmxvYihkaXNwbGF5LT5kcm1fZmQsCisJCQkJCQkgICAgICAqYmxvYikgPT0gMCk7 CisKKwlpZiAobGVuZ3RoID4gMCkKKwkJaWd0X2Fzc2VydChkcm1Nb2RlQ3JlYXRlUHJvcGVydHlC bG9iKGRpc3BsYXktPmRybV9mZCwKKwkJCQkJCSAgICAgcHRyLCBsZW5ndGgsICZibG9iX2lkKSA9 PSAwKTsKKworCSpibG9iID0gYmxvYl9pZDsKKwlpZ3Rfb3V0cHV0X3NldF9wcm9wX2NoYW5nZWQo b3V0cHV0LCBwcm9wKTsKK30KKworLyoqCisgKiBpZ3RfcGlwZV9vYmpfcmVwbGFjZV9wcm9wX2Js b2I6CisgKiBAcGlwZTogcGlwZSB0byBzZXQgcHJvcGVydHkgb24uCisgKiBAcHJvcDogcHJvcGVy dHkgZm9yIHdoaWNoIHRoZSBibG9iIHdpbGwgYmUgcmVwbGFjZWQuCisgKiBAcHRyOiBQb2ludGVy IHRvIGNvbnRlbnRzIGZvciB0aGUgcHJvcGVydHkuCisgKiBAbGVuZ3RoOiBMZW5ndGggb2YgY29u dGVudHMuCisgKgorICogVGhpcyBmdW5jdGlvbiB3aWxsIGRlc3Ryb3kgdGhlIG9sZCBwcm9wZXJ0 eSBibG9iIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHksCisgKiBhbmQgd2lsbCBjcmVhdGUgYSBuZXcg cHJvcGVydHkgYmxvYiB3aXRoIHRoZSB2YWx1ZXMgcGFzc2VkIHRvIHRoaXMgZnVuY3Rpb24uCisg KgorICogVGhlIG5ldyBwcm9wZXJ0eSBibG9iIHdpbGwgYmUgY29tbWl0dGVkIHdoZW4geW91IGNh bGwgaWd0X2Rpc3BsYXlfY29tbWl0KCksCisgKiBpZ3RfZGlzcGxheV9jb21taXQyKCkgb3IgaWd0 X2Rpc3BsYXlfY29tbWl0X2F0b21pYygpLgorICoKKyAqIFBsZWFzZSB1c2UgaWd0X291dHB1dF9v dmVycmlkZV9tb2RlKCkgaWYgeW91IHdhbnQgdG8gc2V0ICNJR1RfQ1JUQ19NT0RFX0lELAorICog aXQgd29ya3MgYmV0dGVyIHdpdGggbGVnYWN5IGNvbW1pdC4KKyAqLwordm9pZAoraWd0X3BpcGVf b2JqX3JlcGxhY2VfcHJvcF9ibG9iKGlndF9waXBlX3QgKnBpcGUsIGVudW0gaWd0X2F0b21pY19j cnRjX3Byb3BlcnRpZXMgcHJvcCwgY29uc3Qgdm9pZCAqcHRyLCBzaXplX3QgbGVuZ3RoKQogewog CWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSBwaXBlLT5kaXNwbGF5OwogCXVpbnQ2NF90ICpibG9i ID0gJnBpcGUtPnZhbHVlc1twcm9wXTsKQEAgLTI4MzYsNyArMjkxNiw3IEBAIHZvaWQgaWd0X291 dHB1dF9vdmVycmlkZV9tb2RlKGlndF9vdXRwdXRfdCAqb3V0cHV0LCBkcm1Nb2RlTW9kZUluZm8g Km1vZGUpCiAKIAlpZiAocGlwZSkgewogCQlpZiAob3V0cHV0LT5kaXNwbGF5LT5pc19hdG9taWMp Ci0JCQlpZ3RfcGlwZV9yZXBsYWNlX2Jsb2IocGlwZSwgSUdUX0NSVENfTU9ERV9JRCwgaWd0X291 dHB1dF9nZXRfbW9kZShvdXRwdXQpLCBzaXplb2YoKm1vZGUpKTsKKwkJCWlndF9waXBlX29ial9y ZXBsYWNlX3Byb3BfYmxvYihwaXBlLCBJR1RfQ1JUQ19NT0RFX0lELCBpZ3Rfb3V0cHV0X2dldF9t b2RlKG91dHB1dCksIHNpemVvZigqbW9kZSkpOwogCQllbHNlCiAJCQlpZ3RfcGlwZV9vYmpfc2V0 X3Byb3BfY2hhbmdlZChwaXBlLCBJR1RfQ1JUQ19NT0RFX0lEKTsKIAl9CkBAIC0yODY1LDcgKzI5 NDUsNyBAQCB2b2lkIGlndF9vdXRwdXRfc2V0X3BpcGUoaWd0X291dHB1dF90ICpvdXRwdXQsIGVu dW0gcGlwZSBwaXBlKQogCQlvbGRfb3V0cHV0ID0gaWd0X3BpcGVfZ2V0X291dHB1dChvbGRfcGlw ZSk7CiAJCWlmICghb2xkX291dHB1dCkgewogCQkJaWYgKGRpc3BsYXktPmlzX2F0b21pYykKLQkJ CQlpZ3RfcGlwZV9yZXBsYWNlX2Jsb2Iob2xkX3BpcGUsIElHVF9DUlRDX01PREVfSUQsIE5VTEws IDApOworCQkJCWlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihvbGRfcGlwZSwgSUdUX0NS VENfTU9ERV9JRCwgTlVMTCwgMCk7CiAJCQllbHNlCiAJCQkJaWd0X3BpcGVfb2JqX3NldF9wcm9w X2NoYW5nZWQob2xkX3BpcGUsIElHVF9DUlRDX01PREVfSUQpOwogCkBAIC0yODc5LDcgKzI5NTks NyBAQCB2b2lkIGlndF9vdXRwdXRfc2V0X3BpcGUoaWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0g cGlwZSBwaXBlKQogCiAJaWYgKHBpcGVfb2JqKSB7CiAJCWlmIChkaXNwbGF5LT5pc19hdG9taWMp Ci0JCQlpZ3RfcGlwZV9yZXBsYWNlX2Jsb2IocGlwZV9vYmosIElHVF9DUlRDX01PREVfSUQsIGln dF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KSwgc2l6ZW9mKGRybU1vZGVNb2RlSW5mbykpOworCQkJ aWd0X3BpcGVfb2JqX3JlcGxhY2VfcHJvcF9ibG9iKHBpcGVfb2JqLCBJR1RfQ1JUQ19NT0RFX0lE LCBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCksIHNpemVvZihkcm1Nb2RlTW9kZUluZm8pKTsK IAkJZWxzZQogCQkJaWd0X3BpcGVfb2JqX3NldF9wcm9wX2NoYW5nZWQocGlwZV9vYmosIElHVF9D UlRDX01PREVfSUQpOwogCkBAIC0yOTA4LDE4ICsyOTg4LDExIEBAIHZvaWQgaWd0X3BpcGVfcmVm cmVzaChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwgYm9vbCBmb3JjZSkK IAogCQlwaXBlX29iai0+dmFsdWVzW0lHVF9DUlRDX01PREVfSURdID0gMDsKIAkJaWYgKG91dHB1 dCkKLQkJCWlndF9waXBlX3JlcGxhY2VfYmxvYihwaXBlX29iaiwgSUdUX0NSVENfTU9ERV9JRCwg aWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpLCBzaXplb2YoZHJtTW9kZU1vZGVJbmZvKSk7CisJ CQlpZ3RfcGlwZV9vYmpfcmVwbGFjZV9wcm9wX2Jsb2IocGlwZV9vYmosIElHVF9DUlRDX01PREVf SUQsIGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KSwgc2l6ZW9mKGRybU1vZGVNb2RlSW5mbykp OwogCX0gZWxzZQogCQlpZ3RfcGlwZV9vYmpfc2V0X3Byb3BfY2hhbmdlZChwaXBlX29iaiwgSUdU X0NSVENfTU9ERV9JRCk7CiB9CiAKLXZvaWQgaWd0X291dHB1dF9zZXRfc2NhbGluZ19tb2RlKGln dF9vdXRwdXRfdCAqb3V0cHV0LCB1aW50NjRfdCBzY2FsaW5nX21vZGUpCi17Ci0JaWd0X291dHB1 dF9zZXRfcHJvcF92YWx1ZShvdXRwdXQsIElHVF9DT05ORUNUT1JfU0NBTElOR19NT0RFLCBzY2Fs aW5nX21vZGUpOwotCi0JaWd0X3JlcXVpcmUob3V0cHV0LT5wcm9wc1tJR1RfQ09OTkVDVE9SX1ND QUxJTkdfTU9ERV0pOwotfQotCiBpZ3RfcGxhbmVfdCAqaWd0X291dHB1dF9nZXRfcGxhbmUoaWd0 X291dHB1dF90ICpvdXRwdXQsIGludCBwbGFuZV9pZHgpCiB7CiAJaWd0X3BpcGVfdCAqcGlwZTsK QEAgLTMxMTksMjQgKzMxOTIsNiBAQCB2b2lkIGlndF9waXBlX3JlcXVlc3Rfb3V0X2ZlbmNlKGln dF9waXBlX3QgKnBpcGUpCiAJaWd0X3BpcGVfb2JqX3NldF9wcm9wX3ZhbHVlKHBpcGUsIElHVF9D UlRDX09VVF9GRU5DRV9QVFIsIChwdHJkaWZmX3QpJnBpcGUtPm91dF9mZW5jZV9mZCk7CiB9CiAK LXZvaWQKLWlndF9waXBlX3NldF9kZWdhbW1hX2x1dChpZ3RfcGlwZV90ICpwaXBlLCB2b2lkICpw dHIsIHNpemVfdCBsZW5ndGgpCi17Ci0JaWd0X3BpcGVfcmVwbGFjZV9ibG9iKHBpcGUsIElHVF9D UlRDX0RFR0FNTUFfTFVULCBwdHIsIGxlbmd0aCk7Ci19Ci0KLXZvaWQKLWlndF9waXBlX3NldF9j dG1fbWF0cml4KGlndF9waXBlX3QgKnBpcGUsIHZvaWQgKnB0ciwgc2l6ZV90IGxlbmd0aCkKLXsK LQlpZ3RfcGlwZV9yZXBsYWNlX2Jsb2IocGlwZSwgSUdUX0NSVENfQ1RNLCBwdHIsIGxlbmd0aCk7 Ci19Ci0KLXZvaWQKLWlndF9waXBlX3NldF9nYW1tYV9sdXQoaWd0X3BpcGVfdCAqcGlwZSwgdm9p ZCAqcHRyLCBzaXplX3QgbGVuZ3RoKQotewotCWlndF9waXBlX3JlcGxhY2VfYmxvYihwaXBlLCBJ R1RfQ1JUQ19HQU1NQV9MVVQsIHB0ciwgbGVuZ3RoKTsKLX0KLQogLyoqCiAgKiBpZ3RfY3J0Y19z ZXRfYmFja2dyb3VuZDoKICAqIEBwaXBlOiBwaXBlIHBvaW50ZXIgdG8gd2hpY2ggYmFja2dyb3Vu ZCBjb2xvciB0byBiZSBzZXQKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmggYi9saWIvaWd0X2tt cy5oCmluZGV4IGI1MzEyN2ZmZWY1Zi4uMmU0YzIzNDM3ZjRlIDEwMDY0NAotLS0gYS9saWIvaWd0 X2ttcy5oCisrKyBiL2xpYi9pZ3Rfa21zLmgKQEAgLTM2Niw3ICszNjYsNiBAQCBjb25zdCBjaGFy ICppZ3Rfb3V0cHV0X25hbWUoaWd0X291dHB1dF90ICpvdXRwdXQpOwogZHJtTW9kZU1vZGVJbmZv ICppZ3Rfb3V0cHV0X2dldF9tb2RlKGlndF9vdXRwdXRfdCAqb3V0cHV0KTsKIHZvaWQgaWd0X291 dHB1dF9vdmVycmlkZV9tb2RlKGlndF9vdXRwdXRfdCAqb3V0cHV0LCBkcm1Nb2RlTW9kZUluZm8g Km1vZGUpOwogdm9pZCBpZ3Rfb3V0cHV0X3NldF9waXBlKGlndF9vdXRwdXRfdCAqb3V0cHV0LCBl bnVtIHBpcGUgcGlwZSk7Ci12b2lkIGlndF9vdXRwdXRfc2V0X3NjYWxpbmdfbW9kZShpZ3Rfb3V0 cHV0X3QgKm91dHB1dCwgdWludDY0X3Qgc2NhbGluZ19tb2RlKTsKIGlndF9wbGFuZV90ICppZ3Rf b3V0cHV0X2dldF9wbGFuZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaW50IHBsYW5lX2lkeCk7CiBp Z3RfcGxhbmVfdCAqaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShpZ3Rfb3V0cHV0X3QgKm91dHB1 dCwgaW50IHBsYW5lX3R5cGUpOwogaWd0X291dHB1dF90ICppZ3Rfb3V0cHV0X2Zyb21fY29ubmVj dG9yKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksCkBAIC0zODEsOSArMzgwLDYgQEAgc3RhdGljIGlu bGluZSBib29sIGlndF9wbGFuZV9zdXBwb3J0c19yb3RhdGlvbihpZ3RfcGxhbmVfdCAqcGxhbmUp CiAJcmV0dXJuIHBsYW5lLT5wcm9wc1tJR1RfUExBTkVfUk9UQVRJT05dICE9IDA7CiB9CiB2b2lk IGlndF9waXBlX3JlcXVlc3Rfb3V0X2ZlbmNlKGlndF9waXBlX3QgKnBpcGUpOwotdm9pZCBpZ3Rf cGlwZV9zZXRfZGVnYW1tYV9sdXQoaWd0X3BpcGVfdCAqcGlwZSwgdm9pZCAqcHRyLCBzaXplX3Qg bGVuZ3RoKTsKLXZvaWQgaWd0X3BpcGVfc2V0X2N0bV9tYXRyaXgoaWd0X3BpcGVfdCAqcGlwZSwg dm9pZCAqcHRyLCBzaXplX3QgbGVuZ3RoKTsKLXZvaWQgaWd0X3BpcGVfc2V0X2dhbW1hX2x1dChp Z3RfcGlwZV90ICpwaXBlLCB2b2lkICpwdHIsIHNpemVfdCBsZW5ndGgpOwogCiB2b2lkIGlndF9w bGFuZV9zZXRfZmIoaWd0X3BsYW5lX3QgKnBsYW5lLCBzdHJ1Y3QgaWd0X2ZiICpmYik7CiB2b2lk IGlndF9wbGFuZV9zZXRfZmVuY2VfZmQoaWd0X3BsYW5lX3QgKnBsYW5lLCBpbnQgZmVuY2VfZmQp OwpAQCAtNTEzLDYgKzUwOSwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWd0X291dHB1dF9pc19j b25uZWN0ZWQoaWd0X291dHB1dF90ICpvdXRwdXQpCiAJCWlndF9wbGFuZV9zZXRfcHJvcF9jaGFu Z2VkKHBsYW5lLCBwcm9wKTsgXAogCX0gd2hpbGUgKDApCiAKK2V4dGVybiB2b2lkIGlndF9wbGFu ZV9yZXBsYWNlX3Byb3BfYmxvYihpZ3RfcGxhbmVfdCAqcGxhbmUsCisJCQkJCWVudW0gaWd0X2F0 b21pY19wbGFuZV9wcm9wZXJ0aWVzIHByb3AsCisJCQkJCWNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90 IGxlbmd0aCk7CisKICNkZWZpbmUgaWd0X291dHB1dF9pc19wcm9wX2NoYW5nZWQob3V0cHV0LCBw cm9wKSBcCiAJKCEhKChvdXRwdXQpLT5jaGFuZ2VkICYgKDEgPDwgKHByb3ApKSkpCiAjZGVmaW5l IGlndF9vdXRwdXRfc2V0X3Byb3BfY2hhbmdlZChvdXRwdXQsIHByb3ApIFwKQEAgLTUyNyw2ICs1 MjcsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGlndF9vdXRwdXRfaXNfY29ubmVjdGVkKGlndF9v dXRwdXRfdCAqb3V0cHV0KQogCQlpZ3Rfb3V0cHV0X3NldF9wcm9wX2NoYW5nZWQob3V0cHV0LCBw cm9wKTsgXAogCX0gd2hpbGUgKDApCiAKK2V4dGVybiB2b2lkIGlndF9vdXRwdXRfcmVwbGFjZV9w cm9wX2Jsb2IoaWd0X291dHB1dF90ICpvdXRwdXQsCisJCQkJCSBlbnVtIGlndF9hdG9taWNfY29u bmVjdG9yX3Byb3BlcnRpZXMgcHJvcCwKKwkJCQkJIGNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90IGxl bmd0aCk7CisKICNkZWZpbmUgaWd0X3BpcGVfb2JqX2lzX3Byb3BfY2hhbmdlZChwaXBlX29iaiwg cHJvcCkgXAogCSghISgocGlwZV9vYmopLT5jaGFuZ2VkICYgKDEgPDwgKHByb3ApKSkpCiAKQEAg LTU1NCw2ICs1NTgsMTMgQEAgc3RhdGljIGlubGluZSBib29sIGlndF9vdXRwdXRfaXNfY29ubmVj dGVkKGlndF9vdXRwdXRfdCAqb3V0cHV0KQogI2RlZmluZSBpZ3RfcGlwZV9zZXRfcHJvcF92YWx1 ZShkaXNwbGF5LCBwaXBlLCBwcm9wLCB2YWx1ZSkgXAogCWlndF9waXBlX29ial9zZXRfcHJvcF92 YWx1ZSgmKGRpc3BsYXkpLT5waXBlc1socGlwZSldLCBwcm9wLCB2YWx1ZSkKIAorZXh0ZXJuIHZv aWQgaWd0X3BpcGVfb2JqX3JlcGxhY2VfcHJvcF9ibG9iKGlndF9waXBlX3QgKnBpcGVfb2JqLAor CQkJCQkgICBlbnVtIGlndF9hdG9taWNfY3J0Y19wcm9wZXJ0aWVzIHByb3AsCisJCQkJCSAgIGNv bnN0IHZvaWQgKnB0ciwgc2l6ZV90IGxlbmd0aCk7CisKKyNkZWZpbmUgaWd0X3BpcGVfcmVwbGFj ZV9wcm9wX2Jsb2IoZGlzcGxheSwgcGlwZSwgcHJvcCwgcHRyLCBsZW5ndGgpIFwKKwlpZ3RfcGlw ZV9vYmpfcmVwbGFjZV9wcm9wX2Jsb2IoJihkaXNwbGF5KS0+cGlwZXNbKHBpcGUpXSwgcHJvcCwg cHRyLCBsZW5ndGgpCisKIHZvaWQgaWd0X3BpcGVfcmVmcmVzaChpZ3RfZGlzcGxheV90ICpkaXNw bGF5LCBlbnVtIHBpcGUgcGlwZSwgYm9vbCBmb3JjZSk7CiAKIHZvaWQgaWd0X2VuYWJsZV9jb25u ZWN0b3JzKHZvaWQpOwpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2NvbG9yLmMgYi90ZXN0cy9rbXNf Y29sb3IuYwppbmRleCBiY2Q0OGQ4OTg3NWMuLmUzMGU2YmY0ZTQwOSAxMDA2NDQKLS0tIGEvdGVz dHMva21zX2NvbG9yLmMKKysrIGIvdGVzdHMva21zX2NvbG9yLmMKQEAgLTE4OSw3ICsxODksNyBA QCBzdGF0aWMgdm9pZCBzZXRfZGVnYW1tYShkYXRhX3QgKmRhdGEsCiAJCQkJCQkgICBkYXRhLT5k ZWdhbW1hX2x1dF9zaXplLAogCQkJCQkJICAgZGF0YS0+Y29sb3JfZGVwdGgsIDApOwogCi0JaWd0 X3BpcGVfc2V0X2RlZ2FtbWFfbHV0KHBpcGUsIGx1dCwgc2l6ZSk7CisJaWd0X3BpcGVfb2JqX3Jl cGxhY2VfcHJvcF9ibG9iKHBpcGUsIElHVF9DUlRDX0RFR0FNTUFfTFVULCBsdXQsIHNpemUpOwog CiAJZnJlZShsdXQpOwogfQpAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyB2b2lkIHNldF9nYW1t YShkYXRhX3QgKmRhdGEsCiAJCQkJCQkgICBkYXRhLT5nYW1tYV9sdXRfc2l6ZSwKIAkJCQkJCSAg IGRhdGEtPmNvbG9yX2RlcHRoLCAwKTsKIAotCWlndF9waXBlX3NldF9nYW1tYV9sdXQocGlwZSwg bHV0LCBzaXplKTsKKwkJaWd0X3BpcGVfb2JqX3JlcGxhY2VfcHJvcF9ibG9iKHBpcGUsIElHVF9D UlRDX0dBTU1BX0xVVCwgbHV0LCBzaXplKTsKIAogCWZyZWUobHV0KTsKIH0KQEAgLTIyNCwxMiAr MjI0LDEyIEBAIHN0YXRpYyB2b2lkIHNldF9jdG0oaWd0X3BpcGVfdCAqcGlwZSwgY29uc3QgZG91 YmxlICpjb2VmZmljaWVudHMpCiAJCQkJKGludDY0X3QpIChjb2VmZmljaWVudHNbaV0gKiAoKGlu dDY0X3QpIDFMIDw8IDMyKSk7CiAJfQogCi0JaWd0X3BpcGVfc2V0X2N0bV9tYXRyaXgocGlwZSwg JmN0bSwgc2l6ZW9mKGN0bSkpOworCWlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihwaXBl LCBJR1RfQ1JUQ19DVE0sICZjdG0sIHNpemVvZihjdG0pKTsKIH0KIAotI2RlZmluZSBkaXNhYmxl X2RlZ2FtbWEocGlwZSkgaWd0X3BpcGVfc2V0X2RlZ2FtbWFfbHV0KHBpcGUsIE5VTEwsIDApCi0j ZGVmaW5lIGRpc2FibGVfZ2FtbWEocGlwZSkgaWd0X3BpcGVfc2V0X2dhbW1hX2x1dChwaXBlLCBO VUxMLCAwKQotI2RlZmluZSBkaXNhYmxlX2N0bShwaXBlKSBpZ3RfcGlwZV9zZXRfY3RtX21hdHJp eChwaXBlLCBOVUxMLCAwKQorI2RlZmluZSBkaXNhYmxlX2RlZ2FtbWEocGlwZSkgaWd0X3BpcGVf b2JqX3JlcGxhY2VfcHJvcF9ibG9iKHBpcGUsIElHVF9DUlRDX0RFR0FNTUFfTFVULCBOVUxMLCAw KQorI2RlZmluZSBkaXNhYmxlX2dhbW1hKHBpcGUpIGlndF9waXBlX29ial9yZXBsYWNlX3Byb3Bf YmxvYihwaXBlLCBJR1RfQ1JUQ19HQU1NQV9MVVQsIE5VTEwsIDApCisjZGVmaW5lIGRpc2FibGVf Y3RtKHBpcGUpIGlndF9waXBlX29ial9yZXBsYWNlX3Byb3BfYmxvYihwaXBlLCBJR1RfQ1JUQ19D VE0sIE5VTEwsIDApCiAKIHN0YXRpYyB2b2lkIG91dHB1dF9zZXRfcHJvcGVydHlfZW51bShpZ3Rf b3V0cHV0X3QgKm91dHB1dCwKIAkJCQkgICAgIGNvbnN0IGNoYXIgKnByb3BlcnR5LAotLSAKMi4x NC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK