From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id F0A536EB9B for ; Tue, 17 Sep 2019 09:55:21 +0000 (UTC) From: Arkadiusz Hiler Date: Tue, 17 Sep 2019 12:54:54 +0300 Message-ID: <20190917095454.25877-1-arkadiusz.hiler@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] lib/igt_list: Update, clean-up and document igt_list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Petri Latvala List-ID: V2UgaGF2ZSBkaXZlcmdlZCBmcm9tIGhvdyBXYXlsYW5kIGltcGxlbWVudHMgbGlzdCBib3RoIGlu IHBhcmFtZXRlcgpvcmRlcmluZyBhbmQgZnVuY3Rpb24gbmFtaW5nLgoKTGV0J3MgbWFrZSBvdXIg c2lkZSBjb25zaXN0ZW50IHRvIGVhc2UgdGhlIGNvZ25pdGl2ZSBkaXNzb25hbmNlIGZvcgpkZXZl bG9wZXJzIHdvcmtpbmcgb24gYm90aCBwcm9qZWN0cy4KClRoaXMgcGF0Y2g6CiAqIG1pbWljcyB0 aGUgY3VycmVudCBXYXlsYW5kIGltcGxlbWVudGF0aW9uCiAqIHNlcGFyYXRlcyBJR1QgaGVscGVy cyBpbiB0aGUgc291cmNlIGZpbGVzCiAqIGFkZHMgYnJpZWYgZXhwbGFuYXRpb24gYW5kIGNvZGUg ZXhhbXBsZSBmb3IgaWd0LWRvYwogKiBpbnRyb2R1Y2VzIGlndF9saXN0LmMgYXMgc3RhdGljIGlu bGluZXMgYXJlIG5vdCB2aXNpYmxlIGluIHRoZSBkb2NzCgpDYzogUGV0cmkgTGF0dmFsYSA8cGV0 cmkubGF0dmFsYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFya2FkaXVzeiBIaWxlciA8YXJr YWRpdXN6LmhpbGVyQGludGVsLmNvbT4KLS0tCiBiZW5jaG1hcmtzL2dlbV93c2ltLmMgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIC4uLi9pZ3QtZ3B1LXRvb2xzL2lndC1ncHUtdG9v bHMtZG9jcy54bWwgICAgICB8ICAgMSArCiBsaWIvTWFrZWZpbGUuc291cmNlcyAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKwogbGliL2lndF9jaGFtZWxpdW0uYyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBsaWIvaWd0X2NvcmUuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KIGxpYi9pZ3RfZHVtbXlsb2FkLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgNCArLQogbGliL2lndF9rbW9kLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBsaWIvaWd0X2xpc3QuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNjYgKysrKysrKwogbGliL2lndF9saXN0LmggICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTY1ICsrKysrKysrKy0tLS0tLS0tLQogbGliL21lc29uLmJ1aWxkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHRlc3RzL3ZjNF9wdXJnZWFibGVf Ym8uYyAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogMTEgZmlsZXMgY2hhbmdlZCwgMTYz IGluc2VydGlvbnMoKyksIDk2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9p Z3RfbGlzdC5jCgpkaWZmIC0tZ2l0IGEvYmVuY2htYXJrcy9nZW1fd3NpbS5jIGIvYmVuY2htYXJr cy9nZW1fd3NpbS5jCmluZGV4IDg3Zjg3M2IwLi40NDc0NWQwNiAxMDA2NDQKLS0tIGEvYmVuY2ht YXJrcy9nZW1fd3NpbS5jCisrKyBiL2JlbmNobWFya3MvZ2VtX3dzaW0uYwpAQCAtMjgxNCwxMSAr MjgxNCwxMSBAQCBzdGF0aWMgdm9pZCAqcnVuX3dvcmtsb2FkKHZvaWQgKmRhdGEpCiAJCQlkb19l Yih3cmssIHcsIGVuZ2luZSwgd3JrLT5mbGFncyk7CiAKIAkJCWlmICh3LT5yZXF1ZXN0ICE9IC0x KSB7Ci0JCQkJaWd0X2xpc3RfZGVsKCZ3LT5ycV9saW5rKTsKKwkJCQlpZ3RfbGlzdF9yZW1vdmUo JnctPnJxX2xpbmspOwogCQkJCXdyay0+bnJlcXVlc3Rbdy0+cmVxdWVzdF0tLTsKIAkJCX0KIAkJ CXctPnJlcXVlc3QgPSBlbmdpbmU7Ci0JCQlpZ3RfbGlzdF9hZGRfdGFpbCgmdy0+cnFfbGluaywg Jndyay0+cmVxdWVzdHNbZW5naW5lXSk7CisJCQlpZ3RfbGlzdF9pbnNlcnRfdGFpbCgmd3JrLT5y ZXF1ZXN0c1tlbmdpbmVdLCAmdy0+cnFfbGluayk7CiAJCQl3cmstPm5yZXF1ZXN0W2VuZ2luZV0r KzsKIAogCQkJaWYgKCF3cmstPnJ1bikKQEAgLTI4NDAsNyArMjg0MCw3IEBAIHN0YXRpYyB2b2lk ICpydW5fd29ya2xvYWQodm9pZCAqZGF0YSkKIAkJCQkJbGFzdF9zeW5jID0gdHJ1ZTsKIAogCQkJ CQlzLT5yZXF1ZXN0ID0gLTE7Ci0JCQkJCWlndF9saXN0X2RlbCgmcy0+cnFfbGluayk7CisJCQkJ CWlndF9saXN0X3JlbW92ZSgmcy0+cnFfbGluayk7CiAJCQkJCXdyay0+bnJlcXVlc3RbZW5naW5l XS0tOwogCQkJCX0KIAkJCX0KZGlmZiAtLWdpdCBhL2RvY3MvcmVmZXJlbmNlL2lndC1ncHUtdG9v bHMvaWd0LWdwdS10b29scy1kb2NzLnhtbCBiL2RvY3MvcmVmZXJlbmNlL2lndC1ncHUtdG9vbHMv aWd0LWdwdS10b29scy1kb2NzLnhtbAppbmRleCBhYzgzMjcyZi4uM2YxNGQ3YmUgMTAwNjQ0Ci0t LSBhL2RvY3MvcmVmZXJlbmNlL2lndC1ncHUtdG9vbHMvaWd0LWdwdS10b29scy1kb2NzLnhtbAor KysgYi9kb2NzL3JlZmVyZW5jZS9pZ3QtZ3B1LXRvb2xzL2lndC1ncHUtdG9vbHMtZG9jcy54bWwK QEAgLTMxLDYgKzMxLDcgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvaWd0X2d2dC54bWwi Lz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvaWd0X2ttb2QueG1sIi8+CiAgICAgPHhpOmlu Y2x1ZGUgaHJlZj0ieG1sL2lndF9rbXMueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1s L2lndF9saXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9pZ3RfcG0ueG1sIi8+ CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2lndF9wcmltZXMueG1sIi8+CiAgICAgPHhpOmlu Y2x1ZGUgaHJlZj0ieG1sL2lndF9yYW5kLnhtbCIvPgpkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxl LnNvdXJjZXMgYi9saWIvTWFrZWZpbGUuc291cmNlcwppbmRleCBjZjA5NGFiOC4uNGE3YzU0Y2Qg MTAwNjQ0Ci0tLSBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL2xpYi9NYWtlZmlsZS5zb3Vy Y2VzCkBAIC00Myw2ICs0Myw4IEBAIGxpYl9zb3VyY2VfbGlzdCA9CSAJXAogCWlndF9oYWxmZmxv YXQuaAkJXAogCWlndF9pbmZvZnJhbWUuYwkJXAogCWlndF9pbmZvZnJhbWUuaAkJXAorCWlndF9s aXN0LmMJCVwKKwlpZ3RfbGlzdC5oCQlcCiAJaWd0X21hdHJpeC5jCQlcCiAJaWd0X21hdHJpeC5o CQlcCiAJaWd0X3ByaW1lcy5jCQlcCmRpZmYgLS1naXQgYS9saWIvaWd0X2NoYW1lbGl1bS5jIGIv bGliL2lndF9jaGFtZWxpdW0uYwppbmRleCAxYjAzYTEwMy4uN2RlOGFiMDcgMTAwNjQ0Ci0tLSBh L2xpYi9pZ3RfY2hhbWVsaXVtLmMKKysrIGIvbGliL2lndF9jaGFtZWxpdW0uYwpAQCAtNTk3LDcg KzU5Nyw3IEBAIHN0cnVjdCBjaGFtZWxpdW1fZWRpZCAqY2hhbWVsaXVtX25ld19lZGlkKHN0cnVj dCBjaGFtZWxpdW0gKmNoYW1lbGl1bSwKIAljaGFtZWxpdW1fZWRpZC0+Y2hhbWVsaXVtID0gY2hh bWVsaXVtOwogCWNoYW1lbGl1bV9lZGlkLT5iYXNlID0gbWFsbG9jKGVkaWRfc2l6ZSk7CiAJbWVt Y3B5KGNoYW1lbGl1bV9lZGlkLT5iYXNlLCBlZGlkLCBlZGlkX3NpemUpOwotCWlndF9saXN0X2Fk ZCgmY2hhbWVsaXVtX2VkaWQtPmxpbmssICZjaGFtZWxpdW0tPmVkaWRzKTsKKwlpZ3RfbGlzdF9p bnNlcnQoJmNoYW1lbGl1bS0+ZWRpZHMsICZjaGFtZWxpdW1fZWRpZC0+bGluayk7CiAKIAlyZXR1 cm4gY2hhbWVsaXVtX2VkaWQ7CiB9CmRpZmYgLS1naXQgYS9saWIvaWd0X2NvcmUuYyBiL2xpYi9p Z3RfY29yZS5jCmluZGV4IDFjYmIwOWY5Li5kNWRjYTYxOCAxMDA2NDQKLS0tIGEvbGliL2lndF9j b3JlLmMKKysrIGIvbGliL2lndF9jb3JlLmMKQEAgLTExMzgsNyArMTEzOCw3IEBAIHZvaWQgX19p Z3Rfc3VidGVzdF9ncm91cF9zYXZlKGludCAqc2F2ZSwgaW50ICpkZXNjKQogCWlmIChfX2N1cnJl bnRfZGVzY3JpcHRpb25bMF0gIT0gJ1wwJykgewogCQlzdHJ1Y3QgZGVzY3JpcHRpb25fbm9kZSAq bmV3ID0gY2FsbG9jKDEsIHNpemVvZigqbmV3KSk7CiAJCW1lbWNweShuZXctPmRlc2MsIF9fY3Vy cmVudF9kZXNjcmlwdGlvbiwgc2l6ZW9mKF9fY3VycmVudF9kZXNjcmlwdGlvbikpOwotCQlpZ3Rf bGlzdF9hZGRfdGFpbCgmbmV3LT5saW5rLCAmc3ViZ3JvdXBfZGVzY3JpcHRpb25zKTsKKwkJaWd0 X2xpc3RfaW5zZXJ0X3RhaWwoJnN1Ymdyb3VwX2Rlc2NyaXB0aW9ucywgJm5ldy0+bGluayk7CiAJ CV9jbGVhcl9jdXJyZW50X2Rlc2NyaXB0aW9uKCk7CiAJCSpkZXNjID0gdHJ1ZTsKIAl9CkBAIC0x MTUxLDcgKzExNTEsNyBAQCB2b2lkIF9faWd0X3N1YnRlc3RfZ3JvdXBfcmVzdG9yZShpbnQgc2F2 ZSwgaW50IGRlc2MpCiAJaWYgKGRlc2MpIHsKIAkJc3RydWN0IGRlc2NyaXB0aW9uX25vZGUgKmxh c3QgPQogCQkJaWd0X2xpc3RfbGFzdF9lbnRyeSgmc3ViZ3JvdXBfZGVzY3JpcHRpb25zLCBsYXN0 LCBsaW5rKTsKLQkJaWd0X2xpc3RfZGVsKCZsYXN0LT5saW5rKTsKKwkJaWd0X2xpc3RfcmVtb3Zl KCZsYXN0LT5saW5rKTsKIAkJZnJlZShsYXN0KTsKIAl9CiAKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf ZHVtbXlsb2FkLmMgYi9saWIvaWd0X2R1bW15bG9hZC5jCmluZGV4IDBlMDYyNzZhLi5lYzBhYjk2 OSAxMDA2NDQKLS0tIGEvbGliL2lndF9kdW1teWxvYWQuYworKysgYi9saWIvaWd0X2R1bW15bG9h ZC5jCkBAIC0yODQsNyArMjg0LDcgQEAgc3Bpbl9jcmVhdGUoaW50IGZkLCBjb25zdCBzdHJ1Y3Qg aWd0X3NwaW5fZmFjdG9yeSAqb3B0cykKIAlzcGluLT5vdXRfZmVuY2UgPSBlbWl0X3JlY3Vyc2l2 ZV9iYXRjaChzcGluLCBmZCwgb3B0cyk7CiAKIAlwdGhyZWFkX211dGV4X2xvY2soJmxpc3RfbG9j ayk7Ci0JaWd0X2xpc3RfYWRkKCZzcGluLT5saW5rLCAmc3Bpbl9saXN0KTsKKwlpZ3RfbGlzdF9p bnNlcnQoJnNwaW5fbGlzdCwgJnNwaW4tPmxpbmspOwogCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZs aXN0X2xvY2spOwogCiAJcmV0dXJuIHNwaW47CkBAIC00MzAsNyArNDMwLDcgQEAgdm9pZCBpZ3Rf c3Bpbl9mcmVlKGludCBmZCwgaWd0X3NwaW5fdCAqc3BpbikKIAkJcmV0dXJuOwogCiAJcHRocmVh ZF9tdXRleF9sb2NrKCZsaXN0X2xvY2spOwotCWlndF9saXN0X2RlbCgmc3Bpbi0+bGluayk7CisJ aWd0X2xpc3RfcmVtb3ZlKCZzcGluLT5saW5rKTsKIAlwdGhyZWFkX211dGV4X3VubG9jaygmbGlz dF9sb2NrKTsKIAogCWlmIChzcGluLT50aW1lcikKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21vZC5j IGIvbGliL2lndF9rbW9kLmMKaW5kZXggOTE2NjJlYjMuLjhmNjZkMWRkIDEwMDY0NAotLS0gYS9s aWIvaWd0X2ttb2QuYworKysgYi9saWIvaWd0X2ttb2QuYwpAQCAtNDA0LDcgKzQwNCw3IEBAIHN0 YXRpYyB2b2lkIHRlc3RzX2FkZChzdHJ1Y3QgaWd0X2tzZWxmdGVzdF9saXN0ICp0bCwgc3RydWN0 IGlndF9saXN0ICpsaXN0KQogCQlpZiAocG9zLT5udW1iZXIgPiB0bC0+bnVtYmVyKQogCQkJYnJl YWs7CiAKLQlpZ3RfbGlzdF9hZGRfdGFpbCgmdGwtPmxpbmssICZwb3MtPmxpbmspOworCWlndF9s aXN0X2luc2VydF90YWlsKCZwb3MtPmxpbmssICZ0bC0+bGluayk7CiB9CiAKIHZvaWQgaWd0X2tz ZWxmdGVzdF9nZXRfdGVzdHMoc3RydWN0IGttb2RfbW9kdWxlICprbW9kLApkaWZmIC0tZ2l0IGEv bGliL2lndF9saXN0LmMgYi9saWIvaWd0X2xpc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMC4uYWY2MTUxMjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvaWd0X2xpc3QuYwpA QCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRp b24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRl YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0 IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9m IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0 d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k aXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUg aW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAq IFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRI T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJ TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwK KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu ICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwg V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT SU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICov CisKKyNpbmNsdWRlICJpZ3RfbGlzdC5oIgorCit2b2lkIGlndF9saXN0X2luaXQoc3RydWN0IGln dF9saXN0ICpsaXN0KQoreworCWxpc3QtPnByZXYgPSBsaXN0OworCWxpc3QtPm5leHQgPSBsaXN0 OworfQorCit2b2lkIGlndF9saXN0X2luc2VydChzdHJ1Y3QgaWd0X2xpc3QgKmxpc3QsIHN0cnVj dCBpZ3RfbGlzdCAqZWxtKQoreworCWVsbS0+cHJldiA9IGxpc3Q7CisJZWxtLT5uZXh0ID0gbGlz dC0+bmV4dDsKKwlsaXN0LT5uZXh0ID0gZWxtOworCWVsbS0+bmV4dC0+cHJldiA9IGVsbTsKK30K KworCit2b2lkIGlndF9saXN0X3JlbW92ZShzdHJ1Y3QgaWd0X2xpc3QgKmVsbSkKK3sKKwllbG0t PnByZXYtPm5leHQgPSBlbG0tPm5leHQ7CisJZWxtLT5uZXh0LT5wcmV2ID0gZWxtLT5wcmV2Owor CWVsbS0+bmV4dCA9IE5VTEw7CisJZWxtLT5wcmV2ID0gTlVMTDsKK30KKworaW50IGlndF9saXN0 X2xlbmd0aChjb25zdCBzdHJ1Y3QgaWd0X2xpc3QgKmxpc3QpCit7CisJc3RydWN0ICBpZ3RfbGlz dCAqZSA9IGxpc3QtPm5leHQ7CisJaW50IGNvdW50ID0gMDsKKworCXdoaWxlIChlICE9IGxpc3Qp IHsKKwkJZSA9IGUtPm5leHQ7CisJCWNvdW50Kys7CisJfQorCisJcmV0dXJuIGNvdW50OworfQor Citib29sIGlndF9saXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBpZ3RfbGlzdCAqbGlzdCkKK3sKKwly ZXR1cm4gbGlzdC0+bmV4dCA9PSBsaXN0OworfQpkaWZmIC0tZ2l0IGEvbGliL2lndF9saXN0Lmgg Yi9saWIvaWd0X2xpc3QuaAppbmRleCBjYWRmOWRkMy4uYzczYTk4ZjEgMTAwNjQ0Ci0tLSBhL2xp Yi9pZ3RfbGlzdC5oCisrKyBiL2xpYi9pZ3RfbGlzdC5oCkBAIC0yOCw5ICsyOCw0MiBAQAogI2lu Y2x1ZGUgPHN0ZGJvb2wuaD4KICNpbmNsdWRlIDxzdGRkZWYuaD4KIAotLyoKLSAqIFRoaXMgbGlz dCBkYXRhIHN0cnVjdHVyZSBpcyBhIHZlcmJhdGltIGNvcHkgZnJvbSB3YXlsYW5kLXV0aWwuaCBm cm9tIHRoZQotICogV2F5bGFuZCBwcm9qZWN0OyBleGNlcHQgdGhhdCB3bF8gcHJlZml4IGhhcyBi ZWVuIHJlbW92ZWQuCisvKioKKyAqIFNFQ1RJT046aWd0X2xpc3QKKyAqIEBzaG9ydF9kZXNjcmlw dGlvbjogYSBsaXN0IGltcGxlbWVudGF0aW9uIGJvcnJvd2VkIGZyb20gdGhlIFdheWxhbmQgcHJv amVjdAorICogQHRpdGxlOiBJR1QgTGlzdAorICogQGluY2x1ZGU6IGlndF9saXN0LmgKKyAqCisg KiBUaGlzIGxpc3QgZGF0YSBzdHJ1Y3R1cmUgbWltaWNzIHRoZSBvbmUgZnJvbSB3YXlsYW5kLXV0 aWwuaCBmcm9tIHRoZSBXYXlsYW5kCisgKiBwcm9qZWN0LiBBIGZldyBib251cyBoZWxwZXJzIGFy ZSBwcm92aWRlZC4KKyAqCisgKiBpZ3RfbGlzdCBpcyBhIGRvdWJseS1saW5rZWQgbGlzdCB3aGVy ZSBhbiBpbnN0YW5jZSBvZiBpZ3RfbGlzdCBpcyBhIGhlYWQKKyAqIHNlbnRpbmVsIGFuZCBoYXMg dG8gYmUgaW5pdGFsaXplZC4gU2VlIFdheWxhbmQgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZQorICog ZGV0YWlscy4KKyAqCisgKiBFeGFtcGxlIHVzYWdlOgorICoKKyAqIHxbPCEtLSBsYW5ndWFnZT0i QyIgLS0+CisgKiBzdHJ1Y3QgaWd0X2xpc3QgZm9vX2xpc3Q7CisgKgorICogc3RydWN0IGVsZW1l bnQgeworICogICAgICAgICBpbnQgZm9vOworICogICAgICAgICBzdHJ1Y3QgaWd0X2xpc3QgbGlu azsKKyAqIH07CisgKgorICogc3RydWN0IGVsZW1lbnQgZTEsIGUyLCBlMzsKKyAqCisgKiBpZ3Rf bGlzdF9pbml0KCZmb29fbGlzdCk7CisgKiBpZ3RfbGlzdF9pbnNlcnQoJmZvb19saXN0LCAmZTEu bGluayk7ICAgLy8gZTEgaXMgdGhlIGZpcnN0IGVsZW1lbnQKKyAqIGlndF9saXN0X2luc2VydCgm Zm9vX2xpc3QsICZlMi5saW5rKTsgICAvLyBlMiBpcyBub3cgdGhlIGZpcnN0IGVsZW1lbnQKKyAq IGlndF9saXN0X2luc2VydCgmZTIubGluaywgJmUzLmxpbmspOyAgICAvLyBpbnNlcnQgZTMgYWZ0 ZXIgZTIKKyAqCisgKiBzdHJ1Y3QgaWd0X3NwaW4gKml0ZXI7CisgKiBpZ3RfbGlzdF9mb3JfZWFj aChpdGVyLCAmZm9vX2xpc3QsIGxpbmspIHsKKyAqIAlwcmludGYoIiVkXG4iLCBpdGVyLT5mb28p OworICogfQorICogXXwKKyAqCiAgKi8KIAogc3RydWN0IGlndF9saXN0IHsKQEAgLTM4LDkyICs3 MSw1NiBAQCBzdHJ1Y3QgaWd0X2xpc3QgewogCXN0cnVjdCBpZ3RfbGlzdCAqbmV4dDsKIH07CiAK LSNkZWZpbmUgX19JR1RfSU5JVF9MSVNUKG5hbWUpIHsgJihuYW1lKSwgJihuYW1lKSB9Ci0jZGVm aW5lIElHVF9MSVNUKG5hbWUpIHN0cnVjdCBpZ3RfbGlzdCBuYW1lID0gX19JR1RfSU5JVF9MSVNU KG5hbWUpCi0KLXN0YXRpYyBpbmxpbmUgdm9pZCBpZ3RfbGlzdF9pbml0KHN0cnVjdCBpZ3RfbGlz dCAqbGlzdCkKLXsKLQlsaXN0LT5wcmV2ID0gbGlzdDsKLQlsaXN0LT5uZXh0ID0gbGlzdDsKLX0K LQotc3RhdGljIGlubGluZSB2b2lkIF9faWd0X2xpc3RfYWRkKHN0cnVjdCBpZ3RfbGlzdCAqbGlz dCwKLQkJCQkgIHN0cnVjdCBpZ3RfbGlzdCAqcHJldiwKLQkJCQkgIHN0cnVjdCBpZ3RfbGlzdCAq bmV4dCkKLXsKLQluZXh0LT5wcmV2ID0gbGlzdDsKLQlsaXN0LT5uZXh0ID0gbmV4dDsKLQlsaXN0 LT5wcmV2ID0gcHJldjsKLQlwcmV2LT5uZXh0ID0gbGlzdDsKLX0KLQotc3RhdGljIGlubGluZSB2 b2lkIGlndF9saXN0X2FkZChzdHJ1Y3QgaWd0X2xpc3QgKmVsbSwgc3RydWN0IGlndF9saXN0ICps aXN0KQotewotCV9faWd0X2xpc3RfYWRkKGVsbSwgbGlzdCwgbGlzdC0+bmV4dCk7Ci19Ci0KLXN0 YXRpYyBpbmxpbmUgdm9pZCBpZ3RfbGlzdF9hZGRfdGFpbChzdHJ1Y3QgaWd0X2xpc3QgKmVsbSwK LQkJCQkgICAgIHN0cnVjdCBpZ3RfbGlzdCAqbGlzdCkKLXsKLQlfX2lndF9saXN0X2FkZChlbG0s IGxpc3QtPnByZXYsIGxpc3QpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgX19pZ3RfbGlzdF9k ZWwoc3RydWN0IGlndF9saXN0ICpwcmV2LCBzdHJ1Y3QgaWd0X2xpc3QgKm5leHQpCi17Ci0JbmV4 dC0+cHJldiA9IHByZXY7Ci0JcHJldi0+bmV4dCA9IG5leHQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUg dm9pZCBpZ3RfbGlzdF9kZWwoc3RydWN0IGlndF9saXN0ICplbG0pCi17Ci0JX19pZ3RfbGlzdF9k ZWwoZWxtLT5wcmV2LCBlbG0tPm5leHQpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgaWd0X2xp c3RfbW92ZShzdHJ1Y3QgaWd0X2xpc3QgKmVsbSwgc3RydWN0IGlndF9saXN0ICpsaXN0KQotewot CWlndF9saXN0X2RlbChlbG0pOwotCWlndF9saXN0X2FkZChlbG0sIGxpc3QpOwotfQotCi1zdGF0 aWMgaW5saW5lIHZvaWQgaWd0X2xpc3RfbW92ZV90YWlsKHN0cnVjdCBpZ3RfbGlzdCAqZWxtLAot CQkJCSAgICAgIHN0cnVjdCBpZ3RfbGlzdCAqbGlzdCkKLXsKLQlpZ3RfbGlzdF9kZWwoZWxtKTsK LQlpZ3RfbGlzdF9hZGRfdGFpbChlbG0sIGxpc3QpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wg aWd0X2xpc3RfZW1wdHkoY29uc3Qgc3RydWN0IGlndF9saXN0ICpsaXN0KQotewotCXJldHVybiBs aXN0LT5uZXh0ID09IGxpc3Q7Ci19Ci0KLSNkZWZpbmUgY29udGFpbmVyX29mKHB0ciwgc2FtcGxl LCBtZW1iZXIpCQkJCVwKLQkodHlwZW9mKHNhbXBsZSkpKChjaGFyICopKHB0cikgLSBvZmZzZXRv Zih0eXBlb2YoKnNhbXBsZSksIG1lbWJlcikpCi0KLSNkZWZpbmUgaWd0X2xpc3RfZmlyc3RfZW50 cnkoaGVhZCwgcG9zLCBtZW1iZXIpIFwKLQljb250YWluZXJfb2YoKGhlYWQpLT5uZXh0LCAocG9z KSwgbWVtYmVyKQotI2RlZmluZSBpZ3RfbGlzdF9sYXN0X2VudHJ5KGhlYWQsIHBvcywgbWVtYmVy KSBcCi0JY29udGFpbmVyX29mKChoZWFkKS0+cHJldiwgKHBvcyksIG1lbWJlcikKLQotI2RlZmlu ZSBpZ3RfbGlzdF9uZXh0X2VudHJ5KHBvcywgbWVtYmVyKSBcCi0JY29udGFpbmVyX29mKChwb3Mp LT5tZW1iZXIubmV4dCwgKHBvcyksIG1lbWJlcikKLSNkZWZpbmUgaWd0X2xpc3RfcHJldl9lbnRy eShwb3MsIG1lbWJlcikgXAotCWNvbnRhaW5lcl9vZigocG9zKS0+bWVtYmVyLnByZXYsIChwb3Mp LCBtZW1iZXIpCit2b2lkIGlndF9saXN0X2luaXQoc3RydWN0IGlndF9saXN0ICpsaXN0KTsKK3Zv aWQgaWd0X2xpc3RfaW5zZXJ0KHN0cnVjdCBpZ3RfbGlzdCAqbGlzdCwgc3RydWN0IGlndF9saXN0 ICplbG0pOwordm9pZCBpZ3RfbGlzdF9yZW1vdmUoc3RydWN0IGlndF9saXN0ICplbG0pOworaW50 IGlndF9saXN0X2xlbmd0aChjb25zdCBzdHJ1Y3QgaWd0X2xpc3QgKmxpc3QpOworYm9vbCBpZ3Rf bGlzdF9lbXB0eShjb25zdCBzdHJ1Y3QgaWd0X2xpc3QgKmxpc3QpOworCisjZGVmaW5lIGlndF9j b250YWluZXJfb2YocHRyLCBzYW1wbGUsIG1lbWJlcikJCQkJXAorCShfX3R5cGVvZl9fKHNhbXBs ZSkpKChjaGFyICopKHB0cikgLQkJCQlcCisJCQkJb2Zmc2V0b2YoX190eXBlb2ZfXygqc2FtcGxl KSwgbWVtYmVyKSkKIAogI2RlZmluZSBpZ3RfbGlzdF9mb3JfZWFjaChwb3MsIGhlYWQsIG1lbWJl cikJCQkJXAotCWZvciAocG9zID0gaWd0X2xpc3RfZmlyc3RfZW50cnkoaGVhZCwgcG9zLCBtZW1i ZXIpOwkJXAorCWZvciAocG9zID0gaWd0X2NvbnRhaW5lcl9vZigoaGVhZCktPm5leHQsIHBvcywg bWVtYmVyKTsJCVwKIAkgICAgICZwb3MtPm1lbWJlciAhPSAoaGVhZCk7CQkJCQlcCi0JICAgICBw b3MgPSBpZ3RfbGlzdF9uZXh0X2VudHJ5KHBvcywgbWVtYmVyKSkKLQotI2RlZmluZSBpZ3RfbGlz dF9mb3JfZWFjaF9yZXZlcnNlKHBvcywgaGVhZCwgbWVtYmVyKQkJCVwKLQlmb3IgKHBvcyA9IGln dF9saXN0X2xhc3RfZW50cnkoaGVhZCwgcG9zLCBtZW1iZXIpOwkJXAotCSAgICAgJnBvcy0+bWVt YmVyICE9IChoZWFkKTsJCQkJCVwKLQkgICAgIHBvcyA9IGlndF9saXN0X3ByZXZfZW50cnkocG9z LCBtZW1iZXIpKQorCSAgICAgcG9zID0gaWd0X2NvbnRhaW5lcl9vZigocG9zKS0+bWVtYmVyLm5l eHQsIHBvcywgbWVtYmVyKSkKIAorLyoqCisgKiBpZ3RfbGlzdF9mb3JfZWFjaF9zYWZlCisgKgor ICogU2FmZSBhZ2FpbnN0IHJlbW92ZWwgb2YgdGhlICpjdXJyZW50KiBsaXN0IGVsZW1lbnQuIFRv IGFjaGl2ZSB0aGlzIGl0CisgKiByZXF1aXJlcyBhbiBleHRyYSBoZWxwZXIgdmFyaWFibGUgYHRt cGAgd2l0aCB0aGUgc2FtZSB0eXBlIGFzIGBwb3NgLgorICovCiAjZGVmaW5lIGlndF9saXN0X2Zv cl9lYWNoX3NhZmUocG9zLCB0bXAsIGhlYWQsIG1lbWJlcikJCQlcCi0JZm9yIChwb3MgPSBpZ3Rf bGlzdF9maXJzdF9lbnRyeShoZWFkLCBwb3MsIG1lbWJlciksCQlcCi0JICAgICB0bXAgPSBpZ3Rf bGlzdF9uZXh0X2VudHJ5KHBvcywgbWVtYmVyKTsJCQlcCisJZm9yIChwb3MgPSBpZ3RfY29udGFp bmVyX29mKChoZWFkKS0+bmV4dCwgcG9zLCBtZW1iZXIpLAkJXAorCSAgICAgdG1wID0gaWd0X2Nv bnRhaW5lcl9vZigocG9zKS0+bWVtYmVyLm5leHQsIHRtcCwgbWVtYmVyKTsgCVwKIAkgICAgICZw b3MtPm1lbWJlciAhPSAoaGVhZCk7CQkJCQlcCi0JICAgICBwb3MgPSB0bXAsIHRtcCA9IGlndF9s aXN0X25leHRfZW50cnkocG9zLCBtZW1iZXIpKQorCSAgICAgcG9zID0gdG1wLAkJCQkJCQlcCisJ ICAgICB0bXAgPSBpZ3RfY29udGFpbmVyX29mKChwb3MpLT5tZW1iZXIubmV4dCwgdG1wLCBtZW1i ZXIpKQorCisjZGVmaW5lIGlndF9saXN0X2Zvcl9lYWNoX3JldmVyc2UocG9zLCBoZWFkLCBtZW1i ZXIpCQkJXAorCWZvciAocG9zID0gaWd0X2NvbnRhaW5lcl9vZigoaGVhZCktPnByZXYsIHBvcywg bWVtYmVyKTsJCVwKKwkgICAgICZwb3MtPm1lbWJlciAhPSAoaGVhZCk7CQkJCQlcCisJICAgICBw b3MgPSBpZ3RfY29udGFpbmVyX29mKChwb3MpLT5tZW1iZXIucHJldiwgcG9zLCBtZW1iZXIpKQor CisKKy8qIElHVCBjdXN0b20gaGVscGVycyAqLworCisvKioKKyAqIElHVF9MSVNUCisgKgorICog SW5zdGVhZCBvZiBoYXZpbmcgdG8gdXNlIGBpZ3RfbGlzdF9pbml0KClgIGxpc3QgY2FuIGJlIGRl ZmluZWQgdXNpbmcKKyAqIHRoaXMgaGVscGVyLCBlLmcuIGBzdGF0aWMgSUdUX0xJU1QobGlzdCk7 YAorICovCisjZGVmaW5lIElHVF9MSVNUKG5hbWUpIHN0cnVjdCBpZ3RfbGlzdCBuYW1lID0geyAm KG5hbWUpLCAmKG5hbWUpIH0KKworI2RlZmluZSBpZ3RfbGlzdF9pbnNlcnRfdGFpbChsaXN0LCBl bGVtKSBpZ3RfbGlzdF9pbnNlcnQoKGxpc3QpLT5wcmV2LCBlbGVtKQorCisjZGVmaW5lIGlndF9s aXN0X2ZpcnN0X2VudHJ5KGhlYWQsIHBvcywgbWVtYmVyKSBcCisJaWd0X2NvbnRhaW5lcl9vZigo aGVhZCktPm5leHQsIChwb3MpLCBtZW1iZXIpCisKKyNkZWZpbmUgaWd0X2xpc3RfbGFzdF9lbnRy eShoZWFkLCBwb3MsIG1lbWJlcikgXAorCWlndF9jb250YWluZXJfb2YoKGhlYWQpLT5wcmV2LCAo cG9zKSwgbWVtYmVyKQogCiAjZW5kaWYgLyogSUdUX0xJU1RfSCAqLwpkaWZmIC0tZ2l0IGEvbGli L21lc29uLmJ1aWxkIGIvbGliL21lc29uLmJ1aWxkCmluZGV4IDIyMWFlMjhjLi4yNmQ1ZGI2ZiAx MDA2NDQKLS0tIGEvbGliL21lc29uLmJ1aWxkCisrKyBiL2xpYi9tZXNvbi5idWlsZApAQCAtNTAs NiArNTAsNyBAQCBsaWJfc291cmNlcyA9IFsKIAknaWd0X2ZiLmMnLAogCSdpZ3RfY29yZS5jJywK IAknaWd0X2RyYXcuYycsCisJJ2lndF9saXN0LmMnLAogCSdpZ3RfcG0uYycsCiAJJ2lndF9kdW1t eWxvYWQuYycsCiAJJ3V3aWxkbWF0L3V3aWxkbWF0LmMnLApkaWZmIC0tZ2l0IGEvdGVzdHMvdmM0 X3B1cmdlYWJsZV9iby5jIGIvdGVzdHMvdmM0X3B1cmdlYWJsZV9iby5jCmluZGV4IGNmZTE0ZTcw Li4wMzBiMWQxYiAxMDA2NDQKLS0tIGEvdGVzdHMvdmM0X3B1cmdlYWJsZV9iby5jCisrKyBiL3Rl c3RzL3ZjNF9wdXJnZWFibGVfYm8uYwpAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgdm9pZCBpZ3Rf dmM0X2FsbG9jX21tYXBfbWF4X2JvKGludCBmZCwgc3RydWN0IGlndF9saXN0ICpsaXN0LAogCQli by0+c2l6ZSA9IGNyZWF0ZS5zaXplOwogCQliby0+bWFwID0gaWd0X3ZjNF9tbWFwX2JvKGZkLCBi by0+aGFuZGxlLCBiby0+c2l6ZSwKIAkJCQkJICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKLQkJ aWd0X2xpc3RfYWRkX3RhaWwoJmJvLT5ub2RlLCBsaXN0KTsKKwkJaWd0X2xpc3RfaW5zZXJ0X3Rh aWwobGlzdCwgJmJvLT5ub2RlKTsKIAl9CiB9CiAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZv aWQgaWd0X3ZjNF91bm1hcF9mcmVlX2JvX3Bvb2woaW50IGZkLCBzdHJ1Y3QgaWd0X2xpc3QgKmxp c3QpCiAJd2hpbGUgKCFpZ3RfbGlzdF9lbXB0eShsaXN0KSkgewogCQlibyA9IGlndF9saXN0X2Zp cnN0X2VudHJ5KGxpc3QsIGJvLCBub2RlKTsKIAkJaWd0X2Fzc2VydChibyk7Ci0JCWlndF9saXN0 X2RlbCgmYm8tPm5vZGUpOworCQlpZ3RfbGlzdF9yZW1vdmUoJmJvLT5ub2RlKTsKIAkJbXVubWFw KGJvLT5tYXAsIGJvLT5zaXplKTsKIAkJZ2VtX2Nsb3NlKGZkLCBiby0+aGFuZGxlKTsKIAkJZnJl ZShibyk7CkBAIC0yNTMsNyArMjUzLDcgQEAgaWd0X21haW4KIAkJLyogVHJpZ2dlciBhIHB1cmdl LiAqLwogCQlpZ3RfdmM0X3RyaWdnZXJfcHVyZ2UoZmQpOwogCi0JCWlndF9saXN0X2RlbCgmYm8t Pm5vZGUpOworCQlpZ3RfbGlzdF9yZW1vdmUoJmJvLT5ub2RlKTsKIAkJbXVubWFwKGJvLT5tYXAs IGJvLT5zaXplKTsKIAkJZ2VtX2Nsb3NlKGZkLCBiby0+aGFuZGxlKTsKIAkJZnJlZShibyk7Ci0t IAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==