From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Antoine Subject: [PATCH i-g-t v2] tests/drm_hw_lock: Tests for hw_lock fixes. Date: Tue, 28 Apr 2015 10:45:42 +0100 Message-ID: <1430214342-8016-1-git-send-email-peter.antoine@intel.com> References: <1429798025-18940-1-git-send-email-peter.antoine@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id D5E7D7205D for ; Tue, 28 Apr 2015 02:45:48 -0700 (PDT) In-Reply-To: <1429798025-18940-1-git-send-email-peter.antoine@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 Cc: thomas.wood@intel.com List-Id: intel-gfx@lists.freedesktop.org VGhlcmUgYXJlIHNldmVyYWwgaXNzdWVzIHdpdGggdGhlIGhhcmR3YXJlIGxvY2tzIGZ1bmN0aW9u cyB0aGF0IHN0cmV0Y2gKZnJvbSBrZXJuZWwgY3Jhc2hlcyB0byBwcmlvcml0eSBlc2NhbGF0aW9u cy4gVGhpcyBuZXcgdGVzdCB3aWxsIHRlc3QgdGhlCnRoZSBmaXhlcyBmb3IgdGhlc2UgZmVhdHVy ZXMuCgpUaGlzIHRlc3Qgd2lsbCBjYXVzZSBhIGRyaXZlci9rZXJuZWwgY3Jhc2ggb24gdW4tcGF0 Y2hlZCBrZXJuZWxzLCB0aGUKZm9sbG93aW5nIHBhdGNoZXMgc2hvdWxkIGJlIGFwcGxpZWQgdG8g c3RvcCB0aGUgY3Jhc2hlczoKCiAgZHJtOiBLZXJuZWwgQ3Jhc2ggaW4gZHJtX3VubG9jawogIGRy bTogRml4ZXMgdW5zYWZlIGRlZmVyZW5jZSBpbiBsb2Nrcy4KCnYyOgogIC0gYWRkIEFQSSBkb2N1 bWVudGF0aW9uIGZvciBkcm1faGFzX2xlZ2FjeV9jb250ZXh0IChULldvb2QpCiAgLSB1cGRhdGUg dGVzdHMvLmdpdGlnbm9yZSAoVC5Xb29kKQogIC0gYWRkIElHVF9URVNUX0RFU0NSSVBUSU9OIChU Lldvb2QpCiAgLSBjaGFuZ2VzIHRvIGlndF9maXh0dXJlcyAoVC5Xb29kKQoKSXNzdWU6IFZJWi01 NDg1ClNpZ25lZC1vZmYtYnk6IFBldGVyIEFudG9pbmUgPHBldGVyLmFudG9pbmVAaW50ZWwuY29t PgotLS0KIGxpYi9pb2N0bF93cmFwcGVycy5jICAgfCAgMzAgKysrKysrKysKIGxpYi9pb2N0bF93 cmFwcGVycy5oICAgfCAgIDEgKwogdGVzdHMvLmdpdGlnbm9yZSAgICAgICB8ICAgMSArCiB0ZXN0 cy9NYWtlZmlsZS5zb3VyY2VzIHwgICAxICsKIHRlc3RzL2RybV9od19sb2NrLmMgICAgfCAxOTMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNSBmaWxl cyBjaGFuZ2VkLCAyMjYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2Ry bV9od19sb2NrLmMKCmRpZmYgLS1naXQgYS9saWIvaW9jdGxfd3JhcHBlcnMuYyBiL2xpYi9pb2N0 bF93cmFwcGVycy5jCmluZGV4IDAwMGQzOTQuLmUwYmVmOGQgMTAwNjQ0Ci0tLSBhL2xpYi9pb2N0 bF93cmFwcGVycy5jCisrKyBiL2xpYi9pb2N0bF93cmFwcGVycy5jCkBAIC05NjQsNiArOTY0LDM2 IEBAIGJvb2wgZ2VtX2hhc19ic2QyKGludCBmZCkKIHsKIAlyZXR1cm4gZ2VtX2hhc19lbmFibGVf cmluZyhmZCxMT0NBTF9JOTE1X1BBUkFNX0hBU19CU0QyKTsKIH0KKworI2RlZmluZSBJOTE1X1BB UkFNX0hBU19MRUdBQ1lfQ09OVEVYVAkgMzUKKy8qKgorICogZHJtX2hhc19sZWdhY3lfY29udGV4 dDoKKyAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2NyaXB0b3IKKyAqCisgKiBUaGlzIGhl bHBlciBmdW5jdGlvbiBjaGVja3MgdG8gc2VlIGlmIHRoZSBMRUdBQ1kgQ09OVEVYVCBmdW5jdGlv bmFsaXR5IGlzCisgKiBzdXBwb3J0ZWQgYnkgdGhlIGRyaXZlci4gVGhpcyBmZWF0dXJlIGlzIGNv bXBpbGVkIGluIGFuZCBjYW5ub3QgYmUgY2hhbmdlZAorICogYXQgcnVuIHRpbWUgc28gb25seSBu ZWVkcyBjaGVja2luZyBvbmNlLgorICoKKyAqIFJldHVybnM6IHRydWUgaWYgdGhlIGxlZ2FjeSBj b250ZXh0IGlzIHN1cHBvcnQsIGVsc2UgZmFsc2UuCisgKi8KK2Jvb2wgZHJtX2hhc19sZWdhY3lf Y29udGV4dChpbnQgZmQpCit7CisJaW50IHRtcCA9IDA7CisJZHJtX2k5MTVfZ2V0cGFyYW1fdCBn cDsKKworCW1lbXNldCgmZ3AsIDAsIHNpemVvZihncCkpOworCWdwLnZhbHVlID0gJnRtcDsKKwln cC5wYXJhbSA9IEk5MTVfUEFSQU1fSEFTX0xFR0FDWV9DT05URVhUOworCisJLyoKKwkgKiBpZiBs ZWdhY3kgY29udGV4dCBwYXJhbSBpcyBub3Qgc3VwcG9ydGVkLCB0aGVuIGl0J3Mgb2xkIGFuZCB3 ZQorCSAqIGNhbiBhc3N1bWUgdGhhdCB0aGUgSFdfTE9DS1MgYXJlIHN1cHBvcnRlZC4KKwkgKi8K KwlpZiAoZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFVFBBUkFNLCAmZ3ApICE9IDApCisJ CXJldHVybiB0cnVlOworCisJcmV0dXJuIHRtcCA9PSAxOworfQogLyoqCiAgKiBnZW1fYXZhaWxh YmxlX2FwZXJ0dXJlX3NpemU6CiAgKiBAZmQ6IG9wZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9y CmRpZmYgLS1naXQgYS9saWIvaW9jdGxfd3JhcHBlcnMuaCBiL2xpYi9pb2N0bF93cmFwcGVycy5o CmluZGV4IGNlZDdlZjMuLjNhZGM3MDAgMTAwNjQ0Ci0tLSBhL2xpYi9pb2N0bF93cmFwcGVycy5o CisrKyBiL2xpYi9pb2N0bF93cmFwcGVycy5oCkBAIC0xMjAsNiArMTIwLDcgQEAgYm9vbCBnZW1f aGFzX2JzZChpbnQgZmQpOwogYm9vbCBnZW1faGFzX2JsdChpbnQgZmQpOwogYm9vbCBnZW1faGFz X3ZlYm94KGludCBmZCk7CiBib29sIGdlbV9oYXNfYnNkMihpbnQgZmQpOworYm9vbCBkcm1faGFz X2xlZ2FjeV9jb250ZXh0KGludCBmZCk7CiBib29sIGdlbV91c2VzX2FsaWFzaW5nX3BwZ3R0KGlu dCBmZCk7CiBpbnQgZ2VtX2F2YWlsYWJsZV9mZW5jZXMoaW50IGZkKTsKIHVpbnQ2NF90IGdlbV9h dmFpbGFibGVfYXBlcnR1cmVfc2l6ZShpbnQgZmQpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvLmdpdGln bm9yZSBiL3Rlc3RzLy5naXRpZ25vcmUKaW5kZXggNTRjYWE0Yy4uYjkzY2VkOCAxMDA2NDQKLS0t IGEvdGVzdHMvLmdpdGlnbm9yZQorKysgYi90ZXN0cy8uZ2l0aWdub3JlCkBAIC0xNjAsMyArMTYw LDQgQEAgcHJpbWVfdWRsCiBzaW5nbGUtdGVzdHMudHh0CiB0ZW1wbGF0ZQogdGVzdGRpc3BsYXkK K2RybV9od19sb2NrCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMv TWFrZWZpbGUuc291cmNlcwppbmRleCA3MWRlNmRlLi4yZjY5YWZjIDEwMDY0NAotLS0gYS90ZXN0 cy9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKQEAgLTg0LDYg Kzg0LDcgQEAgVEVTVFNfcHJvZ3NfTSA9IFwKIAlwbV9zc2V1IFwKIAlwcmltZV9zZWxmX2ltcG9y dCBcCiAJdGVtcGxhdGUgXAorCWRybV9od19sb2NrIFwKIAkkKE5VTEwpCiAKIFRFU1RTX3Byb2dz ID0gXApkaWZmIC0tZ2l0IGEvdGVzdHMvZHJtX2h3X2xvY2suYyBiL3Rlc3RzL2RybV9od19sb2Nr LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTk4ZTU3MgotLS0gL2Rldi9u dWxsCisrKyBiL3Rlc3RzL2RybV9od19sb2NrLmMKQEAgLTAsMCArMSwxOTMgQEAKKy8qCisgKiBD b3B5cmlnaHQgwqkgMjAxNSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh CisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0 aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9y IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNP RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs IEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBU SEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwg REFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogICAgUGV0ZXIgQW50 b2luZSA8cGV0ZXIuYW50b2luZUBpbnRlbC5jb20+CisgKi8KKworLyoKKyAqIFRlc3RjYXNlOiBU ZXN0IHRoZSBIV19MT0NLcyBmb3IgY29ycmVjdCBzdXBwb3J0IGFuZCBub24tY3Jhc2hpbmcuCisg KgorICogVGhpcyB0ZXN0IHdpbGwgY2hlY2sgdGhhdCBoZSBod19sb2NrcyBhcmUgb25seSBnX3N1 cHBvcnRlZCBmb3IgZHJpdmVycyB0aGF0CisgKiByZXF1aXJlIHRoYXQgc3VwcG9ydC4gSWYgaXQg aXMgbm90IGdfc3VwcG9ydGVkIHRoZW4gdGhlIGZ1bmN0aW9ucyBhbGwgcmV0dXJuCisgKiB0aGUg Y29ycmVjdCBlcnJvciBjb2RlLgorICoKKyAqIElmIGdfc3VwcG9ydGVkIGl0IHdpbGwgY2hlY2sg dGhhdCB0aGUgZnVuY3Rpb25zIGRvIG5vdCBjcmFzaCB3aGVuIHRoZSBjcmFzaAorICogdGVzdHMg YXJlIHVzZWQsIGFsc28gdGhhdCBvbmUgb2YgdGhlIHRlc3RzIGlzIGEgc2VjdXJpdHkgbGV2ZWwg ZXNjYWxhdGlvbgorICogdGhhdCBzaG91bGQgYmUgcmVqZWN0ZWQuCisgKi8KKyNpbmNsdWRlIDxz dGRsaWIuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNp bmNsdWRlIDxkcm0uaD4KKyNpbmNsdWRlICJkcm10ZXN0LmgiCisjaW5jbHVkZSAiaWd0X2NvcmUu aCIKKyNpbmNsdWRlICJpb2N0bF93cmFwcGVycy5oIgorCitJR1RfVEVTVF9ERVNDUklQVElPTigi VGVzdCB0aGUgSFdfTE9DS3MgZm9yIGNvcnJlY3Qgc3VwcG9ydCBhbmQgbm9uLWNyYXNoaW5nLiIp OworCisjaWZuZGVmIERSTV9LRVJORUxfQ09OVEVYVAorIwlkZWZpbmUgRFJNX0tFUk5FTF9DT05U RVhUCSgwKQorI2VuZGlmCisKKyNpZm5kZWYgX0RSTV9MT0NLX0hFTEQKKyMJZGVmaW5lIF9EUk1f TE9DS19IRUxECTB4ODAwMDAwMDBVIC8qKjwgSGFyZHdhcmUgbG9jayBpcyBoZWxkICovCisjZW5k aWYKKworI2lmbmRlZiBfRFJNX0xPQ0tfQ09OVAorIwlkZWZpbmUgX0RSTV9MT0NLX0NPTlQJMHg0 MDAwMDAwMFUgLyoqPCBIYXJkd2FyZSBsb2NrIGlzIGNvbnRlbmRlZCAqLworI2VuZGlmCisKK3N0 YXRpYyBib29sCWdfc2lnX2ZpcmVkOworc3RhdGljIGJvb2wJZ19zdXBwb3J0ZWQ7CitzdGF0aWMg c3RydWN0IHNpZ2FjdGlvbiBvbGRfYWN0aW9uOworCitzdGF0aWMgdm9pZCBzaWdfdGVybV9oYW5k bGVyKGludCB2YWx1ZSkKK3sKKwlnX3NpZ19maXJlZCA9IHRydWU7Cit9CisKK3N0YXRpYyBib29s IHNldF90ZXJtX2hhbmRsZXIodm9pZCkKK3sKKwlzdGF0aWMgc3RydWN0IHNpZ2FjdGlvbiBuZXdf YWN0aW9uOworCisJbmV3X2FjdGlvbi5zYV9oYW5kbGVyID0gc2lnX3Rlcm1faGFuZGxlcjsKKwlz aWdlbXB0eXNldCgmbmV3X2FjdGlvbi5zYV9tYXNrKTsKKwluZXdfYWN0aW9uLnNhX2ZsYWdzID0g MDsKKworCWlndF9hc3NlcnQoc2lnYWN0aW9uKFNJR1RFUk0sICZuZXdfYWN0aW9uLCAmb2xkX2Fj dGlvbikgPT0gMCk7CisKKwlpZiAob2xkX2FjdGlvbi5zYV9oYW5kbGVyICE9IFNJR19JR04pCisJ CXJldHVybiB0cnVlOworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBy ZXN0b3JlX3Rlcm1faGFuZGxlcih2b2lkKQoreworCXNpZ2FjdGlvbihTSUdURVJNLCAmb2xkX2Fj dGlvbiwgTlVMTCk7Cit9CisKK3N0YXRpYyB2b2lkIGRvZXNfbG9ja19jcmFzaChpbnQgZmQpCit7 CisJc3RydWN0IGRybV9sb2NrCXJ1YmJpc2g7CisJaW50IHJldDsKKworCW1lbXNldCgmcnViYmlz aCwgJ0EnLCBzaXplb2Yoc3RydWN0IGRybV9sb2NrKSk7CisKKwlnX3NpZ19maXJlZCA9IGZhbHNl OworCXJldCA9IGlvY3RsKGZkLCBEUk1fSU9DVExfTE9DSywgJnJ1YmJpc2gpOworCisJaWd0X2Fz c2VydChyZXQgPT0gLTEgJiYgKCFnX3N1cHBvcnRlZCB8fCBnX3NpZ19maXJlZCkpOworCWlndF9h c3NlcnQocmV0ID09IC0xICYmIChnX3N1cHBvcnRlZCB8fCBlcnJubyA9PSBFSU5WQUwpKTsKK30K Kworc3RhdGljIHZvaWQgZG9lc191bmxvY2tfY3Jhc2goaW50IGZkKQoreworCXN0cnVjdCBkcm1f bG9jawlydWJiaXNoOworCWludCByZXQ7CisKKwltZW1zZXQoJnJ1YmJpc2gsICdBJywgc2l6ZW9m KHN0cnVjdCBkcm1fbG9jaykpOworCisJZ19zaWdfZmlyZWQgPSBmYWxzZTsKKwlyZXQgPSBpb2N0 bChmZCwgRFJNX0lPQ1RMX1VOTE9DSywgJnJ1YmJpc2gpOworCisJaWd0X2Fzc2VydChyZXQgPT0g LTEgJiYgKCFnX3N1cHBvcnRlZCB8fCBnX3NpZ19maXJlZCkpOworCWlndF9hc3NlcnQocmV0ID09 IC0xICYmIChnX3N1cHBvcnRlZCB8fCBlcnJubyA9PSBFSU5WQUwpKTsKK30KKworc3RhdGljIHZv aWQgcHJpb3JpdHlfZXNjYWxhdGlvbihpbnQgZmQpCit7CisJc3RydWN0IGRybV9sb2NrCXJ1YmJp c2g7CisJaW50IHJldDsKKworCS8qIHRoaXMgc2hvdWxkIGJlIHJlamVjdGVkICovCisJcnViYmlz aC5jb250ZXh0ID0gRFJNX0tFUk5FTF9DT05URVhUOworCXJldCA9IGlvY3RsKGZkLCBEUk1fSU9D VExfTE9DSywgJnJ1YmJpc2gpOworCWlndF9hc3NlcnQocmV0ID09IC0xICYmICghZ19zdXBwb3J0 ZWQgfHwgZXJybm8gPT0gRVBFUk0pKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAtMSAmJiAoZ19zdXBw b3J0ZWQgfHwgZXJybm8gPT0gRUlOVkFMKSk7CisKKwkvKiB0aGlzIHNob3VsZCBhbHNvIGJlIHJl amVjdGVkICovCisJcnViYmlzaC5jb250ZXh0ID0gX0RSTV9MT0NLX0hFTEQgfCBEUk1fS0VSTkVM X0NPTlRFWFQ7CisJcmV0ID0gaW9jdGwoZmQsIERSTV9JT0NUTF9MT0NLLCAmcnViYmlzaCk7CisJ aWd0X2Fzc2VydChyZXQgPT0gLTEgJiYgKCFnX3N1cHBvcnRlZCB8fCBlcnJubyA9PSBFUEVSTSkp OworCWlndF9hc3NlcnQocmV0ID09IC0xICYmIChnX3N1cHBvcnRlZCB8fCBlcnJubyA9PSBFSU5W QUwpKTsKKworCS8qIHRoaXMgc2hvdWxkIGFsc28gYmUgcmVqZWN0ZWQgKi8KKwlydWJiaXNoLmNv bnRleHQgPSBfRFJNX0xPQ0tfQ09OVCB8IERSTV9LRVJORUxfQ09OVEVYVDsKKwlyZXQgPSBpb2N0 bChmZCwgRFJNX0lPQ1RMX0xPQ0ssICZydWJiaXNoKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAtMSAm JiAoIWdfc3VwcG9ydGVkIHx8IGVycm5vID09IEVQRVJNKSk7CisJaWd0X2Fzc2VydChyZXQgPT0g LTEgJiYgKGdfc3VwcG9ydGVkIHx8IGVycm5vID09IEVJTlZBTCkpOworCisJLyogdGhpcyBzaG91 bGQgYmUgcmVqZWN0ZWQgKi8KKwlydWJiaXNoLmNvbnRleHQgPSBEUk1fS0VSTkVMX0NPTlRFWFQ7 CisJcmV0ID0gaW9jdGwoZmQsIERSTV9JT0NUTF9VTkxPQ0ssICZydWJiaXNoKTsKKwlpZ3RfYXNz ZXJ0KHJldCA9PSAtMSAmJiAoIWdfc3VwcG9ydGVkIHx8IGVycm5vID09IEVQRVJNKSk7CisJaWd0 X2Fzc2VydChyZXQgPT0gLTEgJiYgKGdfc3VwcG9ydGVkIHx8IGVycm5vID09IEVJTlZBTCkpOwor CisJLyogdGhpcyBzaG91bGQgYWxzbyBiZSByZWplY3RlZCAqLworCXJ1YmJpc2guY29udGV4dCA9 IF9EUk1fTE9DS19IRUxEIHwgRFJNX0tFUk5FTF9DT05URVhUOworCXJldCA9IGlvY3RsKGZkLCBE Uk1fSU9DVExfVU5MT0NLLCAmcnViYmlzaCk7CisJaWd0X2Fzc2VydChyZXQgPT0gLTEgJiYgKCFn X3N1cHBvcnRlZCB8fCBlcnJubyA9PSBFUEVSTSkpOworCWlndF9hc3NlcnQocmV0ID09IC0xICYm IChnX3N1cHBvcnRlZCB8fCBlcnJubyA9PSBFSU5WQUwpKTsKKworCS8qIHRoaXMgc2hvdWxkIGFs c28gYmUgcmVqZWN0ZWQgKi8KKwlydWJiaXNoLmNvbnRleHQgPSBfRFJNX0xPQ0tfQ09OVCB8IERS TV9LRVJORUxfQ09OVEVYVDsKKwlyZXQgPSBpb2N0bChmZCwgRFJNX0lPQ1RMX1VOTE9DSywgJnJ1 YmJpc2gpOworCWlndF9hc3NlcnQocmV0ID09IC0xICYmICghZ19zdXBwb3J0ZWQgfHwgZXJybm8g PT0gRVBFUk0pKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAtMSAmJiAoZ19zdXBwb3J0ZWQgfHwgZXJy bm8gPT0gRUlOVkFMKSk7Cit9CisKK2lndF9tYWluCit7CisJaW50IGZkID0gLTE7CisKKwlnX3Np Z19maXJlZCA9IGZhbHNlOworCWdfc3VwcG9ydGVkID0gZmFsc2U7CisKKwlpZ3RfZml4dHVyZSB7 CisJCWZkID0gZHJtX29wZW5fYW55KCk7CisKKwkJaWd0X2Fzc2VydChzZXRfdGVybV9oYW5kbGVy KCkpOworCQlnX3N1cHBvcnRlZCA9IGRybV9oYXNfbGVnYWN5X2NvbnRleHQoZmQpOworCX0KKwor CWlndF9pbmZvKCJIVyBMT0NLIFN1cHBvcnRlZDogJXNcbiIsIGdfc3VwcG9ydGVkPyJZZXMiOiJO byIpOworCisJaWd0X3N1YnRlc3QoImxvY2stY3Jhc2giKSB7CisJCWRvZXNfbG9ja19jcmFzaChm ZCk7CisJfQorCisJaWd0X3N1YnRlc3QoInVubG9jay1jcmFzaCIpIHsKKwkJZG9lc191bmxvY2tf Y3Jhc2goZmQpOworCX0KKworCWlndF9zdWJ0ZXN0KCJwcmlvcml0eS1lc2NhbGF0aW9uIikgewor CQlwcmlvcml0eV9lc2NhbGF0aW9uKGZkKTsKKwl9CisKKwlpZ3RfZml4dHVyZSB7CisJCXJlc3Rv cmVfdGVybV9oYW5kbGVyKCk7CisJCWNsb3NlKGZkKTsKKwl9Cit9CisKLS0gCjEuOS4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=