From mboxrd@z Thu Jan 1 00:00:00 1970 From: Karol Herbst Subject: [RFC 3/9] st/glsl_to_tgsi: handle precise modifier Date: Sun, 11 Jun 2017 20:42:33 +0200 Message-ID: <20170611184239.7204-4-karolherbst@gmail.com> References: <20170611184239.7204-1-karolherbst@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170611184239.7204-1-karolherbst@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: mesa-dev-bounces@lists.freedesktop.org Sender: "mesa-dev" To: mesa-dev@lists.freedesktop.org Cc: nouveau@lists.freedesktop.org List-Id: nouveau.vger.kernel.org YWxsIHN1YmV4cHJlc3Npb24gaW5zaWRlIGFuIGlyX2Fzc2lnbm1lbnQgbmVlZHMgdG8gYmUgdGFn Z2VkIGFzIHByZWNpc2UuCgpTaWduZWQtb2ZmLWJ5OiBLYXJvbCBIZXJic3QgPGthcm9saGVyYnN0 QGdtYWlsLmNvbT4KLS0tCiBzcmMvbWVzYS9zdGF0ZV90cmFja2VyL3N0X2dsc2xfdG9fdGdzaS5j cHAgfCA4MCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 NSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvbWVzYS9z dGF0ZV90cmFja2VyL3N0X2dsc2xfdG9fdGdzaS5jcHAgYi9zcmMvbWVzYS9zdGF0ZV90cmFja2Vy L3N0X2dsc2xfdG9fdGdzaS5jcHAKaW5kZXggYzVkMmUwZmNkMi4uMTlmOTBmMjFmZSAxMDA2NDQK LS0tIGEvc3JjL21lc2Evc3RhdGVfdHJhY2tlci9zdF9nbHNsX3RvX3Rnc2kuY3BwCisrKyBiL3Ny Yy9tZXNhL3N0YXRlX3RyYWNrZXIvc3RfZ2xzbF90b190Z3NpLmNwcApAQCAtODcsNiArODcsMTMg QEAgc3RhdGljIGludCBzd2l6emxlX2Zvcl90eXBlKGNvbnN0IGdsc2xfdHlwZSAqdHlwZSwgaW50 IGNvbXBvbmVudCA9IDApCiAgICByZXR1cm4gc3dpenpsZTsKIH0KIAorc3RhdGljIHVuc2lnbmVk IGlzX3ByZWNpc2UoY29uc3QgaXJfdmFyaWFibGUgKmlyKQoreworICAgaWYgKCFpcikKKyAgICAg IHJldHVybiAwOworICAgcmV0dXJuIGlyLT5kYXRhLnByZWNpc2UgfHwgaXItPmRhdGEuaW52YXJp YW50OworfQorCiAvKioKICAqIFRoaXMgc3RydWN0IGlzIGEgY29ycmVzcG9uZGluZyBzdHJ1Y3Qg dG8gVEdTSSB1cmVnX3NyYy4KICAqLwpAQCAtMjk2LDYgKzMwMyw3IEBAIHB1YmxpYzoKICAgIGly X2luc3RydWN0aW9uICppcjsKIAogICAgdW5zaWduZWQgb3A6ODsgLyoqPCBUR1NJIG9wY29kZSAq LworICAgdW5zaWduZWQgcHJlY2lzZToxOwogICAgdW5zaWduZWQgc2F0dXJhdGU6MTsKICAgIHVu c2lnbmVkIGlzXzY0Yml0X2V4cGFuZGVkOjE7CiAgICB1bnNpZ25lZCBzYW1wbGVyX2Jhc2U6NTsK QEAgLTQzNSw2ICs0NDMsNyBAQCBwdWJsaWM6CiAgICBib29sIGhhdmVfZm1hOwogICAgYm9vbCB1 c2Vfc2hhcmVkX21lbW9yeTsKICAgIGJvb2wgaGFzX3RleF90eGZfbHo7CisgICB1bnNpZ25lZCBw cmVjaXNlOwogCiAgICB2YXJpYWJsZV9zdG9yYWdlICpmaW5kX3ZhcmlhYmxlX3N0b3JhZ2UoaXJf dmFyaWFibGUgKnZhcik7CiAKQEAgLTUwNSwxMyArNTE0LDI5IEBAIHB1YmxpYzoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rfc3JjX3JlZyBzcmMwID0gdW5kZWZfc3Jj LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdF9zcmNfcmVnIHNyYzEg PSB1bmRlZl9zcmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0X3Ny Y19yZWcgc3JjMiA9IHVuZGVmX3NyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3Rfc3JjX3JlZyBzcmMzID0gdW5kZWZfc3JjKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3Rfc3JjX3JlZyBzcmMzID0gdW5kZWZfc3JjLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBwcmVjaXNlID0gMCk7CiAKICAg IGdsc2xfdG9fdGdzaV9pbnN0cnVjdGlvbiAqZW1pdF9hc20oaXJfaW5zdHJ1Y3Rpb24gKmlyLCB1 bnNpZ25lZCBvcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RfZHN0 X3JlZyBkc3QsIHN0X2RzdF9yZWcgZHN0MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3Rfc3JjX3JlZyBzcmMwID0gdW5kZWZfc3JjLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdF9zcmNfcmVnIHNyYzEgPSB1bmRlZl9zcmMsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0X3NyY19yZWcgc3JjMiA9IHVuZGVmX3Ny YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rfc3JjX3JlZyBzcmMz ID0gdW5kZWZfc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBwcmVjaXNlID0gMCk7CisKKyAgIGdsc2xfdG9fdGdzaV9pbnN0cnVjdGlvbiAqZW1pdF9h c20oaXJfZXhwcmVzc2lvbiAqaXIsIHVuc2lnbmVkIG9wLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdF9kc3RfcmVnIGRzdCA9IHVuZGVmX2RzdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rfc3JjX3JlZyBzcmMwID0gdW5kZWZfc3JjLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdF9zcmNfcmVnIHNyYzEgPSB1 bmRlZl9zcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0X3NyY19y ZWcgc3JjMiA9IHVuZGVmX3NyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3Rfc3JjX3JlZyBzcmMzID0gdW5kZWZfc3JjKTsKKworICAgZ2xzbF90b190Z3NpX2luc3Ry dWN0aW9uICplbWl0X2FzbShpcl9leHByZXNzaW9uICppciwgdW5zaWduZWQgb3AsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0X2RzdF9yZWcgZHN0LCBzdF9kc3RfcmVn IGRzdDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0X3NyY19yZWcg c3JjMCA9IHVuZGVmX3NyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3Rfc3JjX3JlZyBzcmMxID0gdW5kZWZfc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdF9zcmNfcmVnIHNyYzIgPSB1bmRlZl9zcmMsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0X3NyY19yZWcgc3JjMyA9IHVuZGVmX3NyYyk7CiAKICAg IHVuc2lnbmVkIGdldF9vcGNvZGUodW5zaWduZWQgb3AsCkBAIC02NTAsNyArNjc1LDggQEAgZ2xz bF90b190Z3NpX2luc3RydWN0aW9uICoKIGdsc2xfdG9fdGdzaV92aXNpdG9yOjplbWl0X2FzbShp cl9pbnN0cnVjdGlvbiAqaXIsIHVuc2lnbmVkIG9wLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0X2RzdF9yZWcgZHN0LCBzdF9kc3RfcmVnIGRzdDEsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3Rfc3JjX3JlZyBzcmMwLCBzdF9zcmNfcmVnIHNyYzEsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3Rfc3JjX3JlZyBzcmMyLCBzdF9zcmNfcmVnIHNyYzMp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rfc3JjX3JlZyBzcmMyLCBzdF9zcmNf cmVnIHNyYzMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgcHJlY2lz ZSkKIHsKICAgIGdsc2xfdG9fdGdzaV9pbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyhtZW1fY3R4KSBn bHNsX3RvX3Rnc2lfaW5zdHJ1Y3Rpb24oKTsKICAgIGludCBudW1fcmVsYWRkciA9IDAsIGksIGo7 CkBAIC02OTEsNiArNzE3LDcgQEAgZ2xzbF90b190Z3NpX3Zpc2l0b3I6OmVtaXRfYXNtKGlyX2lu c3RydWN0aW9uICppciwgdW5zaWduZWQgb3AsCiAgICBTVEFUSUNfQVNTRVJUKFRHU0lfT1BDT0RF X0xBU1QgPD0gMjU1KTsKIAogICAgaW5zdC0+b3AgPSBvcDsKKyAgIGluc3QtPnByZWNpc2UgPSBw cmVjaXNlOwogICAgaW5zdC0+aW5mbyA9IHRnc2lfZ2V0X29wY29kZV9pbmZvKG9wKTsKICAgIGlu c3QtPmRzdFswXSA9IGRzdDsKICAgIGluc3QtPmRzdFsxXSA9IGRzdDE7CkBAIC04ODEsOSArOTA4 LDI4IEBAIGdsc2xfdG9fdGdzaV9pbnN0cnVjdGlvbiAqCiBnbHNsX3RvX3Rnc2lfdmlzaXRvcjo6 ZW1pdF9hc20oaXJfaW5zdHJ1Y3Rpb24gKmlyLCB1bnNpZ25lZCBvcCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdF9kc3RfcmVnIGRzdCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdF9zcmNfcmVnIHNyYzAsIHN0X3NyY19yZWcgc3JjMSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdF9zcmNfcmVnIHNyYzIsIHN0X3NyY19yZWcgc3JjMywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBwcmVjaXNlKQoreworICAgcmV0dXJu IGVtaXRfYXNtKGlyLCBvcCwgZHN0LCB1bmRlZl9kc3QsIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMs IHByZWNpc2UpOworfQorCitnbHNsX3RvX3Rnc2lfaW5zdHJ1Y3Rpb24gKgorZ2xzbF90b190Z3Np X3Zpc2l0b3I6OmVtaXRfYXNtKGlyX2V4cHJlc3Npb24gKmlyLCB1bnNpZ25lZCBvcCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdF9kc3RfcmVnIGRzdCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdF9zcmNfcmVnIHNyYzAsIHN0X3NyY19yZWcgc3JjMSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdF9zcmNfcmVnIHNyYzIsIHN0X3NyY19yZWcgc3Jj MykKK3sKKyAgIHJldHVybiBlbWl0X2FzbShpciwgb3AsIGRzdCwgdW5kZWZfZHN0LCBzcmMwLCBz cmMxLCBzcmMyLCBzcmMzLCB0aGlzLT5wcmVjaXNlKTsKK30KKworZ2xzbF90b190Z3NpX2luc3Ry dWN0aW9uICoKK2dsc2xfdG9fdGdzaV92aXNpdG9yOjplbWl0X2FzbShpcl9leHByZXNzaW9uICpp ciwgdW5zaWduZWQgb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RfZHN0X3Jl ZyBkc3QsIHN0X2RzdF9yZWcgZHN0MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dF9zcmNfcmVnIHNyYzAsIHN0X3NyY19yZWcgc3JjMSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdF9zcmNfcmVnIHNyYzIsIHN0X3NyY19yZWcgc3JjMykKIHsKLSAgIHJldHVybiBl bWl0X2FzbShpciwgb3AsIGRzdCwgdW5kZWZfZHN0LCBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzKTsK KyAgIHJldHVybiBlbWl0X2FzbShpciwgb3AsIGRzdCwgZHN0MSwgc3JjMCwgc3JjMSwgc3JjMiwg c3JjMywgdGhpcy0+cHJlY2lzZSk7CiB9CiAKIC8qKgpAQCAtMTExNiw3ICsxMTYyLDcgQEAgZ2xz bF90b190Z3NpX3Zpc2l0b3I6OmVtaXRfYXJsKGlyX2luc3RydWN0aW9uICppciwKICAgIGlmIChk c3QuaW5kZXggPj0gdGhpcy0+bnVtX2FkZHJlc3NfcmVncykKICAgICAgIHRoaXMtPm51bV9hZGRy ZXNzX3JlZ3MgPSBkc3QuaW5kZXggKyAxOwogCi0gICBlbWl0X2FzbShOVUxMLCBvcCwgZHN0LCBz cmMwKTsKKyAgIGVtaXRfYXNtKChpcl9pbnN0cnVjdGlvbiAqKU5VTEwsIG9wLCBkc3QsIHNyYzAp OwogfQogCiBpbnQKQEAgLTE0MDYsMTEgKzE0NTIsMTEgQEAgZ2xzbF90b190Z3NpX3Zpc2l0b3I6 OnZpc2l0KGlyX3ZhcmlhYmxlICppcikKIHZvaWQKIGdsc2xfdG9fdGdzaV92aXNpdG9yOjp2aXNp dChpcl9sb29wICppcikKIHsKLSAgIGVtaXRfYXNtKE5VTEwsIFRHU0lfT1BDT0RFX0JHTkxPT1Ap OworICAgZW1pdF9hc20oKGlyX2luc3RydWN0aW9uICopTlVMTCwgVEdTSV9PUENPREVfQkdOTE9P UCk7CiAKICAgIHZpc2l0X2V4ZWNfbGlzdCgmaXItPmJvZHlfaW5zdHJ1Y3Rpb25zLCB0aGlzKTsK IAotICAgZW1pdF9hc20oTlVMTCwgVEdTSV9PUENPREVfRU5ETE9PUCk7CisgICBlbWl0X2FzbSgo aXJfaW5zdHJ1Y3Rpb24gKilOVUxMLCBUR1NJX09QQ09ERV9FTkRMT09QKTsKIH0KIAogdm9pZApA QCAtMTQxOCwxMCArMTQ2NCwxMCBAQCBnbHNsX3RvX3Rnc2lfdmlzaXRvcjo6dmlzaXQoaXJfbG9v cF9qdW1wICppcikKIHsKICAgIHN3aXRjaCAoaXItPm1vZGUpIHsKICAgIGNhc2UgaXJfbG9vcF9q dW1wOjpqdW1wX2JyZWFrOgotICAgICAgZW1pdF9hc20oTlVMTCwgVEdTSV9PUENPREVfQlJLKTsK KyAgICAgIGVtaXRfYXNtKChpcl9pbnN0cnVjdGlvbiAqKU5VTEwsIFRHU0lfT1BDT0RFX0JSSyk7 CiAgICAgICBicmVhazsKICAgIGNhc2UgaXJfbG9vcF9qdW1wOjpqdW1wX2NvbnRpbnVlOgotICAg ICAgZW1pdF9hc20oTlVMTCwgVEdTSV9PUENPREVfQ09OVCk7CisgICAgICBlbWl0X2FzbSgoaXJf aW5zdHJ1Y3Rpb24gKilOVUxMLCBUR1NJX09QQ09ERV9DT05UKTsKICAgICAgIGJyZWFrOwogICAg fQogfQpAQCAtMjcwMyw3ICsyNzQ5LDcgQEAgZ2xzbF90b190Z3NpX3Zpc2l0b3I6OnZpc2l0KGly X2RlcmVmZXJlbmNlX3ZhcmlhYmxlICppcikKICAgICAgICAgICAgIHN0X2RzdF9yZWcgZHN0ID0g c3RfZHN0X3JlZyhnZXRfdGVtcCh2YXItPnR5cGUpKTsKICAgICAgICAgICAgIHN0X3NyY19yZWcg c3JjID0gc3Rfc3JjX3JlZyhQUk9HUkFNX09VVFBVVCwgZGVjbC0+bWVzYV9pbmRleCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXItPnR5cGUsIGNvbXBvbmVudCwg ZGVjbC0+YXJyYXlfaWQpOwotICAgICAgICAgICAgZW1pdF9hc20oTlVMTCwgVEdTSV9PUENPREVf RkJGRVRDSCwgZHN0LCBzcmMpOworICAgICAgICAgICAgZW1pdF9hc20oKGlyX2luc3RydWN0aW9u ICopTlVMTCwgVEdTSV9PUENPREVfRkJGRVRDSCwgZHN0LCBzcmMpOwogICAgICAgICAgICAgZW50 cnkgPSBuZXcobWVtX2N0eCkgdmFyaWFibGVfc3RvcmFnZSh2YXIsIGRzdC5maWxlLCBkc3QuaW5k ZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRz dC5hcnJheV9pZCk7CiAgICAgICAgICB9IGVsc2UgewpAQCAtMzE0OCw3ICszMTk0LDEwIEBAIGds c2xfdG9fdGdzaV92aXNpdG9yOjp2aXNpdChpcl9hc3NpZ25tZW50ICppcikKICAgIHN0X2RzdF9y ZWcgbDsKICAgIHN0X3NyY19yZWcgcjsKIAorICAgLyogYWxsIGdlbmVyYXRlZCBpbnN0cnVjdGlv bnMgbmVlZCB0byBiZSBmbGFnZWQgYXMgcHJlY2lzZSAqLworICAgdGhpcy0+cHJlY2lzZSA9IGlz X3ByZWNpc2UoaXItPmxocy0+dmFyaWFibGVfcmVmZXJlbmNlZCgpKTsKICAgIGlyLT5yaHMtPmFj Y2VwdCh0aGlzKTsKKyAgIHRoaXMtPnByZWNpc2UgPSAwOwogICAgciA9IHRoaXMtPnJlc3VsdDsK IAogICAgbCA9IGdldF9hc3NpZ25tZW50X2xocyhpci0+bGhzLCB0aGlzLCAmZHN0X2NvbXBvbmVu dCk7CkBAIC0zMjMzLDcgKzMyODIsOCBAQCBnbHNsX3RvX3Rnc2lfdmlzaXRvcjo6dmlzaXQoaXJf YXNzaWdubWVudCAqaXIpCiAgICAgICAgKi8KICAgICAgIGdsc2xfdG9fdGdzaV9pbnN0cnVjdGlv biAqaW5zdCwgKm5ld19pbnN0OwogICAgICAgaW5zdCA9IChnbHNsX3RvX3Rnc2lfaW5zdHJ1Y3Rp b24gKil0aGlzLT5pbnN0cnVjdGlvbnMuZ2V0X3RhaWwoKTsKLSAgICAgIG5ld19pbnN0ID0gZW1p dF9hc20oaXIsIGluc3QtPm9wLCBsLCBpbnN0LT5zcmNbMF0sIGluc3QtPnNyY1sxXSwgaW5zdC0+ c3JjWzJdLCBpbnN0LT5zcmNbM10pOworICAgICAgbmV3X2luc3QgPSBlbWl0X2FzbShpciwgaW5z dC0+b3AsIGwsIGluc3QtPnNyY1swXSwgaW5zdC0+c3JjWzFdLCBpbnN0LT5zcmNbMl0sIGluc3Qt PnNyY1szXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfcHJlY2lzZShpci0+bGhzLT52 YXJpYWJsZV9yZWZlcmVuY2VkKCkpKTsKICAgICAgIG5ld19pbnN0LT5zYXR1cmF0ZSA9IGluc3Qt PnNhdHVyYXRlOwogICAgICAgaW5zdC0+ZGVhZF9tYXNrID0gaW5zdC0+ZHN0WzBdLndyaXRlbWFz azsKICAgIH0gZWxzZSB7CkBAIC00MDcyLDE2ICs0MTIyLDE2IEBAIGdsc2xfdG9fdGdzaV92aXNp dG9yOjpjYWxjX2RlcmVmX29mZnNldHMoaXJfZGVyZWZlcmVuY2UgKnRhaWwsCiAKICAgICAgICAg IGRlcmVmX2Fyci0+YXJyYXlfaW5kZXgtPmFjY2VwdCh0aGlzKTsKICAgICAgICAgIGlmICgqYXJy YXlfZWxlbWVudHMgIT0gMSkKLSAgICAgICAgICAgIGVtaXRfYXNtKE5VTEwsIFRHU0lfT1BDT0RF X01VTCwgdGVtcF9kc3QsIHRoaXMtPnJlc3VsdCwgc3Rfc3JjX3JlZ19mb3JfaW50KCphcnJheV9l bGVtZW50cykpOworICAgICAgICAgICAgZW1pdF9hc20oKGlyX2luc3RydWN0aW9uICopTlVMTCwg VEdTSV9PUENPREVfTVVMLCB0ZW1wX2RzdCwgdGhpcy0+cmVzdWx0LCBzdF9zcmNfcmVnX2Zvcl9p bnQoKmFycmF5X2VsZW1lbnRzKSk7CiAgICAgICAgICBlbHNlCi0gICAgICAgICAgICBlbWl0X2Fz bShOVUxMLCBUR1NJX09QQ09ERV9NT1YsIHRlbXBfZHN0LCB0aGlzLT5yZXN1bHQpOworICAgICAg ICAgICAgZW1pdF9hc20oKGlyX2luc3RydWN0aW9uICopTlVMTCwgVEdTSV9PUENPREVfTU9WLCB0 ZW1wX2RzdCwgdGhpcy0+cmVzdWx0KTsKIAogICAgICAgICAgaWYgKGluZGlyZWN0LT5maWxlID09 IFBST0dSQU1fVU5ERUZJTkVEKQogICAgICAgICAgICAgKmluZGlyZWN0ID0gdGVtcF9yZWc7CiAg ICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIHRlbXBfZHN0ID0gc3RfZHN0X3JlZygqaW5kaXJl Y3QpOwogICAgICAgICAgICAgdGVtcF9kc3Qud3JpdGVtYXNrID0gMTsKLSAgICAgICAgICAgIGVt aXRfYXNtKE5VTEwsIFRHU0lfT1BDT0RFX0FERCwgdGVtcF9kc3QsICppbmRpcmVjdCwgdGVtcF9y ZWcpOworICAgICAgICAgICAgZW1pdF9hc20oKGlyX2luc3RydWN0aW9uICopTlVMTCwgVEdTSV9P UENPREVfQURELCB0ZW1wX2RzdCwgKmluZGlyZWN0LCB0ZW1wX3JlZyk7CiAgICAgICAgICB9CiAg ICAgICB9IGVsc2UKICAgICAgICAgICppbmRleCArPSBhcnJheV9pbmRleC0+dmFsdWUudVswXSAq ICphcnJheV9lbGVtZW50czsKQEAgLTQxNDEsNyArNDE5MSw3IEBAIGdsc2xfdG9fdGdzaV92aXNp dG9yOjpjYW5vbmljYWxpemVfZ2F0aGVyX29mZnNldChzdF9zcmNfcmVnIG9mZnNldCkKICAgICAg IHN0X3NyY19yZWcgdG1wID0gZ2V0X3RlbXAoZ2xzbF90eXBlOjppdmVjMl90eXBlKTsKICAgICAg IHN0X2RzdF9yZWcgdG1wX2RzdCA9IHN0X2RzdF9yZWcodG1wKTsKICAgICAgIHRtcF9kc3Qud3Jp dGVtYXNrID0gV1JJVEVNQVNLX1hZOwotICAgICAgZW1pdF9hc20oTlVMTCwgVEdTSV9PUENPREVf TU9WLCB0bXBfZHN0LCBvZmZzZXQpOworICAgICAgZW1pdF9hc20oKGlyX2luc3RydWN0aW9uICop TlVMTCwgVEdTSV9PUENPREVfTU9WLCB0bXBfZHN0LCBvZmZzZXQpOwogICAgICAgcmV0dXJuIHRt cDsKICAgIH0KIApAQCAtNjc3Nyw3ICs2ODI3LDcgQEAgZ2V0X21lc2FfcHJvZ3JhbV90Z3NpKHN0 cnVjdCBnbF9jb250ZXh0ICpjdHgsCiAgICB2LT5yZW51bWJlcl9yZWdpc3RlcnMoKTsKIAogICAg LyogV3JpdGUgdGhlIEVORCBpbnN0cnVjdGlvbi4gKi8KLSAgIHYtPmVtaXRfYXNtKE5VTEwsIFRH U0lfT1BDT0RFX0VORCk7CisgICB2LT5lbWl0X2FzbSgoaXJfaW5zdHJ1Y3Rpb24gKilOVUxMLCBU R1NJX09QQ09ERV9FTkQpOwogCiAgICBpZiAoY3R4LT5fU2hhZGVyLT5GbGFncyAmIEdMU0xfRFVN UCkgewogICAgICAgX21lc2FfbG9nKCJcbiIpOwotLSAKMi4xMy4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwptZXNhLWRldiBtYWlsaW5nIGxpc3QKbWVz YS1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vbWVzYS1kZXYK