From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 01/11] drm: add atomic_set_property wrappers Date: Thu, 18 Dec 2014 16:01:46 -0500 Message-ID: <1418936516-10754-2-git-send-email-robdclark@gmail.com> References: <1418936516-10754-1-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-f51.google.com (mail-qg0-f51.google.com [209.85.192.51]) by gabe.freedesktop.org (Postfix) with ESMTP id D86D26EA7B for ; Thu, 18 Dec 2014 13:02:06 -0800 (PST) Received: by mail-qg0-f51.google.com with SMTP id i50so15718qgf.38 for ; Thu, 18 Dec 2014 13:02:06 -0800 (PST) In-Reply-To: <1418936516-10754-1-git-send-email-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QXMgd2UgYWRkIHByb3BlcnRpZXMgZm9yIGFsbCB0aGUgc3RhbmRhcmQgcGxhbmUvY3J0Yy9jb25u ZWN0b3IKYXR0cmlidXRlcyAoaW4gcHJlcGVyYXRpb24gZm9yIHRoZSBhdG9taWMgaW9jdGwpLCB3 ZSBhcmUgZ29pbmcgdG8gd2FudAp0byBoYW5kbGUgY29yZSBzdGF0ZSBpbiBjb3JlIChyYXRoZXIg dGhhbiBwZXIgZHJpdmVyKS4gIEludGVyY2VwdGluZyB0aGUKY29yZSBwcm9wZXJ0aWVzIHdpbGwg YmUgZWFzaWVyIGlmIHRoZSBhdG9taWNfc2V0X3Byb3BlcnR5IHZmdW5jcyBhcmUgbm90CmNhbGxl ZCBkaXJlY3RseSwgYnV0IGluc3RlYWQgaGF2ZSBhIG1hbmRhdG9yeSB3cmFwcGVyIGZ1bmN0aW9u ICh3aGljaAp3aWxsIGxhdGVyIHNlcnZlIGFzIHRoZSBwb2ludCB0byBpbnRlcmNlcHQgY29yZSBw cm9wZXJ0aWVzKS4KCnYyOiBtb3JlIHZlcmJvc2UgY29tbWVudHMgYW5kIGNvcHlwYXN0YSBjb21t ZW50IGZpeAoKU2lnbmVkLW9mZi1ieTogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgpS ZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+ClJldmlld2VkLWJ5 OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMgICAgICAgIHwgOTAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAxMiArKy0t LQogaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oICAgICAgICAgICAgfCAgOSArKysrCiBpbmNsdWRl L2RybS9kcm1fY3J0Yy5oICAgICAgICAgICAgICB8ICAzICsrCiA0IGZpbGVzIGNoYW5nZWQsIDEw OCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCmluZGV4IGNi ZDVlNzIuLjZmNzI5ZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMjE3LDYgKzIxNywzMiBAQCBk cm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwK IEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZSk7CiAKIC8qKgorICogZHJt X2F0b21pY19jcnRjX3NldF9wcm9wZXJ0eSAtIHNldCBwcm9wZXJ0eSBvbiBDUlRDCisgKiBAY3J0 YzogdGhlIGRybSBDUlRDIHRvIHNldCBhIHByb3BlcnR5IG9uCisgKiBAc3RhdGU6IHRoZSBzdGF0 ZSBvYmplY3QgdG8gdXBkYXRlIHdpdGggdGhlIG5ldyBwcm9wZXJ0eSB2YWx1ZQorICogQHByb3Bl cnR5OiB0aGUgcHJvcGVydHkgdG8gc2V0CisgKiBAdmFsOiB0aGUgbmV3IHByb3BlcnR5IHZhbHVl CisgKgorICogVXNlIHRoaXMgaW5zdGVhZCBvZiBjYWxsaW5nIGNydGMtPmF0b21pY19zZXRfcHJv cGVydHkgZGlyZWN0bHkuCisgKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgZ2VuZXJpYy9jb3JlIHBy b3BlcnRpZXMgYW5kIGNhbGxzIG91dCB0bworICogZHJpdmVyJ3MgLT5hdG9taWNfc2V0X3Byb3Bl cnR5KCkgZm9yIGRyaXZlciBwcm9wZXJ0aWVzLiAgVG8gZW5zdXJlCisgKiBjb25zaXN0ZW50IGJl aGF2aW9yIHlvdSBtdXN0IGNhbGwgdGhpcyBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUKKyAqIGRy aXZlciBob29rIGRpcmVjdGx5LgorICoKKyAqIFJFVFVSTlM6CisgKiBaZXJvIG9uIHN1Y2Nlc3Ms IGVycm9yIGNvZGUgb24gZmFpbHVyZQorICovCitpbnQgZHJtX2F0b21pY19jcnRjX3NldF9wcm9w ZXJ0eShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3Rh dGUsIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAorCQl1aW50NjRfdCB2YWwpCit7CisJ aWYgKGNydGMtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KQorCQlyZXR1cm4gY3J0Yy0+ZnVu Y3MtPmF0b21pY19zZXRfcHJvcGVydHkoY3J0Yywgc3RhdGUsIHByb3BlcnR5LCB2YWwpOworCXJl dHVybiAtRUlOVkFMOworfQorRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2NydGNfc2V0X3Byb3Bl cnR5KTsKKworLyoqCiAgKiBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZSAtIGdldCBwbGFuZSBz dGF0ZQogICogQHN0YXRlOiBnbG9iYWwgYXRvbWljIHN0YXRlIG9iamVjdAogICogQHBsYW5lOiBw bGFuZSB0byBnZXQgc3RhdGUgb2JqZWN0IGZvcgpAQCAtMjcyLDYgKzI5OCwzMiBAQCBkcm1fYXRv bWljX2dldF9wbGFuZV9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiBFWFBP UlRfU1lNQk9MKGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKTsKIAogLyoqCisgKiBkcm1fYXRv bWljX3BsYW5lX3NldF9wcm9wZXJ0eSAtIHNldCBwcm9wZXJ0eSBvbiBwbGFuZQorICogQHBsYW5l OiB0aGUgZHJtIHBsYW5lIHRvIHNldCBhIHByb3BlcnR5IG9uCisgKiBAc3RhdGU6IHRoZSBzdGF0 ZSBvYmplY3QgdG8gdXBkYXRlIHdpdGggdGhlIG5ldyBwcm9wZXJ0eSB2YWx1ZQorICogQHByb3Bl cnR5OiB0aGUgcHJvcGVydHkgdG8gc2V0CisgKiBAdmFsOiB0aGUgbmV3IHByb3BlcnR5IHZhbHVl CisgKgorICogVXNlIHRoaXMgaW5zdGVhZCBvZiBjYWxsaW5nIHBsYW5lLT5hdG9taWNfc2V0X3By b3BlcnR5IGRpcmVjdGx5LgorICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIGdlbmVyaWMvY29yZSBw cm9wZXJ0aWVzIGFuZCBjYWxscyBvdXQgdG8KKyAqIGRyaXZlcidzIC0+YXRvbWljX3NldF9wcm9w ZXJ0eSgpIGZvciBkcml2ZXIgcHJvcGVydGllcy4gIFRvIGVuc3VyZQorICogY29uc2lzdGVudCBi ZWhhdmlvciB5b3UgbXVzdCBjYWxsIHRoaXMgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlCisgKiBk cml2ZXIgaG9vayBkaXJlY3RseS4KKyAqCisgKiBSRVRVUk5TOgorICogWmVybyBvbiBzdWNjZXNz LCBlcnJvciBjb2RlIG9uIGZhaWx1cmUKKyAqLworaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3By b3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpzdGF0ZSwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCisJCXVpbnQ2NF90IHZhbCkK K3sKKwlpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KQorCQlyZXR1cm4gcGxh bmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwgcHJvcGVydHksIHZh bCk7CisJcmV0dXJuIC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfcGxhbmVf c2V0X3Byb3BlcnR5KTsKKworLyoqCiAgKiBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUg LSBnZXQgY29ubmVjdG9yIHN0YXRlCiAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMgc3RhdGUgb2Jq ZWN0CiAgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gZ2V0IHN0YXRlIG9iamVjdCBmb3IKQEAg LTM0Myw2ICszOTUsNDQgQEAgZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19nZXRfY29u bmVjdG9yX3N0YXRlKTsKIAogLyoqCisgKiBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVy dHkgLSBzZXQgcHJvcGVydHkgb24gY29ubmVjdG9yLgorICogQGNvbm5lY3RvcjogdGhlIGRybSBj b25uZWN0b3IgdG8gc2V0IGEgcHJvcGVydHkgb24KKyAqIEBzdGF0ZTogdGhlIHN0YXRlIG9iamVj dCB0byB1cGRhdGUgd2l0aCB0aGUgbmV3IHByb3BlcnR5IHZhbHVlCisgKiBAcHJvcGVydHk6IHRo ZSBwcm9wZXJ0eSB0byBzZXQKKyAqIEB2YWw6IHRoZSBuZXcgcHJvcGVydHkgdmFsdWUKKyAqCisg KiBVc2UgdGhpcyBpbnN0ZWFkIG9mIGNhbGxpbmcgY29ubmVjdG9yLT5hdG9taWNfc2V0X3Byb3Bl cnR5IGRpcmVjdGx5LgorICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIGdlbmVyaWMvY29yZSBwcm9w ZXJ0aWVzIGFuZCBjYWxscyBvdXQgdG8KKyAqIGRyaXZlcidzIC0+YXRvbWljX3NldF9wcm9wZXJ0 eSgpIGZvciBkcml2ZXIgcHJvcGVydGllcy4gIFRvIGVuc3VyZQorICogY29uc2lzdGVudCBiZWhh dmlvciB5b3UgbXVzdCBjYWxsIHRoaXMgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlCisgKiBkcml2 ZXIgaG9vayBkaXJlY3RseS4KKyAqCisgKiBSRVRVUk5TOgorICogWmVybyBvbiBzdWNjZXNzLCBl cnJvciBjb2RlIG9uIGZhaWx1cmUKKyAqLworaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9w cm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQlzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqc3RhdGUsIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAorCQl1 aW50NjRfdCB2YWwpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2 OworCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwor CisJaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ZHBtc19wcm9wZXJ0eSkgeworCQkvKiBzZXR0aW5n IERQTVMgcHJvcGVydHkgcmVxdWlyZXMgc3BlY2lhbCBoYW5kbGluZywgd2hpY2gKKwkJICogaXMg ZG9uZSBpbiBsZWdhY3kgc2V0cHJvcCBwYXRoIGZvciB1cy4gIERpc2FsbG93IChmb3IKKwkJICog bm93PykgYXRvbWljIHdyaXRlcyB0byBEUE1TIHByb3BlcnR5OgorCQkgKi8KKwkJcmV0dXJuIC1F SU5WQUw7CisJfSBlbHNlIGlmIChjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5 KSB7CisJCXJldHVybiBjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KGNvbm5l Y3RvciwKKwkJCQlzdGF0ZSwgcHJvcGVydHksIHZhbCk7CisJfSBlbHNlIHsKKwkJcmV0dXJuIC1F SU5WQUw7CisJfQorfQorRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJv cGVydHkpOworCisvKioKICAqIGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5lIC0gc2V0IGNy dGMgZm9yIHBsYW5lCiAgKiBAcGxhbmVfc3RhdGU6IHRoZSBwbGFuZSB3aG9zZSBpbmNvbWluZyBz dGF0ZSB0byB1cGRhdGUKICAqIEBjcnRjOiBjcnRjIHRvIHVzZSBmb3IgdGhlIHBsYW5lCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDM3OWQzN2EuLjU3ZTU1NDAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC0xNjEzLDggKzE2MTMsOCBAQCByZXRyeToKIAkJ Z290byBmYWlsOwogCX0KIAotCXJldCA9IGNydGMtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5 KGNydGMsIGNydGNfc3RhdGUsCi0JCQkJCSAgICAgICBwcm9wZXJ0eSwgdmFsKTsKKwlyZXQgPSBk cm1fYXRvbWljX2NydGNfc2V0X3Byb3BlcnR5KGNydGMsIGNydGNfc3RhdGUsCisJCQlwcm9wZXJ0 eSwgdmFsKTsKIAlpZiAocmV0KQogCQlnb3RvIGZhaWw7CiAKQEAgLTE2NzIsOCArMTY3Miw4IEBA IHJldHJ5OgogCQlnb3RvIGZhaWw7CiAJfQogCi0JcmV0ID0gcGxhbmUtPmZ1bmNzLT5hdG9taWNf c2V0X3Byb3BlcnR5KHBsYW5lLCBwbGFuZV9zdGF0ZSwKLQkJCQkJICAgICAgIHByb3BlcnR5LCB2 YWwpOworCXJldCA9IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHBsYW5lLCBwbGFuZV9z dGF0ZSwKKwkJCXByb3BlcnR5LCB2YWwpOwogCWlmIChyZXQpCiAJCWdvdG8gZmFpbDsKIApAQCAt MTczMSw4ICsxNzMxLDggQEAgcmV0cnk6CiAJCWdvdG8gZmFpbDsKIAl9CiAKLQlyZXQgPSBjb25u ZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KGNvbm5lY3RvciwgY29ubmVjdG9yX3N0 YXRlLAotCQkJCQkgICAgICAgcHJvcGVydHksIHZhbCk7CisJcmV0ID0gZHJtX2F0b21pY19jb25u ZWN0b3Jfc2V0X3Byb3BlcnR5KGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLAorCQkJcHJvcGVy dHksIHZhbCk7CiAJaWYgKHJldCkKIAkJZ290byBmYWlsOwogCmRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9kcm1fYXRvbWljLmggYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKaW5kZXggZTIyNGNj Zi4uNTExNjhhOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCisrKyBiL2lu Y2x1ZGUvZHJtL2RybV9hdG9taWMuaApAQCAtMzgsMTIgKzM4LDIxIEBAIHZvaWQgZHJtX2F0b21p Y19zdGF0ZV9mcmVlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiBzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKiBfX211c3RfY2hlY2sKIGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMp OworaW50IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpjcnRj LAorCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLCBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpw cm9wZXJ0eSwKKwkJdWludDY0X3QgdmFsKTsKIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKiBfX211 c3RfY2hlY2sKIGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSwKIAkJCSAgIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKK2ludCBkcm1fYXRv bWljX3BsYW5lX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUsIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAor CQl1aW50NjRfdCB2YWwpOwogc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKiBfX211c3RfY2hl Y2sKIGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUsCiAJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Citp bnQgZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCisJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSwgc3RydWN0 IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCisJCXVpbnQ2NF90IHZhbCk7CiAKIGludCBfX211c3Rf Y2hlY2sKIGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2lu Y2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5kZXggZjdjMGI3Yi4uN2YxNTg5NiAxMDA2NDQKLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2NydGMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCkBAIC0z MTEsNiArMzExLDcgQEAgc3RydWN0IGRybV9jcnRjX3N0YXRlIHsKICAqIEBhdG9taWNfZHVwbGlj YXRlX3N0YXRlOiBkdXBsaWNhdGUgdGhlIGF0b21pYyBzdGF0ZSBmb3IgdGhpcyBDUlRDCiAgKiBA YXRvbWljX2Rlc3Ryb3lfc3RhdGU6IGRlc3Ryb3kgYW4gYXRvbWljIHN0YXRlIGZvciB0aGlzIENS VEMKICAqIEBhdG9taWNfc2V0X3Byb3BlcnR5OiBzZXQgYSBwcm9wZXJ0eSBvbiBhbiBhdG9taWMg c3RhdGUgZm9yIHRoaXMgQ1JUQworICogICAgKGRvIG5vdCBjYWxsIGRpcmVjdGx5LCB1c2UgZHJt X2F0b21pY19jcnRjX3NldF9wcm9wZXJ0eSgpKQogICoKICAqIFRoZSBkcm1fY3J0Y19mdW5jcyBz dHJ1Y3R1cmUgaXMgdGhlIGNlbnRyYWwgQ1JUQyBtYW5hZ2VtZW50IHN0cnVjdHVyZQogICogaW4g dGhlIERSTS4gIEVhY2ggQ1JUQyBjb250cm9scyBvbmUgb3IgbW9yZSBjb25uZWN0b3JzIChub3Rl IHRoYXQgdGhlIG5hbWUKQEAgLTQ5Nyw2ICs0OTgsNyBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSB7CiAgKiBAYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZTogZHVwbGljYXRlIHRoZSBhdG9taWMg c3RhdGUgZm9yIHRoaXMgY29ubmVjdG9yCiAgKiBAYXRvbWljX2Rlc3Ryb3lfc3RhdGU6IGRlc3Ry b3kgYW4gYXRvbWljIHN0YXRlIGZvciB0aGlzIGNvbm5lY3RvcgogICogQGF0b21pY19zZXRfcHJv cGVydHk6IHNldCBhIHByb3BlcnR5IG9uIGFuIGF0b21pYyBzdGF0ZSBmb3IgdGhpcyBjb25uZWN0 b3IKKyAqICAgIChkbyBub3QgY2FsbCBkaXJlY3RseSwgdXNlIGRybV9hdG9taWNfY29ubmVjdG9y X3NldF9wcm9wZXJ0eSgpKQogICoKICAqIEVhY2ggQ1JUQyBtYXkgaGF2ZSBvbmUgb3IgbW9yZSBj b25uZWN0b3JzIGF0dGFjaGVkIHRvIGl0LiAgVGhlIGZ1bmN0aW9ucwogICogYmVsb3cgYWxsb3cg dGhlIGNvcmUgRFJNIGNvZGUgdG8gY29udHJvbCBjb25uZWN0b3JzLCBlbnVtZXJhdGUgYXZhaWxh YmxlIG1vZGVzLApAQCAtNzYwLDYgKzc2Miw3IEBAIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgewog ICogQGF0b21pY19kdXBsaWNhdGVfc3RhdGU6IGR1cGxpY2F0ZSB0aGUgYXRvbWljIHN0YXRlIGZv ciB0aGlzIHBsYW5lCiAgKiBAYXRvbWljX2Rlc3Ryb3lfc3RhdGU6IGRlc3Ryb3kgYW4gYXRvbWlj IHN0YXRlIGZvciB0aGlzIHBsYW5lCiAgKiBAYXRvbWljX3NldF9wcm9wZXJ0eTogc2V0IGEgcHJv cGVydHkgb24gYW4gYXRvbWljIHN0YXRlIGZvciB0aGlzIHBsYW5lCisgKiAgICAoZG8gbm90IGNh bGwgZGlyZWN0bHksIHVzZSBkcm1fYXRvbWljX3BsYW5lX3NldF9wcm9wZXJ0eSgpKQogICovCiBz dHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIHsKIAlpbnQgKCp1cGRhdGVfcGxhbmUpKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAotLSAKMi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==