From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v2 libdrm 2/7] libdrm: Add NVIDIA Tegra support Date: Wed, 9 Apr 2014 13:40:25 +0200 Message-ID: <1397043630-13972-3-git-send-email-thierry.reding@gmail.com> References: <1397043630-13972-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-bk0-f48.google.com (mail-bk0-f48.google.com [209.85.214.48]) by gabe.freedesktop.org (Postfix) with ESMTP id 134CD6EB15 for ; Wed, 9 Apr 2014 04:41:28 -0700 (PDT) Received: by mail-bk0-f48.google.com with SMTP id mx12so2171722bkb.7 for ; Wed, 09 Apr 2014 04:41:28 -0700 (PDT) In-Reply-To: <1397043630-13972-1-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5nQGF2aW9uaWMtZGVzaWduLmRlPgoK QWRkIHRoZSBsaWJkcm1fdGVncmEgaGVscGVyIGxpYnJhcnkgdG8gZW5jYXBzdWxhdGUgVGVncmEt c3BlY2lmaWMKaW50ZXJmYWNlcyB0byB0aGUgRFJNLgoKRnVydGhlcm1vcmUsIFRlZ3JhIGlzIGFk ZGVkIHRvIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBjaGlwcyBpbiB0aGUKbW9kZXRlc3QgYW5kIHZi bHRlc3QgcHJvZ3JhbXMuCgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dGhpZXJyeS5y ZWRpbmdAYXZpb25pYy1kZXNpZ24uZGU+ClNpZ25lZC1vZmYtYnk6IEVyaWsgRmF5ZS1MdW5kIDxr dXNtYWJpdGVAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGlu Z0BudmlkaWEuY29tPgotLS0KIE1ha2VmaWxlLmFtICAgICAgICAgICAgICAgfCAgIDYgKy0KIGNv bmZpZ3VyZS5hYyAgICAgICAgICAgICAgfCAgMTUgKystCiBpbmNsdWRlL2RybS9NYWtlZmlsZS5h bSAgIHwgICAxICsKIGluY2x1ZGUvZHJtL3RlZ3JhX2RybS5oICAgfCAxNTUgKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogdGVncmEvLmdpdGlnbm9yZSAgICAgICAgICB8ICAgMSArCiB0ZWdy YS9NYWtlZmlsZS5hbSAgICAgICAgIHwgIDIwICsrKysKIHRlZ3JhL2xpYmRybV90ZWdyYS5wYy5p biAgfCAgMTEgKysKIHRlZ3JhL3ByaXZhdGUuaCAgICAgICAgICAgfCAgNTEgKysrKysrKysrKwog dGVncmEvdGVncmEuYyAgICAgICAgICAgICB8IDI1MyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiB0ZWdyYS90ZWdyYS5oICAgICAgICAgICAgIHwgIDQ3ICsr KysrKysrKwogdGVzdHMvbW9kZXRlc3QvbW9kZXRlc3QuYyB8ICAgMiArLQogdGVzdHMvdmJsdGVz dC92Ymx0ZXN0LmMgICB8ICAgMiArLQogMTIgZmlsZXMgY2hhbmdlZCwgNTYwIGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0vdGVncmFf ZHJtLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZWdyYS8uZ2l0aWdub3JlCiBjcmVhdGUgbW9kZSAx MDA2NDQgdGVncmEvTWFrZWZpbGUuYW0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZWdyYS9saWJkcm1f dGVncmEucGMuaW4KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZWdyYS9wcml2YXRlLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCB0ZWdyYS90ZWdyYS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVncmEvdGVncmEu aAoKZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KaW5kZXggODI2YzMwZDBj MGQ5Li4xNGM0MDJkY2U3NGYgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxl LmFtCkBAIC01MSw3ICs1MSwxMSBAQCBpZiBIQVZFX0ZSRUVEUkVOTwogRlJFRURSRU5PX1NVQkRJ UiA9IGZyZWVkcmVubwogZW5kaWYKIAotU1VCRElSUyA9IC4gJChMSUJLTVNfU1VCRElSKSAkKElO VEVMX1NVQkRJUikgJChOT1VWRUFVX1NVQkRJUikgJChSQURFT05fU1VCRElSKSAkKE9NQVBfU1VC RElSKSAkKEVYWU5PU19TVUJESVIpICQoRlJFRURSRU5PX1NVQkRJUikgdGVzdHMgaW5jbHVkZSBt YW4KK2lmIEhBVkVfVEVHUkEKK1RFR1JBX1NVQkRJUiA9IHRlZ3JhCitlbmRpZgorCitTVUJESVJT ID0gLiAkKExJQktNU19TVUJESVIpICQoSU5URUxfU1VCRElSKSAkKE5PVVZFQVVfU1VCRElSKSAk KFJBREVPTl9TVUJESVIpICQoT01BUF9TVUJESVIpICQoRVhZTk9TX1NVQkRJUikgJChGUkVFRFJF Tk9fU1VCRElSKSAkKFRFR1JBX1NVQkRJUikgdGVzdHMgaW5jbHVkZSBtYW4KIAogbGliZHJtX2xh X0xUTElCUkFSSUVTID0gbGliZHJtLmxhCiBsaWJkcm1fbGFkaXIgPSAkKGxpYmRpcikKZGlmZiAt LWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCAyMmI0NWNjNzU2MGQuLjRj YjY4MTBiZDZhOCAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpA QCAtOTgsNiArOTgsMTEgQEAgQUNfQVJHX0VOQUJMRShmcmVlZHJlbm8tZXhwZXJpbWVudGFsLWFw aSwKIAkgICAgICBbRW5hYmxlIHN1cHBvcnQgZm9yIGZyZWVkcmVubydzIGV4cGVyaW1lbnRhbCBB UEkgKGRlZmF1bHQ6IGRpc2FibGVkKV0pLAogCSAgICAgIFtGUkVFRFJFTk89JGVuYWJsZXZhbF0s IFtGUkVFRFJFTk89bm9dKQogCitBQ19BUkdfRU5BQkxFKHRlZ3JhLWV4cGVyaW1lbnRhbC1hcGks CisJICAgICAgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXRlZ3JhLWV4cGVyaW1lbnRhbC1hcGld LAorCSAgICAgIFtFbmFibGUgc3VwcG9ydCBmb3IgVGVncmEncyBleHBlcmltZW50YWwgQVBJIChk ZWZhdWx0OiBkaXNhYmxlZCldKSwKKwkgICAgICBbVEVHUkE9JGVuYWJsZXZhbF0sIFtURUdSQT1u b10pCisKIEFDX0FSR19FTkFCTEUoaW5zdGFsbC10ZXN0LXByb2dyYW1zLAogCQkgIEFTX0hFTFBf U1RSSU5HKFstLWVuYWJsZS1pbnN0YWxsLXRlc3QtcHJvZ3JhbXNdLAogCQkgIFtJbnN0YWxsIHRl c3QgcHJvZ3JhbXMgKGRlZmF1bHQ6IG5vKV0pLApAQCAtMjE5LDYgKzIyNCwxMSBAQCBpZiB0ZXN0 ICJ4JEZSRUVEUkVOTyIgPSB4eWVzOyB0aGVuCiAJQUNfREVGSU5FKEhBVkVfRlJFRURSRU5PLCAx LCBbSGF2ZSBmcmVlZHJlbm8gc3VwcG9ydF0pCiBmaQogCitBTV9DT05ESVRJT05BTChIQVZFX1RF R1JBLCBbdGVzdCAieCRURUdSQSIgPSB4eWVzXSkKK2lmIHRlc3QgIngkVEVHUkEiID0geHllczsg dGhlbgorCUFDX0RFRklORShIQVZFX1RFR1JBLCAxLCBbSGF2ZSBUZWdyYSBzdXBwb3J0XSkKK2Zp CisKIEFNX0NPTkRJVElPTkFMKEhBVkVfSU5TVEFMTF9URVNUUywgW3Rlc3QgIngkSU5TVEFMTF9U RVNUUyIgPSB4eWVzXSkKIGlmIHRlc3QgIngkSU5TVEFMTF9URVNUUyIgPSB4eWVzOyB0aGVuCiAJ QUNfREVGSU5FKEhBVkVfSU5TVEFMTF9URVNUUywgMSwgW0luc3RhbGwgdGVzdCBwcm9ncmFtc10p CkBAIC0yNzAsNyArMjgwLDcgQEAgZWxzZQogZmkKIEFNX0NPTkRJVElPTkFMKFtIQVZFX01BTlBB R0VTX1NUWUxFU0hFRVRdLCBbdGVzdCAieCRIQVZFX01BTlBBR0VTX1NUWUxFU0hFRVQiID0gInh5 ZXMiXSkKIAotaWYgdGVzdCAieCRJTlRFTCIgIT0gInhubyIgLW8gIngkUkFERU9OIiAhPSAieG5v IiAtbyAieCROT1VWRUFVIiAhPSAieG5vIiAtbyAieCRPTUFQIiAhPSAieG5vIiAtbyAieCRGUkVF RFJFTk8iICE9ICJ4bm8iOyB0aGVuCitpZiB0ZXN0ICJ4JElOVEVMIiAhPSAieG5vIiAtbyAieCRS QURFT04iICE9ICJ4bm8iIC1vICJ4JE5PVVZFQVUiICE9ICJ4bm8iIC1vICJ4JE9NQVAiICE9ICJ4 bm8iIC1vICJ4JEZSRUVEUkVOTyIgIT0gInhubyIgLW8gIngkVEVHUkEiICE9ICJ4bm8iOyB0aGVu CiAgICAgIyBDaGVjayBmb3IgYXRvbWljIGludHJpbnNpY3MKICAgICBBQ19DQUNIRV9DSEVDSyhb Zm9yIG5hdGl2ZSBhdG9taWMgcHJpbWl0aXZlc10sIGRybV9jdl9hdG9taWNfcHJpbWl0aXZlcywK ICAgICBbCkBAIC00MDMsNiArNDEzLDggQEAgQUNfQ09ORklHX0ZJTEVTKFsKIAlleHlub3MvbGli ZHJtX2V4eW5vcy5wYwogCWZyZWVkcmVuby9NYWtlZmlsZQogCWZyZWVkcmVuby9saWJkcm1fZnJl ZWRyZW5vLnBjCisJdGVncmEvTWFrZWZpbGUKKwl0ZWdyYS9saWJkcm1fdGVncmEucGMKIAl0ZXN0 cy9NYWtlZmlsZQogCXRlc3RzL21vZGVwcmludC9NYWtlZmlsZQogCXRlc3RzL21vZGV0ZXN0L01h a2VmaWxlCkBAIC00MjcsNCArNDM5LDUgQEAgZWNobyAiICBOb3V2ZWF1IEFQSSAgICAkTk9VVkVB VSIKIGVjaG8gIiAgT01BUCBBUEkgICAgICAgJE9NQVAiCiBlY2hvICIgIEVYWU5PUyBBUEkgICAg ICRFWFlOT1MiCiBlY2hvICIgIEZyZWVkcmVubyBBUEkgICRGUkVFRFJFTk8iCitlY2hvICIgIFRl Z3JhIEFQSSAgICAgICRURUdSQSIKIGVjaG8gIiIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL01h a2VmaWxlLmFtIGIvaW5jbHVkZS9kcm0vTWFrZWZpbGUuYW0KaW5kZXggMmJjMzRkMmZmZDlmLi5m NTkxYWJjNDUxNTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL01ha2VmaWxlLmFtCisrKyBiL2lu Y2x1ZGUvZHJtL01ha2VmaWxlLmFtCkBAIC0zNSw2ICszNSw3IEBAIGtsaWJkcm1pbmNsdWRlX0hF QURFUlMgPSBcCiAJcmFkZW9uX2RybS5oIFwKIAlzYXZhZ2VfZHJtLmggXAogCXNpc19kcm0uaCBc CisJdGVncmFfZHJtLmggXAogCXZpYV9kcm0uaCBcCiAJbWFjaDY0X2RybS5oIFwKIAlxeGxfZHJt LmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3RlZ3JhX2RybS5oIGIvaW5jbHVkZS9kcm0vdGVn cmFfZHJtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xYjhiN2Mx ZWRlZjcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2RybS90ZWdyYV9kcm0uaApAQCAtMCww ICsxLDE1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMi0yMDEzLCBOVklESUEgQ09SUE9S QVRJT04uICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBj b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo dGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0 cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1 c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Us CisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl cnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi amVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHly aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQg aW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJl LgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBF VkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJ QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJ TkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF IFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5k ZWYgX1VBUElfVEVHUkFfRFJNX0hfCisjZGVmaW5lIF9VQVBJX1RFR1JBX0RSTV9IXworCisjaW5j bHVkZSA8ZHJtLmg+CisKKyNkZWZpbmUgRFJNX1RFR1JBX0dFTV9DUkVBVEVfVElMRUQgICAgICgx IDw8IDApCisjZGVmaW5lIERSTV9URUdSQV9HRU1fQ1JFQVRFX0JPVFRPTV9VUCAoMSA8PCAxKQor CitzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9jcmVhdGUgeworCV9fdTY0IHNpemU7CisJX191MzIgZmxh Z3M7CisJX191MzIgaGFuZGxlOworfTsKKworc3RydWN0IGRybV90ZWdyYV9nZW1fbW1hcCB7CisJ X191MzIgaGFuZGxlOworCV9fdTMyIG9mZnNldDsKK307CisKK3N0cnVjdCBkcm1fdGVncmFfc3lu Y3B0X3JlYWQgeworCV9fdTMyIGlkOworCV9fdTMyIHZhbHVlOworfTsKKworc3RydWN0IGRybV90 ZWdyYV9zeW5jcHRfaW5jciB7CisJX191MzIgaWQ7CisJX191MzIgcGFkOworfTsKKworc3RydWN0 IGRybV90ZWdyYV9zeW5jcHRfd2FpdCB7CisJX191MzIgaWQ7CisJX191MzIgdGhyZXNoOworCV9f dTMyIHRpbWVvdXQ7CisJX191MzIgdmFsdWU7Cit9OworCisjZGVmaW5lIERSTV9URUdSQV9OT19U SU1FT1VUCSgweGZmZmZmZmZmKQorCitzdHJ1Y3QgZHJtX3RlZ3JhX29wZW5fY2hhbm5lbCB7CisJ X191MzIgY2xpZW50OworCV9fdTMyIHBhZDsKKwlfX3U2NCBjb250ZXh0OworfTsKKworc3RydWN0 IGRybV90ZWdyYV9jbG9zZV9jaGFubmVsIHsKKwlfX3U2NCBjb250ZXh0OworfTsKKworc3RydWN0 IGRybV90ZWdyYV9nZXRfc3luY3B0IHsKKwlfX3U2NCBjb250ZXh0OworCV9fdTMyIGluZGV4Owor CV9fdTMyIGlkOworfTsKKworc3RydWN0IGRybV90ZWdyYV9nZXRfc3luY3B0X2Jhc2UgeworCV9f dTY0IGNvbnRleHQ7CisJX191MzIgc3luY3B0OworCV9fdTMyIGlkOworfTsKKworc3RydWN0IGRy bV90ZWdyYV9zeW5jcHQgeworCV9fdTMyIGlkOworCV9fdTMyIGluY3JzOworfTsKKworc3RydWN0 IGRybV90ZWdyYV9jbWRidWYgeworCV9fdTMyIGhhbmRsZTsKKwlfX3UzMiBvZmZzZXQ7CisJX191 MzIgd29yZHM7CisJX191MzIgcGFkOworfTsKKworc3RydWN0IGRybV90ZWdyYV9yZWxvYyB7CisJ c3RydWN0IHsKKwkJX191MzIgaGFuZGxlOworCQlfX3UzMiBvZmZzZXQ7CisJfSBjbWRidWY7CisJ c3RydWN0IHsKKwkJX191MzIgaGFuZGxlOworCQlfX3UzMiBvZmZzZXQ7CisJfSB0YXJnZXQ7CisJ X191MzIgc2hpZnQ7CisJX191MzIgcGFkOworfTsKKworc3RydWN0IGRybV90ZWdyYV93YWl0Y2hr IHsKKwlfX3UzMiBoYW5kbGU7CisJX191MzIgb2Zmc2V0OworCV9fdTMyIHN5bmNwdDsKKwlfX3Uz MiB0aHJlc2g7Cit9OworCitzdHJ1Y3QgZHJtX3RlZ3JhX3N1Ym1pdCB7CisJX191NjQgY29udGV4 dDsKKwlfX3UzMiBudW1fc3luY3B0czsKKwlfX3UzMiBudW1fY21kYnVmczsKKwlfX3UzMiBudW1f cmVsb2NzOworCV9fdTMyIG51bV93YWl0Y2hrczsKKwlfX3UzMiB3YWl0Y2hrX21hc2s7CisJX191 MzIgdGltZW91dDsKKwlfX3UzMiBwYWQ7CisJX191NjQgc3luY3B0czsKKwlfX3U2NCBjbWRidWZz OworCV9fdTY0IHJlbG9jczsKKwlfX3U2NCB3YWl0Y2hrczsKKwlfX3UzMiBmZW5jZTsJCS8qIFJl dHVybiB2YWx1ZSAqLworCisJX191MzIgcmVzZXJ2ZWRbNV07CS8qIGZ1dHVyZSBleHBhbnNpb24g Ki8KK307CisKKyNkZWZpbmUgRFJNX1RFR1JBX0dFTV9DUkVBVEUJCTB4MDAKKyNkZWZpbmUgRFJN X1RFR1JBX0dFTV9NTUFQCQkweDAxCisjZGVmaW5lIERSTV9URUdSQV9TWU5DUFRfUkVBRAkJMHgw MgorI2RlZmluZSBEUk1fVEVHUkFfU1lOQ1BUX0lOQ1IJCTB4MDMKKyNkZWZpbmUgRFJNX1RFR1JB X1NZTkNQVF9XQUlUCQkweDA0CisjZGVmaW5lIERSTV9URUdSQV9PUEVOX0NIQU5ORUwJCTB4MDUK KyNkZWZpbmUgRFJNX1RFR1JBX0NMT1NFX0NIQU5ORUwJCTB4MDYKKyNkZWZpbmUgRFJNX1RFR1JB X0dFVF9TWU5DUFQJCTB4MDcKKyNkZWZpbmUgRFJNX1RFR1JBX1NVQk1JVAkJMHgwOAorI2RlZmlu ZSBEUk1fVEVHUkFfR0VUX1NZTkNQVF9CQVNFCTB4MDkKKworI2RlZmluZSBEUk1fSU9DVExfVEVH UkFfR0VNX0NSRUFURSBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1RFR1JBX0dFTV9D UkVBVEUsIHN0cnVjdCBkcm1fdGVncmFfZ2VtX2NyZWF0ZSkKKyNkZWZpbmUgRFJNX0lPQ1RMX1RF R1JBX0dFTV9NTUFQIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFfR0VNX01N QVAsIHN0cnVjdCBkcm1fdGVncmFfZ2VtX21tYXApCisjZGVmaW5lIERSTV9JT0NUTF9URUdSQV9T WU5DUFRfUkVBRCBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1RFR1JBX1NZTkNQVF9S RUFELCBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF9yZWFkKQorI2RlZmluZSBEUk1fSU9DVExfVEVH UkFfU1lOQ1BUX0lOQ1IgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9URUdSQV9TWU5D UFRfSU5DUiwgc3RydWN0IGRybV90ZWdyYV9zeW5jcHRfaW5jcikKKyNkZWZpbmUgRFJNX0lPQ1RM X1RFR1JBX1NZTkNQVF9XQUlUIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFf U1lOQ1BUX1dBSVQsIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X3dhaXQpCisjZGVmaW5lIERSTV9J T0NUTF9URUdSQV9PUEVOX0NIQU5ORUwgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9U RUdSQV9PUEVOX0NIQU5ORUwsIHN0cnVjdCBkcm1fdGVncmFfb3Blbl9jaGFubmVsKQorI2RlZmlu ZSBEUk1fSU9DVExfVEVHUkFfQ0xPU0VfQ0hBTk5FTCBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNF ICsgRFJNX1RFR1JBX0NMT1NFX0NIQU5ORUwsIHN0cnVjdCBkcm1fdGVncmFfb3Blbl9jaGFubmVs KQorI2RlZmluZSBEUk1fSU9DVExfVEVHUkFfR0VUX1NZTkNQVCBEUk1fSU9XUihEUk1fQ09NTUFO RF9CQVNFICsgRFJNX1RFR1JBX0dFVF9TWU5DUFQsIHN0cnVjdCBkcm1fdGVncmFfZ2V0X3N5bmNw dCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX1NVQk1JVCBEUk1fSU9XUihEUk1fQ09NTUFORF9C QVNFICsgRFJNX1RFR1JBX1NVQk1JVCwgc3RydWN0IGRybV90ZWdyYV9zdWJtaXQpCisjZGVmaW5l IERSTV9JT0NUTF9URUdSQV9HRVRfU1lOQ1BUX0JBU0UgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFT RSArIERSTV9URUdSQV9HRVRfU1lOQ1BUX0JBU0UsIHN0cnVjdCBkcm1fdGVncmFfZ2V0X3N5bmNw dF9iYXNlKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3RlZ3JhLy5naXRpZ25vcmUgYi90ZWdyYS8u Z2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzRjZmU0 N2EyNTkyCi0tLSAvZGV2L251bGwKKysrIGIvdGVncmEvLmdpdGlnbm9yZQpAQCAtMCwwICsxIEBA CitsaWJkcm1fdGVncmEucGMKZGlmZiAtLWdpdCBhL3RlZ3JhL01ha2VmaWxlLmFtIGIvdGVncmEv TWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xYjgz MTQ1YjEyMGQKLS0tIC9kZXYvbnVsbAorKysgYi90ZWdyYS9NYWtlZmlsZS5hbQpAQCAtMCwwICsx LDIwIEBACitBTV9DUFBGTEFHUyA9IFwKKwktSSQodG9wX3NyY2RpcikgXAorCS1JJCh0b3Bfc3Jj ZGlyKS9pbmNsdWRlL2RybQorCitBTV9DRkxBR1MgPSBcCisJJChWSVNJQklMSVRZX0NGTEFHUykK KworbGliZHJtX3RlZ3JhX2xhZGlyID0gJChsaWJkaXIpCitsaWJkcm1fdGVncmFfbGFfTFRMSUJS QVJJRVMgPSBsaWJkcm1fdGVncmEubGEKK2xpYmRybV90ZWdyYV9sYV9MREZMQUdTID0gLXZlcnNp b24tbnVtYmVyIDA6MDowIC1uby11bmRlZmluZWQKK2xpYmRybV90ZWdyYV9sYV9MSUJBREQgPSAu Li9saWJkcm0ubGEgQFBUSFJFQURTVFVCU19MSUJTQAorCitsaWJkcm1fdGVncmFfbGFfU09VUkNF UyA9IFwKKwl0ZWdyYS5jCisKK2xpYmRybV90ZWdyYWluY2x1ZGVkaXIgPSAke2luY2x1ZGVkaXJ9 L2xpYmRybQorbGliZHJtX3RlZ3JhaW5jbHVkZV9IRUFERVJTID0gdGVncmEuaAorCitwa2djb25m aWdkaXIgPSBAcGtnY29uZmlnZGlyQAorcGtnY29uZmlnX0RBVEEgPSBsaWJkcm1fdGVncmEucGMK ZGlmZiAtLWdpdCBhL3RlZ3JhL2xpYmRybV90ZWdyYS5wYy5pbiBiL3RlZ3JhL2xpYmRybV90ZWdy YS5wYy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJlMDZmNDlj NmZiYQotLS0gL2Rldi9udWxsCisrKyBiL3RlZ3JhL2xpYmRybV90ZWdyYS5wYy5pbgpAQCAtMCww ICsxLDExIEBACitwcmVmaXg9QHByZWZpeEAKK2V4ZWNfcHJlZml4PUBleGVjX3ByZWZpeEAKK2xp YmRpcj1AbGliZGlyQAoraW5jbHVkZWRpcj1AaW5jbHVkZWRpckAKKworTmFtZTogbGliZHJtX3Rl Z3JhCitEZXNjcmlwdGlvbjogVXNlcnNwYWNlIGludGVyZmFjZSB0byBUZWdyYSBrZXJuZWwgRFJN IHNlcnZpY2VzCitWZXJzaW9uOiBAUEFDS0FHRV9WRVJTSU9OQAorTGliczogLUwke2xpYmRpcn0g LWxkcm1fdGVncmEKK0NmbGFnczogLUkke2luY2x1ZGVkaXJ9IC1JJHtpbmNsdWRlZGlyfS9saWJk cm0KK1JlcXVpcmVzLnByaXZhdGU6IGxpYmRybQpkaWZmIC0tZ2l0IGEvdGVncmEvcHJpdmF0ZS5o IGIvdGVncmEvcHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uOWI2YmM5Mzk1ZDIzCi0tLSAvZGV2L251bGwKKysrIGIvdGVncmEvcHJpdmF0ZS5oCkBAIC0w LDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxMiwgMjAxMyBUaGllcnJ5IFJlZGlu ZworICogQ29weXJpZ2h0IMKpIDIwMTMgRXJpayBGYXllLUx1bmQKKyAqIENvcHlyaWdodCDCqSAy MDE0IE5WSURJQSBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50 ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9m IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT b2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNv cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBh bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0 byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAq IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoK KyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G IEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBT SEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJP TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP UgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX19E Uk1fVEVHUkFfUFJJVkFURV9IX18KKyNkZWZpbmUgX19EUk1fVEVHUkFfUFJJVkFURV9IX18gMQor CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSA8 bGliZHJtLmg+CisjaW5jbHVkZSA8eGY4NmF0b21pYy5oPgorCisjaW5jbHVkZSAidGVncmEuaCIK Kworc3RydWN0IGRybV90ZWdyYSB7CisJYm9vbCBjbG9zZTsKKwlpbnQgZmQ7Cit9OworCitzdHJ1 Y3QgZHJtX3RlZ3JhX2JvIHsKKwlzdHJ1Y3QgZHJtX3RlZ3JhICpkcm07CisJdWludDMyX3QgaGFu ZGxlOworCXVpbnQzMl90IG9mZnNldDsKKwl1aW50MzJfdCBmbGFnczsKKwl1aW50MzJfdCBzaXpl OworCWF0b21pY190IHJlZjsKKwl2b2lkICptYXA7Cit9OworCisjZW5kaWYgLyogX19EUk1fVEVH UkFfUFJJVkFURV9IX18gKi8KZGlmZiAtLWdpdCBhL3RlZ3JhL3RlZ3JhLmMgYi90ZWdyYS90ZWdy YS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmY2ZDAzNTQ1M2Q1 Ci0tLSAvZGV2L251bGwKKysrIGIvdGVncmEvdGVncmEuYwpAQCAtMCwwICsxLDI1MyBAQAorLyoK KyAqIENvcHlyaWdodCDCqSAyMDEyLCAyMDEzIFRoaWVycnkgUmVkaW5nCisgKiBDb3B5cmlnaHQg wqkgMjAxMyBFcmlrIEZheWUtTHVuZAorICogQ29weXJpZ2h0IMKpIDIwMTQgTlZJRElBIENvcnBv cmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0 byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGll cyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICog U29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBz dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJF IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF U1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09Q WVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB TUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFM SU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmZGVmIEhBVkVfQ09ORklHX0gKKyMgIGlu Y2x1ZGUgImNvbmZpZy5oIgorI2VuZGlmCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUg PGZjbnRsLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgor CisjaW5jbHVkZSA8eGY4NmRybS5oPgorCisjaW5jbHVkZSA8dGVncmFfZHJtLmg+CisKKyNpbmNs dWRlICJwcml2YXRlLmgiCisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHRlZ3JhX2JvICp0ZWdyYV9i byhzdHJ1Y3QgZHJtX3RlZ3JhX2JvICpibykKK3sKKwlyZXR1cm4gKHN0cnVjdCB0ZWdyYV9ibyAq KWJvOworfQorCitzdGF0aWMgdm9pZCBkcm1fdGVncmFfYm9fZnJlZShzdHJ1Y3QgZHJtX3RlZ3Jh X2JvICpibykKK3sKKwlzdHJ1Y3QgZHJtX3RlZ3JhICpkcm0gPSBiby0+ZHJtOworCXN0cnVjdCBk cm1fZ2VtX2Nsb3NlIGFyZ3M7CisKKwlpZiAoYm8tPm1hcCkKKwkJbXVubWFwKGJvLT5tYXAsIGJv LT5zaXplKTsKKworCW1lbXNldCgmYXJncywgMCwgc2l6ZW9mKGFyZ3MpKTsKKwlhcmdzLmhhbmRs ZSA9IGJvLT5oYW5kbGU7CisKKwlkcm1Jb2N0bChkcm0tPmZkLCBEUk1fSU9DVExfR0VNX0NMT1NF LCAmYXJncyk7CisKKwlmcmVlKGJvKTsKK30KKworc3RhdGljIGludCBkcm1fdGVncmFfd3JhcChz dHJ1Y3QgZHJtX3RlZ3JhICoqZHJtcCwgaW50IGZkLCBib29sIGNsb3NlKQoreworCXN0cnVjdCBk cm1fdGVncmEgKmRybTsKKwlpbnQgZXJyOworCisJaWYgKGZkIDwgMCB8fCAhZHJtcCkKKwkJcmV0 dXJuIC1FSU5WQUw7CisKKwlkcm0gPSBjYWxsb2MoMSwgc2l6ZW9mKCpkcm0pKTsKKwlpZiAoIWRy bSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkcm0tPmNsb3NlID0gY2xvc2U7CisJZHJtLT5mZCA9 IGZkOworCisJKmRybXAgPSBkcm07CisKKwlyZXR1cm4gMDsKK30KKworZHJtX3B1YmxpYworaW50 IGRybV90ZWdyYV9uZXcoc3RydWN0IGRybV90ZWdyYSAqKmRybXAsIGludCBmZCkKK3sKKwlib29s IHN1cHBvcnRlZCA9IGZhbHNlOworCWRybVZlcnNpb25QdHIgdmVyc2lvbjsKKworCXZlcnNpb24g PSBkcm1HZXRWZXJzaW9uKGZkKTsKKwlpZiAoIXZlcnNpb24pCisJCXJldHVybiAtRU5PTUVNOwor CisJaWYgKCFzdHJuY21wKHZlcnNpb24tPm5hbWUsICJ0ZWdyYSIsIHZlcnNpb24tPm5hbWVfbGVu KSkKKwkJc3VwcG9ydGVkID0gdHJ1ZTsKKworCWRybUZyZWVWZXJzaW9uKHZlcnNpb24pOworCisJ aWYgKCFzdXBwb3J0ZWQpCisJCXJldHVybiAtRU5PVFNVUDsKKworCXJldHVybiBkcm1fdGVncmFf d3JhcChkcm1wLCBmZCwgZmFsc2UpOworfQorCitkcm1fcHVibGljCit2b2lkIGRybV90ZWdyYV9j bG9zZShzdHJ1Y3QgZHJtX3RlZ3JhICpkcm0pCit7CisJaWYgKCFkcm0pCisJCXJldHVybjsKKwor CWlmIChkcm0tPmNsb3NlKQorCQljbG9zZShkcm0tPmZkKTsKKworCWZyZWUoZHJtKTsKK30KKwor ZHJtX3B1YmxpYworaW50IGRybV90ZWdyYV9ib19uZXcoc3RydWN0IGRybV90ZWdyYV9ibyAqKmJv cCwgc3RydWN0IGRybV90ZWdyYSAqZHJtLAorCQkgICAgIHVpbnQzMl90IGZsYWdzLCB1aW50MzJf dCBzaXplKQoreworCXN0cnVjdCBkcm1fdGVncmFfZ2VtX2NyZWF0ZSBhcmdzOworCXN0cnVjdCBk cm1fdGVncmFfYm8gKmJvOworCWludCBlcnI7CisKKwlpZiAoIWRybSB8fCBzaXplID09IDAgfHwg IWJvcCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlibyA9IGNhbGxvYygxLCBzaXplb2YoKmJvKSk7 CisJaWYgKCFibykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlhdG9taWNfc2V0KCZiby0+cmVmLCAx KTsKKwliby0+ZmxhZ3MgPSBmbGFnczsKKwliby0+c2l6ZSA9IHNpemU7CisJYm8tPmRybSA9IGRy bTsKKworCW1lbXNldCgmYXJncywgMCwgc2l6ZW9mKGFyZ3MpKTsKKwlhcmdzLmZsYWdzID0gZmxh Z3M7CisJYXJncy5zaXplID0gc2l6ZTsKKworCWVyciA9IGRybUNvbW1hbmRXcml0ZVJlYWQoZHJt LT5mZCwgRFJNX1RFR1JBX0dFTV9DUkVBVEUsICZhcmdzLAorCQkJCSAgc2l6ZW9mKGFyZ3MpKTsK KwlpZiAoZXJyIDwgMCkgeworCQllcnIgPSAtZXJybm87CisJCWZyZWUoYm8pOworCQlyZXR1cm4g ZXJyOworCX0KKworCWJvLT5oYW5kbGUgPSBhcmdzLmhhbmRsZTsKKworCSpib3AgPSBibzsKKwor CXJldHVybiAwOworfQorCitkcm1fcHVibGljCitpbnQgZHJtX3RlZ3JhX2JvX3dyYXAoc3RydWN0 IGRybV90ZWdyYV9ibyAqKmJvcCwgc3RydWN0IGRybV90ZWdyYSAqZHJtLAorCQkgICAgICB1aW50 MzJfdCBoYW5kbGUsIHVpbnQzMl90IGZsYWdzLCB1aW50MzJfdCBzaXplKQoreworCXN0cnVjdCBk cm1fdGVncmFfYm8gKmJvOworCisJaWYgKCFkcm0gfHwgIWJvcCkKKwkJcmV0dXJuIC1FSU5WQUw7 CisKKwlibyA9IGNhbGxvYygxLCBzaXplb2YoKmJvKSk7CisJaWYgKCFibykKKwkJcmV0dXJuIC1F Tk9NRU07CisKKwlhdG9taWNfc2V0KCZiby0+cmVmLCAxKTsKKwliby0+aGFuZGxlID0gaGFuZGxl OworCWJvLT5mbGFncyA9IGZsYWdzOworCWJvLT5zaXplID0gc2l6ZTsKKwliby0+ZHJtID0gZHJt OworCisJKmJvcCA9IGJvOworCisJcmV0dXJuIDA7Cit9CisKK2RybV9wdWJsaWMKK3N0cnVjdCBk cm1fdGVncmFfYm8gKmRybV90ZWdyYV9ib19nZXQoc3RydWN0IGRybV90ZWdyYV9ibyAqYm8pCit7 CisJaWYgKGJvKQorCQlhdG9taWNfaW5jKCZiby0+cmVmKTsKKworCXJldHVybiBibzsKK30KKwor ZHJtX3B1YmxpYwordm9pZCBkcm1fdGVncmFfYm9fcHV0KHN0cnVjdCBkcm1fdGVncmFfYm8gKmJv KQoreworCWlmIChibyAmJiBhdG9taWNfZGVjX2FuZF90ZXN0KCZiby0+cmVmKSkKKwkJZHJtX3Rl Z3JhX2JvX2ZyZWUoYm8pOworfQorCitkcm1fcHVibGljCitpbnQgZHJtX3RlZ3JhX2JvX2dldF9o YW5kbGUoc3RydWN0IGRybV90ZWdyYV9ibyAqYm8sIHVpbnQzMl90ICpoYW5kbGUpCit7CisJaWYg KCFibyB8fCAhaGFuZGxlKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCSpoYW5kbGUgPSBiby0+aGFu ZGxlOworCisJcmV0dXJuIDA7Cit9CisKK2RybV9wdWJsaWMKK2ludCBkcm1fdGVncmFfYm9fbWFw KHN0cnVjdCBkcm1fdGVncmFfYm8gKmJvLCB2b2lkICoqcHRyKQoreworCXN0cnVjdCBkcm1fdGVn cmEgKmRybSA9IGJvLT5kcm07CisKKwlpZiAoIWJvLT5tYXApIHsKKwkJc3RydWN0IGRybV90ZWdy YV9nZW1fbW1hcCBhcmdzOworCQlpbnQgZXJyOworCisJCW1lbXNldCgmYXJncywgMCwgc2l6ZW9m KGFyZ3MpKTsKKwkJYXJncy5oYW5kbGUgPSBiby0+aGFuZGxlOworCisJCWVyciA9IGRybUNvbW1h bmRXcml0ZVJlYWQoZHJtLT5mZCwgRFJNX1RFR1JBX0dFTV9NTUFQLCAmYXJncywKKwkJCQkJICBz aXplb2YoYXJncykpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiAtZXJybm87CisKKwkJYm8t Pm9mZnNldCA9IGFyZ3Mub2Zmc2V0OworCisJCWJvLT5tYXAgPSBtbWFwKDAsIGJvLT5zaXplLCBQ Uk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELAorCQkJICAgICAgIGRybS0+ZmQsIGJv LT5vZmZzZXQpOworCQlpZiAoYm8tPm1hcCA9PSBNQVBfRkFJTEVEKSB7CisJCQliby0+bWFwID0g TlVMTDsKKwkJCXJldHVybiAtZXJybm87CisJCX0KKwl9CisKKwlpZiAocHRyKQorCQkqcHRyID0g Ym8tPm1hcDsKKworCXJldHVybiAwOworfQorCitkcm1fcHVibGljCitpbnQgZHJtX3RlZ3JhX2Jv X3VubWFwKHN0cnVjdCBkcm1fdGVncmFfYm8gKmJvKQoreworCWlmICghYm8pCisJCXJldHVybiAt RUlOVkFMOworCisJaWYgKCFiby0+bWFwKQorCQlyZXR1cm4gMDsKKworCWlmIChtdW5tYXAoYm8t Pm1hcCwgYm8tPnNpemUpKQorCQlyZXR1cm4gLWVycm5vOworCisJYm8tPm1hcCA9IE5VTEw7CisK KwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3RlZ3JhL3RlZ3JhLmggYi90ZWdyYS90ZWdyYS5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDczMWNiM2JkNGRjCi0t LSAvZGV2L251bGwKKysrIGIvdGVncmEvdGVncmEuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICog Q29weXJpZ2h0IMKpIDIwMTIsIDIwMTMgVGhpZXJyeSBSZWRpbmcKKyAqIENvcHlyaWdodCDCqSAy MDEzIEVyaWsgRmF5ZS1MdW5kCisgKiBDb3B5cmlnaHQgwqkgMjAxNCBOVklESUEgQ29ycG9yYXRp b24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRl YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0 IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9m IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0 d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k aXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0 YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklH SFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF UyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD VCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdT IElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaWZuZGVmIF9fRFJNX1RFR1JBX0hfXworI2RlZmlu ZSBfX0RSTV9URUdSQV9IX18gMQorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3Rk bGliLmg+CisKK3N0cnVjdCBkcm1fdGVncmFfYm87CitzdHJ1Y3QgZHJtX3RlZ3JhOworCitpbnQg ZHJtX3RlZ3JhX25ldyhzdHJ1Y3QgZHJtX3RlZ3JhICoqZHJtcCwgaW50IGZkKTsKK3ZvaWQgZHJt X3RlZ3JhX2Nsb3NlKHN0cnVjdCBkcm1fdGVncmEgKmRybSk7CisKK2ludCBkcm1fdGVncmFfYm9f bmV3KHN0cnVjdCBkcm1fdGVncmFfYm8gKipib3AsIHN0cnVjdCBkcm1fdGVncmEgKmRybSwKKwkJ ICAgICB1aW50MzJfdCBmbGFncywgdWludDMyX3Qgc2l6ZSk7CitpbnQgZHJtX3RlZ3JhX2JvX3dy YXAoc3RydWN0IGRybV90ZWdyYV9ibyAqKmJvcCwgc3RydWN0IGRybV90ZWdyYSAqZHJtLAorCQkg ICAgICB1aW50MzJfdCBoYW5kbGUsIHVpbnQzMl90IGZsYWdzLCB1aW50MzJfdCBzaXplKTsKK3N0 cnVjdCBkcm1fdGVncmFfYm8gKmRybV90ZWdyYV9ib19nZXQoc3RydWN0IGRybV90ZWdyYV9ibyAq Ym8pOwordm9pZCBkcm1fdGVncmFfYm9fcHV0KHN0cnVjdCBkcm1fdGVncmFfYm8gKmJvKTsKK2lu dCBkcm1fdGVncmFfYm9fZ2V0X2hhbmRsZShzdHJ1Y3QgZHJtX3RlZ3JhX2JvICpibywgdWludDMy X3QgKmhhbmRsZSk7CitpbnQgZHJtX3RlZ3JhX2JvX21hcChzdHJ1Y3QgZHJtX3RlZ3JhX2JvICpi bywgdm9pZCAqKnB0cik7CitpbnQgZHJtX3RlZ3JhX2JvX3VubWFwKHN0cnVjdCBkcm1fdGVncmFf Ym8gKmJvKTsKKworI2VuZGlmIC8qIF9fRFJNX1RFR1JBX0hfXyAqLwpkaWZmIC0tZ2l0IGEvdGVz dHMvbW9kZXRlc3QvbW9kZXRlc3QuYyBiL3Rlc3RzL21vZGV0ZXN0L21vZGV0ZXN0LmMKaW5kZXgg YmM5Yzk5ODhkZWM3Li40MjEyOTYzZjhmZjAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21vZGV0ZXN0L21v ZGV0ZXN0LmMKKysrIGIvdGVzdHMvbW9kZXRlc3QvbW9kZXRlc3QuYwpAQCAtMTM4Niw3ICsxMzg2 LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWludCBlbmNvZGVycyA9IDAs IGNvbm5lY3RvcnMgPSAwLCBjcnRjcyA9IDAsIHBsYW5lcyA9IDAsIGZyYW1lYnVmZmVycyA9IDA7 CiAJaW50IGRyb3BfbWFzdGVyID0gMDsKIAlpbnQgdGVzdF92c3luYyA9IDA7Ci0JY29uc3QgY2hh ciAqbW9kdWxlc1tdID0geyAiaTkxNSIsICJyYWRlb24iLCAibm91dmVhdSIsICJ2bXdnZngiLCAi b21hcGRybSIsICJleHlub3MiLCAidGlsY2RjIiwgIm1zbSIgfTsKKwljb25zdCBjaGFyICptb2R1 bGVzW10gPSB7ICJpOTE1IiwgInJhZGVvbiIsICJub3V2ZWF1IiwgInZtd2dmeCIsICJvbWFwZHJt IiwgImV4eW5vcyIsICJ0aWxjZGMiLCAibXNtIiwgInRlZ3JhIiB9OwogCWNoYXIgKmRldmljZSA9 IE5VTEw7CiAJY2hhciAqbW9kdWxlID0gTlVMTDsKIAl1bnNpZ25lZCBpbnQgaTsKZGlmZiAtLWdp dCBhL3Rlc3RzL3ZibHRlc3QvdmJsdGVzdC5jIGIvdGVzdHMvdmJsdGVzdC92Ymx0ZXN0LmMKaW5k ZXggMmEwOWQyOGVkMDBhLi5lNGIyMDBiZjBjM2MgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3ZibHRlc3Qv dmJsdGVzdC5jCisrKyBiL3Rlc3RzL3ZibHRlc3QvdmJsdGVzdC5jCkBAIC0xMDMsNyArMTAzLDcg QEAgc3RhdGljIHZvaWQgdXNhZ2UoY2hhciAqbmFtZSkKIGludCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIHsKIAlpbnQgaSwgYywgZmQsIHJldDsKLQljaGFyICptb2R1bGVzW10gPSB7ICJp OTE1IiwgInJhZGVvbiIsICJub3V2ZWF1IiwgInZtd2dmeCIsICJleHlub3MiLCAib21hcGRybSIs ICJ0aWxjZGMiLCAibXNtIiB9OworCWNoYXIgKm1vZHVsZXNbXSA9IHsgImk5MTUiLCAicmFkZW9u IiwgIm5vdXZlYXUiLCAidm13Z2Z4IiwgImV4eW5vcyIsICJvbWFwZHJtIiwgInRpbGNkYyIsICJt c20iLCAidGVncmEiIH07CiAJZHJtVkJsYW5rIHZibDsKIAlkcm1FdmVudENvbnRleHQgZXZjdHg7 CiAJc3RydWN0IHZibF9pbmZvIGhhbmRsZXJfaW5mbzsKLS0gCjEuOS4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=