From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 04/13] drm: add atomic_set_property wrappers Date: Tue, 16 Dec 2014 18:05:32 -0500 Message-ID: <1418771141-16954-5-git-send-email-robdclark@gmail.com> References: <1418771141-16954-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-qc0-f175.google.com (mail-qc0-f175.google.com [209.85.216.175]) by gabe.freedesktop.org (Postfix) with ESMTP id C47646E419 for ; Tue, 16 Dec 2014 15:05:57 -0800 (PST) Received: by mail-qc0-f175.google.com with SMTP id b13so12410653qcw.6 for ; Tue, 16 Dec 2014 15:05:57 -0800 (PST) In-Reply-To: <1418771141-16954-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 cm9wZXJ0aWVzKS4KClNpZ25lZC1vZmYtYnk6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8IDc4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jIHwgMTIgKysrLS0tCiBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmggICAgICAgICAg ICB8ICA5ICsrKysrCiBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAgICAgICAgICAgICB8ICAzICsr CiA0IGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljLmMKaW5kZXggZmY1ZjAzNC4uMTI2MWFkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCkBA IC0yMTcsNiArMjE3LDI4IEBAIGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlLAogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2dldF9jcnRjX3N0 YXRlKTsKIAogLyoqCisgKiBkcm1fYXRvbWljX2NydGNfc2V0X3Byb3BlcnR5IC0gc2V0IHByb3Bl cnR5IG9uIGNvbm5lY3RvcgorICogQGNydGM6IHRoZSBkcm0gQ1JUQyB0byBzZXQgYSBwcm9wZXJ0 eSBvbgorICogQHN0YXRlOiB0aGUgc3RhdGUgb2JqZWN0IHRvIHVwZGF0ZSB3aXRoIHRoZSBuZXcg cHJvcGVydHkgdmFsdWUKKyAqIEBwcm9wZXJ0eTogdGhlIHByb3BlcnR5IHRvIHNldAorICogQHZh bDogdGhlIG5ldyBwcm9wZXJ0eSB2YWx1ZQorICoKKyAqIFVzZSB0aGlzIGluc3RlYWQgb2YgY2Fs bGluZyBjcnRjLT5hdG9taWNfc2V0X3Byb3BlcnR5IGRpcmVjdGx5CisgKgorICogUkVUVVJOUzoK KyAqIFplcm8gb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJlCisgKi8KK2ludCBkcm1f YXRvbWljX2NydGNfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJc3RydWN0 IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCisJ CXVpbnQ2NF90IHZhbCkKK3sKKwlpZiAoY3J0Yy0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkp CisJCXJldHVybiBjcnRjLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eShjcnRjLCBzdGF0ZSwg cHJvcGVydHksIHZhbCk7CisJcmV0dXJuIC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9h dG9taWNfY3J0Y19zZXRfcHJvcGVydHkpOworCisvKioKICAqIGRybV9hdG9taWNfZ2V0X3BsYW5l X3N0YXRlIC0gZ2V0IHBsYW5lIHN0YXRlCiAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMgc3RhdGUg b2JqZWN0CiAgKiBAcGxhbmU6IHBsYW5lIHRvIGdldCBzdGF0ZSBvYmplY3QgZm9yCkBAIC0yNzIs NiArMjk0LDI4IEBAIGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSwKIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUp OwogCiAvKioKKyAqIGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5IC0gc2V0IHByb3BlcnR5 IG9uIHBsYW5lCisgKiBAcGxhbmU6IHRoZSBkcm0gcGxhbmUgdG8gc2V0IGEgcHJvcGVydHkgb24K KyAqIEBzdGF0ZTogdGhlIHN0YXRlIG9iamVjdCB0byB1cGRhdGUgd2l0aCB0aGUgbmV3IHByb3Bl cnR5IHZhbHVlCisgKiBAcHJvcGVydHk6IHRoZSBwcm9wZXJ0eSB0byBzZXQKKyAqIEB2YWw6IHRo ZSBuZXcgcHJvcGVydHkgdmFsdWUKKyAqCisgKiBVc2UgdGhpcyBpbnN0ZWFkIG9mIGNhbGxpbmcg cGxhbmUtPmF0b21pY19zZXRfcHJvcGVydHkgZGlyZWN0bHkKKyAqCisgKiBSRVRVUk5TOgorICog WmVybyBvbiBzdWNjZXNzLCBlcnJvciBjb2RlIG9uIGZhaWx1cmUKKyAqLworaW50IGRybV9hdG9t aWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQlzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCisJ CXVpbnQ2NF90IHZhbCkKK3sKKwlpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5 KQorCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0 ZSwgcHJvcGVydHksIHZhbCk7CisJcmV0dXJuIC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MKGRy bV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KTsKKworLyoqCiAgKiBkcm1fYXRvbWljX2dldF9j b25uZWN0b3Jfc3RhdGUgLSBnZXQgY29ubmVjdG9yIHN0YXRlCiAgKiBAc3RhdGU6IGdsb2JhbCBh dG9taWMgc3RhdGUgb2JqZWN0CiAgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gZ2V0IHN0YXRl IG9iamVjdCBmb3IKQEAgLTM0Myw2ICszODcsNDAgQEAgZHJtX2F0b21pY19nZXRfY29ubmVjdG9y X3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIEVYUE9SVF9TWU1CT0woZHJt X2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKTsKIAogLyoqCisgKiBkcm1fYXRvbWljX2Nvbm5l Y3Rvcl9zZXRfcHJvcGVydHkgLSBzZXQgcHJvcGVydHkgb24gY29ubmVjdG9yLgorICogQGNvbm5l Y3RvcjogdGhlIGRybSBjb25uZWN0b3IgdG8gc2V0IGEgcHJvcGVydHkgb24KKyAqIEBzdGF0ZTog dGhlIHN0YXRlIG9iamVjdCB0byB1cGRhdGUgd2l0aCB0aGUgbmV3IHByb3BlcnR5IHZhbHVlCisg KiBAcHJvcGVydHk6IHRoZSBwcm9wZXJ0eSB0byBzZXQKKyAqIEB2YWw6IHRoZSBuZXcgcHJvcGVy dHkgdmFsdWUKKyAqCisgKiBVc2UgdGhpcyBpbnN0ZWFkIG9mIGNhbGxpbmcgY29ubmVjdG9yLT5h dG9taWNfc2V0X3Byb3BlcnR5IGRpcmVjdGx5CisgKgorICogUkVUVVJOUzoKKyAqIFplcm8gb24g c3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJlCisgKi8KK2ludCBkcm1fYXRvbWljX2Nvbm5l Y3Rvcl9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlLCBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9w ZXJ0eSwKKwkJdWludDY0X3QgdmFsKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25u ZWN0b3ItPmRldjsKKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2Rl X2NvbmZpZzsKKworCWlmIChwcm9wZXJ0eSA9PSBjb25maWctPmRwbXNfcHJvcGVydHkpIHsKKwkJ Lyogc2V0dGluZyBEUE1TIHByb3BlcnR5IHJlcXVpcmVzIHNwZWNpYWwgaGFuZGxpbmcsIHdoaWNo CisJCSAqIGlzIGRvbmUgaW4gbGVnYWN5IHNldHByb3AgcGF0aCBmb3IgdXMuICBEaXNhbGxvdyAo Zm9yCisJCSAqIG5vdz8pIGF0b21pYyB3cml0ZXMgdG8gRFBNUyBwcm9wZXJ0eToKKwkJICovCisJ CXJldHVybiAtRUlOVkFMOworCX0gZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3Nl dF9wcm9wZXJ0eSkgeworCQlyZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9w ZXJ0eShjb25uZWN0b3IsCisJCQkJc3RhdGUsIHByb3BlcnR5LCB2YWwpOworCX0gZWxzZSB7CisJ CXJldHVybiAtRUlOVkFMOworCX0KK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19jb25uZWN0 b3Jfc2V0X3Byb3BlcnR5KTsKKworLyoqCiAgKiBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFu ZSAtIHNldCBjcnRjIGZvciBwbGFuZQogICogQHN0YXRlOiB0aGUgaW5jb21pbmcgYXRvbWljIHN0 YXRlCiAgKiBAcGxhbmU6IHRoZSBwbGFuZSB3aG9zZSBpbmNvbWluZyBzdGF0ZSB0byB1cGRhdGUK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggNGE3OGE3Ny4uZDQyZmRiMSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTE1NTgsOCArMTU1OCw4IEBAIHJldHJ5 OgogCQlnb3RvIGZhaWw7CiAJfQogCi0JcmV0ID0gY3J0Yy0+ZnVuY3MtPmF0b21pY19zZXRfcHJv cGVydHkoY3J0YywgY3J0Y19zdGF0ZSwKLQkJCQkJICAgICAgIHByb3BlcnR5LCB2YWwpOworCXJl dCA9IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHkoY3J0YywgY3J0Y19zdGF0ZSwKKwkJCXBy b3BlcnR5LCB2YWwpOwogCWlmIChyZXQpCiAJCWdvdG8gZmFpbDsKIApAQCAtMTYxNyw4ICsxNjE3 LDggQEAgcmV0cnk6CiAJCWdvdG8gZmFpbDsKIAl9CiAKLQlyZXQgPSBwbGFuZS0+ZnVuY3MtPmF0 b21pY19zZXRfcHJvcGVydHkocGxhbmUsIHBsYW5lX3N0YXRlLAotCQkJCQkgICAgICAgcHJvcGVy dHksIHZhbCk7CisJcmV0ID0gZHJtX2F0b21pY19wbGFuZV9zZXRfcHJvcGVydHkocGxhbmUsIHBs YW5lX3N0YXRlLAorCQkJcHJvcGVydHksIHZhbCk7CiAJaWYgKHJldCkKIAkJZ290byBmYWlsOwog CkBAIC0xNjc2LDggKzE2NzYsOCBAQCByZXRyeToKIAkJZ290byBmYWlsOwogCX0KIAotCXJldCA9 IGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkoY29ubmVjdG9yLCBjb25uZWN0 b3Jfc3RhdGUsCi0JCQkJCSAgICAgICBwcm9wZXJ0eSwgdmFsKTsKKwlyZXQgPSBkcm1fYXRvbWlj X2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkoY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUsCisJCQlw cm9wZXJ0eSwgdmFsKTsKIAlpZiAocmV0KQogCQlnb3RvIGZhaWw7CiAKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybV9hdG9taWMuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaAppbmRleCBh ZDIyMjk1Li5iMDgzNGRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKKysr IGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCkBAIC0zOCwxMiArMzgsMjEgQEAgdm9pZCBkcm1f YXRvbWljX3N0YXRlX2ZyZWUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIHN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqIF9fbXVzdF9jaGVjawogZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0 ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkgIHN0cnVjdCBkcm1fY3J0YyAq Y3J0Yyk7CitpbnQgZHJtX2F0b21pY19jcnRjX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCisJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUsIHN0cnVjdCBkcm1fcHJvcGVy dHkgKnByb3BlcnR5LAorCQl1aW50NjRfdCB2YWwpOwogc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAq IF9fbXVzdF9jaGVjawogZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlLAogCQkJICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOworaW50IGRy bV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQlz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVy dHksCisJCXVpbnQ2NF90IHZhbCk7CiBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqIF9fbXVz dF9jaGVjawogZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSwKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KTsKK2ludCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKKwkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlLCBz dHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKKwkJdWludDY0X3QgdmFsKTsKIAogaW50IF9f bXVzdF9jaGVjawogZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2lu Y2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5kZXggNjFhYjNlNS4uMWI3MWY2MCAxMDA2NDQKLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2NydGMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCkBAIC0z MDAsNiArMzAwLDcgQEAgc3RydWN0IGRybV9jcnRjX3N0YXRlIHsKICAqIEBhdG9taWNfZHVwbGlj YXRlX3N0YXRlOiBkdXBsaWNhdGUgdGhlIGF0b21pYyBzdGF0ZSBmb3IgdGhpcyBDUlRDCiAgKiBA YXRvbWljX2Rlc3Ryb3lfc3RhdGU6IGRlc3Ryb3kgYW4gYXRvbWljIHN0YXRlIGZvciB0aGlzIENS VEMKICAqIEBhdG9taWNfc2V0X3Byb3BlcnR5OiBzZXQgYSBwcm9wZXJ0eSBvbiBhbiBhdG9taWMg c3RhdGUgZm9yIHRoaXMgQ1JUQworICogICAgKGRvIG5vdCBjYWxsIGRpcmVjdGx5LCB1c2UgZHJt X2F0b21pY19jcnRjX3NldF9wcm9wZXJ0eSgpKQogICoKICAqIFRoZSBkcm1fY3J0Y19mdW5jcyBz dHJ1Y3R1cmUgaXMgdGhlIGNlbnRyYWwgQ1JUQyBtYW5hZ2VtZW50IHN0cnVjdHVyZQogICogaW4g dGhlIERSTS4gIEVhY2ggQ1JUQyBjb250cm9scyBvbmUgb3IgbW9yZSBjb25uZWN0b3JzIChub3Rl IHRoYXQgdGhlIG5hbWUKQEAgLTQ4Myw2ICs0ODQsNyBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSB7CiAgKiBAYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZTogZHVwbGljYXRlIHRoZSBhdG9taWMg c3RhdGUgZm9yIHRoaXMgY29ubmVjdG9yCiAgKiBAYXRvbWljX2Rlc3Ryb3lfc3RhdGU6IGRlc3Ry b3kgYW4gYXRvbWljIHN0YXRlIGZvciB0aGlzIGNvbm5lY3RvcgogICogQGF0b21pY19zZXRfcHJv cGVydHk6IHNldCBhIHByb3BlcnR5IG9uIGFuIGF0b21pYyBzdGF0ZSBmb3IgdGhpcyBjb25uZWN0 b3IKKyAqICAgIChkbyBub3QgY2FsbCBkaXJlY3RseSwgdXNlIGRybV9hdG9taWNfY29ubmVjdG9y X3NldF9wcm9wZXJ0eSgpKQogICoKICAqIEVhY2ggQ1JUQyBtYXkgaGF2ZSBvbmUgb3IgbW9yZSBj b25uZWN0b3JzIGF0dGFjaGVkIHRvIGl0LiAgVGhlIGZ1bmN0aW9ucwogICogYmVsb3cgYWxsb3cg dGhlIGNvcmUgRFJNIGNvZGUgdG8gY29udHJvbCBjb25uZWN0b3JzLCBlbnVtZXJhdGUgYXZhaWxh YmxlIG1vZGVzLApAQCAtNzQzLDYgKzc0NSw3IEBAIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgewog ICogQGF0b21pY19kdXBsaWNhdGVfc3RhdGU6IGR1cGxpY2F0ZSB0aGUgYXRvbWljIHN0YXRlIGZv ciB0aGlzIHBsYW5lCiAgKiBAYXRvbWljX2Rlc3Ryb3lfc3RhdGU6IGRlc3Ryb3kgYW4gYXRvbWlj IHN0YXRlIGZvciB0aGlzIHBsYW5lCiAgKiBAYXRvbWljX3NldF9wcm9wZXJ0eTogc2V0IGEgcHJv cGVydHkgb24gYW4gYXRvbWljIHN0YXRlIGZvciB0aGlzIHBsYW5lCisgKiAgICAoZG8gbm90IGNh bGwgZGlyZWN0bHksIHVzZSBkcm1fYXRvbWljX3BsYW5lX3NldF9wcm9wZXJ0eSgpKQogICovCiBz dHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIHsKIAlpbnQgKCp1cGRhdGVfcGxhbmUpKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAotLSAKMi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==