From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 02/17] drm/atomic: Allow drivers to subclass drm_atomic_state, v3 Date: Mon, 18 May 2015 10:06:40 +0200 Message-ID: <55599D90.7070601@linux.intel.com> References: <1431548627-2527-1-git-send-email-maarten.lankhorst@linux.intel.com> <1431548627-2527-3-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1431548627-2527-3-git-send-email-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 Cc: dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RHJpdmVycyBtYXkgbmVlZCB0byBzdG9yZSB0aGUgc3RhdGUgb2Ygc2hhcmVkIHJlc291cmNlcywg c3VjaCBhcyBQTExzCm9yIEZJRk8gc3BhY2UsIGludG8gdGhlIGF0b21pYyBzdGF0ZS4gQWxsb3cg dGhpcyBieSBtYWtpbmcgaXQgcG9zc2libGUKdG8gc3ViY2xhc3MgZHJtX2F0b21pY19zdGF0ZS4K CkNoYW5nZXMgc2luY2UgdjE6Ci0gQ2hhbmdlIG1lbWJlciBuYW1lcyBmb3IgZnVuY3Rpb25zIHRv IGF0b21pY19zdGF0ZV8oYWxsb2MsY2xlYXIpCi0gQ2hhbmdlIF9fZHJtX2F0b21pY19zdGF0ZV9u ZXcgdG8gZHJtX2F0b21pY19zdGF0ZV9pbml0Ci0gQWxsb3cgZnJlZSBmdW5jdGlvbiB0byBiZSBv dmVycmlkZGVuIHRvbywgaW4gY2FzZSBleHRyYSBtZW1vcnkgaXMKICBhbGxvY2F0ZWQgaW4gYWxs b2MuCkNoYW5nZXMgc2luY2UgdjI6Ci0gUmVuYW1lICpfZGVmYXVsdF9mcmVlIHRvIGRlZmF1bHRf cmVsZWFzZSwgdG8gbWFrZSBjbGVhciBpdCBkb2Vzbid0CiAgZnJlZSB0aGUgc3RhdGUgb2JqZWN0 IGl0c2VsZi4KCkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCkFja2VkLWJ5OiBB bmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWlyYUBp bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmto b3JzdEBsaW51eC5pbnRlbC5jb20+CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKaW5kZXggYzYyNzdhNGExZjJm Li5jZDFiMTZiMjU3MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMzAsNyArMzAsMTUgQEAKICNp bmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVy Lmg+CiAKLXN0YXRpYyB2b2lkIGtmcmVlX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKKy8qKgorICogZHJtX2F0b21pY19zdGF0ZV9kZWZhdWx0X3JlbGVhc2UgLQorICogcmVs ZWFzZSBtZW1vcnkgaW5pdGlhbGl6ZWQgYnkgZHJtX2F0b21pY19zdGF0ZV9pbml0CisgKiBAc3Rh dGU6IGF0b21pYyBzdGF0ZQorICoKKyAqIEZyZWUgYWxsIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5 IGRybV9hdG9taWNfc3RhdGVfaW5pdC4KKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBkcml2ZXJzIHRo YXQgc3ViY2xhc3MgdGhlIGF0b21pYyBzdGF0ZS4KKyAqLwordm9pZCBkcm1fYXRvbWljX3N0YXRl X2RlZmF1bHRfcmVsZWFzZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJa2Zy ZWUoc3RhdGUtPmNvbm5lY3RvcnMpOwogCWtmcmVlKHN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzKTsK QEAgLTM4LDI0ICs0NiwyMCBAQCBzdGF0aWMgdm9pZCBrZnJlZV9zdGF0ZShzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpCiAJa2ZyZWUoc3RhdGUtPmNydGNfc3RhdGVzKTsKIAlrZnJlZShz dGF0ZS0+cGxhbmVzKTsKIAlrZnJlZShzdGF0ZS0+cGxhbmVfc3RhdGVzKTsKLQlrZnJlZShzdGF0 ZSk7CiB9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9yZWxlYXNlKTsK IAogLyoqCi0gKiBkcm1fYXRvbWljX3N0YXRlX2FsbG9jIC0gYWxsb2NhdGUgYXRvbWljIHN0YXRl CisgKiBkcm1fYXRvbWljX3N0YXRlX2luaXQgLSBpbml0IG5ldyBhdG9taWMgc3RhdGUKICAqIEBk ZXY6IERSTSBkZXZpY2UKKyAqIEBzdGF0ZTogYXRvbWljIHN0YXRlCiAgKgotICogVGhpcyBhbGxv Y2F0ZXMgYW4gZW1wdHkgYXRvbWljIHN0YXRlIHRvIHRyYWNrIHVwZGF0ZXMuCisgKiBEZWZhdWx0 IGltcGxlbWVudGF0aW9uIGZvciBmaWxsaW5nIGluIGEgbmV3IGF0b21pYyBzdGF0ZS4KKyAqIFRo aXMgaXMgdXNlZnVsIGZvciBkcml2ZXJzIHRoYXQgc3ViY2xhc3MgdGhlIGF0b21pYyBzdGF0ZS4K ICAqLwotc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKgotZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoraW50Citkcm1fYXRvbWljX3N0YXRlX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKLQotCXN0YXRlID0ga3phbGxvYyhzaXplb2Yo KnN0YXRlKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFzdGF0ZSkKLQkJcmV0dXJuIE5VTEw7Ci0KIAkv KiBUT0RPIGxlZ2FjeSBwYXRocyBzaG91bGQgbWF5YmUgZG8gYSBiZXR0ZXIgam9iIGFib3V0CiAJ ICogc2V0dGluZyB0aGlzIGFwcHJvcHJpYXRlbHk/CiAJICovCkBAIC05MiwzMSArOTYsNTAgQEAg ZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJc3RhdGUt PmRldiA9IGRldjsKIAotCURSTV9ERUJVR19BVE9NSUMoIkFsbG9jYXRlIGF0b21pYyBzdGF0ZSAl cFxuIiwgc3RhdGUpOworCURSTV9ERUJVR19BVE9NSUMoIkFsbG9jYXRlZCBhdG9taWMgc3RhdGUg JXBcbiIsIHN0YXRlKTsKIAotCXJldHVybiBzdGF0ZTsKKwlyZXR1cm4gMDsKIGZhaWw6Ci0Ja2Zy ZWVfc3RhdGUoc3RhdGUpOworCWRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9yZWxlYXNlKHN0YXRl KTsKKwlyZXR1cm4gLUVOT01FTTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19zdGF0ZV9p bml0KTsKKworLyoqCisgKiBkcm1fYXRvbWljX3N0YXRlX2FsbG9jIC0gYWxsb2NhdGUgYXRvbWlj IHN0YXRlCisgKiBAZGV2OiBEUk0gZGV2aWNlCisgKgorICogVGhpcyBhbGxvY2F0ZXMgYW4gZW1w dHkgYXRvbWljIHN0YXRlIHRvIHRyYWNrIHVwZGF0ZXMuCisgKi8KK3N0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICoKK2RybV9hdG9taWNfc3RhdGVfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldikK K3sKKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsK KwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7CisKKwlpZiAoIWNvbmZpZy0+ZnVuY3Mt PmF0b21pY19zdGF0ZV9hbGxvYykgeworCQlzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzdGF0ZSks IEdGUF9LRVJORUwpOworCQlpZiAoIXN0YXRlKQorCQkJcmV0dXJuIE5VTEw7CisJCWlmIChkcm1f YXRvbWljX3N0YXRlX2luaXQoZGV2LCBzdGF0ZSkgPCAwKSB7CisJCQlrZnJlZShzdGF0ZSk7CisJ CQlyZXR1cm4gTlVMTDsKKwkJfQorCQlyZXR1cm4gc3RhdGU7CisJfQogCi0JcmV0dXJuIE5VTEw7 CisJcmV0dXJuIGNvbmZpZy0+ZnVuY3MtPmF0b21pY19zdGF0ZV9hbGxvYyhkZXYpOwogfQogRVhQ T1JUX1NZTUJPTChkcm1fYXRvbWljX3N0YXRlX2FsbG9jKTsKIAogLyoqCi0gKiBkcm1fYXRvbWlj X3N0YXRlX2NsZWFyIC0gY2xlYXIgc3RhdGUgb2JqZWN0CisgKiBkcm1fYXRvbWljX3N0YXRlX2Rl ZmF1bHRfY2xlYXIgLSBjbGVhciBiYXNlIGF0b21pYyBzdGF0ZQogICogQHN0YXRlOiBhdG9taWMg c3RhdGUKICAqCi0gKiBXaGVuIHRoZSB3L3cgbXV0ZXggYWxnb3JpdGhtIGRldGVjdHMgYSBkZWFk bG9jayB3ZSBuZWVkIHRvIGJhY2sgb2ZmIGFuZCBkcm9wCi0gKiBhbGwgbG9ja3MuIFNvIHNvbWVv bmUgZWxzZSBjb3VsZCBzbmVhayBpbiBhbmQgY2hhbmdlIHRoZSBjdXJyZW50IG1vZGVzZXQKLSAq IGNvbmZpZ3VyYXRpb24uIFdoaWNoIG1lYW5zIHRoYXQgYWxsIHRoZSBzdGF0ZSBhc3NlbWJsZWQg aW4gQHN0YXRlIGlzIG5vCi0gKiBsb25nZXIgYW4gYXRvbWljIHVwZGF0ZSB0byB0aGUgY3VycmVu dCBzdGF0ZSwgYnV0IHRvIHNvbWUgYXJiaXRyYXJ5IGVhcmxpZXIKLSAqIHN0YXRlLiBXaGljaCBj b3VsZCBicmVhayBhc3N1bXB0aW9ucyB0aGUgZHJpdmVyJ3MgLT5hdG9taWNfY2hlY2sgbGlrZWx5 Ci0gKiByZWxpZXMgb24uCi0gKgotICogSGVuY2Ugd2UgbXVzdCBjbGVhciBhbGwgY2FjaGVkIHN0 YXRlIGFuZCBjb21wbGV0ZWx5IHN0YXJ0IG92ZXIsIHVzaW5nIHRoaXMKLSAqIGZ1bmN0aW9uLgor ICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3IgY2xlYXJpbmcgYXRvbWljIHN0YXRlLgorICog VGhpcyBpcyB1c2VmdWwgZm9yIGRyaXZlcnMgdGhhdCBzdWJjbGFzcyB0aGUgYXRvbWljIHN0YXRl LgogICovCi12b2lkIGRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQordm9pZCBkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfY2xlYXIoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0 ZS0+ZGV2OwogCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29u ZmlnOwpAQCAtMTYyLDYgKzE4NSwzMiBAQCB2b2lkIGRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQlzdGF0ZS0+cGxhbmVfc3RhdGVzW2ldID0g TlVMTDsKIAl9CiB9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVh cik7CisKKy8qKgorICogZHJtX2F0b21pY19zdGF0ZV9jbGVhciAtIGNsZWFyIHN0YXRlIG9iamVj dAorICogQHN0YXRlOiBhdG9taWMgc3RhdGUKKyAqCisgKiBXaGVuIHRoZSB3L3cgbXV0ZXggYWxn b3JpdGhtIGRldGVjdHMgYSBkZWFkbG9jayB3ZSBuZWVkIHRvIGJhY2sgb2ZmIGFuZCBkcm9wCisg KiBhbGwgbG9ja3MuIFNvIHNvbWVvbmUgZWxzZSBjb3VsZCBzbmVhayBpbiBhbmQgY2hhbmdlIHRo ZSBjdXJyZW50IG1vZGVzZXQKKyAqIGNvbmZpZ3VyYXRpb24uIFdoaWNoIG1lYW5zIHRoYXQgYWxs IHRoZSBzdGF0ZSBhc3NlbWJsZWQgaW4gQHN0YXRlIGlzIG5vCisgKiBsb25nZXIgYW4gYXRvbWlj IHVwZGF0ZSB0byB0aGUgY3VycmVudCBzdGF0ZSwgYnV0IHRvIHNvbWUgYXJiaXRyYXJ5IGVhcmxp ZXIKKyAqIHN0YXRlLiBXaGljaCBjb3VsZCBicmVhayBhc3N1bXB0aW9ucyB0aGUgZHJpdmVyJ3Mg LT5hdG9taWNfY2hlY2sgbGlrZWx5CisgKiByZWxpZXMgb24uCisgKgorICogSGVuY2Ugd2UgbXVz dCBjbGVhciBhbGwgY2FjaGVkIHN0YXRlIGFuZCBjb21wbGV0ZWx5IHN0YXJ0IG92ZXIsIHVzaW5n IHRoaXMKKyAqIGZ1bmN0aW9uLgorICovCit2b2lkIGRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBzdGF0ZS0+ZGV2OworCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1v ZGVfY29uZmlnOworCisJaWYgKGNvbmZpZy0+ZnVuY3MtPmF0b21pY19zdGF0ZV9jbGVhcikKKwkJ Y29uZmlnLT5mdW5jcy0+YXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsKKwllbHNlCisJCWRybV9h dG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcihzdGF0ZSk7Cit9CiBFWFBPUlRfU1lNQk9MKGRybV9h dG9taWNfc3RhdGVfY2xlYXIpOwogCiAvKioKQEAgLTE3MywxNCArMjIyLDI1IEBAIEVYUE9SVF9T WU1CT0woZHJtX2F0b21pY19zdGF0ZV9jbGVhcik7CiAgKi8KIHZvaWQgZHJtX2F0b21pY19zdGF0 ZV9mcmVlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2OworCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZzsKKwogCWlmICghc3Rh dGUpCiAJCXJldHVybjsKIAorCWRldiA9IHN0YXRlLT5kZXY7CisJY29uZmlnID0gJmRldi0+bW9k ZV9jb25maWc7CisKIAlkcm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsKIAogCURSTV9ERUJV R19BVE9NSUMoIkZyZWVpbmcgYXRvbWljIHN0YXRlICVwXG4iLCBzdGF0ZSk7CiAKLQlrZnJlZV9z dGF0ZShzdGF0ZSk7CisJaWYgKGNvbmZpZy0+ZnVuY3MtPmF0b21pY19zdGF0ZV9mcmVlKSB7CisJ CWNvbmZpZy0+ZnVuY3MtPmF0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKKwl9IGVsc2UgeworCQlk cm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfcmVsZWFzZShzdGF0ZSk7CisJCWtmcmVlKHN0YXRlKTsK Kwl9CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfc3RhdGVfZnJlZSk7CiAKZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaApp bmRleCBkNzg1NDMwNjc3MDAuLmYwZDNhNzM4N2Q5OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0v ZHJtX2F0b21pYy5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaApAQCAtMzUsNiArMzUs MTEgQEAgZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZv aWQgZHJtX2F0b21pY19zdGF0ZV9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Owogdm9pZCBkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKTsKIAoraW50ICBfX211c3RfY2hlY2sKK2RybV9hdG9taWNfc3RhdGVfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwordm9pZCBk cm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfY2xlYXIoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKTsKK3ZvaWQgZHJtX2F0b21pY19zdGF0ZV9kZWZhdWx0X3JlbGVhc2Uoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlKTsKKwogc3RydWN0IGRybV9jcnRjX3N0YXRlICogX19tdXN0X2No ZWNrCiBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSwKIAkJCSAgc3RydWN0IGRybV9jcnRjICpjcnRjKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL2RybV9jcnRjLmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCmluZGV4IDg0MGU5ZTYyODc4 Yy4uYmZmMjViMGNhZGE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCisrKyBi L2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKQEAgLTk4NSw2ICs5ODUsOSBAQCBzdHJ1Y3QgZHJtX21v ZGVfc2V0IHsKICAqIEBhdG9taWNfY2hlY2s6IGNoZWNrIHdoZXRoZXIgYSBnaXZlbiBhdG9taWMg c3RhdGUgdXBkYXRlIGlzIHBvc3NpYmxlCiAgKiBAYXRvbWljX2NvbW1pdDogY29tbWl0IGFuIGF0 b21pYyBzdGF0ZSB1cGRhdGUgcHJldmlvdXNseSB2ZXJpZmllZCB3aXRoCiAgKiAJYXRvbWljX2No ZWNrKCkKKyAqIEBhdG9taWNfc3RhdGVfYWxsb2M6IGFsbG9jYXRlIGEgbmV3IGF0b21pYyBzdGF0 ZQorICogQGF0b21pY19zdGF0ZV9jbGVhcjogY2xlYXIgdGhlIGF0b21pYyBzdGF0ZQorICogQGF0 b21pY19zdGF0ZV9mcmVlOiBmcmVlIHRoZSBhdG9taWMgc3RhdGUKICAqCiAgKiBTb21lIGdsb2Jh bCAoaS5lLiBub3QgcGVyLUNSVEMsIGNvbm5lY3RvciwgZXRjKSBtb2RlIHNldHRpbmcgZnVuY3Rp b25zIHRoYXQKICAqIGludm9sdmUgZHJpdmVycy4KQEAgLTEwMDAsNiArMTAwMyw5IEBAIHN0cnVj dCBkcm1fbW9kZV9jb25maWdfZnVuY3MgewogCWludCAoKmF0b21pY19jb21taXQpKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICphLAogCQkJ ICAgICBib29sIGFzeW5jKTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqKCphdG9taWNfc3Rh dGVfYWxsb2MpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCXZvaWQgKCphdG9taWNfc3RhdGVf Y2xlYXIpKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CisJdm9pZCAoKmF0b21pY19z dGF0ZV9mcmVlKShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogfTsKIAogLyoqCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=