From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH 09/43] misc/mei/hdcp: Define ME FW interface for HDCP2.2 Date: Wed, 14 Feb 2018 19:43:24 +0530 Message-ID: <1518617638-21684-10-git-send-email-ramalingam.c@intel.com> References: <1518617638-21684-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: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id A2F826E40F for ; Wed, 14 Feb 2018 14:20:07 +0000 (UTC) In-Reply-To: <1518617638-21684-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: seanpaul@chromium.org, intel-gfx@lists.freedesktop.org, rodrigo.vivi@intel.com, daniel.vetter@ffwll.ch Cc: tomas.winkler@intel.com List-Id: intel-gfx@lists.freedesktop.org RGVmaW5lcyB0aGUgSERDUCBzcGVjaWZpYyBNRSBGVyBpbnRlcmZhY2VzIHN1Y2ggYXMgUmVxdWVz dCBDTURzLApwYXlsb2FkIHN0cnVjdHVyZSBmb3IgQ01EcyBhbmQgdGhlaXIgcmVzcG9uc2Ugc3Rh dHVzIGNvZGVzLgoKVGhpcyBwYXRjaCBkZWZpbmVzIHBheWxvYWQgc2l6ZShFeGNsdWRpbmcgdGhl IEhlYWRlcilmb3IgZWFjaCBXSVJFRApIRENQMi4yIENNRHMuCgpTaWduZWQtb2ZmLWJ5OiBSYW1h bGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9taXNjL21laS9t ZWlfaGRjcC5oIHwgNTI1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiAxIGZpbGUgY2hhbmdlZCwgNTI1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL21pc2MvbWVpL21laV9oZGNwLmggYi9kcml2ZXJzL21pc2MvbWVpL21laV9oZGNwLmgKaW5k ZXggN2Q3OTJiNWFkNzAzLi4yYmY3MjBlMjA0NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9t ZWkvbWVpX2hkY3AuaAorKysgYi9kcml2ZXJzL21pc2MvbWVpL21laV9oZGNwLmgKQEAgLTI0LDYg KzI0LDggQEAKICNkZWZpbmUgX19NRUlfSERDUF9IX18KIAogI2luY2x1ZGUgPGxpbnV4L21laV9j bF9idXMuaD4KKyNpbmNsdWRlIDxsaW51eC9tZWlfaGRjcC5oPgorI2luY2x1ZGUgPGRybS9kcm1f aGRjcC5oPgogCiBzdHJ1Y3QgbWVpX2hkY3AgewogCXN0cnVjdCBtZWlfY2xfZGV2aWNlICpjbGRl djsKQEAgLTM4LDQgKzQwLDUyNyBAQCBzdHJ1Y3QgbWVpX2hkY3AgewogCWludCByZWZfY250Owog fTsKIAorLyoqCisgKiBAZW51bSBtZV9zdGF0dXM6IEVudW1lcmF0aW9uIG9mIGFsbCBIRENQIFN0 YXR1cyBDb2RlcworICovCitlbnVtIG1lX3N0YXR1cyB7CisJTUVfSERDUF9TVEFUVVNfU1VDQ0VT UwkJCT0gMHgwMDAwLAorCisJLyogV2lEaSBHZW5lcmljIFN0YXR1cyBDb2RlcyAqLworCU1FX0hE Q1BfU1RBVFVTX0lOVEVSTkFMX0VSUk9SCQk9IDB4MTAwMCwKKwlNRV9IRENQX1NUQVRVU19VTktO T1dOX0VSUk9SCQk9IDB4MTAwMSwKKwlNRV9IRENQX1NUQVRVU19JTkNPUlJFQ1RfQVBJX1ZFUlNJ T04JPSAweDEwMDIsCisJTUVfSERDUF9TVEFUVVNfSU5WQUxJRF9GVU5DVElPTgkJPSAweDEwMDMs CisJTUVfSERDUF9TVEFUVVNfSU5WQUxJRF9CVUZGRVJfTEVOR1RICT0gMHgxMDA0LAorCU1FX0hE Q1BfU1RBVFVTX0lOVkFMSURfUEFSQU1TCQk9IDB4MTAwNSwKKwlNRV9IRENQX1NUQVRVU19BVVRI RU5USUNBVElPTl9GQUlMRUQJPSAweDEwMDYsCisKKwkvKiBXaURpIFN0YXR1cyBDb2RlcyAqLwor CU1FX0hEQ1BfSU5WQUxJRF9TRVNTSU9OX1NUQVRFCQk9IDB4NjAwMCwKKwlNRV9IRENQX1NSTV9G UkFHTUVOVF9VTkVYUEVDVEVECQk9IDB4NjAwMSwKKwlNRV9IRENQX1NSTV9JTlZBTElEX0xFTkdU SAkJPSAweDYwMDIsCisJTUVfSERDUF9TUk1fRlJBR01FTlRfT0ZGU0VUX0lOVkFMSUQJPSAweDYw MDMsCisJTUVfSERDUF9TUk1fVkVSSUZJQ0FUSU9OX0ZBSUxFRAkJPSAweDYwMDQsCisJTUVfSERD UF9TUk1fVkVSU0lPTl9UT09fT0xECQk9IDB4NjAwNSwKKwlNRV9IRENQX1JYX0NFUlRfVkVSSUZJ Q0FUSU9OX0ZBSUxFRAk9IDB4NjAwNiwKKwlNRV9IRENQX1JYX1JFVk9LRUQJCQk9IDB4NjAwNywK KwlNRV9IRENQX0hfVkVSSUZJQ0FUSU9OX0ZBSUxFRAkJPSAweDYwMDgsCisJTUVfSERDUF9SRVBF QVRFUl9DSEVDS19VTkVYUEVDVEVECT0gMHg2MDA5LAorCU1FX0hEQ1BfVE9QT0xPR1lfTUFYX0VY Q0VFREVECQk9IDB4NjAwQSwKKwlNRV9IRENQX1ZfVkVSSUZJQ0FUSU9OX0ZBSUxFRAkJPSAweDYw MEIsCisJTUVfSERDUF9MX1ZFUklGSUNBVElPTl9GQUlMRUQJCT0gMHg2MDBDLAorCU1FX0hEQ1Bf U1RSRUFNX0tFWV9BTExPQ19GQUlMRUQJCT0gMHg2MDBELAorCU1FX0hEQ1BfQkFTRV9LRVlfUkVT RVRfRkFJTEVECQk9IDB4NjAwRSwKKwlNRV9IRENQX05PTkNFX0dFTkVSQVRJT05fRkFJTEVECQk9 IDB4NjAwRiwKKwlNRV9IRENQX1NUQVRVU19JTlZBTElEX0VfS0VZX1NUQVRFCT0gMHg2MDEwLAor CU1FX0hEQ1BfU1RBVFVTX0lOVkFMSURfQ1NfSUNWCQk9IDB4NjAxMSwKKwlNRV9IRENQX1NUQVRV U19JTlZBTElEX0tCX0tFWV9TVEFURQk9IDB4NjAxMiwKKwlNRV9IRENQX1NUQVRVU19JTlZBTElE X1BBVlBfTU9ERV9JQ1YJPSAweDYwMTMsCisJTUVfSERDUF9TVEFUVVNfSU5WQUxJRF9QQVZQX01P REUJPSAweDYwMTQsCisJTUVfSERDUF9TVEFUVVNfTENfTUFYX0FUVEVNUFRTCQk9IDB4NjAxNSwK KworCS8qIE5ldyBzdGF0dXMgZm9yIEhEQ1AgMi4xICovCisJTUVfSERDUF9TVEFUVVNfTUlTTUFU Q0hfSU5fTQkJPSAweDYwMTYsCisKKwkvKiBOZXcgc3RhdHVzIGNvZGUgZm9yIEhEQ1AgMi4yIFJ4 ICovCisJTUVfSERDUF9TVEFUVVNfUlhfUFJPVl9OT1RfQUxMT1dFRAk9IDB4NjAxNywKKwlNRV9I RENQX1NUQVRVU19SWF9QUk9WX1dST05HX1NVQkpFQ1QJPSAweDYwMTgsCisJTUVfSERDUF9SWF9O RUVEU19QUk9WSVNJT05JTkcJCT0gMHg2MDE5LAorCU1FX0hEQ1BfQktTVl9JQ1ZfQVVUSF9GQUlM RUQJCT0gMHg2MDIwLAorCU1FX0hEQ1BfU1RBVFVTX0lOVkFMSURfU1RSRUFNX0lECT0gMHg2MDIx LAorCU1FX0hEQ1BfU1RBVFVTX0NIQUlOX05PVF9JTklUSUFMSVpFRAk9IDB4NjAyMiwKKwlNRV9I RENQX0ZBSUxfTk9UX0VYUEVDVEVECQk9IDB4NjAyMywKKwlNRV9IRENQX0ZBSUxfSERDUF9PRkYJ CQk9IDB4NjAyNCwKKwlNRV9IRENQX0ZBSUxfSU5WQUxJRF9QQVZQX01FTU9SWV9NT0RFCT0gMHg2 MDI1LAorCU1FX0hEQ1BfRkFJTF9BRVNfRUNCX0ZBSUxVUkUJCT0gMHg2MDI2LAorCU1FX0hEQ1Bf RkVBVFVSRV9OT1RfU1VQUE9SVEVECQk9IDB4NjAyNywKKwlNRV9IRENQX0RNQV9SRUFEX0VSUk9S CQkJPSAweDYwMjgsCisJTUVfSERDUF9ETUFfV1JJVEVfRVJST1IJCQk9IDB4NjAyOSwKKwlNRV9I RENQX0ZBSUxfSU5WQUxJRF9QQUNLRVRfU0laRQk9IDB4NjAzMCwKKwlNRV9IRENQX0gyNjRfUEFS U0lOR19FUlJPUgkJPSAweDYwMzEsCisJTUVfSERDUF9IRENQMl9FUlJBVEFfVklERU9fVklPTEFU SU9OCT0gMHg2MDMyLAorCU1FX0hEQ1BfSERDUDJfRVJSQVRBX0FVRElPX1ZJT0xBVElPTgk9IDB4 NjAzMywKKwlNRV9IRENQX1RYX0FDVElWRV9FUlJPUgkJCT0gMHg2MDM0LAorCU1FX0hEQ1BfTU9E RV9DSEFOR0VfRVJST1IJCT0gMHg2MDM1LAorCU1FX0hEQ1BfU1RSRUFNX1RZUEVfRVJST1IJCT0g MHg2MDM2LAorCU1FX0hEQ1BfU1RSRUFNX01BTkFHRV9OT1RfUE9TU0lCTEUJPSAweDYwMzcsCisK KwlNRV9IRENQX1NUQVRVU19QT1JUX0lOVkFMSURfQ09NTUFORAk9IDB4NjAzOCwKKwlNRV9IRENQ X1NUQVRVU19VTlNVUFBPUlRFRF9QUk9UT0NPTAk9IDB4NjAzOSwKKwlNRV9IRENQX1NUQVRVU19J TlZBTElEX1BPUlRfSU5ERVgJPSAweDYwM2EsCisJTUVfSERDUF9TVEFUVVNfVFhfQVVUSF9ORUVE RUQJCT0gMHg2MDNiLAorCU1FX0hEQ1BfU1RBVFVTX05PVF9JTlRFR1JBVEVEX1BPUlQJPSAweDYw M2MsCisJTUVfSERDUF9TVEFUVVNfU0VTU0lPTl9NQVhfUkVBQ0hFRAk9IDB4NjAzZCwKKworCS8q IGhkY3AgY2FwYWJsZSBiaXQgaXMgbm90IHNldCBpbiByeF9jYXBzKGVycm9yIGlzIHVuaXF1ZSB0 byBEUCkgKi8KKwlNRV9IRENQX1NUQVRVU19OT1RfSERDUF9DQVBBQkxFCQk9IDB4NjA0MSwKKwor CU1FX0hEQ1BfU1RBVFVTX0lOVkFMSURfU1RSRUFNX0NPVU5UCT0gMHg2MDQyLAorfTsKKworI2Rl ZmluZSBIRENQX0FQSV9WRVJTSU9OCQkJCTB4MDAwMTAwMDAKKworI2RlZmluZSBIRENQX01fTEVO CQkJCQkxNgorI2RlZmluZSBIRENQX0tIX0xFTgkJCQkJMTYKKworLyoKKyAqIFBheWxvYWQgQnVm ZmVyIHNpemUoRXhjbHVkaW5nIEhlYWRlcikgZm9yIGVhY2ggQ01EIGFuZCBjb3JyZXNwb25kaW5n IHJlc3BvbnNlCisgKi8KKy8qIFdpcmVkX1R4X0FLRSAgKi8KKyNkZWZpbmUJV0lSRURfQ01EX0JV Rl9MRU5fSU5JVElBVEVfSERDUDJfU0VTU0lPTl9JTgkoNCArIDEpCisjZGVmaW5lCVdJUkVEX0NN RF9CVUZfTEVOX0lOSVRJQVRFX0hEQ1AyX1NFU1NJT05fT1VUCSg0ICsgOCArIDMpCisKKyNkZWZp bmUJV0lSRURfQ01EX0JVRl9MRU5fVkVSSUZZX1JFQ0VJVkVSX0NFUlRfSU4JKDQgKyA1MjIgKyA4 ICsgMykKKyNkZWZpbmUJV0lSRURfQ01EX0JVRl9MRU5fVkVSSUZZX1JFQ0VJVkVSX0NFUlRfTUlO X09VVAkoNCArIDEgKyAzICsgMTYgKyAxNikKKyNkZWZpbmUJV0lSRURfQ01EX0JVRl9MRU5fVkVS SUZZX1JFQ0VJVkVSX0NFUlRfTUFYX09VVAkoNCArIDEgKyAzICsgMTI4KQorCisjZGVmaW5lCVdJ UkVEX0NNRF9CVUZfTEVOX0FLRV9TRU5EX0hQUklNRV9JTgkJKDQgKyAzMikKKyNkZWZpbmUJV0lS RURfQ01EX0JVRl9MRU5fQUtFX1NFTkRfSFBSSU1FX09VVAkJKDQpCisKKyNkZWZpbmUJV0lSRURf Q01EX0JVRl9MRU5fU0VORF9QQUlSSU5HX0lORk9fSU4JCSg0ICsgMTYpCisjZGVmaW5lCVdJUkVE X0NNRF9CVUZfTEVOX1NFTkRfUEFJUklOR19JTkZPX09VVAkJKDQpCisKKyNkZWZpbmUJV0lSRURf Q01EX0JVRl9MRU5fQ0xPU0VfU0VTU0lPTl9JTgkJKDQpCisjZGVmaW5lCVdJUkVEX0NNRF9CVUZf TEVOX0NMT1NFX1NFU1NJT05fT1VUCQkoNCkKKworLyogV2lyZWRfVHhfTEMgKi8KKyNkZWZpbmUJ V0lSRURfQ01EX0JVRl9MRU5fSU5JVF9MT0NBTElUWV9DSEVDS19JTgkoNCkKKyNkZWZpbmUJV0lS RURfQ01EX0JVRl9MRU5fSU5JVF9MT0NBTElUWV9DSEVDS19PVVQJKDQgKyA4KQorCisjZGVmaW5l CVdJUkVEX0NNRF9CVUZfTEVOX1ZBTElEQVRFX0xPQ0FMSVRZX0lOCQkoNCArIDMyKQorI2RlZmlu ZQlXSVJFRF9DTURfQlVGX0xFTl9WQUxJREFURV9MT0NBTElUWV9PVVQJCSg0KQorCisvKiBXaXJl ZF9UeF9TS0UgKi8KKyNkZWZpbmUJV0lSRURfQ01EX0JVRl9MRU5fR0VUX1NFU1NJT05fS0VZX0lO CQkoNCkKKyNkZWZpbmUJV0lSRURfQ01EX0JVRl9MRU5fR0VUX1NFU1NJT05fS0VZX09VVAkJKDQg KyAxNiArIDgpCisKKy8qIFdpcmVkX1R4X1NLRSAqLworI2RlZmluZQlXSVJFRF9DTURfQlVGX0xF Tl9FTkFCTEVfQVVUSF9JTgkJKDQgKyAxKQorI2RlZmluZQlXSVJFRF9DTURfQlVGX0xFTl9FTkFC TEVfQVVUSF9PVVQJCSg0KQorCisvKiBXaXJlZF9UeF9SZXBlYXRlciAqLworI2RlZmluZQlXSVJF RF9DTURfQlVGX0xFTl9WRVJJRllfUkVQRUFURVJfSU4JCSg0ICsgMiArIDMgKyAxNiArIDE1NSkK KyNkZWZpbmUJV0lSRURfQ01EX0JVRl9MRU5fVkVSSUZZX1JFUEVBVEVSX09VVAkJKDQgKyAxICsg MTYpCisKKyNkZWZpbmUJV0lSRURfQ01EX0JVRl9MRU5fUkVQRUFURVJfQVVUSF9TVFJFQU1fUkVR X01JTl9JTgkoNCArIDMgKyBcCisJCQkJCQkJCTMyICsgMiArIDIpCisKKyNkZWZpbmUJV0lSRURf Q01EX0JVRl9MRU5fUkVQRUFURVJfQVVUSF9TVFJFQU1fUkVRX09VVAkJKDQpCisKKworLyoqCisg KiBAZW51bSBoZGNwX2NvbW1hbmRfaWQgRW51bWVyYXRpb24gb2YgYWxsIFdJUkVEIEhEQ1AgQ29t bWFuZCBJRHMKKyAqLworZW51bSBoZGNwX2NvbW1hbmRfaWQgeworCV9XSURJX0NPTU1BTkRfQkFT RQkJPSAweDAwMDMwMDAwLAorCVdJRElfSU5JVElBVEVfSERDUDJfU0VTU0lPTgk9IF9XSURJX0NP TU1BTkRfQkFTRSwKKwlIRENQX0dFVF9TUk1fU1RBVFVTLAorCUhEQ1BfU0VORF9TUk1fRlJBR01F TlQsCisKKwkvKiBUaGUgd2lyZWQgSERDUCBUeCBjb21tYW5kcyAqLworCV9XSVJFRF9DT01NQU5E X0JBU0UJCT0gMHgwMDAzMTAwMCwKKwlXSVJFRF9JTklUSUFURV9IRENQMl9TRVNTSU9OCT0gX1dJ UkVEX0NPTU1BTkRfQkFTRSwKKwlXSVJFRF9WRVJJRllfUkVDRUlWRVJfQ0VSVCwKKwlXSVJFRF9B S0VfU0VORF9IUFJJTUUsCisJV0lSRURfQUtFX1NFTkRfUEFJUklOR19JTkZPLAorCVdJUkVEX0lO SVRfTE9DQUxJVFlfQ0hFQ0ssCisJV0lSRURfVkFMSURBVEVfTE9DQUxJVFksCisJV0lSRURfR0VU X1NFU1NJT05fS0VZLAorCVdJUkVEX0VOQUJMRV9BVVRILAorCVdJUkVEX1ZFUklGWV9SRVBFQVRF UiwKKwlXSVJFRF9SRVBFQVRFUl9BVVRIX1NUUkVBTV9SRVEsCisJV0lSRURfQ0xPU0VfU0VTU0lP TiwKKworCV9XSVJFRF9DT01NQU5EU19DT1VOVCwKK307CisKK3VuaW9uIGVuY3J5cHRlZF9idWZm IHsKKwl1aW50OF90CQllX2twdWJfa21bSERDUF9FX0tQVUJfS01fTEVOXTsKKwl1aW50OF90CQll X2toX2ttX21bSERDUF9FX0tIX0tNX01fTEVOXTsKKwlzdHJ1Y3QgeworCQl1aW50OF90IGVfa2hf a21bSERDUF9LSF9MRU5dOworCQl1aW50OF90IG1bSERDUF9NX0xFTl07CisJfSBfX3BhY2tlZDsK K307CisKKy8qKgorICogQGJyaWVmIEhEQ1AgSEVDSSBtZXNzYWdlIGhlYWRlci4KKyAqIEBub3Rl IEFsbCBoZWFkZXIgdmFsdWVzIGFyZSBsaXR0bGUgZW5kaWFuLgorICovCitzdHJ1Y3QgaGRjcF9j bWRfaGVhZGVyIHsKKwl1aW50MzJfdAlhcGlfdmVyc2lvbjsKKwl1aW50MzJfdAljb21tYW5kX2lk OworCWVudW0gbWVfc3RhdHVzCXN0YXR1czsKKwkvKiBMZW5ndGggb2YgdGhlIEhFQ0kgbWVzc2Fn ZSAoZXhjbHVkaW5nIHRoZSBoZWFkZXIpICovCisJdWludDMyX3QJYnVmZmVyX2xlbjsKK30gX19w YWNrZWQ7CisKKy8qIEBicmllZiBFbXB0eSBjb21tYW5kIHJlcXVlc3Qgb3IgcmVzcG9uc2UuIE5v IGRhdGEgZm9sbG93cyB0aGUgaGVhZGVyLiAqLworc3RydWN0IGhkY3BfY21kX25vX2RhdGEgewor CXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIgaGVhZGVyOworfSBfX3BhY2tlZDsKKworLyoKKyAqIEBi cmllZiBVbmlxdWVseSBpZGVudGlmaWVzIHRoZSBoZGNwIHBvcnQgYmVpbmcKKyAqIGFkZHJlc3Nl ZCBmb3IgYSBnaXZlbiBjb21tYW5kLgorICovCitzdHJ1Y3QgaGRjcF9wb3J0X2lkIHsKKwl1aW50 OF90CQlpbnRlZ3JhdGVkX3BvcnRfdHlwZTsKKwl1aW50OF90CQlwaHlzaWNhbF9wb3J0OworCXVp bnQxNl90CXJlc2VydmVkOworfSBfX3BhY2tlZDsKKworCisvKiogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIERhdGEgc3Ry dWN0dXJlcyBmb3IgaW50ZWdyYXRlZCB3aXJlZCBIRENQMiBUeCBpbgorICogc3VwcG9ydCBvZiB0 aGUgQUtFIHByb3RvY29sCisgKi8KKworLyoqCisgKiBIRUNJIEludGVncmF0ZWQgd2lyZWQgSERD UCBUeCBzZXNzaW9uIGluaXRpYXRpb24gY29tbWFuZAorICoKKyAqIFRoZSBjb21tYW5kIGJlbG93 IGlzIGluIHN1cHBvcnQgb2YgSW5pdGlhdGluZyBhbiBpbnRlZ3JhdGVkCisgKiB3aXJlZCBIRENQ IFR4IHNlc3Npb24uCisgKgljb21tYW5kIElEOiBXSVJFRF9JTklUSUFURV9IRENQMl9TRVNTSU9O CisgKgorICogQ29ycmVzcG9uZHMgdG8gdGhlIEFLRV9Jbml0IGZyb20gdGhlIEhEQ1AgRFAsIEhE TUkgc3BlY3MuCisgKgorICogcmV0dXJuOgorICoJSERDUF9TVEFUVVNfU1VDQ0VTUyAtIENvbW1h bmQgY29tcGxldGVkIGNvcnJlY3RseS4KKyAqCUhEQ1BfSU5WQUxJRF9TRVNTSU9OX1NUQVRFIC0g VGhpcyBjb21tYW5kIGNhbiBub3QgYmUgY2FsbGVkCisgKgkJCQkJZHVyaW5nIGFuIGFjdGl2ZSBz ZXNzaW9uLgorICoJQSBjYWxsIHRvIFdJUkVEX0NNRF9DTE9TRV9TRVNTSU9OX0lOIG11c3QgYmUg bWFkZSB0byBkZXN0cm95CisgKglhbiBvbGQgSERDUCBUeCBzZXNzaW9uLgorICovCisKKy8qKgor ICogSEVDSSBJbnB1dCBzdHJ1Y3QgZm9yIGludGVncmF0ZWQgd2lyZWQgSERDUCBUeCBzZXNzaW9u IGluaXRpYXRpb24uCisgKi8KK3N0cnVjdCB3aXJlZF9jbWRfaW5pdGlhdGVfaGRjcDJfc2Vzc2lv bl9pbiB7CisJc3RydWN0IGhkY3BfY21kX2hlYWRlcgloZWFkZXI7CisJc3RydWN0IGhkY3BfcG9y dF9pZAlwb3J0OworCXVpbnQ4X3QJCQlwcm90b2NvbDsgLyogZm9yIEhETUkgdnMgRFAgKi8KK30g X19wYWNrZWQ7CisKK3N0cnVjdCB3aXJlZF9jbWRfaW5pdGlhdGVfaGRjcDJfc2Vzc2lvbl9vdXQg eworCXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIJaGVhZGVyOworCXN0cnVjdCBoZGNwX3BvcnRfaWQJ cG9ydDsKKwl1aW50OF90CQkJcl90eFtIRENQX1JUWF9MRU5dOworCXN0cnVjdCBoZGNwMl90eF9j YXBzCXR4X2NhcHM7Cit9IF9fcGFja2VkOworCisvKioKKyAqIEhFQ0kgSW50ZWdyYXRlZCB3aXJl ZCBIRENQIFR4LCBjbG9zZSBzZXNzaW9uIGNvbW1hbmQKKyAqCisgKiBUaGUgY29tbWFuZCBiZWxv dyBpcyBpbiBzdXBwb3J0IG9mIGVuZGluZyBhbiBpbnRlZ3JhdGVkCisgKiB3aXJlZCBIRENQIFR4 IHNlc3Npb24uCisgKgljb21tYW5kIElEOiBXSVJFRF9DTE9TRV9TRVNTSU9OCisgKgorICogcmV0 dXJuOgorICoJSERDUF9TVEFUVVNfU1VDQ0VTUyAtIENvbW1hbmQgY29tcGxldGVkIGNvcnJlY3Rs eS4KKyAqLworCisvKioKKyAqIEhFQ0kgc3RydWN0IGZvciBlbmRpbmcgYW4gaW50ZWdyYXRlZCB3 aXJlZCBIRENQIFR4IHNlc3Npb24uCisgKi8KK3N0cnVjdCB3aXJlZF9jbWRfY2xvc2Vfc2Vzc2lv bl9pbiB7CisJc3RydWN0IGhkY3BfY21kX2hlYWRlcgloZWFkZXI7CisJc3RydWN0IGhkY3BfcG9y dF9pZAlwb3J0OworfSBfX3BhY2tlZDsKKworc3RydWN0IHdpcmVkX2NtZF9jbG9zZV9zZXNzaW9u X291dCB7CisJc3RydWN0IGhkY3BfY21kX2hlYWRlcgloZWFkZXI7CisJc3RydWN0IGhkY3BfcG9y dF9pZAlwb3J0OworfSBfX3BhY2tlZDsKKworLyoqCisgKiBIRUNJIEludGVncmF0ZWQgd2lyZWQg SERDUCBUeCB2ZXJpZnkgcmVjZWl2ZXIgY2VydGlmaWNhdGVzIGNvbW1hbmQKKyAqCisgKiBUaGUg Y29tbWFuZCBiZWxvdyBpcyBpbiBzdXBwb3J0IG9mIHZlcmlmeWluZyBhIFJ4IGluIGFuCisgKiBp bnRlZ3JhdGVkIHdpcmVkIEhEQ1AgVHggc2Vzc2lvbi4KKyAqCWNvbW1hbmQgSUQ6IFdJUkVEX1ZF UklGWV9SRUNFSVZFUl9DRVJUCisgKgorICogQ29ycmVzcG9uZHMgdG8gdGhlIEFLRV9TZW5kX0Nl cnQgZnJvbSB0aGUgSERDUCBEUCwgSERNSSBzcGVjcy4KKyAqIHJldHVybjoKKyAqCUhEQ1BfU1RB VFVTX1NVQ0NFU1MgLSBDb21tYW5kIGNvbXBsZXRlZCBjb3JyZWN0bHkuCisgKi8KKworLyoqCisg KiBIRUNJIElucHV0IHN0cnVjdCBmb3IgaW50ZWdyYXRlZCB3aXJlZCBIRENQIFR4IFJ4IHZlcmlm aWNhdGlvbi4KKyAqLworc3RydWN0IHdpcmVkX2NtZF92ZXJpZnlfcmVjZWl2ZXJfY2VydF9pbiB7 CisJc3RydWN0IGhkY3BfY21kX2hlYWRlcgloZWFkZXI7CisJc3RydWN0IGhkY3BfcG9ydF9pZAlw b3J0OworCXN0cnVjdCBoZGNwMl9jZXJ0X3J4CWNlcnRfcng7CisJdWludDhfdAkJCXJfcnhbSERD UF9SUlhfTEVOXTsKKwl1bmlvbiBoZGNwMl9yeF9jYXBzCQlyeF9jYXBzOworfSBfX3BhY2tlZDsK Kworc3RydWN0IHdpcmVkX2NtZF92ZXJpZnlfcmVjZWl2ZXJfY2VydF9vdXQgeworCXN0cnVjdCBo ZGNwX2NtZF9oZWFkZXIJaGVhZGVyOworCXN0cnVjdCBoZGNwX3BvcnRfaWQJcG9ydDsKKwl1aW50 OF90CQkJa21fc3RvcmVkOworCXVpbnQ4X3QJCQlyZXNlcnZlZFszXTsKKwl1bmlvbiBlbmNyeXB0 ZWRfYnVmZgkJZWttX2J1ZmY7Cit9IF9fcGFja2VkOworCisvKioKKyAqIEhFQ0kgSW50ZWdyYXRl ZCB3aXJlZCBIRENQIFR4LCB2ZXJpZnkgUngncyBIcHJpbWUgY29tbWFuZAorICoKKyAqIFRoZSBj b21tYW5kIGJlbG93IGlzIGluIHN1cHBvcnQgb2YgdmVyaWZ5aW5nIGFuIEhwcmltZSB2YWx1ZQor ICogZ2VuZXJhdGVkIGJ5IHRoZSBSeCBpbiBhbiBpbnRlZ3JhdGVkIHdpcmVkIEhEQ1AgVHggc2Vz c2lvbi4KKyAqCWNvbW1hbmQgSUQ6IFdJUkVEX0FLRV9TRU5EX0hQUklNRQorICoKKyAqIENvcnJl c3BvbmRzIHRvIHRoZSBBS0VfU2VuZF9IX3ByaW1lIG1lc3NhZ2UgZnJvbSB0aGUgSERDUCBEUCwg SERNSSBzcGVjcy4KKyAqCisgKiByZXR1cm46CisgKglIRENQX1NUQVRVU19TVUNDRVNTIC0gQ29t bWFuZCBjb21wbGV0ZWQgY29ycmVjdGx5LgorICovCisKKy8qKgorICogSEVDSSBzdHJ1Y3QgZm9y IHZlcmlmaWNhdGlvbiBvZiBSeCdzIEhwcmltZSBpbiBhIEhEQ1AgVHggc2Vzc2lvbgorICovCitz dHJ1Y3Qgd2lyZWRfY21kX2FrZV9zZW5kX2hwcmltZV9pbiB7CisJc3RydWN0IGhkY3BfY21kX2hl YWRlcgloZWFkZXI7CisJc3RydWN0IGhkY3BfcG9ydF9pZAlwb3J0OworCXVpbnQ4X3QJCQloX3By aW1lW0hEQ1BfSF9QUklNRV9MRU5dOworfSBfX3BhY2tlZDsKKworc3RydWN0IHdpcmVkX2NtZF9h a2Vfc2VuZF9ocHJpbWVfb3V0IHsKKwlzdHJ1Y3QgaGRjcF9jbWRfaGVhZGVyCWhlYWRlcjsKKwlz dHJ1Y3QgaGRjcF9wb3J0X2lkCXBvcnQ7Cit9IF9fcGFja2VkOworCisvKioKKyAqIEhFQ0kgSW50 ZWdyYXRlZCB3aXJlZCBIRENQIFR4LCBzZW5kIEFLRSBwYWlyaW5nIGRhdGEgY29tbWFuZAorICoK KyAqIFRoZSBjb21tYW5kIGJlbG93IGlzIGluIHN1cHBvcnQgb2Ygc2VuZGluZyBpbiBBS0UgcGFp cmluZyBkYXRhIGdlbmVyYXRlZAorICogYnkgdGhlIFJ4IGluIGFuIGludGVncmF0ZWQgd2lyZWQg SERDUCBUeCBzZXNzaW9uLgorICoJY29tbWFuZCBJRDogV0lSRURfQUtFX1NFTkRfUEFJUklOR19J TkZPCisgKgorICogQ29ycmVzcG9uZHMgdG8gdGhlIEFLRV9TZW5kX0hfcHJpbWUgbWVzc2FnZSBm cm9tIHRoZSBIRENQIERQLCBIRE1JIHNwZWNzLgorICoKKyAqIHJldHVybjoKKyAqCUhEQ1BfU1RB VFVTX1NVQ0NFU1MgLSBDb21tYW5kIGNvbXBsZXRlZCBjb3JyZWN0bHkuCisgKi8KKworLyoqCisg KiBIRUNJIHN0cnVjdCBmb3Igc2VuZGluZyBpbiBBS0UgcGFpcmluZyBkYXRhIGdlbmVyYXRlZCBi eSB0aGUgUnggaW4gYW4KKyAqIGludGVncmF0ZWQgd2lyZWQgSERDUCBUeCBzZXNzaW9uLgorICov CitzdHJ1Y3Qgd2lyZWRfY21kX2FrZV9zZW5kX3BhaXJpbmdfaW5mb19pbiB7CisJc3RydWN0IGhk Y3BfY21kX2hlYWRlcgloZWFkZXI7CisJc3RydWN0IGhkY3BfcG9ydF9pZAlwb3J0OworCXVpbnQ4 X3QJCQllX2toX2ttW0hEQ1BfRV9LSF9LTV9MRU5dOworfSBfX3BhY2tlZDsKKworc3RydWN0IHdp cmVkX2NtZF9ha2Vfc2VuZF9wYWlyaW5nX2luZm9fb3V0IHsKKwlzdHJ1Y3QgaGRjcF9jbWRfaGVh ZGVyCWhlYWRlcjsKKwlzdHJ1Y3QgaGRjcF9wb3J0X2lkCXBvcnQ7Cit9IF9fcGFja2VkOworCisK Ky8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICogRGF0YSBzdHJ1Y3R1cmVzIGZvciBpbnRlZ3JhdGVkIHdpcmVkIEhEQ1Ay IFR4IGluIHN1cHBvcnQgb2YgdGhlIExDIHByb3RvY29sCisgKi8KKworLyoqCisgKiBIRUNJIElu dGVncmF0ZWQgd2lyZWQgSERDUCBUeCwgaW5pdGlhdGUgbG9jYWxpdHkgY2hlY2sKKyAqCisgKiBU aGUgY29tbWFuZCBiZWxvdyBpcyBpbiBzdXBwb3J0IG9mIGluaXRpYXRpbmcgbG9jYWxpdHkgY2hl Y2sgd2l0aCBhbgorICogaW50ZWdyYXRlZCB3aXJlZCBIRENQIFR4IHNlc3Npb24uCisgKgljb21t YW5kIElEOiBXSVJFRF9JTklUX0xPQ0FMSVRZX0NIRUNLCisgKgorICogQ29ycmVzcG9uZHMgdG8g dGhlIExDX0luaXQgbWVzc2FnZSBmcm9tIHRoZSBIRENQIERQLCBIRE1JIHNwZWNzLgorICoKKyAq IHJldHVybjogSERDUF9TVEFUVVNfU1VDQ0VTUyAtIENvbW1hbmQgY29tcGxldGVkIGNvcnJlY3Rs eS4KKyAqLworCisvKioKKyAqIEhFQ0kgc3RydWN0IGZvciBpbml0aWF0aW5nIGxvY2FsaXR5IGNo ZWNrIHdpdGggYW4KKyAqIGludGVncmF0ZWQgd2lyZWQgSERDUCBUeCBzZXNzaW9uLgorICovCitz dHJ1Y3Qgd2lyZWRfY21kX2luaXRfbG9jYWxpdHlfY2hlY2tfaW4geworCXN0cnVjdCBoZGNwX2Nt ZF9oZWFkZXIJaGVhZGVyOworCXN0cnVjdCBoZGNwX3BvcnRfaWQJcG9ydDsKK30gX19wYWNrZWQ7 CisKK3N0cnVjdCB3aXJlZF9jbWRfaW5pdF9sb2NhbGl0eV9jaGVja19vdXQgeworCXN0cnVjdCBo ZGNwX2NtZF9oZWFkZXIJaGVhZGVyOworCXN0cnVjdCBoZGNwX3BvcnRfaWQJcG9ydDsKKwl1aW50 OF90CQkJcl9uW0hEQ1BfUk5fTEVOXTsKK30gX19wYWNrZWQ7CisKKy8qKgorICogSEVDSSBJbnRl Z3JhdGVkIHdpcmVkIEhEQ1AgVHgsIHZhbGlkYXRlIGxvY2FsaXR5IGNoZWNrCisgKgorICogVGhl IGNvbW1hbmQgYmVsb3cgaXMgaW4gc3VwcG9ydCBvZiB2YWxpZGF0aW5nIGFuIFJ4J3MgTFByaW1l IHZhbHVlCisgKiBpbiBhbiBpbnRlZ3JhdGVkIHdpcmVkIEhEQ1AgVHggc2Vzc2lvbi4KKyAqCWNv bW1hbmQgSUQ6IFdJUkVEX1ZBTElEQVRFX0xPQ0FMSVRZCisgKgorICogQ29ycmVzcG9uZHMgdG8g dGhlIExDX1NlbmRfTF9wcmltZSBtZXNzYWdlIGZyb20gdGhlIEhEQ1AgRFAsIEhETUkgc3BlY3Mu CisgKgorICogcmV0dXJuOiBIRENQX1NUQVRVU19TVUNDRVNTIC0gQ29tbWFuZCBjb21wbGV0ZWQg Y29ycmVjdGx5LgorICovCisKKy8qKgorICogSEVDSSBzdHJ1Y3QgZm9yIHZhbGlkYXRpbmcgYW4g UngncyBMUHJpbWUgdmFsdWUgaW4gYW4KKyAqIGludGVncmF0ZWQgd2lyZWQgSERDUCBUeCBzZXNz aW9uLgorICovCitzdHJ1Y3Qgd2lyZWRfY21kX3ZhbGlkYXRlX2xvY2FsaXR5X2luIHsKKwlzdHJ1 Y3QgaGRjcF9jbWRfaGVhZGVyCWhlYWRlcjsKKwlzdHJ1Y3QgaGRjcF9wb3J0X2lkCXBvcnQ7CisJ dWludDhfdAkJCWxfcHJpbWVbSERDUF9MX1BSSU1FX0xFTl07Cit9IF9fcGFja2VkOworCitzdHJ1 Y3Qgd2lyZWRfY21kX3ZhbGlkYXRlX2xvY2FsaXR5X291dCB7CisJc3RydWN0IGhkY3BfY21kX2hl YWRlcgloZWFkZXI7CisJc3RydWN0IGhkY3BfcG9ydF9pZAlwb3J0OworfSBfX3BhY2tlZDsKKwor LyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKiBEYXRhIHN0cnVjdHVyZXMgZm9yIGludGVncmF0ZWQgd2lyZWQgSERDUDIg VHggaW4gc3VwcG9ydCBvZiB0aGUgU0tFIHByb3RvY29sCisgKi8KKworLyoqCisgKiBIRUNJIElu dGVncmF0ZWQgd2lyZWQgSERDUCBUeCwgY3JlYXRlIHNlc3Npb24ga2V5IGNvbW1hbmQKKyAqCisg KiBUaGUgY29tbWFuZCBiZWxvdyBpcyBpbiBzdXBwb3J0IGdlbmVyYXRpbmcgdGhlIHNlc3Npb24g a2V5CisgKiBpbiBhbiBpbnRlZ3JhdGVkIHdpcmVkIEhEQ1AgVHggc2Vzc2lvbi4KKyAqCWNvbW1h bmQgSUQ6IFdJUkVEX0dFVF9TRVNTSU9OX0tFWQorICoKKyAqIENvcnJlc3BvbmRzIHRvIHRoZSBT S0VfU2VuZF9Fa3MgbWVzc2FnZSBmcm9tIHRoZSBIRENQIERQLCBIRE1JIHNwZWNzLgorICoKKyAq IHJldHVybjogSERDUF9TVEFUVVNfU1VDQ0VTUyAtIENvbW1hbmQgY29tcGxldGVkIGNvcnJlY3Rs eS4KKyAqLworCisvKioKKyAqIEhFQ0kgc3RydWN0IGZvciBjcmVhdGUgc2Vzc2lvbiBrZXkgY29t bWFuZAorICovCitzdHJ1Y3Qgd2lyZWRfY21kX2dldF9zZXNzaW9uX2tleV9pbiB7CisJc3RydWN0 IGhkY3BfY21kX2hlYWRlcgloZWFkZXI7CisJc3RydWN0IGhkY3BfcG9ydF9pZAlwb3J0OworfSBf X3BhY2tlZDsKKworc3RydWN0IHdpcmVkX2NtZF9nZXRfc2Vzc2lvbl9rZXlfb3V0IHsKKwlzdHJ1 Y3QgaGRjcF9jbWRfaGVhZGVyCWhlYWRlcjsKKwlzdHJ1Y3QgaGRjcF9wb3J0X2lkCXBvcnQ7CisJ dWludDhfdAkJZV9ka2V5X2tzW0hEQ1BfRV9ES0VZX0tTX0xFTl07CisJdWludDhfdAkJcl9pdltI RENQX1JJVl9MRU5dOworfSBfX3BhY2tlZDsKKworLyoqCisgKiBIRUNJIEludGVncmF0ZWQgd2ly ZWQgSERDUCBUeCwgZW5hYmxlIGF1dGhlbnRpY2F0aW9uIGNvbW1hbmQKKyAqCisgKiBUaGUgY29t bWFuZCBiZWxvdyBpcyBpbiBzdXBwb3J0IG9mIGFzc2lnbmluZyB0eXBlIDAsIHR5cGUgMQorICog dmFsdWVzIHRvIGEgbm9uLXJlcGVhdGVyIGRvd25zdHJlYW0gVHggcG9ydCBhbmQgbWFya2luZyBB dXRoZW50aWNhdGlvbgorICogY29tcGxldGUKKyAqCWNvbW1hbmQgSUQ6IFdJUkVEX0VOQUJMRV9B VVRICisgKgorICogcmV0dXJuOiBIRENQX1NUQVRVU19TVUNDRVNTIC0gQ29tbWFuZCBjb21wbGV0 ZWQgY29ycmVjdGx5LgorICovCisKKy8qKgorICogSEVDSSBzdHJ1Y3QgZm9yIHRoZSBUeCBlbmFi bGUgYXV0aGVudGljYXRpb24gY29tbWFuZAorICovCitzdHJ1Y3Qgd2lyZWRfY21kX2VuYWJsZV9h dXRoX2luIHsKKwlzdHJ1Y3QgaGRjcF9jbWRfaGVhZGVyCWhlYWRlcjsKKwlzdHJ1Y3QgaGRjcF9w b3J0X2lkCXBvcnQ7CisJdWludDhfdAkJc3RyZWFtX3R5cGU7Cit9IF9fcGFja2VkOworCitzdHJ1 Y3Qgd2lyZWRfY21kX2VuYWJsZV9hdXRoX291dCB7CisJc3RydWN0IGhkY3BfY21kX2hlYWRlcglo ZWFkZXI7CisJc3RydWN0IGhkY3BfcG9ydF9pZAlwb3J0OworfSBfX3BhY2tlZDsKKworLyoqIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKiBEYXRhIHN0cnVjdHVyZXMgZm9yIGludGVncmF0ZWQgd2lyZWQgSERDUDIgVHggaW4g c3VwcG9ydCBvZgorICogdGhlIHJlcGVhdGVyIHByb3RvY29scworICovCisKKy8qKgorICogSEVD SSBJbnRlZ3JhdGVkIHdpcmVkIEhEQ1AgVHgsIHZlcmlmeSBkb3duc3RyZWFtIHRvcG9sb2d5IGNv bW1hbmQKKyAqCisgKiBUaGUgY29tbWFuZCBiZWxvdyBpcyBpbiBzdXBwb3J0IHZlcmlmeWluZyB0 aGUgZG93bnN0cmVhbSByZXBlYXRlcidzCisgKiBIRENQIHRvcG9sb2d5IGluIGFuIGludGVncmF0 ZWQgd2lyZWQgSERDUCBUeCBzZXNzaW9uLgorICoJY29tbWFuZCBJRDogV0lSRURfVkVSSUZZX1JF UEVBVEVSCisgKgorICogQ29ycmVzcG9uZHMgdG8gdGhlIFJlcGVhdGVyQXV0aF9TZW5kX1JlY2Vp dmVySWRfTGlzdCBtZXNzYWdlCisgKiBmcm9tIHRoZSBIRENQIERQLCBIRE1JIHNwZWNzLgorICoK KyAqIHJldHVybjogSERDUF9TVEFUVVNfU1VDQ0VTUyAtIENvbW1hbmQgY29tcGxldGVkIGNvcnJl Y3RseS4KKyAqLworCisvKioKKyAqIEhFQ0kgc3RydWN0IGZvciB2ZXJpZnlpbmcgdGhlIGRvd25z dHJlYW0gcmVwZWF0ZXIncyBIRENQIHRvcG9sb2d5IGluIGFuCisgKiBpbnRlZ3JhdGVkIHdpcmVk IEhEQ1AgVHggc2Vzc2lvbi4KKyAqLworc3RydWN0IHdpcmVkX2NtZF92ZXJpZnlfcmVwZWF0ZXJf aW4geworCXN0cnVjdCBoZGNwX2NtZF9oZWFkZXIJaGVhZGVyOworCXN0cnVjdCBoZGNwX3BvcnRf aWQJcG9ydDsKKwl1bmlvbiBoZGNwMl9yeF9pbmZvCQlyeF9pbmZvOworCXVpbnQ4X3QJCQlzZXFf bnVtX3ZbSERDUF9TRVFfTlVNX0xFTl07CisJdWludDhfdAkJCXZfcHJpbWVbSERDUF9MUFJJTUVf SEFMRl9TSVpFXTsKKwl1aW50OF90CQkJcmVjZWl2ZXJfaWRzW0hEQ1BfUkVDRUlWRVJfSURTX01B WF9MRU5dOworfSBfX3BhY2tlZDsKKworc3RydWN0IHdpcmVkX2NtZF92ZXJpZnlfcmVwZWF0ZXJf b3V0IHsKKwlzdHJ1Y3QgaGRjcF9jbWRfaGVhZGVyCWhlYWRlcjsKKwlzdHJ1Y3QgaGRjcF9wb3J0 X2lkCXBvcnQ7CisJdWludDhfdAkJCWNvbnRlbnRfdHlwZV9zdXBwb3J0ZWQ7CisJdWludDhfdAkJ CXZbSERDUF9MUFJJTUVfSEFMRl9TSVpFXTsKK30gX19wYWNrZWQ7CisKKy8qKgorICogSEVDSSBJ bnRlZ3JhdGVkIHdpcmVkIEhEQ1AgVHgsIHN0cmVhbSBtYW5hZ2VtZW50IGNvbW1hbmQKKyAqCisg KiBUaGUgY29tbWFuZCBiZWxvdyBpcyBpbiBzdXBwb3J0IG9mIHN0cmVhbSBtYW5hZ2VtZW50IGlu IGFuCisgKiBpbnRlZ3JhdGVkIHdpcmVkIEhEQ1AgVHggc2Vzc2lvbi4KKyAqCWNvbW1hbmQgSUQ6 IFdJUkVEX1JFUEVBVEVSX0FVVEhfU1RSRUFNX1JFUQorICoKKyAqIENvcnJlc3BvbmRzIHRvIHRo ZSBSZXBlYXRlckF1dGhfU3RyZWFtX1JlYWR5IG1lc3NhZ2UgZnJvbQorICogdGhlIEhEQ1AgRFAs IEhETUkgc3BlY3MuCisgKgorICogcmV0dXJuOiBIRENQX1NUQVRVU19TVUNDRVNTIC0gQ29tbWFu ZCBjb21wbGV0ZWQgY29ycmVjdGx5LgorICovCisKKy8qKgorICogSEVDSSBzdHJ1Y3QgaW4gc3Vw cG9ydCBvZiBzdHJlYW0gbWFuYWdlbWVudCBpbiBhbgorICogaW50ZWdyYXRlZCB3aXJlZCBIRENQ IFR4IHNlc3Npb24uCisgKi8KK3N0cnVjdCB3aXJlZF9jbWRfcmVwZWF0ZXJfYXV0aF9zdHJlYW1f cmVxX2luIHsKKwlzdHJ1Y3QgaGRjcF9jbWRfaGVhZGVyCWhlYWRlcjsKKwlzdHJ1Y3QgaGRjcF9w b3J0X2lkCXBvcnQ7CisJdWludDhfdAkJCXNlcV9udW1fbVtIRENQX1NFUV9OVU1fTEVOXTsKKwl1 aW50OF90CQkJbV9wcmltZVtIRENQX01QUklNRV9MRU5dOworCXVpbnQxNl90CQlrOworCXN0cnVj dCBoZGNwMl9zdHJlYW1pZF90eXBlIHN0cmVhbXNbMV07Cit9IF9fcGFja2VkOworCitzdHJ1Y3Qg d2lyZWRfY21kX3JlcGVhdGVyX2F1dGhfc3RyZWFtX3JlcV9vdXQgeworCXN0cnVjdCBoZGNwX2Nt ZF9oZWFkZXIJaGVhZGVyOworCXN0cnVjdCBoZGNwX3BvcnRfaWQJcG9ydDsKK30gX19wYWNrZWQ7 CisKICNlbmRpZiAvKiBfX01FSV9IRENQX0hfXyAqLwotLSAKMi43LjQKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=