From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Wajdeczko Subject: [PATCH 4/9] drm/i915: Move GuC declarations into dedicated header Date: Fri, 29 Sep 2017 17:41:42 +0000 Message-ID: <20170929174147.41324-5-michal.wajdeczko@intel.com> References: <20170929174147.41324-1-michal.wajdeczko@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1D44A6EC30 for ; Fri, 29 Sep 2017 17:42:16 +0000 (UTC) In-Reply-To: <20170929174147.41324-1-michal.wajdeczko@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 List-Id: intel-gfx@lists.freedesktop.org V2Ugd2FudCB0byBrZWVwIEd1QyBzcGVjaWZpYyBjb2RlIGluIHNlcGFyYXRlZCBmaWxlcy4KClNp Z25lZC1vZmYtYnk6IE1pY2hhbCBXYWpkZWN6a28gPG1pY2hhbC53YWpkZWN6a29AaW50ZWwuY29t PgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpD YzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBTYWdhciBBcnVu IEthbWJsZSA8c2FnYXIuYS5rYW1ibGVAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Yy5oIHwgMTczICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaCAgfCAxNDYgKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE3NCBpbnNlcnRpb25zKCsp LCAxNDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjAyMjIyMzgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWMuaApAQCAtMCwwICsxLDE3MyBAQAorLyoKKyAqIENvcHlyaWdo dCDCqSAyMDE0LTIwMTcgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQor ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNl bnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhl IG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBz dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhF IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB TUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4g Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT CisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisjaWZuZGVmIF9JTlRFTF9HVUNfSF8KKyNk ZWZpbmUgX0lOVEVMX0dVQ19IXworCisjaW5jbHVkZSAiaW50ZWxfZ3VjX2Z3aWYuaCIKKyNpbmNs dWRlICJpbnRlbF9ndWNfY3QuaCIKKyNpbmNsdWRlICJpOTE1X2d1Y19yZWcuaCIKKyNpbmNsdWRl ICJpOTE1X3ZtYS5oIgorCisvKgorICogVGhpcyBzdHJ1Y3R1cmUgcHJpbWFyaWx5IGRlc2NyaWJl cyB0aGUgR0VNIG9iamVjdCBzaGFyZWQgd2l0aCB0aGUgR3VDLgorICogVGhlIHNwZWNzIHNvbWV0 aW1lcyByZWZlciB0byB0aGlzIG9iamVjdCBhcyBhICJHdUMgY29udGV4dCIsIGJ1dCB3ZSB1c2UK KyAqIHRoZSB0ZXJtICJjbGllbnQiIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIGhhcmR3YXJlIGNv bnRleHRzLiBUaGlzCisgKiBHRU0gb2JqZWN0IGlzIGhlbGQgZm9yIHRoZSBlbnRpcmUgbGlmZXRp bWUgb2Ygb3VyIGludGVyYWN0aW9uIHdpdGgKKyAqIHRoZSBHdUMsIGJlaW5nIGFsbG9jYXRlZCBi ZWZvcmUgdGhlIEd1QyBpcyBsb2FkZWQgd2l0aCBpdHMgZmlybXdhcmUuCisgKiBCZWNhdXNlIHRo ZXJlJ3Mgbm8gd2F5IHRvIHVwZGF0ZSB0aGUgYWRkcmVzcyB1c2VkIGJ5IHRoZSBHdUMgYWZ0ZXIK KyAqIGluaXRpYWxpc2F0aW9uLCB0aGUgc2hhcmVkIG9iamVjdCBtdXN0IHN0YXkgcGlubmVkIGlu dG8gdGhlIEdHVFQgYXMKKyAqIGxvbmcgYXMgdGhlIEd1QyBpcyBpbiB1c2UuIFdlIGFsc28ga2Vl cCB0aGUgZmlyc3QgcGFnZSAob25seSkgbWFwcGVkCisgKiBpbnRvIGtlcm5lbCBhZGRyZXNzIHNw YWNlLCBhcyBpdCBpbmNsdWRlcyBzaGFyZWQgZGF0YSB0aGF0IG11c3QgYmUKKyAqIHVwZGF0ZWQg b24gZXZlcnkgcmVxdWVzdCBzdWJtaXNzaW9uLgorICoKKyAqIFRoZSBzaW5nbGUgR0VNIG9iamVj dCBkZXNjcmliZWQgaGVyZSBpcyBhY3R1YWxseSBtYWRlIHVwIG9mIHNldmVyYWwKKyAqIHNlcGFy YXRlIGFyZWFzLCBhcyBmYXIgYXMgdGhlIEd1QyBpcyBjb25jZXJuZWQuIFRoZSBmaXJzdCBwYWdl IChrZXB0CisgKiBrbWFwJ2QpIGluY2x1ZGVzIHRoZSAicHJvY2VzcyBkZXNjcmlwdG9yIiB3aGlj aCBob2xkcyBzZXF1ZW5jZSBkYXRhIGZvcgorICogdGhlIGRvb3JiZWxsLCBhbmQgb25lIGNhY2hl bGluZSB3aGljaCBhY3R1YWxseSAqaXMqIHRoZSBkb29yYmVsbDsgYQorICogd3JpdGUgdG8gdGhp cyB3aWxsICJyaW5nIHRoZSBkb29yYmVsbCIgKGkuZS4gc2VuZCBhbiBpbnRlcnJ1cHQgdG8gdGhl CisgKiBHdUMpLiBUaGUgc3Vic2VxdWVudCAgcGFnZXMgb2YgdGhlIGNsaWVudCBvYmplY3QgY29u c3RpdHV0ZSB0aGUgd29yaworICogcXVldWUgKGEgY2lyY3VsYXIgYXJyYXkgb2Ygd29yayBpdGVt cyksIGFnYWluIGRlc2NyaWJlZCBpbiB0aGUgcHJvY2VzcworICogZGVzY3JpcHRvci4gV29yayBx dWV1ZSBwYWdlcyBhcmUgbWFwcGVkIG1vbWVudGFyaWx5IGFzIHJlcXVpcmVkLgorICovCitzdHJ1 Y3QgaTkxNV9ndWNfY2xpZW50IHsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwl2b2lkICp2YWRk cjsKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqb3duZXI7CisJc3RydWN0IGludGVsX2d1YyAq Z3VjOworCisJdWludDMyX3QgZW5naW5lczsJCS8qIGJpdG1hcCBvZiAoaG9zdCkgZW5naW5lIGlk cwkqLworCXVpbnQzMl90IHByaW9yaXR5OworCXUzMiBzdGFnZV9pZDsKKwl1aW50MzJfdCBwcm9j X2Rlc2Nfb2Zmc2V0OworCisJdTE2IGRvb3JiZWxsX2lkOworCXVuc2lnbmVkIGxvbmcgZG9vcmJl bGxfb2Zmc2V0OworCisJc3BpbmxvY2tfdCB3cV9sb2NrOworCS8qIFBlci1lbmdpbmUgY291bnRz IG9mIEd1QyBzdWJtaXNzaW9ucyAqLworCXVpbnQ2NF90IHN1Ym1pc3Npb25zW0k5MTVfTlVNX0VO R0lORVNdOworfTsKKworc3RydWN0IGludGVsX2d1Y19sb2cgeworCXVpbnQzMl90IGZsYWdzOwor CXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCS8qIFRoZSBydW50aW1lIHN0dWZmIGdldHMgY3JlYXRl ZCBvbmx5IHdoZW4gR3VDIGxvZ2dpbmcgZ2V0cyBlbmFibGVkICovCisJc3RydWN0IHsKKwkJdm9p ZCAqYnVmX2FkZHI7CisJCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpmbHVzaF93cTsKKwkJc3Ry dWN0IHdvcmtfc3RydWN0IGZsdXNoX3dvcms7CisJCXN0cnVjdCByY2hhbiAqcmVsYXlfY2hhbjsK Kwl9IHJ1bnRpbWU7CisJLyogbG9nZ2luZyByZWxhdGVkIHN0YXRzICovCisJdTMyIGNhcHR1cmVf bWlzc19jb3VudDsKKwl1MzIgZmx1c2hfaW50ZXJydXB0X2NvdW50OworCXUzMiBwcmV2X292ZXJm bG93X2NvdW50W0dVQ19NQVhfTE9HX0JVRkZFUl07CisJdTMyIHRvdGFsX292ZXJmbG93X2NvdW50 W0dVQ19NQVhfTE9HX0JVRkZFUl07CisJdTMyIGZsdXNoX2NvdW50W0dVQ19NQVhfTE9HX0JVRkZF Ul07Cit9OworCitzdHJ1Y3QgaW50ZWxfZ3VjIHsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgZnc7CisJ c3RydWN0IGludGVsX2d1Y19sb2cgbG9nOworCXN0cnVjdCBpbnRlbF9ndWNfY3QgY3Q7CisKKwkv KiBMb2cgc25hcHNob3QgaWYgR3VDIGVycm9ycyBkdXJpbmcgbG9hZCAqLworCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpsb2FkX2Vycl9sb2c7CisKKwkvKiBpbnRlbF9ndWNfcmVjdiBpbnRl cnJ1cHQgcmVsYXRlZCBzdGF0ZSAqLworCWJvb2wgaW50ZXJydXB0c19lbmFibGVkOworCisJc3Ry dWN0IGk5MTVfdm1hICphZHNfdm1hOworCXN0cnVjdCBpOTE1X3ZtYSAqc3RhZ2VfZGVzY19wb29s OworCXZvaWQgKnN0YWdlX2Rlc2NfcG9vbF92YWRkcjsKKwlzdHJ1Y3QgaWRhIHN0YWdlX2lkczsK KworCXN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmV4ZWNidWZfY2xpZW50OworCisJREVDTEFSRV9C SVRNQVAoZG9vcmJlbGxfYml0bWFwLCBHVUNfTlVNX0RPT1JCRUxMUyk7CisJdWludDMyX3QgZGJf Y2FjaGVsaW5lOwkJLyogQ3ljbGljIGNvdW50ZXIgbW9kIHBhZ2VzaXplCSovCisKKwkvKiBHdUMn cyBGVyBzcGVjaWZpYyByZWdpc3RlcnMgdXNlZCBpbiBNTUlPIHNlbmQgKi8KKwlzdHJ1Y3Qgewor CQl1MzIgYmFzZTsKKwkJdW5zaWduZWQgaW50IGNvdW50OworCQllbnVtIGZvcmNld2FrZV9kb21h aW5zIGZ3X2RvbWFpbnM7CisJfSBzZW5kX3JlZ3M7CisKKwkvKiBUbyBzZXJpYWxpemUgdGhlIGlu dGVsX2d1Y19zZW5kIGFjdGlvbnMgKi8KKwlzdHJ1Y3QgbXV0ZXggc2VuZF9tdXRleDsKKworCS8q IEd1QydzIEZXIHNwZWNpZmljIHNlbmQgZnVuY3Rpb24gKi8KKwlpbnQgKCpzZW5kKShzdHJ1Y3Qg aW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqZGF0YSwgdTMyIGxlbik7CisKKwkvKiBHdUMncyBG VyBzcGVjaWZpYyBub3RpZnkgZnVuY3Rpb24gKi8KKwl2b2lkICgqbm90aWZ5KShzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMpOworfTsKKworc3RhdGljIGlubGluZSBpbnQgaW50ZWxfZ3VjX3NlbmQoc3Ry dWN0IGludGVsX2d1YyAqZ3VjLCBjb25zdCB1MzIgKmFjdGlvbiwgdTMyIGxlbikKK3sKKwlyZXR1 cm4gZ3VjLT5zZW5kKGd1YywgYWN0aW9uLCBsZW4pOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQg aW50ZWxfZ3VjX25vdGlmeShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCit7CisJZ3VjLT5ub3RpZnko Z3VjKTsKK30KKworc3RhdGljIGlubGluZSB1MzIgZ3VjX2dndHRfb2Zmc2V0KHN0cnVjdCBpOTE1 X3ZtYSAqdm1hKQoreworCXUzMiBvZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7CisJR0VN X0JVR19PTihvZmZzZXQgPCBHVUNfV09QQ01fVE9QKTsKKwlHRU1fQlVHX09OKHJhbmdlX292ZXJm bG93c190KHU2NCwgb2Zmc2V0LCB2bWEtPnNpemUsIEdVQ19HR1RUX1RPUCkpOworCXJldHVybiBv ZmZzZXQ7Cit9CisKKy8qIGludGVsX3VjLmMgKi8KK2ludCBpbnRlbF9ndWNfc2FtcGxlX2ZvcmNl d2FrZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOworaW50IGludGVsX2d1Y19zZW5kX25vcChzdHJ1 Y3QgaW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqYWN0aW9uLCB1MzIgbGVuKTsKK2ludCBpbnRl bF9ndWNfc2VuZF9tbWlvKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24s IHUzMiBsZW4pOworaW50IGludGVsX2d1Y19hdXRoX2h1YyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMs IHUzMiByc2Ffb2Zmc2V0KTsKKworLyogaW50ZWxfZ3VjX2xvYWRlci5jICovCitpbnQgaW50ZWxf Z3VjX3NlbGVjdF9mdyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOworaW50IGludGVsX2d1Y19pbml0 X2h3KHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Cit1MzIgaW50ZWxfZ3VjX3dvcGNtX3NpemUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKKworLyogaTkxNV9ndWNfc3VibWlzc2lv bi5jICovCitpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7CitpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaTkxNV9ndWNfc3VibWlzc2lvbl9kaXNh YmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGk5MTVfZ3VjX3N1 Ym1pc3Npb25fZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworc3RydWN0 IGk5MTVfdm1hICppbnRlbF9ndWNfYWxsb2NhdGVfdm1hKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yywg dTMyIHNpemUpOworaW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7CitpbnQgaW50ZWxfZ3VjX3Jlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOworCisvKiBpbnRlbF9ndWNfbG9nLmMgKi8KK2ludCBpbnRlbF9ndWNfbG9n X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwordm9pZCBpbnRlbF9ndWNfbG9nX2Rlc3Ry b3koc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK2ludCBpOTE1X2d1Y19sb2dfY29udHJvbChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU2NCBjb250cm9sX3ZhbCk7Cit2b2lkIGk5 MTVfZ3VjX2xvZ19yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwor dm9pZCBpOTE1X2d1Y19sb2dfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCmluZGV4IDkwZWI1ZGEuLjY2 YTZmNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaApAQCAtMjUsMTU4ICsyNSwxNCBAQAogI2Rl ZmluZSBfSU5URUxfVUNfSF8KIAogI2luY2x1ZGUgImludGVsX3VjX2Z3LmgiCi0jaW5jbHVkZSAi aW50ZWxfZ3VjX2Z3aWYuaCIKLSNpbmNsdWRlICJpOTE1X2d1Y19yZWcuaCIKLSNpbmNsdWRlICJp bnRlbF9yaW5nYnVmZmVyLmgiCi0jaW5jbHVkZSAiaW50ZWxfZ3VjX2N0LmgiCi0jaW5jbHVkZSAi aTkxNV92bWEuaCIKKyNpbmNsdWRlICJpbnRlbF9ndWMuaCIKICNpbmNsdWRlICJpbnRlbF9odWMu aCIKIAotLyoKLSAqIFRoaXMgc3RydWN0dXJlIHByaW1hcmlseSBkZXNjcmliZXMgdGhlIEdFTSBv YmplY3Qgc2hhcmVkIHdpdGggdGhlIEd1Qy4KLSAqIFRoZSBzcGVjcyBzb21ldGltZXMgcmVmZXIg dG8gdGhpcyBvYmplY3QgYXMgYSAiR3VDIGNvbnRleHQiLCBidXQgd2UgdXNlCi0gKiB0aGUgdGVy bSAiY2xpZW50IiB0byBhdm9pZCBjb25mdXNpb24gd2l0aCBoYXJkd2FyZSBjb250ZXh0cy4gVGhp cwotICogR0VNIG9iamVjdCBpcyBoZWxkIGZvciB0aGUgZW50aXJlIGxpZmV0aW1lIG9mIG91ciBp bnRlcmFjdGlvbiB3aXRoCi0gKiB0aGUgR3VDLCBiZWluZyBhbGxvY2F0ZWQgYmVmb3JlIHRoZSBH dUMgaXMgbG9hZGVkIHdpdGggaXRzIGZpcm13YXJlLgotICogQmVjYXVzZSB0aGVyZSdzIG5vIHdh eSB0byB1cGRhdGUgdGhlIGFkZHJlc3MgdXNlZCBieSB0aGUgR3VDIGFmdGVyCi0gKiBpbml0aWFs aXNhdGlvbiwgdGhlIHNoYXJlZCBvYmplY3QgbXVzdCBzdGF5IHBpbm5lZCBpbnRvIHRoZSBHR1RU IGFzCi0gKiBsb25nIGFzIHRoZSBHdUMgaXMgaW4gdXNlLiBXZSBhbHNvIGtlZXAgdGhlIGZpcnN0 IHBhZ2UgKG9ubHkpIG1hcHBlZAotICogaW50byBrZXJuZWwgYWRkcmVzcyBzcGFjZSwgYXMgaXQg aW5jbHVkZXMgc2hhcmVkIGRhdGEgdGhhdCBtdXN0IGJlCi0gKiB1cGRhdGVkIG9uIGV2ZXJ5IHJl cXVlc3Qgc3VibWlzc2lvbi4KLSAqCi0gKiBUaGUgc2luZ2xlIEdFTSBvYmplY3QgZGVzY3JpYmVk IGhlcmUgaXMgYWN0dWFsbHkgbWFkZSB1cCBvZiBzZXZlcmFsCi0gKiBzZXBhcmF0ZSBhcmVhcywg YXMgZmFyIGFzIHRoZSBHdUMgaXMgY29uY2VybmVkLiBUaGUgZmlyc3QgcGFnZSAoa2VwdAotICog a21hcCdkKSBpbmNsdWRlcyB0aGUgInByb2Nlc3MgZGVzY3JpcHRvciIgd2hpY2ggaG9sZHMgc2Vx dWVuY2UgZGF0YSBmb3IKLSAqIHRoZSBkb29yYmVsbCwgYW5kIG9uZSBjYWNoZWxpbmUgd2hpY2gg YWN0dWFsbHkgKmlzKiB0aGUgZG9vcmJlbGw7IGEKLSAqIHdyaXRlIHRvIHRoaXMgd2lsbCAicmlu ZyB0aGUgZG9vcmJlbGwiIChpLmUuIHNlbmQgYW4gaW50ZXJydXB0IHRvIHRoZQotICogR3VDKS4g VGhlIHN1YnNlcXVlbnQgIHBhZ2VzIG9mIHRoZSBjbGllbnQgb2JqZWN0IGNvbnN0aXR1dGUgdGhl IHdvcmsKLSAqIHF1ZXVlIChhIGNpcmN1bGFyIGFycmF5IG9mIHdvcmsgaXRlbXMpLCBhZ2FpbiBk ZXNjcmliZWQgaW4gdGhlIHByb2Nlc3MKLSAqIGRlc2NyaXB0b3IuIFdvcmsgcXVldWUgcGFnZXMg YXJlIG1hcHBlZCBtb21lbnRhcmlseSBhcyByZXF1aXJlZC4KLSAqLwotc3RydWN0IGk5MTVfZ3Vj X2NsaWVudCB7Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0Jdm9pZCAqdmFkZHI7Ci0Jc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKm93bmVyOwotCXN0cnVjdCBpbnRlbF9ndWMgKmd1YzsKLQotCXVp bnQzMl90IGVuZ2luZXM7CQkvKiBiaXRtYXAgb2YgKGhvc3QpIGVuZ2luZSBpZHMJKi8KLQl1aW50 MzJfdCBwcmlvcml0eTsKLQl1MzIgc3RhZ2VfaWQ7Ci0JdWludDMyX3QgcHJvY19kZXNjX29mZnNl dDsKLQotCXUxNiBkb29yYmVsbF9pZDsKLQl1bnNpZ25lZCBsb25nIGRvb3JiZWxsX29mZnNldDsK LQotCXNwaW5sb2NrX3Qgd3FfbG9jazsKLQkvKiBQZXItZW5naW5lIGNvdW50cyBvZiBHdUMgc3Vi bWlzc2lvbnMgKi8KLQl1aW50NjRfdCBzdWJtaXNzaW9uc1tJOTE1X05VTV9FTkdJTkVTXTsKLX07 Ci0KLXN0cnVjdCBpbnRlbF9ndWNfbG9nIHsKLQl1aW50MzJfdCBmbGFnczsKLQlzdHJ1Y3QgaTkx NV92bWEgKnZtYTsKLQkvKiBUaGUgcnVudGltZSBzdHVmZiBnZXRzIGNyZWF0ZWQgb25seSB3aGVu IEd1QyBsb2dnaW5nIGdldHMgZW5hYmxlZCAqLwotCXN0cnVjdCB7Ci0JCXZvaWQgKmJ1Zl9hZGRy OwotCQlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqZmx1c2hfd3E7Ci0JCXN0cnVjdCB3b3JrX3N0 cnVjdCBmbHVzaF93b3JrOwotCQlzdHJ1Y3QgcmNoYW4gKnJlbGF5X2NoYW47Ci0JfSBydW50aW1l OwotCS8qIGxvZ2dpbmcgcmVsYXRlZCBzdGF0cyAqLwotCXUzMiBjYXB0dXJlX21pc3NfY291bnQ7 Ci0JdTMyIGZsdXNoX2ludGVycnVwdF9jb3VudDsKLQl1MzIgcHJldl9vdmVyZmxvd19jb3VudFtH VUNfTUFYX0xPR19CVUZGRVJdOwotCXUzMiB0b3RhbF9vdmVyZmxvd19jb3VudFtHVUNfTUFYX0xP R19CVUZGRVJdOwotCXUzMiBmbHVzaF9jb3VudFtHVUNfTUFYX0xPR19CVUZGRVJdOwotfTsKLQot c3RydWN0IGludGVsX2d1YyB7Ci0Jc3RydWN0IGludGVsX3VjX2Z3IGZ3OwotCXN0cnVjdCBpbnRl bF9ndWNfbG9nIGxvZzsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2N0IGN0OwotCi0JLyogTG9nIHNuYXBz aG90IGlmIEd1QyBlcnJvcnMgZHVyaW5nIGxvYWQgKi8KLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqbG9hZF9lcnJfbG9nOwotCi0JLyogaW50ZWxfZ3VjX3JlY3YgaW50ZXJydXB0IHJlbGF0 ZWQgc3RhdGUgKi8KLQlib29sIGludGVycnVwdHNfZW5hYmxlZDsKLQotCXN0cnVjdCBpOTE1X3Zt YSAqYWRzX3ZtYTsKLQlzdHJ1Y3QgaTkxNV92bWEgKnN0YWdlX2Rlc2NfcG9vbDsKLQl2b2lkICpz dGFnZV9kZXNjX3Bvb2xfdmFkZHI7Ci0Jc3RydWN0IGlkYSBzdGFnZV9pZHM7Ci0KLQlzdHJ1Y3Qg aTkxNV9ndWNfY2xpZW50ICpleGVjYnVmX2NsaWVudDsKLQotCURFQ0xBUkVfQklUTUFQKGRvb3Ji ZWxsX2JpdG1hcCwgR1VDX05VTV9ET09SQkVMTFMpOwotCXVpbnQzMl90IGRiX2NhY2hlbGluZTsJ CS8qIEN5Y2xpYyBjb3VudGVyIG1vZCBwYWdlc2l6ZQkqLwotCi0JLyogR3VDJ3MgRlcgc3BlY2lm aWMgcmVnaXN0ZXJzIHVzZWQgaW4gTU1JTyBzZW5kICovCi0Jc3RydWN0IHsKLQkJdTMyIGJhc2U7 Ci0JCXVuc2lnbmVkIGludCBjb3VudDsKLQkJZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21h aW5zOwotCX0gc2VuZF9yZWdzOwotCi0JLyogVG8gc2VyaWFsaXplIHRoZSBpbnRlbF9ndWNfc2Vu ZCBhY3Rpb25zICovCi0Jc3RydWN0IG11dGV4IHNlbmRfbXV0ZXg7Ci0KLQkvKiBHdUMncyBGVyBz cGVjaWZpYyBzZW5kIGZ1bmN0aW9uICovCi0JaW50ICgqc2VuZCkoc3RydWN0IGludGVsX2d1YyAq Z3VjLCBjb25zdCB1MzIgKmRhdGEsIHUzMiBsZW4pOwotCi0JLyogR3VDJ3MgRlcgc3BlY2lmaWMg bm90aWZ5IGZ1bmN0aW9uICovCi0Jdm9pZCAoKm5vdGlmeSkoc3RydWN0IGludGVsX2d1YyAqZ3Vj KTsKLX07Ci0KLS8qIGludGVsX3VjLmMgKi8KIHZvaWQgaW50ZWxfdWNfc2FuaXRpemVfb3B0aW9u cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF91Y19pbml0 X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX3Vj X2luaXRfZncoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxf dWNfZmluaV9mdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IGludGVs X3VjX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50 ZWxfdWNfZmluaV9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotaW50IGlu dGVsX2d1Y19zYW1wbGVfZm9yY2V3YWtlKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci1pbnQgaW50 ZWxfZ3VjX3NlbmRfbm9wKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24s IHUzMiBsZW4pOwotaW50IGludGVsX2d1Y19zZW5kX21taW8oc3RydWN0IGludGVsX2d1YyAqZ3Vj LCBjb25zdCB1MzIgKmFjdGlvbiwgdTMyIGxlbik7Ci1pbnQgaW50ZWxfZ3VjX2F1dGhfaHVjKHN0 cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIHJzYV9vZmZzZXQpOwotCi1zdGF0aWMgaW5saW5lIGlu dCBpbnRlbF9ndWNfc2VuZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqYWN0aW9u LCB1MzIgbGVuKQotewotCXJldHVybiBndWMtPnNlbmQoZ3VjLCBhY3Rpb24sIGxlbik7Ci19Ci0K LXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9ndWNfbm90aWZ5KHN0cnVjdCBpbnRlbF9ndWMgKmd1 YykKLXsKLQlndWMtPm5vdGlmeShndWMpOwotfQotCi0vKiBpbnRlbF9ndWNfbG9hZGVyLmMgKi8K LWludCBpbnRlbF9ndWNfc2VsZWN0X2Z3KHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci1pbnQgaW50 ZWxfZ3VjX2luaXRfaHcoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKLWludCBpbnRlbF9ndWNfc3Vz cGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotaW50IGludGVsX2d1Y19y ZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXUzMiBpbnRlbF9ndWNf d29wY21fc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotCi0vKiBpOTE1 X2d1Y19zdWJtaXNzaW9uLmMgKi8KLWludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLWludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Vu YWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBpOTE1X2d1Y19z dWJtaXNzaW9uX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZv aWQgaTkxNV9ndWNfc3VibWlzc2lvbl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7Ci1zdHJ1Y3QgaTkxNV92bWEgKmludGVsX2d1Y19hbGxvY2F0ZV92bWEoc3RydWN0IGlu dGVsX2d1YyAqZ3VjLCB1MzIgc2l6ZSk7Ci0KLS8qIGludGVsX2d1Y19sb2cuYyAqLwotaW50IGlu dGVsX2d1Y19sb2dfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Ci12b2lkIGludGVsX2d1 Y19sb2dfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwotaW50IGk5MTVfZ3VjX2xvZ19j b250cm9sKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTY0IGNvbnRyb2xfdmFs KTsKLXZvaWQgaTkxNV9ndWNfbG9nX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Ci12b2lkIGk5MTVfZ3VjX2xvZ191bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Ci0KLXN0YXRpYyBpbmxpbmUgdTMyIGd1Y19nZ3R0X29mZnNldChz dHJ1Y3QgaTkxNV92bWEgKnZtYSkKLXsKLQl1MzIgb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldCh2 bWEpOwotCUdFTV9CVUdfT04ob2Zmc2V0IDwgR1VDX1dPUENNX1RPUCk7Ci0JR0VNX0JVR19PTihy YW5nZV9vdmVyZmxvd3NfdCh1NjQsIG9mZnNldCwgdm1hLT5zaXplLCBHVUNfR0dUVF9UT1ApKTsK LQlyZXR1cm4gb2Zmc2V0OwotfQogCiAjZW5kaWYKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK