From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v2 3/8] drm/doc: Add GEM/CMA helpers to kerneldoc Date: Thu, 6 Nov 2014 16:49:16 +0100 Message-ID: <1415288961-14464-4-git-send-email-thierry.reding@gmail.com> References: <1415193919-1687-1-git-send-email-thierry.reding@gmail.com> <1415288961-14464-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-f41.google.com (mail-pa0-f41.google.com [209.85.220.41]) by gabe.freedesktop.org (Postfix) with ESMTP id B1BA46EB15 for ; Thu, 6 Nov 2014 07:49:51 -0800 (PST) Received: by mail-pa0-f41.google.com with SMTP id rd3so1480302pab.28 for ; Thu, 06 Nov 2014 07:49:51 -0800 (PST) In-Reply-To: <1415288961-14464-1-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Dave Airlie Cc: Benjamin Gaignard , Daniel Vetter , dri-devel@lists.freedesktop.org, Tomi Valkeinen , Laurent Pinchart , Russell King List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCk1vc3Qgb2YgdGhlIGZ1 bmN0aW9ucyBhbHJlYWR5IGhhdmUgdGhlIGJlZ2lubmluZ3Mgb2Yga2VybmVsZG9jIGNvbW1lbnRz CmJ1dCBhcmUgdXNpbmcgdGhlIHdyb25nIG9wZW5pbmcgbWFya2VyLiBVc2UgdGhlIGNvcnJlY3Qg b3BlbmluZyBtYXJrZXIKYW5kIGZsZXNoIG91dCB0aGUgY29tbWVudHMgc28gdGhhdCB0aGV5IGNh biBiZSBpbnRlZ3JhdGVkIHdpdGggdGhlIERSTQpEb2NCb29rIGRvY3VtZW50LgoKU2lnbmVkLW9m Zi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KLS0tCkNoYW5nZXMgaW4g djI6Ci0gZG9jdW1lbnQgcmV0dXJuIHZhbHVlIGNvbnNpc3RlbnRseSB3aXRoIG90aGVyIHNvdXJj ZSBmaWxlcwotIHByb3ZpZGUgYmV0dGVyIGRvY3VtZW50YXRpb24gYW5kIHVzZS1jYXNlcyBmb3Ig aGVscGVycwotLS0KIERvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbCAgICAgICB8ICAgNiAr CiBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV9jbWFfaGVscGVyLmMgfCAyMjAgKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0KIGluY2x1ZGUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5o ICAgICB8ICAyNSArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDIwMyBpbnNlcnRpb25zKCspLCA0OCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwg Yi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwKaW5kZXggNmUzMmVmOWM3NWZkLi42YTE0 ZWFiNGEzZDggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbAorKysg Yi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwKQEAgLTk2Myw2ICs5NjMsMTIgQEAgc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICogKCpnZW1fcHJpbWVfaW1wb3J0KShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogIUVkcml2ZXJzL2dwdS9kcm0vZHJtX21tLmMKICFJaW5jbHVkZS9kcm0vZHJtX21t LmgKICAgICA8L3NlY3QyPgorICAgIDxzZWN0Mj4KKyAgICAgIDx0aXRsZT5DTUEgSGVscGVyIEZ1 bmN0aW9ucyBSZWZlcmVuY2U8L3RpdGxlPgorIVBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV9jbWFf aGVscGVyLmMgY21hIGhlbHBlcnMKKyFFZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fY21hX2hlbHBl ci5jCishSWluY2x1ZGUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5oCisgICAgPC9zZWN0Mj4KICAg PC9zZWN0MT4KIAogICA8IS0tIEludGVybmFsczogbW9kZSBzZXR0aW5nIC0tPgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9nZW1fY21hX2hlbHBlci5jCmluZGV4IDAzMTYzMTBlMmNjNC4uN2Y5ODZkN2I4ZTIyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV9jbWFfaGVscGVyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5jCkBAIC0yOSwxOCArMjksMzEgQEAKICNp bmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV92bWFf bWFuYWdlci5oPgogCi0vKgorLyoqCisgKiBET0M6IGNtYSBoZWxwZXJzCisgKgorICogVGhlIENv bnRpZ3VvdXMgTWVtb3J5IEFsbG9jYXRvciByZXNlcnZlcyBhIHBvb2wgb2YgbWVtb3J5IGF0IGVh cmx5IGJvb3QKKyAqIHRoYXQgaXMgdXNlZCB0byBzZXJ2aWNlIHJlcXVlc3RzIGZvciBsYXJnZSBi bG9ja3Mgb2YgY29udGlndW91cyBtZW1vcnkuCisgKgorICogVGhlIERSTSBHRU0vQ01BIGhlbHBl cnMgdXNlIHRoaXMgYWxsb2NhdG9yIGFzIGEgbWVhbnMgdG8gcHJvdmlkZSBidWZmZXIKKyAqIG9i amVjdHMgdGhhdCBhcmUgcGh5c2ljYWxseSBjb250aWd1b3VzIGluIG1lbW9yeS4gVGhpcyBpcyB1 c2VmdWwgZm9yCisgKiBkaXNwbGF5IGRyaXZlcnMgdGhhdCBhcmUgdW5hYmxlIHRvIG1hcCBzY2F0 dGVyZWQgYnVmZmVycyB2aWEgYW4gSU9NTVUuCisgKi8KKworLyoqCiAgKiBfX2RybV9nZW1fY21h X2NyZWF0ZSAtIENyZWF0ZSBhIEdFTSBDTUEgb2JqZWN0IHdpdGhvdXQgYWxsb2NhdGluZyBtZW1v cnkKLSAqIEBkcm06IFRoZSBkcm0gZGV2aWNlCi0gKiBAc2l6ZTogVGhlIEdFTSBvYmplY3Qgc2l6 ZQorICogQGRybTogRFJNIGRldmljZQorICogQHNpemU6IHNpemUgb2YgdGhlIG9iamVjdCB0byBh bGxvY2F0ZQogICoKLSAqIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhbmQgaW5pdGlhbGl6ZXMgYSBH RU0gQ01BIG9iamVjdCBvZiB0aGUgZ2l2ZW4gc2l6ZSwgYnV0Ci0gKiBkb2Vzbid0IGFsbG9jYXRl IGFueSBtZW1vcnkgdG8gYmFjayB0aGUgb2JqZWN0LgorICogVGhpcyBmdW5jdGlvbiBjcmVhdGVz IGFuZCBpbml0aWFsaXplcyBhIEdFTSBDTUEgb2JqZWN0IG9mIHRoZSBnaXZlbiBzaXplLAorICog YnV0IGRvZXNuJ3QgYWxsb2NhdGUgYW55IG1lbW9yeSB0byBiYWNrIHRoZSBvYmplY3QuCiAgKgot ICogUmV0dXJuIGEgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCogb24gc3VjY2VzcyBvciBFUlJf UFRSIHZhbHVlcyBvbiBmYWlsdXJlLgorICogUmV0dXJuczoKKyAqIEEgc3RydWN0IGRybV9nZW1f Y21hX29iamVjdCAqIG9uIHN1Y2Nlc3Mgb3IgYW4gRVJSX1BUUigpLWVuY29kZWQgbmVnYXRpdmUK KyAqIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KICAqLwogc3RhdGljIHN0cnVjdCBkcm1fZ2VtX2Nt YV9vYmplY3QgKgotX19kcm1fZ2VtX2NtYV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybSwg dW5zaWduZWQgaW50IHNpemUpCitfX2RybV9nZW1fY21hX2NyZWF0ZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZHJtLCBzaXplX3Qgc2l6ZSkKIHsKIAlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFf b2JqOwogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iajsKQEAgLTY5LDE0ICs4MiwyMSBA QCBlcnJvcjoKIAlyZXR1cm4gRVJSX1BUUihyZXQpOwogfQogCi0vKgorLyoqCiAgKiBkcm1fZ2Vt X2NtYV9jcmVhdGUgLSBhbGxvY2F0ZSBhbiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gc2l6ZQorICog QGRybTogRFJNIGRldmljZQorICogQHNpemU6IHNpemUgb2YgdGhlIG9iamVjdCB0byBhbGxvY2F0 ZQorICoKKyAqIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIENNQSBHRU0gb2JqZWN0IGFuZCBhbGxv Y2F0ZXMgYSBjb250aWd1b3VzIGNodW5rIG9mCisgKiBtZW1vcnkgYXMgYmFja2luZyBzdG9yZS4g VGhlIGJhY2tpbmcgbWVtb3J5IGhhcyB0aGUgd3JpdGVjb21iaW5lIGF0dHJpYnV0ZQorICogc2V0 LgogICoKLSAqIHJldHVybnMgYSBzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0KiBvbiBzdWNjZXNz IG9yIEVSUl9QVFIgdmFsdWVzCi0gKiBvbiBmYWlsdXJlLgorICogUmV0dXJuczoKKyAqIEEgc3Ry dWN0IGRybV9nZW1fY21hX29iamVjdCAqIG9uIHN1Y2Nlc3Mgb3IgYW4gRVJSX1BUUigpLWVuY29k ZWQgbmVnYXRpdmUKKyAqIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KICAqLwogc3RydWN0IGRybV9n ZW1fY21hX29iamVjdCAqZHJtX2dlbV9jbWFfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0s Ci0JCXVuc2lnbmVkIGludCBzaXplKQorCQkJCQkgICAgICBzaXplX3Qgc2l6ZSkKIHsKIAlzdHJ1 Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFfb2JqOwogCWludCByZXQ7CkBAIC0xMDQsMTcgKzEy NCwyNiBAQCBlcnJvcjoKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGRybV9nZW1fY21hX2NyZWF0ZSk7 CiAKLS8qCi0gKiBkcm1fZ2VtX2NtYV9jcmVhdGVfd2l0aF9oYW5kbGUgLSBhbGxvY2F0ZSBhbiBv YmplY3Qgd2l0aCB0aGUgZ2l2ZW4KLSAqIHNpemUgYW5kIGNyZWF0ZSBhIGdlbSBoYW5kbGUgb24g aXQKKy8qKgorICogZHJtX2dlbV9jbWFfY3JlYXRlX3dpdGhfaGFuZGxlIC0gYWxsb2NhdGUgYW4g b2JqZWN0IHdpdGggdGhlIGdpdmVuIHNpemUgYW5kCisgKiAgICAgcmV0dXJuIGEgR0VNIGhhbmRs ZSB0byBpdAorICogQGZpbGVfcHJpdjogRFJNIGZpbGUtcHJpdmF0ZSBzdHJ1Y3R1cmUgdG8gcmVn aXN0ZXIgdGhlIGhhbmRsZSBmb3IKKyAqIEBkcm06IERSTSBkZXZpY2UKKyAqIEBzaXplOiBzaXpl IG9mIHRoZSBvYmplY3QgdG8gYWxsb2NhdGUKKyAqIEBoYW5kbGU6IHJldHVybiBsb2NhdGlvbiBm b3IgdGhlIEdFTSBoYW5kbGUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBDTUEgR0VN IG9iamVjdCwgYWxsb2NhdGluZyBhIHBoeXNpY2FsbHkgY29udGlndW91cworICogY2h1bmsgb2Yg bWVtb3J5IGFzIGJhY2tpbmcgc3RvcmUuIFRoZSBHRU0gb2JqZWN0IGlzIHRoZW4gYWRkZWQgdG8g dGhlIGxpc3QKKyAqIG9mIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGZpbGUgYW5k IGEgaGFuZGxlIHRvIGl0IGlzIHJldHVybmVkLgogICoKLSAqIHJldHVybnMgYSBzdHJ1Y3QgZHJt X2dlbV9jbWFfb2JqZWN0KiBvbiBzdWNjZXNzIG9yIEVSUl9QVFIgdmFsdWVzCi0gKiBvbiBmYWls dXJlLgorICogUmV0dXJuczoKKyAqIEEgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqIG9uIHN1 Y2Nlc3Mgb3IgYW4gRVJSX1BUUigpLWVuY29kZWQgbmVnYXRpdmUKKyAqIGVycm9yIGNvZGUgb24g ZmFpbHVyZS4KICAqLwotc3RhdGljIHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmRybV9nZW1f Y21hX2NyZWF0ZV93aXRoX2hhbmRsZSgKLQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0J CXN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHVuc2lnbmVkIGludCBzaXplLAotCQl1bnNpZ25lZCBp bnQgKmhhbmRsZSkKK3N0YXRpYyBzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICoKK2RybV9nZW1f Y21hX2NyZWF0ZV93aXRoX2hhbmRsZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJCSAg ICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzaXplX3Qgc2l6ZSwKKwkJCSAgICAgICB1aW50 MzJfdCAqaGFuZGxlKQogewogCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmo7CiAJ c3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqOwpAQCAtMTQ1LDkgKzE3NCwxNCBAQCBlcnJf aGFuZGxlX2NyZWF0ZToKIAlyZXR1cm4gRVJSX1BUUihyZXQpOwogfQogCi0vKgotICogZHJtX2dl bV9jbWFfZnJlZV9vYmplY3QgLSAoc3RydWN0IGRybV9kcml2ZXIpLT5nZW1fZnJlZV9vYmplY3Qg Y2FsbGJhY2sKLSAqIGZ1bmN0aW9uCisvKioKKyAqIGRybV9nZW1fY21hX2ZyZWVfb2JqZWN0IC0g ZnJlZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIGEgQ01BIEdFTSBvYmplY3QKKyAqIEBnZW1f b2JqOiBHRU0gb2JqZWN0IHRvIGZyZWUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGZyZWVzIHRoZSBi YWNraW5nIG1lbW9yeSBvZiB0aGUgQ01BIEdFTSBvYmplY3QsIGNsZWFucyB1cCB0aGUKKyAqIEdF TSBvYmplY3Qgc3RhdGUgYW5kIGZyZWVzIHRoZSBtZW1vcnkgdXNlZCB0byBzdG9yZSB0aGUgb2Jq ZWN0IGl0c2VsZi4KKyAqIERyaXZlcnMgdXNpbmcgdGhlIENNQSBoZWxwZXJzIHNob3VsZCBzZXQg dGhpcyBhcyB0aGVpciBEUk0gZHJpdmVyJ3MKKyAqIC0+Z2VtX2ZyZWVfb2JqZWN0KCkgY2FsbGJh Y2suCiAgKi8KIHZvaWQgZHJtX2dlbV9jbWFfZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpnZW1fb2JqKQogewpAQCAtMTcwLDE1ICsyMDQsMjMgQEAgdm9pZCBkcm1fZ2VtX2NtYV9m cmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmopCiB9CiBFWFBPUlRfU1lN Qk9MX0dQTChkcm1fZ2VtX2NtYV9mcmVlX29iamVjdCk7CiAKLS8qCi0gKiBkcm1fZ2VtX2NtYV9k dW1iX2NyZWF0ZSAtIChzdHJ1Y3QgZHJtX2RyaXZlciktPmR1bWJfY3JlYXRlIGNhbGxiYWNrCi0g KiBmdW5jdGlvbgorLyoqCisgKiBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZSAtIGNyZWF0ZSBhIGR1 bWIgYnVmZmVyIG9iamVjdAorICogQGZpbGVfcHJpdjogRFJNIGZpbGUtcHJpdmF0ZSBzdHJ1Y3R1 cmUgdG8gY3JlYXRlIHRoZSBkdW1iIGJ1ZmZlciBmb3IKKyAqIEBkcm06IERSTSBkZXZpY2UKKyAq IEBhcmdzOiBJT0NUTCBkYXRhCisgKgorICogVGhpcyBmdW5jdGlvbiBjb21wdXRlcyB0aGUgcGl0 Y2ggb2YgdGhlIGR1bWIgYnVmZmVyIGFuZCByb3VuZHMgaXQgdXAgdG8gYW4KKyAqIGludGVnZXIg bnVtYmVyIG9mIGJ5dGVzIHBlciBwaXhlbC4gRHJpdmVycyBmb3IgaGFyZHdhcmUgdGhhdCBkb2Vz bid0IGhhdmUKKyAqIGFueSBhZGRpdGlvbmFsIHJlc3RyaWN0aW9ucyBvbiB0aGUgcGl0Y2ggY2Fu IGRpcmVjdGx5IHVzZSB0aGlzIGZ1bmN0aW9uIGFzCisgKiB0aGVpciAtPmR1bWJfY3JlYXRlKCkg Y2FsbGJhY2suCiAgKgotICogVGhpcyBhbGlnbnMgdGhlIHBpdGNoIGFuZCBzaXplIGFyZ3VtZW50 cyB0byB0aGUgbWluaW11bSByZXF1aXJlZC4gd3JhcAotICogdGhpcyBpbnRvIHlvdXIgb3duIGZ1 bmN0aW9uIGlmIHlvdSBuZWVkIGJpZ2dlciBhbGlnbm1lbnQuCisgKiBSZXR1cm5zOgorICogMCBv biBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgogICovCiBpbnQg ZHJtX2dlbV9jbWFfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0JCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncykK KwkJCSAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAorCQkJICAgIHN0cnVjdCBkcm1fbW9kZV9j cmVhdGVfZHVtYiAqYXJncykKIHsKIAlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFfb2Jq OwogCWludCBtaW5fcGl0Y2ggPSBESVZfUk9VTkRfVVAoYXJncy0+d2lkdGggKiBhcmdzLT5icHAs IDgpOwpAQCAtMTg5LDE4ICsyMzEsMzAgQEAgaW50IGRybV9nZW1fY21hX2R1bWJfY3JlYXRlKHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCWlmIChhcmdzLT5zaXplIDwgYXJncy0+cGl0Y2gg KiBhcmdzLT5oZWlnaHQpCiAJCWFyZ3MtPnNpemUgPSBhcmdzLT5waXRjaCAqIGFyZ3MtPmhlaWdo dDsKIAotCWNtYV9vYmogPSBkcm1fZ2VtX2NtYV9jcmVhdGVfd2l0aF9oYW5kbGUoZmlsZV9wcml2 LCBkZXYsCi0JCQlhcmdzLT5zaXplLCAmYXJncy0+aGFuZGxlKTsKKwljbWFfb2JqID0gZHJtX2dl bV9jbWFfY3JlYXRlX3dpdGhfaGFuZGxlKGZpbGVfcHJpdiwgZHJtLCBhcmdzLT5zaXplLAorCQkJ CQkJICZhcmdzLT5oYW5kbGUpOwogCXJldHVybiBQVFJfRVJSX09SX1pFUk8oY21hX29iaik7CiB9 CiBFWFBPUlRfU1lNQk9MX0dQTChkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZSk7CiAKLS8qCi0gKiBk cm1fZ2VtX2NtYV9kdW1iX21hcF9vZmZzZXQgLSAoc3RydWN0IGRybV9kcml2ZXIpLT5kdW1iX21h cF9vZmZzZXQgY2FsbGJhY2sKLSAqIGZ1bmN0aW9uCisvKioKKyAqIGRybV9nZW1fY21hX2R1bWJf bWFwX29mZnNldCAtIHJldHVybiB0aGUgZmFrZSBtbWFwIG9mZnNldCBmb3IgYSBDTUEgR0VNCisg KiAgICAgb2JqZWN0CisgKiBAZmlsZV9wcml2OiBEUk0gZmlsZS1wcml2YXRlIHN0cnVjdHVyZSBj b250YWluaW5nIHRoZSBHRU0gb2JqZWN0CisgKiBAZHJtOiBEUk0gZGV2aWNlCisgKiBAaGFuZGxl OiBHRU0gb2JqZWN0IGhhbmRsZQorICogQG9mZnNldDogcmV0dXJuIGxvY2F0aW9uIGZvciB0aGUg ZmFrZSBtbWFwIG9mZnNldAorICoKKyAqIFRoaXMgZnVuY3Rpb24gbG9vayB1cCBhbiBvYmplY3Qg YnkgaXRzIGhhbmRsZSBhbmQgcmV0dXJucyB0aGUgZmFrZSBtbWFwCisgKiBvZmZzZXQgYXNzb2Np YXRlZCB3aXRoIGl0LiBEcml2ZXJzIHVzaW5nIHRoZSBDTUEgaGVscGVycyBzaG91bGQgc2V0IHRo aXMKKyAqIGFzIHRoZWlyIERSTSBkcml2ZXIncyAtPmR1bWJfbWFwX29mZnNldCgpIGNhbGxiYWNr LgorICoKKyAqIFJldHVybnM6CisgKiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBj b2RlIG9uIGZhaWx1cmUuCiAgKi8KIGludCBkcm1fZ2VtX2NtYV9kdW1iX21hcF9vZmZzZXQoc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0JCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHVpbnQz Ml90IGhhbmRsZSwgdWludDY0X3QgKm9mZnNldCkKKwkJCQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJt LCB1MzIgaGFuZGxlLAorCQkJCXU2NCAqb2Zmc2V0KQogewogCXN0cnVjdCBkcm1fZ2VtX29iamVj dCAqZ2VtX29iajsKIApAQCAtMjA4LDcgKzI2Miw3IEBAIGludCBkcm1fZ2VtX2NtYV9kdW1iX21h cF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAKIAlnZW1fb2JqID0gZHJtX2dl bV9vYmplY3RfbG9va3VwKGRybSwgZmlsZV9wcml2LCBoYW5kbGUpOwogCWlmICghZ2VtX29iaikg ewotCQlkZXZfZXJyKGRybS0+ZGV2LCAiZmFpbGVkIHRvIGxvb2t1cCBnZW0gb2JqZWN0XG4iKTsK KwkJZGV2X2Vycihkcm0tPmRldiwgImZhaWxlZCB0byBsb29rdXAgR0VNIG9iamVjdFxuIik7CiAJ CW11dGV4X3VubG9jaygmZHJtLT5zdHJ1Y3RfbXV0ZXgpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9 CkBAIC0yNTEsOCArMzA1LDIwIEBAIHN0YXRpYyBpbnQgZHJtX2dlbV9jbWFfbW1hcF9vYmooc3Ry dWN0IGRybV9nZW1fY21hX29iamVjdCAqY21hX29iaiwKIAlyZXR1cm4gcmV0OwogfQogCi0vKgot ICogZHJtX2dlbV9jbWFfbW1hcCAtIChzdHJ1Y3QgZmlsZV9vcGVyYXRpb24pLT5tbWFwIGNhbGxi YWNrIGZ1bmN0aW9uCisvKioKKyAqIGRybV9nZW1fY21hX21tYXAgLSBtZW1vcnktbWFwIGEgQ01B IEdFTSBvYmplY3QKKyAqIEBmaWxwOiBmaWxlIG9iamVjdAorICogQHZtYTogVk1BIGZvciB0aGUg YXJlYSB0byBiZSBtYXBwZWQKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgYW4gYXVn bWVudGVkIHZlcnNpb24gb2YgdGhlIEdFTSBEUk0gZmlsZSBtbWFwCisgKiBvcGVyYXRpb24gZm9y IENNQSBvYmplY3RzOiBJbiBhZGRpdGlvbiB0byB0aGUgdXN1YWwgR0VNIFZNQSBzZXR1cCBpdAor ICogaW1tZWRpYXRlbHkgZmF1bHRzIGluIHRoZSBlbnRpcmUgb2JqZWN0IGluc3RlYWQgb2YgdXNp bmcgb24tZGVtYWluZAorICogZmF1bHRpbmcuIERyaXZlcnMgd2hpY2ggZW1wbG95IHRoZSBDTUEg aGVscGVycyBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24KKyAqIGFzIHRoZWlyIC0+bW1hcCgpIGhh bmRsZXIgaW4gdGhlIERSTSBkZXZpY2UgZmlsZSdzIGZpbGVfb3BlcmF0aW9ucworICogc3RydWN0 dXJlLgorICoKKyAqIFJldHVybnM6CisgKiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJv ciBjb2RlIG9uIGZhaWx1cmUuCiAgKi8KIGludCBkcm1fZ2VtX2NtYV9tbWFwKHN0cnVjdCBmaWxl ICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsKQEAgLTI3Miw3ICszMzgsMTYg QEAgaW50IGRybV9nZW1fY21hX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqdm1hKQogRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2dlbV9jbWFfbW1hcCk7CiAKICNp ZmRlZiBDT05GSUdfREVCVUdfRlMKLXZvaWQgZHJtX2dlbV9jbWFfZGVzY3JpYmUoc3RydWN0IGRy bV9nZW1fY21hX29iamVjdCAqY21hX29iaiwgc3RydWN0IHNlcV9maWxlICptKQorLyoqCisgKiBk cm1fZ2VtX2NtYV9kZXNjcmliZSAtIGRlc2NyaWJlIGEgQ01BIEdFTSBvYmplY3QgZm9yIGRlYnVn ZnMKKyAqIEBjbWFfb2JqOiBDTUEgR0VNIG9iamVjdAorICogQG06IGRlYnVnZnMgZmlsZSBoYW5k bGUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGR1bXAgYSBodW1hbi1yZWFk YWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGUKKyAqIENNQSBHRU0gb2JqZWN0IGludG8gYSBzeW50 aGV0aWMgZmlsZS4KKyAqLwordm9pZCBkcm1fZ2VtX2NtYV9kZXNjcmliZShzdHJ1Y3QgZHJtX2dl bV9jbWFfb2JqZWN0ICpjbWFfb2JqLAorCQkJICBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiB7CiAJc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSAmY21hX29iai0+YmFzZTsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gb2JqLT5kZXY7CkBAIC0yOTEsNyArMzY2LDE4IEBAIHZvaWQgZHJtX2dlbV9j bWFfZGVzY3JpYmUoc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqY21hX29iaiwgc3RydWN0IHNl cV9maWxlICptCiBFWFBPUlRfU1lNQk9MX0dQTChkcm1fZ2VtX2NtYV9kZXNjcmliZSk7CiAjZW5k aWYKIAotLyogbG93LWxldmVsIGludGVyZmFjZSBwcmltZSBoZWxwZXJzICovCisvKioKKyAqIGRy bV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSAtIHByb3ZpZGUgYSBzY2F0dGVyL2dhdGhlciB0 YWJsZSBvZiBwaW5uZWQKKyAqICAgICBwYWdlcyBmb3IgYSBDTUEgR0VNIG9iamVjdAorICogQG9i ajogR0VNIG9iamVjdAorICoKKyAqIFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBhIHNjYXR0ZXIvZ2F0 aGVyIHRhYmxlIHN1aXRhYmxlIGZvciBQUklNRSB1c2FnZSBieQorICogY2FsbGluZyB0aGUgc3Rh bmRhcmQgRE1BIG1hcHBpbmcgQVBJLiBEcml2ZXJzIHVzaW5nIHRoZSBDTUEgaGVscGVycyBzaG91 bGQKKyAqIHNldCB0aGlzIGFzIHRoZWlyIERSTSBkcml2ZXIncyAtPmdlbV9wcmltZV9nZXRfc2df dGFibGUoKSBjYWxsYmFjay4KKyAqCisgKiBSZXR1cm5zOgorICogQSBwb2ludGVyIHRvIHRoZSBz Y2F0dGVyL2dhdGhlciB0YWJsZSBvZiBwaW5uZWQgcGFnZXMgb3IgTlVMTCBvbiBmYWlsdXJlLgor ICovCiBzdHJ1Y3Qgc2dfdGFibGUgKmRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZShzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIHsKIAlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpj bWFfb2JqID0gdG9fZHJtX2dlbV9jbWFfb2JqKG9iaik7CkBAIC0zMTUsNiArNDAxLDIzIEBAIG91 dDoKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGRybV9nZW1fY21hX3ByaW1lX2dldF9zZ190YWJsZSk7 CiAKKy8qKgorICogZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlIC0gcHJvZHVjZSBh IENNQSBHRU0gb2JqZWN0IGZyb20gYW5vdGhlcgorICogICAgIGRyaXZlcidzIHNjYXR0ZXIvZ2F0 aGVyIHRhYmxlIG9mIHBpbm5lZCBwYWdlcworICogQGRldjogZGV2aWNlIHRvIGltcG9ydCBpbnRv CisgKiBAYXR0YWNoOiBETUEtQlVGIGF0dGFjaG1lbnQKKyAqIEBzZ3Q6IHNjYXR0ZXIvZ2F0aGVy IHRhYmxlIG9mIHBpbm5lZCBwYWdlcworICoKKyAqIFRoaXMgZnVuY3Rpb24gaW1wb3J0cyBhIHNj YXR0ZXIvZ2F0aGVyIHRhYmxlIGV4cG9ydGVkIHZpYSBETUEtQlVGIGJ5CisgKiBhbm90aGVyIGRy aXZlci4gSW1wb3J0ZWQgYnVmZmVycyBtdXN0IGJlIHBoeXNpY2FsbHkgY29udGlndW91cyBpbiBt ZW1vcnkKKyAqIChpLmUuIHRoZSBzY2F0dGVyL2dhdGhlciB0YWJsZSBtdXN0IGNvbnRhaW4gYSBz aW5nbGUgZW50cnkpLiBEcml2ZXJzIHRoYXQKKyAqIHVzZSB0aGUgQ01BIGhlbHBlcnMgc2hvdWxk IHNldCB0aGlzIGFzIHRoZWlyIERSTSBkcml2ZXIncworICogLT5nZW1fcHJpbWVfaW1wb3J0X3Nn X3RhYmxlKCkgY2FsbGJhY2suCisgKgorICogUmV0dXJuczoKKyAqIEEgcG9pbnRlciB0byBhIG5l d2x5IGNyZWF0ZWQgR0VNIG9iamVjdCBvciBhbiBFUlJfUFRSLWVuY29kZWQgbmVnYXRpdmUKKyAq IGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLwogc3RydWN0IGRybV9nZW1fb2JqZWN0ICoKIGRy bV9nZW1fY21hX3ByaW1lX2ltcG9ydF9zZ190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CQkJCSAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLApAQCAtMzM5LDYgKzQ0Miwx OCBAQCBkcm1fZ2VtX2NtYV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGRybV9nZW1fY21hX3ByaW1lX2ltcG9ydF9zZ190 YWJsZSk7CiAKKy8qKgorICogZHJtX2dlbV9jbWFfcHJpbWVfbW1hcCAtIG1lbW9yeS1tYXAgYW4g ZXhwb3J0ZWQgQ01BIEdFTSBvYmplY3QKKyAqIEBvYmo6IEdFTSBvYmplY3QKKyAqIEB2bWE6IFZN QSBmb3IgdGhlIGFyZWEgdG8gYmUgbWFwcGVkCisgKgorICogVGhpcyBmdW5jdGlvbiBtYXBzIGEg YnVmZmVyIGltcG9ydGVkIHZpYSBEUk0gUFJJTUUgaW50byBhIHVzZXJzcGFjZQorICogcHJvY2Vz cydzIGFkZHJlc3Mgc3BhY2UuIERyaXZlcnMgdGhhdCB1c2UgdGhlIENNQSBoZWxwZXJzIHNob3Vs ZCBzZXQgdGhpcworICogYXMgdGhlaXIgRFJNIGRyaXZlcidzIC0+Z2VtX3ByaW1lX21tYXAoKSBj YWxsYmFjay4KKyAqCisgKiBSZXR1cm5zOgorICogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUg ZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCiBpbnQgZHJtX2dlbV9jbWFfcHJpbWVfbW1hcChz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIAkJCSAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hKQogewpAQCAtMzU3LDYgKzQ3MiwyMCBAQCBpbnQgZHJtX2dlbV9jbWFfcHJpbWVfbW1hcChz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGRybV9nZW1f Y21hX3ByaW1lX21tYXApOwogCisvKioKKyAqIGRybV9nZW1fY21hX3ByaW1lX3ZtYXAgLSBtYXAg YSBDTUEgR0VNIG9iamVjdCBpbnRvIHRoZSBrZXJuZWwncyB2aXJ0dWFsCisgKiAgICAgYWRkcmVz cyBzcGFjZQorICogQG9iajogR0VNIG9iamVjdAorICoKKyAqIFRoaXMgZnVuY3Rpb24gbWFwcyBh IGJ1ZmZlciBleHBvcnRlZCB2aWEgRFJNIFBSSU1FIGludG8gdGhlIGtlcm5lbCdzCisgKiB2aXJ0 dWFsIGFkZHJlc3Mgc3BhY2UuIFNpbmNlIHRoZSBDTUEgYnVmZmVycyBhcmUgYWxyZWFkeSBtYXBw ZWQgaW50byB0aGUKKyAqIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgdGhpcyBzaW1wbHkg cmV0dXJucyB0aGUgY2FjaGVkIHZpcnR1YWwKKyAqIGFkZHJlc3MuIERyaXZlcnMgdXNpbmcgdGhl IENNQSBoZWxwZXJzIHNob3VsZCBzZXQgdGhpcyBhcyB0aGVpciBEUk0KKyAqIGRyaXZlcidzIC0+ Z2VtX3ByaW1lX3ZtYXAoKSBjYWxsYmFjay4KKyAqCisgKiBSZXR1cm5zOgorICogVGhlIGtlcm5l bCB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIENNQSBHRU0gb2JqZWN0J3MgYmFja2luZyBzdG9yZS4K KyAqLwogdm9pZCAqZHJtX2dlbV9jbWFfcHJpbWVfdm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iaikKIHsKIAlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFfb2JqID0gdG9fZHJtX2dl bV9jbWFfb2JqKG9iaik7CkBAIC0zNjUsNiArNDk0LDE3IEBAIHZvaWQgKmRybV9nZW1fY21hX3By aW1lX3ZtYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiB9CiBFWFBPUlRfU1lNQk9MX0dQ TChkcm1fZ2VtX2NtYV9wcmltZV92bWFwKTsKIAorLyoqCisgKiBkcm1fZ2VtX2NtYV9wcmltZV92 dW5tYXAgLSB1bm1hcCBhIENNQSBHRU0gb2JqZWN0IGZyb20gdGhlIGtlcm5lbCdzIHZpcnR1YWwK KyAqICAgICBhZGRyZXNzIHNwYWNlCisgKiBAb2JqOiBHRU0gb2JqZWN0CisgKiBAdmFkZHI6IGtl cm5lbCB2aXJ0dWFsIGFkZHJlc3Mgd2hlcmUgdGhlIENNQSBHRU0gb2JqZWN0IHdhcyBtYXBwZWQK KyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgYSBidWZmZXIgZXhwb3J0ZWQgdmlhIERSTSBQ UklNRSBmcm9tIHRoZSBrZXJuZWwncworICogdmlydHVhbCBhZGRyZXNzIHNwYWNlLiBUaGlzIGlz IGEgbm8tb3AgYmVjYXVzZSBDTUEgYnVmZmVycyBjYW5ub3QgYmUKKyAqIHVubWFwcGVkIGZyb20g a2VybmVsIHNwYWNlLiBEcml2ZXJzIHVzaW5nIHRoZSBDTUEgaGVscGVycyBzaG91bGQgc2V0IHRo aXMKKyAqIGFzIHRoZWlyIERSTSBkcml2ZXIncyAtPmdlbV9wcmltZV92dW5tYXAoKSBjYWxsYmFj ay4KKyAqLwogdm9pZCBkcm1fZ2VtX2NtYV9wcmltZV92dW5tYXAoc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpvYmosIHZvaWQgKnZhZGRyKQogewogCS8qIE5vdGhpbmcgdG8gZG8gKi8KZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2dl bV9jbWFfaGVscGVyLmgKaW5kZXggMmZmMzVmM2RlOWM1Li44NzNkNGViN2YxMjUgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2Ry bV9nZW1fY21hX2hlbHBlci5oCkBAIC00LDYgKzQsMTMgQEAKICNpbmNsdWRlIDxkcm0vZHJtUC5o PgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAKKy8qKgorICogc3RydWN0IGRybV9nZW1fY21h X29iamVjdCAtIEdFTSBvYmplY3QgYmFja2VkIGJ5IENNQSBtZW1vcnkgYWxsb2NhdGlvbnMKKyAq IEBiYXNlOiBiYXNlIEdFTSBvYmplY3QKKyAqIEBwYWRkcjogcGh5c2ljYWwgYWRkcmVzcyBvZiB0 aGUgYmFja2luZyBtZW1vcnkKKyAqIEBzZ3Q6IHNjYXR0ZXIvZ2F0aGVyIHRhYmxlIGZvciBpbXBv cnRlZCBQUklNRSBidWZmZXJzCisgKiBAdmFkZHI6IGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3Mgb2Yg dGhlIGJhY2tpbmcgbWVtb3J5CisgKi8KIHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgewogCXN0 cnVjdCBkcm1fZ2VtX29iamVjdCBiYXNlOwogCWRtYV9hZGRyX3QgcGFkZHI7CkBAIC0xOSwyMyAr MjYsMjUgQEAgdG9fZHJtX2dlbV9jbWFfb2JqKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29i aikKIAlyZXR1cm4gY29udGFpbmVyX29mKGdlbV9vYmosIHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmpl Y3QsIGJhc2UpOwogfQogCi0vKiBmcmVlIGdlbSBvYmplY3QuICovCisvKiBmcmVlIEdFTSBvYmpl Y3QgKi8KIHZvaWQgZHJtX2dlbV9jbWFfZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpnZW1fb2JqKTsKIAotLyogY3JlYXRlIG1lbW9yeSByZWdpb24gZm9yIGRybSBmcmFtZWJ1ZmZl ci4gKi8KKy8qIGNyZWF0ZSBtZW1vcnkgcmVnaW9uIGZvciBEUk0gZnJhbWVidWZmZXIgKi8KIGlu dCBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJ c3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdz KTsKKwkJCSAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAorCQkJICAgIHN0cnVjdCBkcm1fbW9k ZV9jcmVhdGVfZHVtYiAqYXJncyk7CiAKLS8qIG1hcCBtZW1vcnkgcmVnaW9uIGZvciBkcm0gZnJh bWVidWZmZXIgdG8gdXNlciBzcGFjZS4gKi8KKy8qIG1hcCBtZW1vcnkgcmVnaW9uIGZvciBEUk0g ZnJhbWVidWZmZXIgdG8gdXNlciBzcGFjZSAqLwogaW50IGRybV9nZW1fY21hX2R1bWJfbWFwX29m ZnNldChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJc3RydWN0IGRybV9kZXZpY2UgKmRy bSwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCAqb2Zmc2V0KTsKKwkJCQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtLCB1MzIgaGFuZGxlLAorCQkJCXU2NCAqb2Zmc2V0KTsKIAotLyogc2V0IHZtX2Zs YWdzIGFuZCB3ZSBjYW4gY2hhbmdlIHRoZSB2bSBhdHRyaWJ1dGUgdG8gb3RoZXIgb25lIGF0IGhl cmUuICovCisvKiBzZXQgdm1fZmxhZ3MgYW5kIHdlIGNhbiBjaGFuZ2UgdGhlIFZNIGF0dHJpYnV0 ZSB0byBvdGhlciBvbmUgYXQgaGVyZSAqLwogaW50IGRybV9nZW1fY21hX21tYXAoc3RydWN0IGZp bGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKIAotLyogYWxsb2NhdGUgcGh5 c2ljYWwgbWVtb3J5LiAqLworLyogYWxsb2NhdGUgcGh5c2ljYWwgbWVtb3J5ICovCiBzdHJ1Y3Qg ZHJtX2dlbV9jbWFfb2JqZWN0ICpkcm1fZ2VtX2NtYV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRybSwKLQkJdW5zaWduZWQgaW50IHNpemUpOworCQkJCQkgICAgICBzaXplX3Qgc2l6ZSk7CiAK IGV4dGVybiBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgZHJtX2dlbV9jbWFfdm1f b3BzOwogCi0tIAoyLjEuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK