From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 1/2] drm/atomic: Add helpers for state-subclassing drivers Date: Fri, 27 Mar 2015 12:34:03 +0100 Message-ID: <1427456044-7643-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f49.google.com (mail-pa0-f49.google.com [209.85.220.49]) by gabe.freedesktop.org (Postfix) with ESMTP id B4E4A6EB58 for ; Fri, 27 Mar 2015 04:34:08 -0700 (PDT) Received: by pacwz10 with SMTP id wz10so42312891pac.2 for ; Fri, 27 Mar 2015 04:34:08 -0700 (PDT) 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 Cc: Daniel Vetter List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkRyaXZlcnMgdGhhdCBz dWJjbGFzcyBDUlRDLCBwbGFuZSBvciBjb25uZWN0b3Igc3RhdGUgbmVlZCB0byBjYXJlZnVsbHkK ZHVwbGljYXRlIHRoZSBjb2RlIHRoYXQgdGhlIGF0b21pYyBoZWxwZXJzIGhhdmUuIFRoaXMgaXMg Ym91bmQgdG8gY2F1c2UKYnJlYWthZ2UgZXZlbnR1YWxseSBiZWNhdXNlIGl0IHJlcXVpcmVzIGF1 ZGl0aW5nIGFsbCBkcml2ZXJzIGFuZCB1cGRhdGUKdGhlbSB3aGVuIGNvZGUgaXMgYWRkZWQgdG8g dGhlIGhlbHBlcnMuCgpJbiBvcmRlciB0byBhdm9pZCB0aGF0LCBpbXBsZW1lbnQgbmV3IGhlbHBl cnMgdGhhdCBwZXJmb3JtIHRoZSByZXF1aXJlZApzdGVwcyB3aGVuIGNvcHlpbmcgYW5kIGRlc3Ry b3lpbmcgc3RhdGUuIFRoZXNlIG5ldyBoZWxwZXJzIGFyZSBleHBvcnRlZApzbyB0aGF0IHN0YXRl LXN1YmNsYXNzaW5nIGRyaXZlcnMgY2FuIHVzZSB0aGVtLiBUaGUgZGVmYXVsdCBoZWxwZXJzIGFy ZQppbXBsZW1lbnRlZCB1c2luZyB0aGVtIGFzIHdlbGwsIHByb3ZpZGluZyBhIHNpbmdsZSBsb2Nh dGlvbiB0aGF0IG5lZWRzCnRvIGJlIGNoYW5nZWQgd2hlbiBhZGRpbmcgdG8gYmFzZSBhdG9taWMg c3RhdGVzLgoKU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8IDE0NCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIGluY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmggICAgIHwgIDE0ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKyks IDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggMzU1 YmEyNjc3MGUwLi5kYjNjMDc3MmQzOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j CkBAIC0yMDY5LDYgKzIwNjksMjYgQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJf Y3J0Y19yZXNldCk7CiAKIC8qKgorICogX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0 ZV9zdGF0ZSAtIGNvcHkgYXRvbWljIENSVEMgc3RhdGUKKyAqIEBjcnRjOiBDUlRDIG9iamVjdAor ICogQHN0YXRlOiBhdG9taWMgQ1JUQyBzdGF0ZQorICoKKyAqIENvcGllcyBhdG9taWMgc3RhdGUg ZnJvbSBhIENSVEMncyBjdXJyZW50IHN0YXRlIGFuZCByZXNldHMgaW5mZXJyZWQgdmFsdWVzLgor ICogVGhpcyBpcyB1c2VmdWwgZm9yIGRyaXZlcnMgdGhhdCBzdWJjbGFzcyB0aGUgQ1JUQyBzdGF0 ZS4KKyAqLwordm9pZCBfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkJICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpz dGF0ZSkKK3sKKwltZW1jcHkoc3RhdGUsIGNydGMtPnN0YXRlLCBzaXplb2YoKnN0YXRlKSk7CisK KwlzdGF0ZS0+bW9kZV9jaGFuZ2VkID0gZmFsc2U7CisJc3RhdGUtPmFjdGl2ZV9jaGFuZ2VkID0g ZmFsc2U7CisJc3RhdGUtPnBsYW5lc19jaGFuZ2VkID0gZmFsc2U7CisJc3RhdGUtPmV2ZW50ID0g TlVMTDsKK30KK0VYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0 ZV9zdGF0ZSk7CisKKy8qKgogICogZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3Rh dGUgLSBkZWZhdWx0IHN0YXRlIGR1cGxpY2F0ZSBob29rCiAgKiBAY3J0YzogZHJtIENSVEMKICAq CkBAIC0yMDgzLDIwICsyMTAzLDM1IEBAIGRybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRl X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlpZiAoV0FSTl9PTighY3J0Yy0+c3RhdGUp KQogCQlyZXR1cm4gTlVMTDsKIAotCXN0YXRlID0ga21lbWR1cChjcnRjLT5zdGF0ZSwgc2l6ZW9m KCpjcnRjLT5zdGF0ZSksIEdGUF9LRVJORUwpOwotCi0JaWYgKHN0YXRlKSB7Ci0JCXN0YXRlLT5t b2RlX2NoYW5nZWQgPSBmYWxzZTsKLQkJc3RhdGUtPmFjdGl2ZV9jaGFuZ2VkID0gZmFsc2U7Ci0J CXN0YXRlLT5wbGFuZXNfY2hhbmdlZCA9IGZhbHNlOwotCQlzdGF0ZS0+ZXZlbnQgPSBOVUxMOwot CX0KKwlzdGF0ZSA9IGttYWxsb2Moc2l6ZW9mKCpzdGF0ZSksIEdGUF9LRVJORUwpOworCWlmIChz dGF0ZSkKKwkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCBz dGF0ZSk7CiAKIAlyZXR1cm4gc3RhdGU7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVs cGVyX2NydGNfZHVwbGljYXRlX3N0YXRlKTsKIAogLyoqCisgKiBfX2RybV9hdG9taWNfaGVscGVy X2NydGNfZGVzdHJveV9zdGF0ZSAtIHJlbGVhc2UgQ1JUQyBzdGF0ZQorICogQGNydGM6IENSVEMg b2JqZWN0CisgKiBAc3RhdGU6IENSVEMgc3RhdGUgb2JqZWN0IHRvIHJlbGVhc2UKKyAqCisgKiBS ZWxlYXNlcyBhbGwgcmVzb3VyY2VzIHN0b3JlZCBpbiB0aGUgQ1JUQyBzdGF0ZSB3aXRob3V0IGFj dHVhbGx5IGZyZWVpbmcKKyAqIHRoZSBtZW1vcnkgb2YgdGhlIENSVEMgc3RhdGUuIFRoaXMgaXMg dXNlZnVsIGZvciBkcml2ZXJzIHRoYXQgc3ViY2xhc3MgdGhlCisgKiBDUlRDIHN0YXRlLgorICov Cit2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKKwkJCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCit7CisJ LyoKKwkgKiBUaGlzIGlzIGN1cnJlbnRseSBhIHBsYWNlaG9sZGVyIHNvIHRoYXQgZHJpdmVycyB0 aGF0IHN1YmNsYXNzIHRoZQorCSAqIHN0YXRlIHdpbGwgYXV0b21hdGljYWxseSBkbyB0aGUgcmln aHQgdGhpbmcgaWYgY29kZSBpcyBldmVyIGFkZGVkCisJICogdG8gdGhpcyBmdW5jdGlvbi4KKwkg Ki8KK30KK0VYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3Rh dGUpOworCisvKioKICAqIGRybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSAtIGRl ZmF1bHQgc3RhdGUgZGVzdHJveSBob29rCiAgKiBAY3J0YzogZHJtIENSVEMKICAqIEBzdGF0ZTog Q1JUQyBzdGF0ZSBvYmplY3QgdG8gcmVsZWFzZQpAQCAtMjEwNyw2ICsyMTQyLDcgQEAgRVhQT1JU X1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSk7CiB2b2lkIGRy bV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CiAJCQkJCSAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKIHsKKwlfX2RybV9hdG9taWNf aGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShjcnRjLCBzdGF0ZSk7CiAJa2ZyZWUoc3RhdGUpOwog fQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUpOwpA QCAtMjEzMiw2ICsyMTY4LDI0IEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVy X3BsYW5lX3Jlc2V0KTsKIAogLyoqCisgKiBfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxp Y2F0ZV9zdGF0ZSAtIGNvcHkgYXRvbWljIHBsYW5lIHN0YXRlCisgKiBAcGxhbmU6IHBsYW5lIG9i amVjdAorICogQHN0YXRlOiBhdG9taWMgcGxhbmUgc3RhdGUKKyAqCisgKiBDb3BpZXMgYXRvbWlj IHN0YXRlIGZyb20gYSBwbGFuZSdzIGN1cnJlbnQgc3RhdGUuIFRoaXMgaXMgdXNlZnVsIGZvcgor ICogZHJpdmVycyB0aGF0IHN1YmNsYXNzIHRoZSBwbGFuZSBzdGF0ZS4KKyAqLwordm9pZCBfX2Ry bV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKKwkJCQkJICAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQoreworCW1l bWNweShzdGF0ZSwgcGxhbmUtPnN0YXRlLCBzaXplb2YoKnN0YXRlKSk7CisKKwlpZiAoc3RhdGUt PmZiKQorCQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKHN0YXRlLT5mYik7Cit9CitFWFBPUlRf U1lNQk9MKF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKTsKKworLyoq CiAgKiBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUgLSBkZWZhdWx0IHN0 YXRlIGR1cGxpY2F0ZSBob29rCiAgKiBAcGxhbmU6IGRybSBwbGFuZQogICoKQEAgLTIxNDYsMTYg KzIyMDAsMzIgQEAgZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lKQogCWlmIChXQVJOX09OKCFwbGFuZS0+c3RhdGUpKQogCQlyZXR1 cm4gTlVMTDsKIAotCXN0YXRlID0ga21lbWR1cChwbGFuZS0+c3RhdGUsIHNpemVvZigqcGxhbmUt PnN0YXRlKSwgR0ZQX0tFUk5FTCk7Ci0KLQlpZiAoc3RhdGUgJiYgc3RhdGUtPmZiKQotCQlkcm1f ZnJhbWVidWZmZXJfcmVmZXJlbmNlKHN0YXRlLT5mYik7CisJc3RhdGUgPSBrbWFsbG9jKHNpemVv Zigqc3RhdGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoc3RhdGUpCisJCV9fZHJtX2F0b21pY19oZWxw ZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKHBsYW5lLCBzdGF0ZSk7CiAKIAlyZXR1cm4gc3RhdGU7 CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0 ZSk7CiAKIC8qKgorICogX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlIC0g cmVsZWFzZSBwbGFuZSBzdGF0ZQorICogQHBsYW5lOiBwbGFuZSBvYmplY3QKKyAqIEBzdGF0ZTog cGxhbmUgc3RhdGUgb2JqZWN0IHRvIHJlbGVhc2UKKyAqCisgKiBSZWxlYXNlcyBhbGwgcmVzb3Vy Y2VzIHN0b3JlZCBpbiB0aGUgcGxhbmUgc3RhdGUgd2l0aG91dCBhY3R1YWxseSBmcmVlaW5nCisg KiB0aGUgbWVtb3J5IG9mIHRoZSBwbGFuZSBzdGF0ZS4gVGhpcyBpcyB1c2VmdWwgZm9yIGRyaXZl cnMgdGhhdCBzdWJjbGFzcyB0aGUKKyAqIHBsYW5lIHN0YXRlLgorICovCit2b2lkIF9fZHJtX2F0 b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK KwkJCQkJICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKK3sKKwlpZiAoc3RhdGUt PmZiKQorCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uoc3RhdGUtPmZiKTsKK30KK0VYUE9S VF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKTsKKworLyoq CiAgKiBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlIC0gZGVmYXVsdCBzdGF0 ZSBkZXN0cm95IGhvb2sKICAqIEBwbGFuZTogZHJtIHBsYW5lCiAgKiBAc3RhdGU6IHBsYW5lIHN0 YXRlIG9iamVjdCB0byByZWxlYXNlCkBAIC0yMTY2LDkgKzIyMzYsNyBAQCBFWFBPUlRfU1lNQk9M KGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSk7CiB2b2lkIGRybV9hdG9t aWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ CQkJCSAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQogewotCWlmIChzdGF0ZS0+ZmIp Ci0JCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShzdGF0ZS0+ZmIpOwotCisJX19kcm1fYXRv bWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKHBsYW5lLCBzdGF0ZSk7CiAJa2ZyZWUoc3Rh dGUpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0 YXRlKTsKQEAgLTIxOTIsNiArMjI2MCwyMiBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl9yZXNldChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogRVhQT1JUX1NZTUJP TChkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQpOwogCiAvKioKKyAqIF9fZHJtX2F0 b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSAtIGNvcHkgYXRvbWljIGNvbm5l Y3RvciBzdGF0ZQorICogQGNvbm5lY3RvcjogY29ubmVjdG9yIG9iamVjdAorICogQHN0YXRlOiBh dG9taWMgY29ubmVjdG9yIHN0YXRlCisgKgorICogQ29waWVzIGF0b21pYyBzdGF0ZSBmcm9tIGEg Y29ubmVjdG9yJ3MgY3VycmVudCBzdGF0ZS4gVGhpcyBpcyB1c2VmdWwgZm9yCisgKiBkcml2ZXJz IHRoYXQgc3ViY2xhc3MgdGhlIGNvbm5lY3RvciBzdGF0ZS4KKyAqLwordm9pZAorX19kcm1fYXRv bWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCisJCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUp Cit7CisJbWVtY3B5KHN0YXRlLCBjb25uZWN0b3ItPnN0YXRlLCBzaXplb2YoKnN0YXRlKSk7Cit9 CitFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9z dGF0ZSk7CisKKy8qKgogICogZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9z dGF0ZSAtIGRlZmF1bHQgc3RhdGUgZHVwbGljYXRlIGhvb2sKICAqIEBjb25uZWN0b3I6IGRybSBj b25uZWN0b3IKICAqCkBAIC0yMjAxLDE0ICsyMjg1LDQxIEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0 b21pY19oZWxwZXJfY29ubmVjdG9yX3Jlc2V0KTsKIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICoKIGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq c3RhdGU7CisKIAlpZiAoV0FSTl9PTighY29ubmVjdG9yLT5zdGF0ZSkpCiAJCXJldHVybiBOVUxM OwogCi0JcmV0dXJuIGttZW1kdXAoY29ubmVjdG9yLT5zdGF0ZSwgc2l6ZW9mKCpjb25uZWN0b3It PnN0YXRlKSwgR0ZQX0tFUk5FTCk7CisJc3RhdGUgPSBrbWFsbG9jKHNpemVvZigqc3RhdGUpLCBH RlBfS0VSTkVMKTsKKwlpZiAoc3RhdGUpCisJCV9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9y X2R1cGxpY2F0ZV9zdGF0ZShjb25uZWN0b3IsIHN0YXRlKTsKKworCXJldHVybiBzdGF0ZTsKIH0K IEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0 ZSk7CiAKIC8qKgorICogX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0 ZSAtIHJlbGVhc2UgY29ubmVjdG9yIHN0YXRlCisgKiBAY29ubmVjdG9yOiBjb25uZWN0b3Igb2Jq ZWN0CisgKiBAc3RhdGU6IGNvbm5lY3RvciBzdGF0ZSBvYmplY3QgdG8gcmVsZWFzZQorICoKKyAq IFJlbGVhc2VzIGFsbCByZXNvdXJjZXMgc3RvcmVkIGluIHRoZSBjb25uZWN0b3Igc3RhdGUgd2l0 aG91dCBhY3R1YWxseQorICogZnJlZWluZyB0aGUgbWVtb3J5IG9mIHRoZSBjb25uZWN0b3Igc3Rh dGUuIFRoaXMgaXMgdXNlZnVsIGZvciBkcml2ZXJzIHRoYXQKKyAqIHN1YmNsYXNzIHRoZSBjb25u ZWN0b3Igc3RhdGUuCisgKi8KK3ZvaWQKK19fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rl c3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkJICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSkKK3sKKwkvKgorCSAqIFRoaXMgaXMgY3Vy cmVudGx5IGEgcGxhY2Vob2xkZXIgc28gdGhhdCBkcml2ZXJzIHRoYXQgc3ViY2xhc3MgdGhlCisJ ICogc3RhdGUgd2lsbCBhdXRvbWF0aWNhbGx5IGRvIHRoZSByaWdodCB0aGluZyBpZiBjb2RlIGlz IGV2ZXIgYWRkZWQKKwkgKiB0byB0aGlzIGZ1bmN0aW9uLgorCSAqLworfQorRVhQT1JUX1NZTUJP TChfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKTsKKworLyoqCiAg KiBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSAtIGRlZmF1bHQgc3Rh dGUgZGVzdHJveSBob29rCiAgKiBAY29ubmVjdG9yOiBkcm0gY29ubmVjdG9yCiAgKiBAc3RhdGU6 IGNvbm5lY3RvciBzdGF0ZSBvYmplY3QgdG8gcmVsZWFzZQpAQCAtMjIxOSw2ICsyMzMwLDcgQEAg RVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRl KTsKIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCQkJICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSAqc3RhdGUpCiB7CisJX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9z dGF0ZShjb25uZWN0b3IsIHN0YXRlKTsKIAlrZnJlZShzdGF0ZSk7CiB9CiBFWFBPUlRfU1lNQk9M KGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKTsKZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fYXRvbWlj X2hlbHBlci5oCmluZGV4IDgyOTI4MGI1Njg3NC4uZDY2NTc4MWViNTQyIDEwMDY0NAotLS0gYS9p bmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmgKQEAgLTg3LDIwICs4NywzNCBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9kcG1zKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAKIC8qIGRlZmF1 bHQgaW1wbGVtZW50YXRpb25zIGZvciBzdGF0ZSBoYW5kbGluZyAqLwogdm9pZCBkcm1fYXRvbWlj X2hlbHBlcl9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cit2b2lkIF9fZHJtX2F0 b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAor CQkJCQkgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKTsKIHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqCiBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpOwordm9pZCBfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9z dGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKnN0YXRlKTsKIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRl KTsKIAogdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9yZXNldChzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSk7Cit2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRl KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqc3RhdGUpOwogc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqCiBkcm1fYXRvbWljX2hlbHBl cl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwordm9pZCBf X2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCisJCQkJCSAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpOwogdm9pZCBk cm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAogCQkJCQkgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKTsKIAogdm9pZCBkcm1f YXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3Rvcik7Cit2b2lkCitfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3Rh dGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkJICAgc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKnN0YXRlKTsKIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICoKIGRy bV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3Rvcik7Cit2b2lkCitfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9k ZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJCSAgICBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUpOwogdm9pZCBkcm1fYXRvbWljX2hlbHBl cl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAogCQkJCQkgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSk7CiAKLS0gCjIuMy4y CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=