From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v2 08/42] misc/mei/hdcp: Define ME FW interface for HDCP2.2 Date: Thu, 8 Mar 2018 17:28:35 +0530 Message-ID: <1520510349-8385-9-git-send-email-ramalingam.c@intel.com> References: <1520510349-8385-1-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1520510349-8385-1-git-send-email-ramalingam.c@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, dri-devel@lists.freedesktop.org, seanpaul@chromium.org, chris@chris-wilson.co.uk, tomas.winkler@intel.com, jani.nikula@linux.intel.com Cc: rodrigo.vivi@intel.com List-Id: dri-devel@lists.freedesktop.org RGVmaW5lcyB0aGUgSERDUCBzcGVjaWZpYyBNRSBGVyBpbnRlcmZhY2VzIHN1Y2ggYXMgUmVxdWVz dCBDTURzLApwYXlsb2FkIHN0cnVjdHVyZSBmb3IgQ01EcyBhbmQgdGhlaXIgcmVzcG9uc2Ugc3Rh dHVzIGNvZGVzLgoKVGhpcyBwYXRjaCBkZWZpbmVzIHBheWxvYWQgc2l6ZShFeGNsdWRpbmcgdGhl IEhlYWRlcilmb3IgZWFjaCBXSVJFRApIRENQMi4yIENNRHMuCgp2MjoKICBSZWJhc2VkLgoKU2ln bmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvbWlzYy9tZWkvaGRjcC9tZWlfaGRjcC5oIHwgNTI1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDUyNSBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL21laS9oZGNwL21laV9oZGNwLmggYi9kcml2ZXJzL21p c2MvbWVpL2hkY3AvbWVpX2hkY3AuaAppbmRleCA3ZDc5MmI1YWQ3MDMuLjMyZmI4NDQ1NTRmNSAx MDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL21laS9oZGNwL21laV9oZGNwLmgKKysrIGIvZHJpdmVy cy9taXNjL21laS9oZGNwL21laV9oZGNwLmgKQEAgLTI0LDYgKzI0LDggQEAKICNkZWZpbmUgX19N RUlfSERDUF9IX18KIAogI2luY2x1ZGUgPGxpbnV4L21laV9jbF9idXMuaD4KKyNpbmNsdWRlIDxs aW51eC9tZWlfaGRjcC5oPgorI2luY2x1ZGUgPGRybS9kcm1faGRjcC5oPgogCiBzdHJ1Y3QgbWVp X2hkY3AgewogCXN0cnVjdCBtZWlfY2xfZGV2aWNlICpjbGRldjsKQEAgLTM4LDQgKzQwLDUyNyBA QCBzdHJ1Y3QgbWVpX2hkY3AgewogCWludCByZWZfY250OwogfTsKIAorLyoqCisgKiBAZW51bSBt ZV9oZGNwX3N0YXR1czogRW51bWVyYXRpb24gb2YgYWxsIEhEQ1AgU3RhdHVzIENvZGVzCisgKi8K K2VudW0gbWVfaGRjcF9zdGF0dXMgeworCU1FX0hEQ1BfU1RBVFVTX1NVQ0NFU1MJCQk9IDB4MDAw MCwKKworCS8qIFdpRGkgR2VuZXJpYyBTdGF0dXMgQ29kZXMgKi8KKwlNRV9IRENQX1NUQVRVU19J TlRFUk5BTF9FUlJPUgkJPSAweDEwMDAsCisJTUVfSERDUF9TVEFUVVNfVU5LTk9XTl9FUlJPUgkJ PSAweDEwMDEsCisJTUVfSERDUF9TVEFUVVNfSU5DT1JSRUNUX0FQSV9WRVJTSU9OCT0gMHgxMDAy LAorCU1FX0hEQ1BfU1RBVFVTX0lOVkFMSURfRlVOQ1RJT04JCT0gMHgxMDAzLAorCU1FX0hEQ1Bf U1RBVFVTX0lOVkFMSURfQlVGRkVSX0xFTkdUSAk9IDB4MTAwNCwKKwlNRV9IRENQX1NUQVRVU19J TlZBTElEX1BBUkFNUwkJPSAweDEwMDUsCisJTUVfSERDUF9TVEFUVVNfQVVUSEVOVElDQVRJT05f RkFJTEVECT0gMHgxMDA2LAorCisJLyogV2lEaSBTdGF0dXMgQ29kZXMgKi8KKwlNRV9IRENQX0lO VkFMSURfU0VTU0lPTl9TVEFURQkJPSAweDYwMDAsCisJTUVfSERDUF9TUk1fRlJBR01FTlRfVU5F WFBFQ1RFRAkJPSAweDYwMDEsCisJTUVfSERDUF9TUk1fSU5WQUxJRF9MRU5HVEgJCT0gMHg2MDAy LAorCU1FX0hEQ1BfU1JNX0ZSQUdNRU5UX09GRlNFVF9JTlZBTElECT0gMHg2MDAzLAorCU1FX0hE Q1BfU1JNX1ZFUklGSUNBVElPTl9GQUlMRUQJCT0gMHg2MDA0LAorCU1FX0hEQ1BfU1JNX1ZFUlNJ T05fVE9PX09MRAkJPSAweDYwMDUsCisJTUVfSERDUF9SWF9DRVJUX1ZFUklGSUNBVElPTl9GQUlM RUQJPSAweDYwMDYsCisJTUVfSERDUF9SWF9SRVZPS0VECQkJPSAweDYwMDcsCisJTUVfSERDUF9I X1ZFUklGSUNBVElPTl9GQUlMRUQJCT0gMHg2MDA4LAorCU1FX0hEQ1BfUkVQRUFURVJfQ0hFQ0tf VU5FWFBFQ1RFRAk9IDB4NjAwOSwKKwlNRV9IRENQX1RPUE9MT0dZX01BWF9FWENFRURFRAkJPSAw eDYwMEEsCisJTUVfSERDUF9WX1ZFUklGSUNBVElPTl9GQUlMRUQJCT0gMHg2MDBCLAorCU1FX0hE Q1BfTF9WRVJJRklDQVRJT05fRkFJTEVECQk9IDB4NjAwQywKKwlNRV9IRENQX1NUUkVBTV9LRVlf QUxMT0NfRkFJTEVECQk9IDB4NjAwRCwKKwlNRV9IRENQX0JBU0VfS0VZX1JFU0VUX0ZBSUxFRAkJ PSAweDYwMEUsCisJTUVfSERDUF9OT05DRV9HRU5FUkFUSU9OX0ZBSUxFRAkJPSAweDYwMEYsCisJ TUVfSERDUF9TVEFUVVNfSU5WQUxJRF9FX0tFWV9TVEFURQk9IDB4NjAxMCwKKwlNRV9IRENQX1NU QVRVU19JTlZBTElEX0NTX0lDVgkJPSAweDYwMTEsCisJTUVfSERDUF9TVEFUVVNfSU5WQUxJRF9L Ql9LRVlfU1RBVEUJPSAweDYwMTIsCisJTUVfSERDUF9TVEFUVVNfSU5WQUxJRF9QQVZQX01PREVf SUNWCT0gMHg2MDEzLAorCU1FX0hEQ1BfU1RBVFVTX0lOVkFMSURfUEFWUF9NT0RFCT0gMHg2MDE0 LAorCU1FX0hEQ1BfU1RBVFVTX0xDX01BWF9BVFRFTVBUUwkJPSAweDYwMTUsCisKKwkvKiBOZXcg c3RhdHVzIGZvciBIRENQIDIuMSAqLworCU1FX0hEQ1BfU1RBVFVTX01JU01BVENIX0lOX00JCT0g MHg2MDE2LAorCisJLyogTmV3IHN0YXR1cyBjb2RlIGZvciBIRENQIDIuMiBSeCAqLworCU1FX0hE Q1BfU1RBVFVTX1JYX1BST1ZfTk9UX0FMTE9XRUQJPSAweDYwMTcsCisJTUVfSERDUF9TVEFUVVNf UlhfUFJPVl9XUk9OR19TVUJKRUNUCT0gMHg2MDE4LAorCU1FX0hEQ1BfUlhfTkVFRFNfUFJPVklT SU9OSU5HCQk9IDB4NjAxOSwKKwlNRV9IRENQX0JLU1ZfSUNWX0FVVEhfRkFJTEVECQk9IDB4NjAy MCwKKwlNRV9IRENQX1NUQVRVU19JTlZBTElEX1NUUkVBTV9JRAk9IDB4NjAyMSwKKwlNRV9IRENQ X1NUQVRVU19DSEFJTl9OT1RfSU5JVElBTElaRUQJPSAweDYwMjIsCisJTUVfSERDUF9GQUlMX05P VF9FWFBFQ1RFRAkJPSAweDYwMjMsCisJTUVfSERDUF9GQUlMX0hEQ1BfT0ZGCQkJPSAweDYwMjQs CisJTUVfSERDUF9GQUlMX0lOVkFMSURfUEFWUF9NRU1PUllfTU9ERQk9IDB4NjAyNSwKKwlNRV9I RENQX0ZBSUxfQUVTX0VDQl9GQUlMVVJFCQk9IDB4NjAyNiwKKwlNRV9IRENQX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRAkJPSAweDYwMjcsCisJTUVfSERDUF9ETUFfUkVBRF9FUlJPUgkJCT0gMHg2MDI4 LAorCU1FX0hEQ1BfRE1BX1dSSVRFX0VSUk9SCQkJPSAweDYwMjksCisJTUVfSERDUF9GQUlMX0lO VkFMSURfUEFDS0VUX1NJWkUJPSAweDYwMzAsCisJTUVfSERDUF9IMjY0X1BBUlNJTkdfRVJST1IJ CT0gMHg2MDMxLAorCU1FX0hEQ1BfSERDUDJfRVJSQVRBX1ZJREVPX1ZJT0xBVElPTgk9IDB4NjAz MiwKKwlNRV9IRENQX0hEQ1AyX0VSUkFUQV9BVURJT19WSU9MQVRJT04JPSAweDYwMzMsCisJTUVf SERDUF9UWF9BQ1RJVkVfRVJST1IJCQk9IDB4NjAzNCwKKwlNRV9IRENQX01PREVfQ0hBTkdFX0VS Uk9SCQk9IDB4NjAzNSwKKwlNRV9IRENQX1NUUkVBTV9UWVBFX0VSUk9SCQk9IDB4NjAzNiwKKwlN RV9IRENQX1NUUkVBTV9NQU5BR0VfTk9UX1BPU1NJQkxFCT0gMHg2MDM3LAorCisJTUVfSERDUF9T VEFUVVNfUE9SVF9JTlZBTElEX0NPTU1BTkQJPSAweDYwMzgsCisJTUVfSERDUF9TVEFUVVNfVU5T VVBQT1JURURfUFJPVE9DT0wJPSAweDYwMzksCisJTUVfSERDUF9TVEFUVVNfSU5WQUxJRF9QT1JU X0lOREVYCT0gMHg2MDNhLAorCU1FX0hEQ1BfU1RBVFVTX1RYX0FVVEhfTkVFREVECQk9IDB4NjAz YiwKKwlNRV9IRENQX1NUQVRVU19OT1RfSU5URUdSQVRFRF9QT1JUCT0gMHg2MDNjLAorCU1FX0hE Q1BfU1RBVFVTX1NFU1NJT05fTUFYX1JFQUNIRUQJPSAweDYwM2QsCisKKwkvKiBoZGNwIGNhcGFi bGUgYml0IGlzIG5vdCBzZXQgaW4gcnhfY2FwcyhlcnJvciBpcyB1bmlxdWUgdG8gRFApICovCisJ TUVfSERDUF9TVEFUVVNfTk9UX0hEQ1BfQ0FQQUJMRQkJPSAweDYwNDEsCisKKwlNRV9IRENQX1NU QVRVU19JTlZBTElEX1NUUkVBTV9DT1VOVAk9IDB4NjA0MiwKK307CisKKyNkZWZpbmUgSERDUF9B UElfVkVSU0lPTgkJCQkweDAwMDEwMDAwCisKKyNkZWZpbmUgSERDUF9NX0xFTgkJCQkJMTYKKyNk ZWZpbmUgSERDUF9LSF9MRU4JCQkJCTE2CisKKy8qCisgKiBQYXlsb2FkIEJ1ZmZlciBzaXplKEV4 Y2x1ZGluZyBIZWFkZXIpIGZvciBlYWNoIENNRCBhbmQgY29ycmVzcG9uZGluZyByZXNwb25zZQor ICovCisvKiBXaXJlZF9UeF9BS0UgICovCisjZGVmaW5lCVdJUkVEX0NNRF9CVUZfTEVOX0lOSVRJ QVRFX0hEQ1AyX1NFU1NJT05fSU4JKDQgKyAxKQorI2RlZmluZQlXSVJFRF9DTURfQlVGX0xFTl9J TklUSUFURV9IRENQMl9TRVNTSU9OX09VVAkoNCArIDggKyAzKQorCisjZGVmaW5lCVdJUkVEX0NN RF9CVUZfTEVOX1ZFUklGWV9SRUNFSVZFUl9DRVJUX0lOCSg0ICsgNTIyICsgOCArIDMpCisjZGVm aW5lCVdJUkVEX0NNRF9CVUZfTEVOX1ZFUklGWV9SRUNFSVZFUl9DRVJUX01JTl9PVVQJKDQgKyAx ICsgMyArIDE2ICsgMTYpCisjZGVmaW5lCVdJUkVEX0NNRF9CVUZfTEVOX1ZFUklGWV9SRUNFSVZF Ul9DRVJUX01BWF9PVVQJKDQgKyAxICsgMyArIDEyOCkKKworI2RlZmluZQlXSVJFRF9DTURfQlVG X0xFTl9BS0VfU0VORF9IUFJJTUVfSU4JCSg0ICsgMzIpCisjZGVmaW5lCVdJUkVEX0NNRF9CVUZf TEVOX0FLRV9TRU5EX0hQUklNRV9PVVQJCSg0KQorCisjZGVmaW5lCVdJUkVEX0NNRF9CVUZfTEVO X1NFTkRfUEFJUklOR19JTkZPX0lOCQkoNCArIDE2KQorI2RlZmluZQlXSVJFRF9DTURfQlVGX0xF Tl9TRU5EX1BBSVJJTkdfSU5GT19PVVQJCSg0KQorCisjZGVmaW5lCVdJUkVEX0NNRF9CVUZfTEVO X0NMT1NFX1NFU1NJT05fSU4JCSg0KQorI2RlZmluZQlXSVJFRF9DTURfQlVGX0xFTl9DTE9TRV9T RVNTSU9OX09VVAkJKDQpCisKKy8qIFdpcmVkX1R4X0xDICovCisjZGVmaW5lCVdJUkVEX0NNRF9C VUZfTEVOX0lOSVRfTE9DQUxJVFlfQ0hFQ0tfSU4JKDQpCisjZGVmaW5lCVdJUkVEX0NNRF9CVUZf TEVOX0lOSVRfTE9DQUxJVFlfQ0hFQ0tfT1VUCSg0ICsgOCkKKworI2RlZmluZQlXSVJFRF9DTURf QlVGX0xFTl9WQUxJREFURV9MT0NBTElUWV9JTgkJKDQgKyAzMikKKyNkZWZpbmUJV0lSRURfQ01E X0JVRl9MRU5fVkFMSURBVEVfTE9DQUxJVFlfT1VUCQkoNCkKKworLyogV2lyZWRfVHhfU0tFICov CisjZGVmaW5lCVdJUkVEX0NNRF9CVUZfTEVOX0dFVF9TRVNTSU9OX0tFWV9JTgkJKDQpCisjZGVm aW5lCVdJUkVEX0NNRF9CVUZfTEVOX0dFVF9TRVNTSU9OX0tFWV9PVVQJCSg0ICsgMTYgKyA4KQor CisvKiBXaXJlZF9UeF9TS0UgKi8KKyNkZWZpbmUJV0lSRURfQ01EX0JVRl9MRU5fRU5BQkxFX0FV VEhfSU4JCSg0ICsgMSkKKyNkZWZpbmUJV0lSRURfQ01EX0JVRl9MRU5fRU5BQkxFX0FVVEhfT1VU CQkoNCkKKworLyogV2lyZWRfVHhfUmVwZWF0ZXIgKi8KKyNkZWZpbmUJV0lSRURfQ01EX0JVRl9M RU5fVkVSSUZZX1JFUEVBVEVSX0lOCQkoNCArIDIgKyAzICsgMTYgKyAxNTUpCisjZGVmaW5lCVdJ UkVEX0NNRF9CVUZfTEVOX1ZFUklGWV9SRVBFQVRFUl9PVVQJCSg0ICsgMSArIDE2KQorCisjZGVm aW5lCVdJUkVEX0NNRF9CVUZfTEVOX1JFUEVBVEVSX0FVVEhfU1RSRUFNX1JFUV9NSU5fSU4JKDQg KyAzICsgXAorCQkJCQkJCQkzMiArIDIgKyAyKQorCisjZGVmaW5lCVdJUkVEX0NNRF9CVUZfTEVO X1JFUEVBVEVSX0FVVEhfU1RSRUFNX1JFUV9PVVQJCSg0KQorCisKKy8qKgorICogQGVudW0gaGRj cF9jb21tYW5kX2lkIEVudW1lcmF0aW9uIG9mIGFsbCBXSVJFRCBIRENQIENvbW1hbmQgSURzCisg Ki8KK2VudW0gaGRjcF9jb21tYW5kX2lkIHsKKwlfV0lESV9DT01NQU5EX0JBU0UJCT0gMHgwMDAz MDAwMCwKKwlXSURJX0lOSVRJQVRFX0hEQ1AyX1NFU1NJT04JPSBfV0lESV9DT01NQU5EX0JBU0Us CisJSERDUF9HRVRfU1JNX1NUQVRVUywKKwlIRENQX1NFTkRfU1JNX0ZSQUdNRU5ULAorCisJLyog VGhlIHdpcmVkIEhEQ1AgVHggY29tbWFuZHMgKi8KKwlfV0lSRURfQ09NTUFORF9CQVNFCQk9IDB4 MDAwMzEwMDAsCisJV0lSRURfSU5JVElBVEVfSERDUDJfU0VTU0lPTgk9IF9XSVJFRF9DT01NQU5E X0JBU0UsCisJV0lSRURfVkVSSUZZX1JFQ0VJVkVSX0NFUlQsCisJV0lSRURfQUtFX1NFTkRfSFBS SU1FLAorCVdJUkVEX0FLRV9TRU5EX1BBSVJJTkdfSU5GTywKKwlXSVJFRF9JTklUX0xPQ0FMSVRZ X0NIRUNLLAorCVdJUkVEX1ZBTElEQVRFX0xPQ0FMSVRZLAorCVdJUkVEX0dFVF9TRVNTSU9OX0tF WSwKKwlXSVJFRF9FTkFCTEVfQVVUSCwKKwlXSVJFRF9WRVJJRllfUkVQRUFURVIsCisJV0lSRURf UkVQRUFURVJfQVVUSF9TVFJFQU1fUkVRLAorCVdJUkVEX0NMT1NFX1NFU1NJT04sCisKKwlfV0lS RURfQ09NTUFORFNfQ09VTlQsCit9OworCit1bmlvbiBlbmNyeXB0ZWRfYnVmZiB7CisJdWludDhf dAkJCWVfa3B1Yl9rbVtIRENQXzJfMl9FX0tQVUJfS01fTEVOXTsKKwl1aW50OF90CQkJZV9raF9r bV9tW0hEQ1BfMl8yX0VfS0hfS01fTV9MRU5dOworCXN0cnVjdCB7CisJCXVpbnQ4X3QJCWVfa2hf a21bSERDUF9LSF9MRU5dOworCQl1aW50OF90CQltW0hEQ1BfTV9MRU5dOworCX0gX19wYWNrZWQ7 Cit9OworCisvKioKKyAqIEBicmllZiBIRENQIEhFQ0kgbWVzc2FnZSBoZWFkZXIuCisgKiBAbm90 ZSBBbGwgaGVhZGVyIHZhbHVlcyBhcmUgbGl0dGxlIGVuZGlhbi4KKyAqLworc3RydWN0IGhkY3Bf Y21kX2hlYWRlciB7CisJdWludDMyX3QJCWFwaV92ZXJzaW9uOworCXVpbnQzMl90CQljb21tYW5k X2lkOworCWVudW0gbWVfaGRjcF9zdGF0dXMJc3RhdHVzOworCS8qIExlbmd0aCBvZiB0aGUgSEVD SSBtZXNzYWdlIChleGNsdWRpbmcgdGhlIGhlYWRlcikgKi8KKwl1aW50MzJfdAkJYnVmZmVyX2xl bjsKK30gX19wYWNrZWQ7CisKKy8qIEBicmllZiBFbXB0eSBjb21tYW5kIHJlcXVlc3Qgb3IgcmVz cG9uc2UuIE5vIGRhdGEgZm9sbG93cyB0aGUgaGVhZGVyLiAqLworc3RydWN0IGhkY3BfY21kX25v X2RhdGEgeworCXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIgaGVhZGVyOworfSBfX3BhY2tlZDsKKwor LyoKKyAqIEBicmllZiBVbmlxdWVseSBpZGVudGlmaWVzIHRoZSBoZGNwIHBvcnQgYmVpbmcKKyAq IGFkZHJlc3NlZCBmb3IgYSBnaXZlbiBjb21tYW5kLgorICovCitzdHJ1Y3QgaGRjcF9wb3J0X2lk IHsKKwl1aW50OF90CQkJaW50ZWdyYXRlZF9wb3J0X3R5cGU7CisJdWludDhfdAkJCXBoeXNpY2Fs X3BvcnQ7CisJdWludDE2X3QJCXJlc2VydmVkOworfSBfX3BhY2tlZDsKKworCisvKiogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqIERhdGEgc3RydWN0dXJlcyBmb3IgaW50ZWdyYXRlZCB3aXJlZCBIRENQMiBUeCBpbgorICog c3VwcG9ydCBvZiB0aGUgQUtFIHByb3RvY29sCisgKi8KKworLyoqCisgKiBIRUNJIEludGVncmF0 ZWQgd2lyZWQgSERDUCBUeCBzZXNzaW9uIGluaXRpYXRpb24gY29tbWFuZAorICoKKyAqIFRoZSBj b21tYW5kIGJlbG93IGlzIGluIHN1cHBvcnQgb2YgSW5pdGlhdGluZyBhbiBpbnRlZ3JhdGVkCisg KiB3aXJlZCBIRENQIFR4IHNlc3Npb24uCisgKgljb21tYW5kIElEOiBXSVJFRF9JTklUSUFURV9I RENQMl9TRVNTSU9OCisgKgorICogQ29ycmVzcG9uZHMgdG8gdGhlIEFLRV9Jbml0IGZyb20gdGhl IEhEQ1AgRFAsIEhETUkgc3BlY3MuCisgKgorICogcmV0dXJuOgorICoJSERDUF9TVEFUVVNfU1VD Q0VTUyAtIENvbW1hbmQgY29tcGxldGVkIGNvcnJlY3RseS4KKyAqCUhEQ1BfSU5WQUxJRF9TRVNT SU9OX1NUQVRFIC0gVGhpcyBjb21tYW5kIGNhbiBub3QgYmUgY2FsbGVkCisgKgkJCQkJZHVyaW5n IGFuIGFjdGl2ZSBzZXNzaW9uLgorICoJQSBjYWxsIHRvIFdJUkVEX0NNRF9DTE9TRV9TRVNTSU9O X0lOIG11c3QgYmUgbWFkZSB0byBkZXN0cm95CisgKglhbiBvbGQgSERDUCBUeCBzZXNzaW9uLgor ICovCisKKy8qKgorICogSEVDSSBJbnB1dCBzdHJ1Y3QgZm9yIGludGVncmF0ZWQgd2lyZWQgSERD UCBUeCBzZXNzaW9uIGluaXRpYXRpb24uCisgKi8KK3N0cnVjdCB3aXJlZF9jbWRfaW5pdGlhdGVf aGRjcDJfc2Vzc2lvbl9pbiB7CisJc3RydWN0IGhkY3BfY21kX2hlYWRlcgloZWFkZXI7CisJc3Ry dWN0IGhkY3BfcG9ydF9pZAlwb3J0OworCXVpbnQ4X3QJCQlwcm90b2NvbDsgLyogZm9yIEhETUkg dnMgRFAgKi8KK30gX19wYWNrZWQ7CisKK3N0cnVjdCB3aXJlZF9jbWRfaW5pdGlhdGVfaGRjcDJf c2Vzc2lvbl9vdXQgeworCXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIJaGVhZGVyOworCXN0cnVjdCBo ZGNwX3BvcnRfaWQJcG9ydDsKKwl1aW50OF90CQkJcl90eFtIRENQXzJfMl9SVFhfTEVOXTsKKwlz dHJ1Y3QgaGRjcDJfdHhfY2Fwcwl0eF9jYXBzOworfSBfX3BhY2tlZDsKKworLyoqCisgKiBIRUNJ IEludGVncmF0ZWQgd2lyZWQgSERDUCBUeCwgY2xvc2Ugc2Vzc2lvbiBjb21tYW5kCisgKgorICog VGhlIGNvbW1hbmQgYmVsb3cgaXMgaW4gc3VwcG9ydCBvZiBlbmRpbmcgYW4gaW50ZWdyYXRlZAor ICogd2lyZWQgSERDUCBUeCBzZXNzaW9uLgorICoJY29tbWFuZCBJRDogV0lSRURfQ0xPU0VfU0VT U0lPTgorICoKKyAqIHJldHVybjoKKyAqCUhEQ1BfU1RBVFVTX1NVQ0NFU1MgLSBDb21tYW5kIGNv bXBsZXRlZCBjb3JyZWN0bHkuCisgKi8KKworLyoqCisgKiBIRUNJIHN0cnVjdCBmb3IgZW5kaW5n IGFuIGludGVncmF0ZWQgd2lyZWQgSERDUCBUeCBzZXNzaW9uLgorICovCitzdHJ1Y3Qgd2lyZWRf Y21kX2Nsb3NlX3Nlc3Npb25faW4geworCXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIJaGVhZGVyOwor CXN0cnVjdCBoZGNwX3BvcnRfaWQJcG9ydDsKK30gX19wYWNrZWQ7CisKK3N0cnVjdCB3aXJlZF9j bWRfY2xvc2Vfc2Vzc2lvbl9vdXQgeworCXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIJaGVhZGVyOwor CXN0cnVjdCBoZGNwX3BvcnRfaWQJcG9ydDsKK30gX19wYWNrZWQ7CisKKy8qKgorICogSEVDSSBJ bnRlZ3JhdGVkIHdpcmVkIEhEQ1AgVHggdmVyaWZ5IHJlY2VpdmVyIGNlcnRpZmljYXRlcyBjb21t YW5kCisgKgorICogVGhlIGNvbW1hbmQgYmVsb3cgaXMgaW4gc3VwcG9ydCBvZiB2ZXJpZnlpbmcg YSBSeCBpbiBhbgorICogaW50ZWdyYXRlZCB3aXJlZCBIRENQIFR4IHNlc3Npb24uCisgKgljb21t YW5kIElEOiBXSVJFRF9WRVJJRllfUkVDRUlWRVJfQ0VSVAorICoKKyAqIENvcnJlc3BvbmRzIHRv IHRoZSBBS0VfU2VuZF9DZXJ0IGZyb20gdGhlIEhEQ1AgRFAsIEhETUkgc3BlY3MuCisgKiByZXR1 cm46CisgKglIRENQX1NUQVRVU19TVUNDRVNTIC0gQ29tbWFuZCBjb21wbGV0ZWQgY29ycmVjdGx5 LgorICovCisKKy8qKgorICogSEVDSSBJbnB1dCBzdHJ1Y3QgZm9yIGludGVncmF0ZWQgd2lyZWQg SERDUCBUeCBSeCB2ZXJpZmljYXRpb24uCisgKi8KK3N0cnVjdCB3aXJlZF9jbWRfdmVyaWZ5X3Jl Y2VpdmVyX2NlcnRfaW4geworCXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIJaGVhZGVyOworCXN0cnVj dCBoZGNwX3BvcnRfaWQJcG9ydDsKKwlzdHJ1Y3QgaGRjcDJfY2VydF9yeAljZXJ0X3J4OworCXVp bnQ4X3QJCQlyX3J4W0hEQ1BfMl8yX1JSWF9MRU5dOworCXVpbnQ4X3QJCQlyeF9jYXBzW0hEQ1Bf Ml8yX1JYQ0FQU19MRU5dOworfSBfX3BhY2tlZDsKKworc3RydWN0IHdpcmVkX2NtZF92ZXJpZnlf cmVjZWl2ZXJfY2VydF9vdXQgeworCXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIJaGVhZGVyOworCXN0 cnVjdCBoZGNwX3BvcnRfaWQJcG9ydDsKKwl1aW50OF90CQkJa21fc3RvcmVkOworCXVpbnQ4X3QJ CQlyZXNlcnZlZFszXTsKKwl1bmlvbiBlbmNyeXB0ZWRfYnVmZglla21fYnVmZjsKK30gX19wYWNr ZWQ7CisKKy8qKgorICogSEVDSSBJbnRlZ3JhdGVkIHdpcmVkIEhEQ1AgVHgsIHZlcmlmeSBSeCdz IEhwcmltZSBjb21tYW5kCisgKgorICogVGhlIGNvbW1hbmQgYmVsb3cgaXMgaW4gc3VwcG9ydCBv ZiB2ZXJpZnlpbmcgYW4gSHByaW1lIHZhbHVlCisgKiBnZW5lcmF0ZWQgYnkgdGhlIFJ4IGluIGFu IGludGVncmF0ZWQgd2lyZWQgSERDUCBUeCBzZXNzaW9uLgorICoJY29tbWFuZCBJRDogV0lSRURf QUtFX1NFTkRfSFBSSU1FCisgKgorICogQ29ycmVzcG9uZHMgdG8gdGhlIEFLRV9TZW5kX0hfcHJp bWUgbWVzc2FnZSBmcm9tIHRoZSBIRENQIERQLCBIRE1JIHNwZWNzLgorICoKKyAqIHJldHVybjoK KyAqCUhEQ1BfU1RBVFVTX1NVQ0NFU1MgLSBDb21tYW5kIGNvbXBsZXRlZCBjb3JyZWN0bHkuCisg Ki8KKworLyoqCisgKiBIRUNJIHN0cnVjdCBmb3IgdmVyaWZpY2F0aW9uIG9mIFJ4J3MgSHByaW1l IGluIGEgSERDUCBUeCBzZXNzaW9uCisgKi8KK3N0cnVjdCB3aXJlZF9jbWRfYWtlX3NlbmRfaHBy aW1lX2luIHsKKwlzdHJ1Y3QgaGRjcF9jbWRfaGVhZGVyCWhlYWRlcjsKKwlzdHJ1Y3QgaGRjcF9w b3J0X2lkCXBvcnQ7CisJdWludDhfdAkJCWhfcHJpbWVbSERDUF8yXzJfSF9QUklNRV9MRU5dOwor fSBfX3BhY2tlZDsKKworc3RydWN0IHdpcmVkX2NtZF9ha2Vfc2VuZF9ocHJpbWVfb3V0IHsKKwlz dHJ1Y3QgaGRjcF9jbWRfaGVhZGVyCWhlYWRlcjsKKwlzdHJ1Y3QgaGRjcF9wb3J0X2lkCXBvcnQ7 Cit9IF9fcGFja2VkOworCisvKioKKyAqIEhFQ0kgSW50ZWdyYXRlZCB3aXJlZCBIRENQIFR4LCBz ZW5kIEFLRSBwYWlyaW5nIGRhdGEgY29tbWFuZAorICoKKyAqIFRoZSBjb21tYW5kIGJlbG93IGlz IGluIHN1cHBvcnQgb2Ygc2VuZGluZyBpbiBBS0UgcGFpcmluZyBkYXRhIGdlbmVyYXRlZAorICog YnkgdGhlIFJ4IGluIGFuIGludGVncmF0ZWQgd2lyZWQgSERDUCBUeCBzZXNzaW9uLgorICoJY29t bWFuZCBJRDogV0lSRURfQUtFX1NFTkRfUEFJUklOR19JTkZPCisgKgorICogQ29ycmVzcG9uZHMg dG8gdGhlIEFLRV9TZW5kX0hfcHJpbWUgbWVzc2FnZSBmcm9tIHRoZSBIRENQIERQLCBIRE1JIHNw ZWNzLgorICoKKyAqIHJldHVybjoKKyAqCUhEQ1BfU1RBVFVTX1NVQ0NFU1MgLSBDb21tYW5kIGNv bXBsZXRlZCBjb3JyZWN0bHkuCisgKi8KKworLyoqCisgKiBIRUNJIHN0cnVjdCBmb3Igc2VuZGlu ZyBpbiBBS0UgcGFpcmluZyBkYXRhIGdlbmVyYXRlZCBieSB0aGUgUnggaW4gYW4KKyAqIGludGVn cmF0ZWQgd2lyZWQgSERDUCBUeCBzZXNzaW9uLgorICovCitzdHJ1Y3Qgd2lyZWRfY21kX2FrZV9z ZW5kX3BhaXJpbmdfaW5mb19pbiB7CisJc3RydWN0IGhkY3BfY21kX2hlYWRlcgloZWFkZXI7CisJ c3RydWN0IGhkY3BfcG9ydF9pZAlwb3J0OworCXVpbnQ4X3QJCQllX2toX2ttW0hEQ1BfMl8yX0Vf S0hfS01fTEVOXTsKK30gX19wYWNrZWQ7CisKK3N0cnVjdCB3aXJlZF9jbWRfYWtlX3NlbmRfcGFp cmluZ19pbmZvX291dCB7CisJc3RydWN0IGhkY3BfY21kX2hlYWRlcgloZWFkZXI7CisJc3RydWN0 IGhkY3BfcG9ydF9pZAlwb3J0OworfSBfX3BhY2tlZDsKKworCisvKiogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIERhdGEg c3RydWN0dXJlcyBmb3IgaW50ZWdyYXRlZCB3aXJlZCBIRENQMiBUeCBpbiBzdXBwb3J0IG9mIHRo ZSBMQyBwcm90b2NvbAorICovCisKKy8qKgorICogSEVDSSBJbnRlZ3JhdGVkIHdpcmVkIEhEQ1Ag VHgsIGluaXRpYXRlIGxvY2FsaXR5IGNoZWNrCisgKgorICogVGhlIGNvbW1hbmQgYmVsb3cgaXMg aW4gc3VwcG9ydCBvZiBpbml0aWF0aW5nIGxvY2FsaXR5IGNoZWNrIHdpdGggYW4KKyAqIGludGVn cmF0ZWQgd2lyZWQgSERDUCBUeCBzZXNzaW9uLgorICoJY29tbWFuZCBJRDogV0lSRURfSU5JVF9M T0NBTElUWV9DSEVDSworICoKKyAqIENvcnJlc3BvbmRzIHRvIHRoZSBMQ19Jbml0IG1lc3NhZ2Ug ZnJvbSB0aGUgSERDUCBEUCwgSERNSSBzcGVjcy4KKyAqCisgKiByZXR1cm46IEhEQ1BfU1RBVFVT X1NVQ0NFU1MgLSBDb21tYW5kIGNvbXBsZXRlZCBjb3JyZWN0bHkuCisgKi8KKworLyoqCisgKiBI RUNJIHN0cnVjdCBmb3IgaW5pdGlhdGluZyBsb2NhbGl0eSBjaGVjayB3aXRoIGFuCisgKiBpbnRl Z3JhdGVkIHdpcmVkIEhEQ1AgVHggc2Vzc2lvbi4KKyAqLworc3RydWN0IHdpcmVkX2NtZF9pbml0 X2xvY2FsaXR5X2NoZWNrX2luIHsKKwlzdHJ1Y3QgaGRjcF9jbWRfaGVhZGVyCWhlYWRlcjsKKwlz dHJ1Y3QgaGRjcF9wb3J0X2lkCXBvcnQ7Cit9IF9fcGFja2VkOworCitzdHJ1Y3Qgd2lyZWRfY21k X2luaXRfbG9jYWxpdHlfY2hlY2tfb3V0IHsKKwlzdHJ1Y3QgaGRjcF9jbWRfaGVhZGVyCWhlYWRl cjsKKwlzdHJ1Y3QgaGRjcF9wb3J0X2lkCXBvcnQ7CisJdWludDhfdAkJCXJfbltIRENQXzJfMl9S Tl9MRU5dOworfSBfX3BhY2tlZDsKKworLyoqCisgKiBIRUNJIEludGVncmF0ZWQgd2lyZWQgSERD UCBUeCwgdmFsaWRhdGUgbG9jYWxpdHkgY2hlY2sKKyAqCisgKiBUaGUgY29tbWFuZCBiZWxvdyBp cyBpbiBzdXBwb3J0IG9mIHZhbGlkYXRpbmcgYW4gUngncyBMUHJpbWUgdmFsdWUKKyAqIGluIGFu IGludGVncmF0ZWQgd2lyZWQgSERDUCBUeCBzZXNzaW9uLgorICoJY29tbWFuZCBJRDogV0lSRURf VkFMSURBVEVfTE9DQUxJVFkKKyAqCisgKiBDb3JyZXNwb25kcyB0byB0aGUgTENfU2VuZF9MX3By aW1lIG1lc3NhZ2UgZnJvbSB0aGUgSERDUCBEUCwgSERNSSBzcGVjcy4KKyAqCisgKiByZXR1cm46 IEhEQ1BfU1RBVFVTX1NVQ0NFU1MgLSBDb21tYW5kIGNvbXBsZXRlZCBjb3JyZWN0bHkuCisgKi8K KworLyoqCisgKiBIRUNJIHN0cnVjdCBmb3IgdmFsaWRhdGluZyBhbiBSeCdzIExQcmltZSB2YWx1 ZSBpbiBhbgorICogaW50ZWdyYXRlZCB3aXJlZCBIRENQIFR4IHNlc3Npb24uCisgKi8KK3N0cnVj dCB3aXJlZF9jbWRfdmFsaWRhdGVfbG9jYWxpdHlfaW4geworCXN0cnVjdCBoZGNwX2NtZF9oZWFk ZXIJaGVhZGVyOworCXN0cnVjdCBoZGNwX3BvcnRfaWQJcG9ydDsKKwl1aW50OF90CQkJbF9wcmlt ZVtIRENQXzJfMl9MX1BSSU1FX0xFTl07Cit9IF9fcGFja2VkOworCitzdHJ1Y3Qgd2lyZWRfY21k X3ZhbGlkYXRlX2xvY2FsaXR5X291dCB7CisJc3RydWN0IGhkY3BfY21kX2hlYWRlcgloZWFkZXI7 CisJc3RydWN0IGhkY3BfcG9ydF9pZAlwb3J0OworfSBfX3BhY2tlZDsKKworLyoqIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KiBEYXRhIHN0cnVjdHVyZXMgZm9yIGludGVncmF0ZWQgd2lyZWQgSERDUDIgVHggaW4gc3VwcG9y dCBvZiB0aGUgU0tFIHByb3RvY29sCisgKi8KKworLyoqCisgKiBIRUNJIEludGVncmF0ZWQgd2ly ZWQgSERDUCBUeCwgY3JlYXRlIHNlc3Npb24ga2V5IGNvbW1hbmQKKyAqCisgKiBUaGUgY29tbWFu ZCBiZWxvdyBpcyBpbiBzdXBwb3J0IGdlbmVyYXRpbmcgdGhlIHNlc3Npb24ga2V5CisgKiBpbiBh biBpbnRlZ3JhdGVkIHdpcmVkIEhEQ1AgVHggc2Vzc2lvbi4KKyAqCWNvbW1hbmQgSUQ6IFdJUkVE X0dFVF9TRVNTSU9OX0tFWQorICoKKyAqIENvcnJlc3BvbmRzIHRvIHRoZSBTS0VfU2VuZF9Fa3Mg bWVzc2FnZSBmcm9tIHRoZSBIRENQIERQLCBIRE1JIHNwZWNzLgorICoKKyAqIHJldHVybjogSERD UF9TVEFUVVNfU1VDQ0VTUyAtIENvbW1hbmQgY29tcGxldGVkIGNvcnJlY3RseS4KKyAqLworCisv KioKKyAqIEhFQ0kgc3RydWN0IGZvciBjcmVhdGUgc2Vzc2lvbiBrZXkgY29tbWFuZAorICovCitz dHJ1Y3Qgd2lyZWRfY21kX2dldF9zZXNzaW9uX2tleV9pbiB7CisJc3RydWN0IGhkY3BfY21kX2hl YWRlcgloZWFkZXI7CisJc3RydWN0IGhkY3BfcG9ydF9pZAlwb3J0OworfSBfX3BhY2tlZDsKKwor c3RydWN0IHdpcmVkX2NtZF9nZXRfc2Vzc2lvbl9rZXlfb3V0IHsKKwlzdHJ1Y3QgaGRjcF9jbWRf aGVhZGVyCWhlYWRlcjsKKwlzdHJ1Y3QgaGRjcF9wb3J0X2lkCXBvcnQ7CisJdWludDhfdAkJCWVf ZGtleV9rc1tIRENQXzJfMl9FX0RLRVlfS1NfTEVOXTsKKwl1aW50OF90CQkJcl9pdltIRENQXzJf Ml9SSVZfTEVOXTsKK30gX19wYWNrZWQ7CisKKy8qKgorICogSEVDSSBJbnRlZ3JhdGVkIHdpcmVk IEhEQ1AgVHgsIGVuYWJsZSBhdXRoZW50aWNhdGlvbiBjb21tYW5kCisgKgorICogVGhlIGNvbW1h bmQgYmVsb3cgaXMgaW4gc3VwcG9ydCBvZiBhc3NpZ25pbmcgdHlwZSAwLCB0eXBlIDEKKyAqIHZh bHVlcyB0byBhIG5vbi1yZXBlYXRlciBkb3duc3RyZWFtIFR4IHBvcnQgYW5kIG1hcmtpbmcgQXV0 aGVudGljYXRpb24KKyAqIGNvbXBsZXRlCisgKgljb21tYW5kIElEOiBXSVJFRF9FTkFCTEVfQVVU SAorICoKKyAqIHJldHVybjogSERDUF9TVEFUVVNfU1VDQ0VTUyAtIENvbW1hbmQgY29tcGxldGVk IGNvcnJlY3RseS4KKyAqLworCisvKioKKyAqIEhFQ0kgc3RydWN0IGZvciB0aGUgVHggZW5hYmxl IGF1dGhlbnRpY2F0aW9uIGNvbW1hbmQKKyAqLworc3RydWN0IHdpcmVkX2NtZF9lbmFibGVfYXV0 aF9pbiB7CisJc3RydWN0IGhkY3BfY21kX2hlYWRlcgloZWFkZXI7CisJc3RydWN0IGhkY3BfcG9y dF9pZAlwb3J0OworCXVpbnQ4X3QJCQlzdHJlYW1fdHlwZTsKK30gX19wYWNrZWQ7CisKK3N0cnVj dCB3aXJlZF9jbWRfZW5hYmxlX2F1dGhfb3V0IHsKKwlzdHJ1Y3QgaGRjcF9jbWRfaGVhZGVyCWhl YWRlcjsKKwlzdHJ1Y3QgaGRjcF9wb3J0X2lkCXBvcnQ7Cit9IF9fcGFja2VkOworCisvKiogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqIERhdGEgc3RydWN0dXJlcyBmb3IgaW50ZWdyYXRlZCB3aXJlZCBIRENQMiBUeCBpbiBz dXBwb3J0IG9mCisgKiB0aGUgcmVwZWF0ZXIgcHJvdG9jb2xzCisgKi8KKworLyoqCisgKiBIRUNJ IEludGVncmF0ZWQgd2lyZWQgSERDUCBUeCwgdmVyaWZ5IGRvd25zdHJlYW0gdG9wb2xvZ3kgY29t bWFuZAorICoKKyAqIFRoZSBjb21tYW5kIGJlbG93IGlzIGluIHN1cHBvcnQgdmVyaWZ5aW5nIHRo ZSBkb3duc3RyZWFtIHJlcGVhdGVyJ3MKKyAqIEhEQ1AgdG9wb2xvZ3kgaW4gYW4gaW50ZWdyYXRl ZCB3aXJlZCBIRENQIFR4IHNlc3Npb24uCisgKgljb21tYW5kIElEOiBXSVJFRF9WRVJJRllfUkVQ RUFURVIKKyAqCisgKiBDb3JyZXNwb25kcyB0byB0aGUgUmVwZWF0ZXJBdXRoX1NlbmRfUmVjZWl2 ZXJJZF9MaXN0IG1lc3NhZ2UKKyAqIGZyb20gdGhlIEhEQ1AgRFAsIEhETUkgc3BlY3MuCisgKgor ICogcmV0dXJuOiBIRENQX1NUQVRVU19TVUNDRVNTIC0gQ29tbWFuZCBjb21wbGV0ZWQgY29ycmVj dGx5LgorICovCisKKy8qKgorICogSEVDSSBzdHJ1Y3QgZm9yIHZlcmlmeWluZyB0aGUgZG93bnN0 cmVhbSByZXBlYXRlcidzIEhEQ1AgdG9wb2xvZ3kgaW4gYW4KKyAqIGludGVncmF0ZWQgd2lyZWQg SERDUCBUeCBzZXNzaW9uLgorICovCitzdHJ1Y3Qgd2lyZWRfY21kX3ZlcmlmeV9yZXBlYXRlcl9p biB7CisJc3RydWN0IGhkY3BfY21kX2hlYWRlcgloZWFkZXI7CisJc3RydWN0IGhkY3BfcG9ydF9p ZAlwb3J0OworCXVpbnQ4X3QJCQlyeF9pbmZvW0hEQ1BfMl8yX1JYSU5GT19MRU5dOworCXVpbnQ4 X3QJCQlzZXFfbnVtX3ZbSERDUF8yXzJfU0VRX05VTV9MRU5dOworCXVpbnQ4X3QJCQl2X3ByaW1l W0hEQ1BfMl8yX0xQUklNRV9IQUxGX0xFTl07CisJdWludDhfdAkJCXJlY2VpdmVyX2lkc1tIRENQ XzJfMl9SRUNFSVZFUl9JRFNfTUFYX0xFTl07Cit9IF9fcGFja2VkOworCitzdHJ1Y3Qgd2lyZWRf Y21kX3ZlcmlmeV9yZXBlYXRlcl9vdXQgeworCXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIJaGVhZGVy OworCXN0cnVjdCBoZGNwX3BvcnRfaWQJcG9ydDsKKwl1aW50OF90CQkJY29udGVudF90eXBlX3N1 cHBvcnRlZDsKKwl1aW50OF90CQkJdltIRENQXzJfMl9MUFJJTUVfSEFMRl9MRU5dOworfSBfX3Bh Y2tlZDsKKworLyoqCisgKiBIRUNJIEludGVncmF0ZWQgd2lyZWQgSERDUCBUeCwgc3RyZWFtIG1h bmFnZW1lbnQgY29tbWFuZAorICoKKyAqIFRoZSBjb21tYW5kIGJlbG93IGlzIGluIHN1cHBvcnQg b2Ygc3RyZWFtIG1hbmFnZW1lbnQgaW4gYW4KKyAqIGludGVncmF0ZWQgd2lyZWQgSERDUCBUeCBz ZXNzaW9uLgorICoJY29tbWFuZCBJRDogV0lSRURfUkVQRUFURVJfQVVUSF9TVFJFQU1fUkVRCisg KgorICogQ29ycmVzcG9uZHMgdG8gdGhlIFJlcGVhdGVyQXV0aF9TdHJlYW1fUmVhZHkgbWVzc2Fn ZSBmcm9tCisgKiB0aGUgSERDUCBEUCwgSERNSSBzcGVjcy4KKyAqCisgKiByZXR1cm46IEhEQ1Bf U1RBVFVTX1NVQ0NFU1MgLSBDb21tYW5kIGNvbXBsZXRlZCBjb3JyZWN0bHkuCisgKi8KKworLyoq CisgKiBIRUNJIHN0cnVjdCBpbiBzdXBwb3J0IG9mIHN0cmVhbSBtYW5hZ2VtZW50IGluIGFuCisg KiBpbnRlZ3JhdGVkIHdpcmVkIEhEQ1AgVHggc2Vzc2lvbi4KKyAqLworc3RydWN0IHdpcmVkX2Nt ZF9yZXBlYXRlcl9hdXRoX3N0cmVhbV9yZXFfaW4geworCXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIJ CWhlYWRlcjsKKwlzdHJ1Y3QgaGRjcF9wb3J0X2lkCQlwb3J0OworCXVpbnQ4X3QJCQkJc2VxX251 bV9tW0hEQ1BfMl8yX1NFUV9OVU1fTEVOXTsKKwl1aW50OF90CQkJCW1fcHJpbWVbSERDUF8yXzJf TVBSSU1FX0xFTl07CisJdWludDE2X3QJCQlrOworCXN0cnVjdCBoZGNwMl9zdHJlYW1pZF90eXBl CXN0cmVhbXNbMV07Cit9IF9fcGFja2VkOworCitzdHJ1Y3Qgd2lyZWRfY21kX3JlcGVhdGVyX2F1 dGhfc3RyZWFtX3JlcV9vdXQgeworCXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIJCWhlYWRlcjsKKwlz dHJ1Y3QgaGRjcF9wb3J0X2lkCQlwb3J0OworfSBfX3BhY2tlZDsKKwogI2VuZGlmIC8qIF9fTUVJ X0hEQ1BfSF9fICovCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==