From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 19/39] drm/i915: Split GEM object type definition to its own header Date: Wed, 13 Mar 2019 14:43:41 +0000 Message-ID: <20190313144401.17735-19-chris@chris-wilson.co.uk> References: <20190313144401.17735-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7121D6E0F0 for ; Wed, 13 Mar 2019 14:45:07 +0000 (UTC) In-Reply-To: <20190313144401.17735-1-chris@chris-wilson.co.uk> 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: Matthew Auld List-Id: intel-gfx@lists.freedesktop.org Rm9yIGNvbnZlbmllbmNlIGluIGF2b2lkaW5nIGlubGluZSBzcGFnaGV0dGksIGtlZXAgdGhlIHR5 cGUgZGVmaW5pdGlvbgphcyBhIHNlcGFyYXRlIGhlYWRlci4KClNpZ25lZC1vZmYtYnk6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpSZXZpZXdlZC1ieTogTWF0dGhldyBB dWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01h a2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMyArLQogLi4uL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fb2JqZWN0X3R5cGVzLmggIHwgMjg1ICsrKysrKysrKysrKysrKysrCiAuLi4vdGVzdF9p OTE1X2dlbV9vYmplY3RfdHlwZXNfc3RhbmRhbG9uZS5jICAgfCAgIDcgKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmggICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5oICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9vYmplY3QuaCAgICAgICAgfCAyOTUgKy0tLS0tLS0tLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfdHlwZXMuaCAgICAgfCAgIDEgKwogOCBm aWxlcyBjaGFuZ2VkLCAzMDMgaW5zZXJ0aW9ucygrKSwgMjk1IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlw ZXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS90ZXN0X2k5 MTVfZ2VtX29iamVjdF90eXBlc19zdGFuZGFsb25lLmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4 IDYwZGUwNWYzZmE2MC4uODdmYjhjMjE1MTBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtNTks NiArNTksNyBAQCBpOTE1LSQoQ09ORklHX1BFUkZfRVZFTlRTKSArPSBpOTE1X3BtdS5vCiAKICMg VGVzdCB0aGUgaGVhZGVycyBhcmUgY29tcGlsYWJsZSBhcyBzdGFuZGFsb25lIHVuaXRzCiBpOTE1 LSQoQ09ORklHX0RSTV9JOTE1X1dFUlJPUikgKz0gXAorCWdlbS90ZXN0X2k5MTVfZ2VtX29iamVj dF90eXBlc19zdGFuZGFsb25lLm8gXAogCXRlc3RfaTkxNV9hY3RpdmVfdHlwZXNfc3RhbmRhbG9u ZS5vIFwKIAl0ZXN0X2k5MTVfZ2VtX2NvbnRleHRfdHlwZXNfc3RhbmRhbG9uZS5vIFwKIAl0ZXN0 X2k5MTVfdGltZWxpbmVfdHlwZXNfc3RhbmRhbG9uZS5vIFwKQEAgLTEwMiw3ICsxMDMsNyBAQCBp OTE1LXkgKz0gXAogCSAgaW50ZWxfbW9jcy5vIFwKIAkgIGludGVsX3JpbmdidWZmZXIubyBcCiAJ ICBpbnRlbF91bmNvcmUubyBcCi0JICBpbnRlbF93b3BjbS5vCisJICBpbnRlbF93b3BjbS5vIFwK IAogIyBnZW5lcmFsLXB1cnBvc2UgbWljcm9jb250cm9sbGVyIChHdUMpIHN1cHBvcnQKIGk5MTUt eSArPSBpbnRlbF91Yy5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9vYmplY3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9vYmplY3RfdHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LmU0YjUwOTQ0ZjU1MwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaApAQCAtMCwwICsxLDI4NSBAQAorLyoKKyAqIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBD b3Jwb3JhdGlvbgorICovCisKKyNpZm5kZWYgX19JOTE1X0dFTV9PQkpFQ1RfVFlQRVNfSF9fCisj ZGVmaW5lIF9fSTkxNV9HRU1fT0JKRUNUX1RZUEVTX0hfXworCisjaW5jbHVkZSA8bGludXgvcmVz ZXJ2YXRpb24uaD4KKworI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CisKKyNpbmNsdWRlICIuLi9p OTE1X2FjdGl2ZS5oIgorI2luY2x1ZGUgIi4uL2k5MTVfc2VsZnRlc3QuaCIKKworc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3Q7CisKKy8qCisgKiBzdHJ1Y3QgaTkxNV9sdXRfaGFuZGxlIHRyYWNr cyB0aGUgZmFzdCBsb29rdXBzIGZyb20gaGFuZGxlIHRvIHZtYSB1c2VkCisgKiBmb3IgZXhlY2J1 Zi4gQWx0aG91Z2ggd2UgdXNlIGEgcmFkaXh0cmVlIGZvciB0aGF0IG1hcHBpbmcsIGluIG9yZGVy IHRvCisgKiByZW1vdmUgdGhlbSBhcyB0aGUgb2JqZWN0IG9yIGNvbnRleHQgaXMgY2xvc2VkLCB3 ZSBuZWVkIGEgc2Vjb25kYXJ5IGxpc3QKKyAqIGFuZCBhIHRyYW5zbGF0aW9uIGVudHJ5IChpOTE1 X2x1dF9oYW5kbGUpLgorICovCitzdHJ1Y3QgaTkxNV9sdXRfaGFuZGxlIHsKKwlzdHJ1Y3QgbGlz dF9oZWFkIG9ial9saW5rOworCXN0cnVjdCBsaXN0X2hlYWQgY3R4X2xpbms7CisJc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eDsKKwl1MzIgaGFuZGxlOworfTsKKworc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3Rfb3BzIHsKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7CisjZGVmaW5lIEk5MTVfR0VN X09CSkVDVF9IQVNfU1RSVUNUX1BBR0UJQklUKDApCisjZGVmaW5lIEk5MTVfR0VNX09CSkVDVF9J U19TSFJJTktBQkxFCUJJVCgxKQorI2RlZmluZSBJOTE1X0dFTV9PQkpFQ1RfSVNfUFJPWFkJQklU KDIpCisjZGVmaW5lIEk5MTVfR0VNX09CSkVDVF9BU1lOQ19DQU5DRUwJQklUKDMpCisKKwkvKiBJ bnRlcmZhY2UgYmV0d2VlbiB0aGUgR0VNIG9iamVjdCBhbmQgaXRzIGJhY2tpbmcgc3RvcmFnZS4K KwkgKiBnZXRfcGFnZXMoKSBpcyBjYWxsZWQgb25jZSBwcmlvciB0byB0aGUgdXNlIG9mIHRoZSBh c3NvY2lhdGVkIHNldAorCSAqIG9mIHBhZ2VzIGJlZm9yZSB0byBiaW5kaW5nIHRoZW0gaW50byB0 aGUgR1RULCBhbmQgcHV0X3BhZ2VzKCkgaXMKKwkgKiBjYWxsZWQgYWZ0ZXIgd2Ugbm8gbG9uZ2Vy IG5lZWQgdGhlbS4gQXMgd2UgZXhwZWN0IHRoZXJlIHRvIGJlCisJICogYXNzb2NpYXRlZCBjb3N0 IHdpdGggbWlncmF0aW5nIHBhZ2VzIGJldHdlZW4gdGhlIGJhY2tpbmcgc3RvcmFnZQorCSAqIGFu ZCBtYWtpbmcgdGhlbSBhdmFpbGFibGUgZm9yIHRoZSBHUFUgKGUuZy4gY2xmbHVzaCksIHdlIG1h eSBob2xkCisJICogb250byB0aGUgcGFnZXMgYWZ0ZXIgdGhleSBhcmUgbm8gbG9uZ2VyIHJlZmVy ZW5jZWQgYnkgdGhlIEdQVQorCSAqIGluIGNhc2UgdGhleSBtYXkgYmUgdXNlZCBhZ2FpbiBzaG9y dGx5IChmb3IgZXhhbXBsZSBtaWdyYXRpbmcgdGhlCisJICogcGFnZXMgdG8gYSBkaWZmZXJlbnQg bWVtb3J5IGRvbWFpbiB3aXRoaW4gdGhlIEdUVCkuIHB1dF9wYWdlcygpCisJICogd2lsbCB0aGVy ZWZvcmUgbW9zdCBsaWtlbHkgYmUgY2FsbGVkIHdoZW4gdGhlIG9iamVjdCBpdHNlbGYgaXMKKwkg KiBiZWluZyByZWxlYXNlZCBvciB1bmRlciBtZW1vcnkgcHJlc3N1cmUgKHdoZXJlIHdlIGF0dGVt cHQgdG8KKwkgKiByZWFwIHBhZ2VzIGZvciB0aGUgc2hyaW5rZXIpLgorCSAqLworCWludCAoKmdl dF9wYWdlcykoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CisJdm9pZCAoKnB1dF9w YWdlcykoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJCSAgc3RydWN0IHNnX3Rh YmxlICpwYWdlcyk7CisKKwlpbnQgKCpwd3JpdGUpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmosCisJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fcHdyaXRlICphcmcpOwor CisJaW50ICgqZG1hYnVmX2V4cG9ydCkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7 CisJdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOworfTsK Kworc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgeworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCBi YXNlOworCisJY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzICpvcHM7CisKKwlz dHJ1Y3QgeworCQkvKioKKwkJICogQHZtYS5sb2NrOiBwcm90ZWN0IHRoZSBsaXN0L3RyZWUgb2Yg dm1hcworCQkgKi8KKwkJc3BpbmxvY2tfdCBsb2NrOworCisJCS8qKgorCQkgKiBAdm1hLmxpc3Q6 IExpc3Qgb2YgVk1BcyBiYWNrZWQgYnkgdGhpcyBvYmplY3QKKwkJICoKKwkJICogVGhlIFZNQSBv biB0aGlzIGxpc3QgYXJlIG9yZGVyZWQgYnkgdHlwZSwgYWxsIEdHVFQgdm1hIGFyZQorCQkgKiBw bGFjZWQgYXQgdGhlIGhlYWQgYW5kIGFsbCBwcEdUVCB2bWEgYXJlIHBsYWNlZCBhdCB0aGUgdGFp bC4KKwkJICogVGhlIGRpZmZlcmVudCB0eXBlcyBvZiBHR1RUIHZtYSBhcmUgdW5vcmRlcmVkIGJl dHdlZW4KKwkJICogdGhlbXNlbHZlcywgdXNlIHRoZSBAdm1hLnRyZWUgKHdoaWNoIGhhcyBhIGRl ZmluZWQgb3JkZXIKKwkJICogYmV0d2VlbiBhbGwgVk1BKSB0byBxdWlja2x5IGZpbmQgYW4gZXhh Y3QgbWF0Y2guCisJCSAqLworCQlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisKKwkJLyoqCisJCSAq IEB2bWEudHJlZTogT3JkZXJlZCB0cmVlIG9mIFZNQXMgYmFja2VkIGJ5IHRoaXMgb2JqZWN0CisJ CSAqCisJCSAqIEFsbCBWTUEgY3JlYXRlZCBmb3IgdGhpcyBvYmplY3QgYXJlIHBsYWNlZCBpbiB0 aGUgQHZtYS50cmVlCisJCSAqIGZvciBmYXN0IHJldHJpZXZhbCB2aWEgYSBiaW5hcnkgc2VhcmNo IGluCisJCSAqIGk5MTVfdm1hX2luc3RhbmNlKCkuIFRoZXkgYXJlIGFsc28gYWRkZWQgdG8gQHZt YS5saXN0IGZvcgorCQkgKiBlYXN5IGl0ZXJhdGlvbi4KKwkJICovCisJCXN0cnVjdCByYl9yb290 IHRyZWU7CisJfSB2bWE7CisKKwkvKioKKwkgKiBAbHV0X2xpc3Q6IExpc3Qgb2Ygdm1hIGxvb2t1 cCBlbnRyaWVzIGluIHVzZSBmb3IgdGhpcyBvYmplY3QuCisJICoKKwkgKiBJZiB0aGlzIG9iamVj dCBpcyBjbG9zZWQsIHdlIG5lZWQgdG8gcmVtb3ZlIGFsbCBvZiBpdHMgVk1BIGZyb20KKwkgKiB0 aGUgZmFzdCBsb29rdXAgaW5kZXggaW4gYXNzb2NpYXRlZCBjb250ZXh0czsgQGx1dF9saXN0IHBy b3ZpZGVzCisJICogdGhpcyB0cmFuc2xhdGlvbiBmcm9tIG9iamVjdCB0byBjb250ZXh0LT5oYW5k bGVzX3ZtYS4KKwkgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGx1dF9saXN0OworCisJLyoqIFN0b2xl biBtZW1vcnkgZm9yIHRoaXMgb2JqZWN0LCBpbnN0ZWFkIG9mIGJlaW5nIGJhY2tlZCBieSBzaG1l bS4gKi8KKwlzdHJ1Y3QgZHJtX21tX25vZGUgKnN0b2xlbjsKKwl1bmlvbiB7CisJCXN0cnVjdCBy Y3VfaGVhZCByY3U7CisJCXN0cnVjdCBsbGlzdF9ub2RlIGZyZWVkOworCX07CisKKwkvKioKKwkg KiBXaGV0aGVyIHRoZSBvYmplY3QgaXMgY3VycmVudGx5IGluIHRoZSBHR1RUIG1tYXAuCisJICov CisJdW5zaWduZWQgaW50IHVzZXJmYXVsdF9jb3VudDsKKwlzdHJ1Y3QgbGlzdF9oZWFkIHVzZXJm YXVsdF9saW5rOworCisJc3RydWN0IGxpc3RfaGVhZCBiYXRjaF9wb29sX2xpbms7CisJSTkxNV9T RUxGVEVTVF9ERUNMQVJFKHN0cnVjdCBsaXN0X2hlYWQgc3RfbGluayk7CisKKwl1bnNpZ25lZCBs b25nIGZsYWdzOworCisJLyoqCisJICogSGF2ZSB3ZSB0YWtlbiBhIHJlZmVyZW5jZSBmb3IgdGhl IG9iamVjdCBmb3IgaW5jb21wbGV0ZSBHUFUKKwkgKiBhY3Rpdml0eT8KKwkgKi8KKyNkZWZpbmUg STkxNV9CT19BQ1RJVkVfUkVGIDAKKworCS8qCisJICogSXMgdGhlIG9iamVjdCB0byBiZSBtYXBw ZWQgYXMgcmVhZC1vbmx5IHRvIHRoZSBHUFUKKwkgKiBPbmx5IGhvbm91cmVkIGlmIGhhcmR3YXJl IGhhcyByZWxldmFudCBwdGUgYml0CisJICovCisJdW5zaWduZWQgaW50IGNhY2hlX2xldmVsOjM7 CisJdW5zaWduZWQgaW50IGNhY2hlX2NvaGVyZW50OjI7CisjZGVmaW5lIEk5MTVfQk9fQ0FDSEVf Q09IRVJFTlRfRk9SX1JFQUQgQklUKDApCisjZGVmaW5lIEk5MTVfQk9fQ0FDSEVfQ09IRVJFTlRf Rk9SX1dSSVRFIEJJVCgxKQorCXVuc2lnbmVkIGludCBjYWNoZV9kaXJ0eToxOworCisJLyoqCisJ ICogQHJlYWRfZG9tYWluczogUmVhZCBtZW1vcnkgZG9tYWlucy4KKwkgKgorCSAqIFRoZXNlIG1v bml0b3Igd2hpY2ggY2FjaGVzIGNvbnRhaW4gcmVhZC93cml0ZSBkYXRhIHJlbGF0ZWQgdG8gdGhl CisJICogb2JqZWN0LiBXaGVuIHRyYW5zaXRpb25pbmcgZnJvbSBvbmUgc2V0IG9mIGRvbWFpbnMg dG8gYW5vdGhlciwKKwkgKiB0aGUgZHJpdmVyIGlzIGNhbGxlZCB0byBlbnN1cmUgdGhhdCBjYWNo ZXMgYXJlIHN1aXRhYmx5IGZsdXNoZWQgYW5kCisJICogaW52YWxpZGF0ZWQuCisJICovCisJdTE2 IHJlYWRfZG9tYWluczsKKworCS8qKgorCSAqIEB3cml0ZV9kb21haW46IENvcnJlc3BvbmRpbmcg dW5pcXVlIHdyaXRlIG1lbW9yeSBkb21haW4uCisJICovCisJdTE2IHdyaXRlX2RvbWFpbjsKKwor CWF0b21pY190IGZyb250YnVmZmVyX2JpdHM7CisJdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2dn dHRfb3JpZ2luOyAvKiB3cml0ZSBvbmNlICovCisJc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3Qg ZnJvbnRidWZmZXJfd3JpdGU7CisKKwkvKiogQ3VycmVudCB0aWxpbmcgc3RyaWRlIGZvciB0aGUg b2JqZWN0LCBpZiBpdCdzIHRpbGVkLiAqLworCXVuc2lnbmVkIGludCB0aWxpbmdfYW5kX3N0cmlk ZTsKKyNkZWZpbmUgRkVOQ0VfTUlOSU1VTV9TVFJJREUgMTI4IC8qIFNlZSBpOTE1X3RpbGluZ19v aygpICovCisjZGVmaW5lIFRJTElOR19NQVNLIChGRU5DRV9NSU5JTVVNX1NUUklERSAtIDEpCisj ZGVmaW5lIFNUUklERV9NQVNLICh+VElMSU5HX01BU0spCisKKwkvKiogQ291bnQgb2YgVk1BIGFj dHVhbGx5IGJvdW5kIGJ5IHRoaXMgb2JqZWN0ICovCisJdW5zaWduZWQgaW50IGJpbmRfY291bnQ7 CisJdW5zaWduZWQgaW50IGFjdGl2ZV9jb3VudDsKKwkvKiogQ291bnQgb2YgaG93IG1hbnkgZ2xv YmFsIFZNQSBhcmUgY3VycmVudGx5IHBpbm5lZCBmb3IgdXNlIGJ5IEhXICovCisJdW5zaWduZWQg aW50IHBpbl9nbG9iYWw7CisKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgbXV0ZXggbG9jazsgLyogcHJv dGVjdHMgdGhlIHBhZ2VzIGFuZCB0aGVpciB1c2UgKi8KKwkJYXRvbWljX3QgcGFnZXNfcGluX2Nv dW50OworCisJCXN0cnVjdCBzZ190YWJsZSAqcGFnZXM7CisJCXZvaWQgKm1hcHBpbmc7CisKKwkJ LyogVE9ETzogd2hhY2sgc29tZSBvZiB0aGlzIGludG8gdGhlIGVycm9yIHN0YXRlICovCisJCXN0 cnVjdCBpOTE1X3BhZ2Vfc2l6ZXMgeworCQkJLyoqCisJCQkgKiBUaGUgc2cgbWFzayBvZiB0aGUg cGFnZXMgc2dfdGFibGUuIGkuZSB0aGUgbWFzayBvZgorCQkJICogb2YgdGhlIGxlbmd0aHMgZm9y IGVhY2ggc2cgZW50cnkuCisJCQkgKi8KKwkJCXVuc2lnbmVkIGludCBwaHlzOworCisJCQkvKioK KwkJCSAqIFRoZSBndHQgcGFnZSBzaXplcyB3ZSBhcmUgYWxsb3dlZCB0byB1c2UgZ2l2ZW4gdGhl CisJCQkgKiBzZyBtYXNrIGFuZCB0aGUgc3VwcG9ydGVkIHBhZ2Ugc2l6ZXMuIFRoaXMgd2lsbAor CQkJICogZXhwcmVzcyB0aGUgc21hbGxlc3QgdW5pdCB3ZSBjYW4gdXNlIGZvciB0aGUgd2hvbGUK KwkJCSAqIG9iamVjdCwgYXMgd2VsbCBhcyB0aGUgbGFyZ2VyIHNpemVzIHdlIG1heSBiZSBhYmxl CisJCQkgKiB0byB1c2Ugb3Bwb3J0dW5pc3RpY2FsbHkuCisJCQkgKi8KKwkJCXVuc2lnbmVkIGlu dCBzZzsKKworCQkJLyoqCisJCQkgKiBUaGUgYWN0dWFsIGd0dCBwYWdlIHNpemUgdXNhZ2UuIFNp bmNlIHdlIGNhbiBoYXZlCisJCQkgKiBtdWx0aXBsZSB2bWEgYXNzb2NpYXRlZCB3aXRoIHRoaXMg b2JqZWN0IHdlIG5lZWQgdG8KKwkJCSAqIHByZXZlbnQgYW55IHRyYW1wbGluZyBvZiBzdGF0ZSwg aGVuY2UgYSBjb3B5IG9mIHRoaXMKKwkJCSAqIHN0cnVjdCBhbHNvIGxpdmVzIGluIGVhY2ggdm1h LCB0aGVyZWZvcmUgdGhlIGd0dAorCQkJICogdmFsdWUgaGVyZSBzaG91bGQgb25seSBiZSByZWFk L3dyaXRlIHRocm91Z2ggdGhlIHZtYS4KKwkJCSAqLworCQkJdW5zaWduZWQgaW50IGd0dDsKKwkJ fSBwYWdlX3NpemVzOworCisJCUk5MTVfU0VMRlRFU1RfREVDTEFSRSh1bnNpZ25lZCBpbnQgcGFn ZV9tYXNrKTsKKworCQlzdHJ1Y3QgaTkxNV9nZW1fb2JqZWN0X3BhZ2VfaXRlciB7CisJCQlzdHJ1 Y3Qgc2NhdHRlcmxpc3QgKnNnX3BvczsKKwkJCXVuc2lnbmVkIGludCBzZ19pZHg7IC8qIGluIHBh Z2VzLCBidXQgMzJiaXQgZWVrISAqLworCisJCQlzdHJ1Y3QgcmFkaXhfdHJlZV9yb290IHJhZGl4 OworCQkJc3RydWN0IG11dGV4IGxvY2s7IC8qIHByb3RlY3RzIHRoaXMgY2FjaGUgKi8KKwkJfSBn ZXRfcGFnZTsKKworCQkvKioKKwkJICogRWxlbWVudCB3aXRoaW4gaTkxNS0+bW0udW5ib3VuZF9s aXN0IG9yIGk5MTUtPm1tLmJvdW5kX2xpc3QsCisJCSAqIGxvY2tlZCBieSBpOTE1LT5tbS5vYmpf bG9jay4KKwkJICovCisJCXN0cnVjdCBsaXN0X2hlYWQgbGluazsKKworCQkvKioKKwkJICogQWR2 aWNlOiBhcmUgdGhlIGJhY2tpbmcgcGFnZXMgcHVyZ2VhYmxlPworCQkgKi8KKwkJdW5zaWduZWQg aW50IG1hZHY6MjsKKworCQkvKioKKwkJICogVGhpcyBpcyBzZXQgaWYgdGhlIG9iamVjdCBoYXMg YmVlbiB3cml0dGVuIHRvIHNpbmNlIHRoZQorCQkgKiBwYWdlcyB3ZXJlIGxhc3QgYWNxdWlyZWQu CisJCSAqLworCQlib29sIGRpcnR5OjE7CisKKwkJLyoqCisJCSAqIFRoaXMgaXMgc2V0IGlmIHRo ZSBvYmplY3QgaGFzIGJlZW4gcGlubmVkIGR1ZSB0byB1bmtub3duCisJCSAqIHN3aXp6bGluZy4K KwkJICovCisJCWJvb2wgcXVpcmtlZDoxOworCX0gbW07CisKKwkvKiogQnJlYWRjcnVtYiBvZiBs YXN0IHJlbmRlcmluZyB0byB0aGUgYnVmZmVyLgorCSAqIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSB3 cml0ZXIsIGJ1dCB3ZSBhbGxvdyBmb3IgbXVsdGlwbGUgcmVhZGVycy4KKwkgKiBJZiB0aGVyZSBp cyBhIHdyaXRlciB0aGF0IG5lY2Vzc2FyaWx5IGltcGxpZXMgdGhhdCBhbGwgb3RoZXIKKwkgKiBy ZWFkIHJlcXVlc3RzIGFyZSBjb21wbGV0ZSAtIGJ1dCB3ZSBtYXkgb25seSBiZSBsYXppbHkgY2xl YXJpbmcKKwkgKiB0aGUgcmVhZCByZXF1ZXN0cy4gQSByZWFkIHJlcXVlc3QgaXMgbmF0dXJhbGx5 IHRoZSBtb3N0IHJlY2VudAorCSAqIHJlcXVlc3Qgb24gYSByaW5nLCBzbyB3ZSBtYXkgaGF2ZSB0 d28gZGlmZmVyZW50IHdyaXRlIGFuZCByZWFkCisJICogcmVxdWVzdHMgb24gb25lIHJpbmcgd2hl cmUgdGhlIHdyaXRlIHJlcXVlc3QgaXMgb2xkZXIgdGhhbiB0aGUKKwkgKiByZWFkIHJlcXVlc3Qu IFRoaXMgYWxsb3dzIGZvciB0aGUgQ1BVIHRvIHJlYWQgZnJvbSBhbiBhY3RpdmUKKwkgKiBidWZm ZXIgYnkgb25seSB3YWl0aW5nIGZvciB0aGUgd3JpdGUgdG8gY29tcGxldGUuCisJICovCisJc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdjsKKworCS8qKiBSZWZlcmVuY2VzIGZyb20gZnJh bWVidWZmZXJzLCBsb2NrcyBvdXQgdGlsaW5nIGNoYW5nZXMuICovCisJdW5zaWduZWQgaW50IGZy YW1lYnVmZmVyX3JlZmVyZW5jZXM7CisKKwkvKiogUmVjb3JkIG9mIGFkZHJlc3MgYml0IDE3IG9m IGVhY2ggcGFnZSBhdCBsYXN0IHVuYmluZC4gKi8KKwl1bnNpZ25lZCBsb25nICpiaXRfMTc7CisK Kwl1bmlvbiB7CisJCXN0cnVjdCBpOTE1X2dlbV91c2VycHRyIHsKKwkJCXVpbnRwdHJfdCBwdHI7 CisKKwkJCXN0cnVjdCBpOTE1X21tX3N0cnVjdCAqbW07CisJCQlzdHJ1Y3QgaTkxNV9tbXVfb2Jq ZWN0ICptbXVfb2JqZWN0OworCQkJc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrOworCQl9IHVzZXJw dHI7CisKKwkJdW5zaWduZWQgbG9uZyBzY3JhdGNoOworCisJCXZvaWQgKmd2dF9pbmZvOworCX07 CisKKwkvKiogZm9yIHBoeXMgYWxsb2NhdGVkIG9iamVjdHMgKi8KKwlzdHJ1Y3QgZHJtX2RtYV9o YW5kbGUgKnBoeXNfaGFuZGxlOworCisJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCBfX2J1aWx0 aW5fcmVzdjsKK307CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg KgordG9faW50ZWxfYm8oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0pCit7CisJLyogQXNzZXJ0 IHRoYXQgdG9faW50ZWxfYm8oTlVMTCkgPT0gTlVMTCAqLworCUJVSUxEX0JVR19PTihvZmZzZXRv ZihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCwgYmFzZSkpOworCisJcmV0dXJuIGNvbnRhaW5l cl9vZihnZW0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0LCBiYXNlKTsKK30KKworI2VuZGlm CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vdGVzdF9pOTE1X2dlbV9vYmpl Y3RfdHlwZXNfc3RhbmRhbG9uZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3Rlc3RfaTkx NV9nZW1fb2JqZWN0X3R5cGVzX3N0YW5kYWxvbmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjU3YjBjOTI5MDAzNQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS90ZXN0X2k5MTVfZ2VtX29iamVjdF90eXBlc19zdGFuZGFsb25lLmMK QEAgLTAsMCArMSw3IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoK KyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1ZGUg Imk5MTVfZ2VtX29iamVjdF90eXBlcy5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggNDY3 NTM1NTkxNmZmLi5mYWE4ODM2YWJmNGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtNzcs NyArNzcsNiBAQAogI2luY2x1ZGUgImk5MTVfZ2VtLmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1fY29u dGV4dC5oIgogI2luY2x1ZGUgImk5MTVfZ2VtX2ZlbmNlX3JlZy5oIgotI2luY2x1ZGUgImk5MTVf Z2VtX29iamVjdC5oIgogI2luY2x1ZGUgImk5MTVfZ2VtX2d0dC5oIgogI2luY2x1ZGUgImk5MTVf Z3B1X2Vycm9yLmgiCiAjaW5jbHVkZSAiaTkxNV9yZXF1ZXN0LmgiCkBAIC0xMzQsNiArMTMzLDgg QEAgYm9vbCBpOTE1X2Vycm9yX2luamVjdGVkKHZvaWQpOwogCiB0eXBlZGVmIGRlcG90X3N0YWNr X2hhbmRsZV90IGludGVsX3dha2VyZWZfdDsKIAorc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Q7 CisKIGVudW0gaHBkX3BpbiB7CiAJSFBEX05PTkUgPSAwLAogCUhQRF9UViA9IEhQRF9OT05FLCAg ICAgLyogVFYgaXMga25vd24gdG8gYmUgdW5yZWxpYWJsZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5oCmluZGV4IDU2OTQ3ZGFhYWY2NS4uZmVlZWVlYWE1NGQ4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5oCkBAIC05LDYg KzksNyBAQAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAorc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3Q7CiBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzOwogCiBzdHJ1Y3QgaTkxNV9nZW1fYmF0 Y2hfcG9vbCB7CkBAIC0xOSw3ICsyMCw3IEBAIHN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sIHsK IHZvaWQgaTkxNV9nZW1fYmF0Y2hfcG9vbF9pbml0KHN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29s ICpwb29sLAogCQkJICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHZvaWQg aTkxNV9nZW1fYmF0Y2hfcG9vbF9maW5pKHN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sICpwb29s KTsKLXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0Kgorc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKgogaTkxNV9nZW1fYmF0Y2hfcG9vbF9nZXQoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wg KnBvb2wsIHNpemVfdCBzaXplKTsKIAogI2VuZGlmIC8qIEk5MTVfR0VNX0JBVENIX1BPT0xfSCAq LwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAppbmRleCA1OTczZDkyZTQ1ZmMuLjRhNmY4 ODdmMWM2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKQEAgLTYxLDYgKzYxLDcg QEAKIAogc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZTsKIHN0cnVjdCBkcm1faTkxNV9mZW5j ZV9yZWc7CitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKIHN0cnVjdCBpOTE1X3ZtYTsKIAog dHlwZWRlZiB1MzIgZ2VuNl9wdGVfdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0 LmgKaW5kZXggMWEyNGRjOTdlNGZkLi41MDkyMTBiMTk0NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX29iamVjdC5oCkBAIC0xLDMwOCArMSwxOSBAQAogLyoKLSAqIENvcHlyaWdodCDC qSAyMDE2IEludGVsIENvcnBvcmF0aW9uCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkg b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAq IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0g KiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFRIRSBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSCi0gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwotICogSU4g VEhFIFNPRlRXQVJFLgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAogICoKKyAqIENv cHlyaWdodCDCqSAyMDE2IEludGVsIENvcnBvcmF0aW9uCiAgKi8KIAogI2lmbmRlZiBfX0k5MTVf R0VNX09CSkVDVF9IX18KICNkZWZpbmUgX19JOTE1X0dFTV9PQkpFQ1RfSF9fCiAKLSNpbmNsdWRl IDxsaW51eC9yZXNlcnZhdGlvbi5oPgotCi0jaW5jbHVkZSA8ZHJtL2RybV92bWFfbWFuYWdlci5o PgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+CiAj aW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KIAogI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgog Ci0jaW5jbHVkZSAiaTkxNV9yZXF1ZXN0LmgiCi0jaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgot Ci1zdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKLQotLyoKLSAqIHN0cnVjdCBpOTE1X2x1dF9o YW5kbGUgdHJhY2tzIHRoZSBmYXN0IGxvb2t1cHMgZnJvbSBoYW5kbGUgdG8gdm1hIHVzZWQKLSAq IGZvciBleGVjYnVmLiBBbHRob3VnaCB3ZSB1c2UgYSByYWRpeHRyZWUgZm9yIHRoYXQgbWFwcGlu ZywgaW4gb3JkZXIgdG8KLSAqIHJlbW92ZSB0aGVtIGFzIHRoZSBvYmplY3Qgb3IgY29udGV4dCBp cyBjbG9zZWQsIHdlIG5lZWQgYSBzZWNvbmRhcnkgbGlzdAotICogYW5kIGEgdHJhbnNsYXRpb24g ZW50cnkgKGk5MTVfbHV0X2hhbmRsZSkuCi0gKi8KLXN0cnVjdCBpOTE1X2x1dF9oYW5kbGUgewot CXN0cnVjdCBsaXN0X2hlYWQgb2JqX2xpbms7Ci0Jc3RydWN0IGxpc3RfaGVhZCBjdHhfbGluazsK LQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4OwotCXUzMiBoYW5kbGU7Ci19OwotCi1zdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgewotCXVuc2lnbmVkIGludCBmbGFnczsKLSNkZWZp bmUgSTkxNV9HRU1fT0JKRUNUX0hBU19TVFJVQ1RfUEFHRQlCSVQoMCkKLSNkZWZpbmUgSTkxNV9H RU1fT0JKRUNUX0lTX1NIUklOS0FCTEUJQklUKDEpCi0jZGVmaW5lIEk5MTVfR0VNX09CSkVDVF9J U19QUk9YWQlCSVQoMikKLSNkZWZpbmUgSTkxNV9HRU1fT0JKRUNUX0FTWU5DX0NBTkNFTAlCSVQo MykKLQotCS8qIEludGVyZmFjZSBiZXR3ZWVuIHRoZSBHRU0gb2JqZWN0IGFuZCBpdHMgYmFja2lu ZyBzdG9yYWdlLgotCSAqIGdldF9wYWdlcygpIGlzIGNhbGxlZCBvbmNlIHByaW9yIHRvIHRoZSB1 c2Ugb2YgdGhlIGFzc29jaWF0ZWQgc2V0Ci0JICogb2YgcGFnZXMgYmVmb3JlIHRvIGJpbmRpbmcg dGhlbSBpbnRvIHRoZSBHVFQsIGFuZCBwdXRfcGFnZXMoKSBpcwotCSAqIGNhbGxlZCBhZnRlciB3 ZSBubyBsb25nZXIgbmVlZCB0aGVtLiBBcyB3ZSBleHBlY3QgdGhlcmUgdG8gYmUKLQkgKiBhc3Nv Y2lhdGVkIGNvc3Qgd2l0aCBtaWdyYXRpbmcgcGFnZXMgYmV0d2VlbiB0aGUgYmFja2luZyBzdG9y YWdlCi0JICogYW5kIG1ha2luZyB0aGVtIGF2YWlsYWJsZSBmb3IgdGhlIEdQVSAoZS5nLiBjbGZs dXNoKSwgd2UgbWF5IGhvbGQKLQkgKiBvbnRvIHRoZSBwYWdlcyBhZnRlciB0aGV5IGFyZSBubyBs b25nZXIgcmVmZXJlbmNlZCBieSB0aGUgR1BVCi0JICogaW4gY2FzZSB0aGV5IG1heSBiZSB1c2Vk IGFnYWluIHNob3J0bHkgKGZvciBleGFtcGxlIG1pZ3JhdGluZyB0aGUKLQkgKiBwYWdlcyB0byBh IGRpZmZlcmVudCBtZW1vcnkgZG9tYWluIHdpdGhpbiB0aGUgR1RUKS4gcHV0X3BhZ2VzKCkKLQkg KiB3aWxsIHRoZXJlZm9yZSBtb3N0IGxpa2VseSBiZSBjYWxsZWQgd2hlbiB0aGUgb2JqZWN0IGl0 c2VsZiBpcwotCSAqIGJlaW5nIHJlbGVhc2VkIG9yIHVuZGVyIG1lbW9yeSBwcmVzc3VyZSAod2hl cmUgd2UgYXR0ZW1wdCB0bwotCSAqIHJlYXAgcGFnZXMgZm9yIHRoZSBzaHJpbmtlcikuCi0JICov Ci0JaW50ICgqZ2V0X3BhZ2VzKShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqKTsKLQl2b2lk ICgqcHV0X3BhZ2VzKShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqLCBzdHJ1Y3Qgc2dfdGFi bGUgKik7Ci0KLQlpbnQgKCpwd3JpdGUpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICosCi0J CSAgICAgIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fcHdyaXRlICopOwotCi0JaW50ICgqZG1h YnVmX2V4cG9ydCkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKik7Ci0Jdm9pZCAoKnJlbGVh c2UpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICopOwotfTsKLQotc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgewotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCBiYXNlOwotCi0JY29uc3Qgc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzICpvcHM7Ci0KLQlzdHJ1Y3QgewotCQkvKioKLQkJ ICogQHZtYS5sb2NrOiBwcm90ZWN0IHRoZSBsaXN0L3RyZWUgb2Ygdm1hcwotCQkgKi8KLQkJc3Bp bmxvY2tfdCBsb2NrOwotCi0JCS8qKgotCQkgKiBAdm1hLmxpc3Q6IExpc3Qgb2YgVk1BcyBiYWNr ZWQgYnkgdGhpcyBvYmplY3QKLQkJICoKLQkJICogVGhlIFZNQSBvbiB0aGlzIGxpc3QgYXJlIG9y ZGVyZWQgYnkgdHlwZSwgYWxsIEdHVFQgdm1hIGFyZQotCQkgKiBwbGFjZWQgYXQgdGhlIGhlYWQg YW5kIGFsbCBwcEdUVCB2bWEgYXJlIHBsYWNlZCBhdCB0aGUgdGFpbC4KLQkJICogVGhlIGRpZmZl cmVudCB0eXBlcyBvZiBHR1RUIHZtYSBhcmUgdW5vcmRlcmVkIGJldHdlZW4KLQkJICogdGhlbXNl bHZlcywgdXNlIHRoZSBAdm1hLnRyZWUgKHdoaWNoIGhhcyBhIGRlZmluZWQgb3JkZXIKLQkJICog YmV0d2VlbiBhbGwgVk1BKSB0byBxdWlja2x5IGZpbmQgYW4gZXhhY3QgbWF0Y2guCi0JCSAqLwot CQlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Ci0KLQkJLyoqCi0JCSAqIEB2bWEudHJlZTogT3JkZXJl ZCB0cmVlIG9mIFZNQXMgYmFja2VkIGJ5IHRoaXMgb2JqZWN0Ci0JCSAqCi0JCSAqIEFsbCBWTUEg Y3JlYXRlZCBmb3IgdGhpcyBvYmplY3QgYXJlIHBsYWNlZCBpbiB0aGUgQHZtYS50cmVlCi0JCSAq IGZvciBmYXN0IHJldHJpZXZhbCB2aWEgYSBiaW5hcnkgc2VhcmNoIGluCi0JCSAqIGk5MTVfdm1h X2luc3RhbmNlKCkuIFRoZXkgYXJlIGFsc28gYWRkZWQgdG8gQHZtYS5saXN0IGZvcgotCQkgKiBl YXN5IGl0ZXJhdGlvbi4KLQkJICovCi0JCXN0cnVjdCByYl9yb290IHRyZWU7Ci0JfSB2bWE7Ci0K LQkvKioKLQkgKiBAbHV0X2xpc3Q6IExpc3Qgb2Ygdm1hIGxvb2t1cCBlbnRyaWVzIGluIHVzZSBm b3IgdGhpcyBvYmplY3QuCi0JICoKLQkgKiBJZiB0aGlzIG9iamVjdCBpcyBjbG9zZWQsIHdlIG5l ZWQgdG8gcmVtb3ZlIGFsbCBvZiBpdHMgVk1BIGZyb20KLQkgKiB0aGUgZmFzdCBsb29rdXAgaW5k ZXggaW4gYXNzb2NpYXRlZCBjb250ZXh0czsgQGx1dF9saXN0IHByb3ZpZGVzCi0JICogdGhpcyB0 cmFuc2xhdGlvbiBmcm9tIG9iamVjdCB0byBjb250ZXh0LT5oYW5kbGVzX3ZtYS4KLQkgKi8KLQlz dHJ1Y3QgbGlzdF9oZWFkIGx1dF9saXN0OwotCi0JLyoqIFN0b2xlbiBtZW1vcnkgZm9yIHRoaXMg b2JqZWN0LCBpbnN0ZWFkIG9mIGJlaW5nIGJhY2tlZCBieSBzaG1lbS4gKi8KLQlzdHJ1Y3QgZHJt X21tX25vZGUgKnN0b2xlbjsKLQl1bmlvbiB7Ci0JCXN0cnVjdCByY3VfaGVhZCByY3U7Ci0JCXN0 cnVjdCBsbGlzdF9ub2RlIGZyZWVkOwotCX07Ci0KLQkvKioKLQkgKiBXaGV0aGVyIHRoZSBvYmpl Y3QgaXMgY3VycmVudGx5IGluIHRoZSBHR1RUIG1tYXAuCi0JICovCi0JdW5zaWduZWQgaW50IHVz ZXJmYXVsdF9jb3VudDsKLQlzdHJ1Y3QgbGlzdF9oZWFkIHVzZXJmYXVsdF9saW5rOwotCi0Jc3Ry dWN0IGxpc3RfaGVhZCBiYXRjaF9wb29sX2xpbms7Ci0JSTkxNV9TRUxGVEVTVF9ERUNMQVJFKHN0 cnVjdCBsaXN0X2hlYWQgc3RfbGluayk7Ci0KLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JLyoq Ci0JICogSGF2ZSB3ZSB0YWtlbiBhIHJlZmVyZW5jZSBmb3IgdGhlIG9iamVjdCBmb3IgaW5jb21w bGV0ZSBHUFUKLQkgKiBhY3Rpdml0eT8KLQkgKi8KLSNkZWZpbmUgSTkxNV9CT19BQ1RJVkVfUkVG IDAKLQotCS8qCi0JICogSXMgdGhlIG9iamVjdCB0byBiZSBtYXBwZWQgYXMgcmVhZC1vbmx5IHRv IHRoZSBHUFUKLQkgKiBPbmx5IGhvbm91cmVkIGlmIGhhcmR3YXJlIGhhcyByZWxldmFudCBwdGUg Yml0Ci0JICovCi0JdW5zaWduZWQgaW50IGNhY2hlX2xldmVsOjM7Ci0JdW5zaWduZWQgaW50IGNh Y2hlX2NvaGVyZW50OjI7Ci0jZGVmaW5lIEk5MTVfQk9fQ0FDSEVfQ09IRVJFTlRfRk9SX1JFQUQg QklUKDApCi0jZGVmaW5lIEk5MTVfQk9fQ0FDSEVfQ09IRVJFTlRfRk9SX1dSSVRFIEJJVCgxKQot CXVuc2lnbmVkIGludCBjYWNoZV9kaXJ0eToxOwotCi0JLyoqCi0JICogQHJlYWRfZG9tYWluczog UmVhZCBtZW1vcnkgZG9tYWlucy4KLQkgKgotCSAqIFRoZXNlIG1vbml0b3Igd2hpY2ggY2FjaGVz IGNvbnRhaW4gcmVhZC93cml0ZSBkYXRhIHJlbGF0ZWQgdG8gdGhlCi0JICogb2JqZWN0LiBXaGVu IHRyYW5zaXRpb25pbmcgZnJvbSBvbmUgc2V0IG9mIGRvbWFpbnMgdG8gYW5vdGhlciwKLQkgKiB0 aGUgZHJpdmVyIGlzIGNhbGxlZCB0byBlbnN1cmUgdGhhdCBjYWNoZXMgYXJlIHN1aXRhYmx5IGZs dXNoZWQgYW5kCi0JICogaW52YWxpZGF0ZWQuCi0JICovCi0JdTE2IHJlYWRfZG9tYWluczsKLQot CS8qKgotCSAqIEB3cml0ZV9kb21haW46IENvcnJlc3BvbmRpbmcgdW5pcXVlIHdyaXRlIG1lbW9y eSBkb21haW4uCi0JICovCi0JdTE2IHdyaXRlX2RvbWFpbjsKLQotCWF0b21pY190IGZyb250YnVm ZmVyX2JpdHM7Ci0JdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2dndHRfb3JpZ2luOyAvKiB3cml0 ZSBvbmNlICovCi0Jc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgZnJvbnRidWZmZXJfd3JpdGU7 Ci0KLQkvKiogQ3VycmVudCB0aWxpbmcgc3RyaWRlIGZvciB0aGUgb2JqZWN0LCBpZiBpdCdzIHRp bGVkLiAqLwotCXVuc2lnbmVkIGludCB0aWxpbmdfYW5kX3N0cmlkZTsKLSNkZWZpbmUgRkVOQ0Vf TUlOSU1VTV9TVFJJREUgMTI4IC8qIFNlZSBpOTE1X3RpbGluZ19vaygpICovCi0jZGVmaW5lIFRJ TElOR19NQVNLIChGRU5DRV9NSU5JTVVNX1NUUklERS0xKQotI2RlZmluZSBTVFJJREVfTUFTSyAo flRJTElOR19NQVNLKQotCi0JLyoqIENvdW50IG9mIFZNQSBhY3R1YWxseSBib3VuZCBieSB0aGlz IG9iamVjdCAqLwotCXVuc2lnbmVkIGludCBiaW5kX2NvdW50OwotCXVuc2lnbmVkIGludCBhY3Rp dmVfY291bnQ7Ci0JLyoqIENvdW50IG9mIGhvdyBtYW55IGdsb2JhbCBWTUEgYXJlIGN1cnJlbnRs eSBwaW5uZWQgZm9yIHVzZSBieSBIVyAqLwotCXVuc2lnbmVkIGludCBwaW5fZ2xvYmFsOwotCi0J c3RydWN0IHsKLQkJc3RydWN0IG11dGV4IGxvY2s7IC8qIHByb3RlY3RzIHRoZSBwYWdlcyBhbmQg dGhlaXIgdXNlICovCi0JCWF0b21pY190IHBhZ2VzX3Bpbl9jb3VudDsKLQotCQlzdHJ1Y3Qgc2df dGFibGUgKnBhZ2VzOwotCQl2b2lkICptYXBwaW5nOwotCi0JCS8qIFRPRE86IHdoYWNrIHNvbWUg b2YgdGhpcyBpbnRvIHRoZSBlcnJvciBzdGF0ZSAqLwotCQlzdHJ1Y3QgaTkxNV9wYWdlX3NpemVz IHsKLQkJCS8qKgotCQkJICogVGhlIHNnIG1hc2sgb2YgdGhlIHBhZ2VzIHNnX3RhYmxlLiBpLmUg dGhlIG1hc2sgb2YKLQkJCSAqIG9mIHRoZSBsZW5ndGhzIGZvciBlYWNoIHNnIGVudHJ5LgotCQkJ ICovCi0JCQl1bnNpZ25lZCBpbnQgcGh5czsKLQotCQkJLyoqCi0JCQkgKiBUaGUgZ3R0IHBhZ2Ug c2l6ZXMgd2UgYXJlIGFsbG93ZWQgdG8gdXNlIGdpdmVuIHRoZQotCQkJICogc2cgbWFzayBhbmQg dGhlIHN1cHBvcnRlZCBwYWdlIHNpemVzLiBUaGlzIHdpbGwKLQkJCSAqIGV4cHJlc3MgdGhlIHNt YWxsZXN0IHVuaXQgd2UgY2FuIHVzZSBmb3IgdGhlIHdob2xlCi0JCQkgKiBvYmplY3QsIGFzIHdl bGwgYXMgdGhlIGxhcmdlciBzaXplcyB3ZSBtYXkgYmUgYWJsZQotCQkJICogdG8gdXNlIG9wcG9y dHVuaXN0aWNhbGx5LgotCQkJICovCi0JCQl1bnNpZ25lZCBpbnQgc2c7Ci0KLQkJCS8qKgotCQkJ ICogVGhlIGFjdHVhbCBndHQgcGFnZSBzaXplIHVzYWdlLiBTaW5jZSB3ZSBjYW4gaGF2ZQotCQkJ ICogbXVsdGlwbGUgdm1hIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9iamVjdCB3ZSBuZWVkIHRvCi0J CQkgKiBwcmV2ZW50IGFueSB0cmFtcGxpbmcgb2Ygc3RhdGUsIGhlbmNlIGEgY29weSBvZiB0aGlz Ci0JCQkgKiBzdHJ1Y3QgYWxzbyBsaXZlcyBpbiBlYWNoIHZtYSwgdGhlcmVmb3JlIHRoZSBndHQK LQkJCSAqIHZhbHVlIGhlcmUgc2hvdWxkIG9ubHkgYmUgcmVhZC93cml0ZSB0aHJvdWdoIHRoZSB2 bWEuCi0JCQkgKi8KLQkJCXVuc2lnbmVkIGludCBndHQ7Ci0JCX0gcGFnZV9zaXplczsKLQotCQlJ OTE1X1NFTEZURVNUX0RFQ0xBUkUodW5zaWduZWQgaW50IHBhZ2VfbWFzayk7Ci0KLQkJc3RydWN0 IGk5MTVfZ2VtX29iamVjdF9wYWdlX2l0ZXIgewotCQkJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ19w b3M7Ci0JCQl1bnNpZ25lZCBpbnQgc2dfaWR4OyAvKiBpbiBwYWdlcywgYnV0IDMyYml0IGVlayEg Ki8KLQotCQkJc3RydWN0IHJhZGl4X3RyZWVfcm9vdCByYWRpeDsKLQkJCXN0cnVjdCBtdXRleCBs b2NrOyAvKiBwcm90ZWN0cyB0aGlzIGNhY2hlICovCi0JCX0gZ2V0X3BhZ2U7Ci0KLQkJLyoqCi0J CSAqIEVsZW1lbnQgd2l0aGluIGk5MTUtPm1tLnVuYm91bmRfbGlzdCBvciBpOTE1LT5tbS5ib3Vu ZF9saXN0LAotCQkgKiBsb2NrZWQgYnkgaTkxNS0+bW0ub2JqX2xvY2suCi0JCSAqLwotCQlzdHJ1 Y3QgbGlzdF9oZWFkIGxpbms7Ci0KLQkJLyoqCi0JCSAqIEFkdmljZTogYXJlIHRoZSBiYWNraW5n IHBhZ2VzIHB1cmdlYWJsZT8KLQkJICovCi0JCXVuc2lnbmVkIGludCBtYWR2OjI7Ci0KLQkJLyoq Ci0JCSAqIFRoaXMgaXMgc2V0IGlmIHRoZSBvYmplY3QgaGFzIGJlZW4gd3JpdHRlbiB0byBzaW5j ZSB0aGUKLQkJICogcGFnZXMgd2VyZSBsYXN0IGFjcXVpcmVkLgotCQkgKi8KLQkJYm9vbCBkaXJ0 eToxOwotCi0JCS8qKgotCQkgKiBUaGlzIGlzIHNldCBpZiB0aGUgb2JqZWN0IGhhcyBiZWVuIHBp bm5lZCBkdWUgdG8gdW5rbm93bgotCQkgKiBzd2l6emxpbmcuCi0JCSAqLwotCQlib29sIHF1aXJr ZWQ6MTsKLQl9IG1tOwotCi0JLyoqIEJyZWFkY3J1bWIgb2YgbGFzdCByZW5kZXJpbmcgdG8gdGhl IGJ1ZmZlci4KLQkgKiBUaGVyZSBjYW4gb25seSBiZSBvbmUgd3JpdGVyLCBidXQgd2UgYWxsb3cg Zm9yIG11bHRpcGxlIHJlYWRlcnMuCi0JICogSWYgdGhlcmUgaXMgYSB3cml0ZXIgdGhhdCBuZWNl c3NhcmlseSBpbXBsaWVzIHRoYXQgYWxsIG90aGVyCi0JICogcmVhZCByZXF1ZXN0cyBhcmUgY29t cGxldGUgLSBidXQgd2UgbWF5IG9ubHkgYmUgbGF6aWx5IGNsZWFyaW5nCi0JICogdGhlIHJlYWQg cmVxdWVzdHMuIEEgcmVhZCByZXF1ZXN0IGlzIG5hdHVyYWxseSB0aGUgbW9zdCByZWNlbnQKLQkg KiByZXF1ZXN0IG9uIGEgcmluZywgc28gd2UgbWF5IGhhdmUgdHdvIGRpZmZlcmVudCB3cml0ZSBh bmQgcmVhZAotCSAqIHJlcXVlc3RzIG9uIG9uZSByaW5nIHdoZXJlIHRoZSB3cml0ZSByZXF1ZXN0 IGlzIG9sZGVyIHRoYW4gdGhlCi0JICogcmVhZCByZXF1ZXN0LiBUaGlzIGFsbG93cyBmb3IgdGhl IENQVSB0byByZWFkIGZyb20gYW4gYWN0aXZlCi0JICogYnVmZmVyIGJ5IG9ubHkgd2FpdGluZyBm b3IgdGhlIHdyaXRlIHRvIGNvbXBsZXRlLgotCSAqLwotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmpl Y3QgKnJlc3Y7Ci0KLQkvKiogUmVmZXJlbmNlcyBmcm9tIGZyYW1lYnVmZmVycywgbG9ja3Mgb3V0 IHRpbGluZyBjaGFuZ2VzLiAqLwotCXVuc2lnbmVkIGludCBmcmFtZWJ1ZmZlcl9yZWZlcmVuY2Vz OwotCi0JLyoqIFJlY29yZCBvZiBhZGRyZXNzIGJpdCAxNyBvZiBlYWNoIHBhZ2UgYXQgbGFzdCB1 bmJpbmQuICovCi0JdW5zaWduZWQgbG9uZyAqYml0XzE3OwotCi0JdW5pb24gewotCQlzdHJ1Y3Qg aTkxNV9nZW1fdXNlcnB0ciB7Ci0JCQl1aW50cHRyX3QgcHRyOwotCi0JCQlzdHJ1Y3QgaTkxNV9t bV9zdHJ1Y3QgKm1tOwotCQkJc3RydWN0IGk5MTVfbW11X29iamVjdCAqbW11X29iamVjdDsKLQkJ CXN0cnVjdCB3b3JrX3N0cnVjdCAqd29yazsKLQkJfSB1c2VycHRyOwotCi0JCXVuc2lnbmVkIGxv bmcgc2NyYXRjaDsKLQotCQl2b2lkICpndnRfaW5mbzsKLQl9OwotCi0JLyoqIGZvciBwaHlzIGFs bG9jYXRlZCBvYmplY3RzICovCi0Jc3RydWN0IGRybV9kbWFfaGFuZGxlICpwaHlzX2hhbmRsZTsK LQotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgX19idWlsdGluX3Jlc3Y7Ci19OwotCi1zdGF0 aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKLXRvX2ludGVsX2JvKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqZ2VtKQotewotCS8qIEFzc2VydCB0aGF0IHRvX2ludGVsX2JvKE5V TEwpID09IE5VTEwgKi8KLQlCVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QsIGJhc2UpKTsKLQotCXJldHVybiBjb250YWluZXJfb2YoZ2VtLCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCwgYmFzZSk7Ci19CisjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX29iamVj dF90eXBlcy5oIgogCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqaTkxNV9nZW1fb2JqZWN0 X2FsbG9jKHZvaWQpOwogdm9pZCBpOTE1X2dlbV9vYmplY3RfZnJlZShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX3R5cGVz LmgKaW5kZXggMWRhMzU1MDlkODExLi4zNzU4NWI1MTM3MzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2VuZ2luZV90eXBlcy5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNkZWZpbmUgSTkx NV9DTURfSEFTSF9PUkRFUiA5CiAKK3N0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0Owogc3RydWN0 IGRybV9pOTE1X3JlZ190YWJsZTsKIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0Owogc3RydWN0IGk5 MTVfcmVxdWVzdDsKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4