From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 406FC6E98C for ; Fri, 24 Jul 2020 20:22:54 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Fri, 24 Jul 2020 22:22:26 +0200 Message-Id: <20200724202233.14952-8-zbigniew.kempczynski@intel.com> In-Reply-To: <20200724202233.14952-1-zbigniew.kempczynski@intel.com> References: <20200724202233.14952-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v6 07/14] lib/igt_draw: remove libdrm dependency 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: Chris Wilson List-ID: Q2hhbmdlIHJlbmRlcmNvcHkgdG8gdXNlIGludGVsX2JiIHRvIHJlbW92ZSBsaWJkcm0gZGVwZW5k ZW5jeS4KClNpZ25lZC1vZmYtYnk6IERvbWluaWsgR3J6ZWdvcnplayA8ZG9taW5pay5ncnplZ29y emVrQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogWmJpZ25pZXcgS2VtcGN6ecWEc2tpIDx6Ymln bmlldy5rZW1wY3p5bnNraUBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4KLS0tCiBsaWIvaWd0X2RyYXcuYyB8IDE1OCArKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWIvaWd0X2RyYXcuaCB8ICAgOCAr LS0KIDIgZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKSwgODYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbGliL2lndF9kcmF3LmMgYi9saWIvaWd0X2RyYXcuYwppbmRleCBmMjM0MDEy Ny4uOGRlODcwYjcgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZHJhdy5jCisrKyBiL2xpYi9pZ3RfZHJh dy5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiaWd0X2RyYXcuaCIKIAogI2luY2x1ZGUg ImRybXRlc3QuaCIKKyNpbmNsdWRlICJpbnRlbF9idWZvcHMuaCIKICNpbmNsdWRlICJpbnRlbF9i YXRjaGJ1ZmZlci5oIgogI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKICNpbmNsdWRlICJpZ3Rf Y29yZS5oIgpAQCAtNjEsOCArNjIsOCBAQAogLyogU29tZSBpbnRlcm5hbCBkYXRhIHN0cnVjdHVy ZXMgdG8gYXZvaWQgaGF2aW5nIHRvIHBhc3MgdG9ucyBvZiBwYXJhbWV0ZXJzCiAgKiBhcm91bmQg ZXZlcnl0aGluZy4gKi8KIHN0cnVjdCBjbWRfZGF0YSB7Ci0JZHJtX2ludGVsX2J1Zm1nciAqYnVm bWdyOwotCWRybV9pbnRlbF9jb250ZXh0ICpjb250ZXh0OworCXN0cnVjdCBidWZfb3BzICpib3Bz OworCXVpbnQzMl90IGN0eDsKIH07CiAKIHN0cnVjdCBidWZfZGF0YSB7CkBAIC0yNjQsOCArMjY1 LDcgQEAgc3RhdGljIHZvaWQgc2V0X3BpeGVsKHZvaWQgKl9wdHIsIGludCBpbmRleCwgdWludDMy X3QgY29sb3IsIGludCBicHApCiAJfQogfQogCi1zdGF0aWMgdm9pZCBzd2l0Y2hfYmx0X3RpbGlu ZyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLCB1aW50MzJfdCB0aWxpbmcsCi0JCQkg ICAgICBib29sIG9uKQorc3RhdGljIHZvaWQgc3dpdGNoX2JsdF90aWxpbmcoc3RydWN0IGludGVs X2JiICppYmIsIHVpbnQzMl90IHRpbGluZywgYm9vbCBvbikKIHsKIAl1aW50MzJfdCBiY3Nfc3dj dHJsOwogCkBAIC0yNzMsMjYgKzI3MywyMiBAQCBzdGF0aWMgdm9pZCBzd2l0Y2hfYmx0X3RpbGlu ZyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLCB1aW50MzJfdCB0aWxpbmcsCiAJaWYg KHRpbGluZyAhPSBJOTE1X1RJTElOR19ZKQogCQlyZXR1cm47CiAKLQlpZ3RfcmVxdWlyZShiYXRj aC0+Z2VuID49IDYpOworCWlndF9yZXF1aXJlKGliYi0+Z2VuID49IDYpOwogCiAJYmNzX3N3Y3Ry bCA9ICgweDMgPDwgMTYpIHwgKG9uID8gMHgzIDogMHgwKTsKIAogCS8qIFRvIGNoYW5nZSB0aGUg dGlsZSByZWdpc3RlciwgaW5zZXJ0IGFuIE1JX0ZMVVNIX0RXIGZvbGxvd2VkIGJ5IGFuCiAJICog TUlfTE9BRF9SRUdJU1RFUl9JTU0KIAkgKi8KLQlCRUdJTl9CQVRDSCg0LCAwKTsKLQlPVVRfQkFU Q0goTUlfRkxVU0hfRFcgfCAyKTsKLQlPVVRfQkFUQ0goMHgwKTsKLQlPVVRfQkFUQ0goMHgwKTsK LQlPVVRfQkFUQ0goMHgwKTsKLQlBRFZBTkNFX0JBVENIKCk7Ci0KLQlCRUdJTl9CQVRDSCg0LCAw KTsKLQlPVVRfQkFUQ0goTUlfTE9BRF9SRUdJU1RFUl9JTU0pOwotCU9VVF9CQVRDSCgweDIyMjAw KTsgLyogQkNTX1NXQ1RSTCAqLwotCU9VVF9CQVRDSChiY3Nfc3djdHJsKTsKLQlPVVRfQkFUQ0go TUlfTk9PUCk7Ci0JQURWQU5DRV9CQVRDSCgpOworCWludGVsX2JiX291dChpYmIsIE1JX0ZMVVNI X0RXIHwgMik7CisJaW50ZWxfYmJfb3V0KGliYiwgMHgwKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCAw eDApOworCWludGVsX2JiX291dChpYmIsIDB4MCk7CisKKwlpbnRlbF9iYl9vdXQoaWJiLCBNSV9M T0FEX1JFR0lTVEVSX0lNTSk7CisJaW50ZWxfYmJfb3V0KGliYiwgMHgyMjIwMCk7IC8qIEJDU19T V0NUUkwgKi8KKwlpbnRlbF9iYl9vdXQoaWJiLCBiY3Nfc3djdHJsKTsKKwlpbnRlbF9iYl9vdXQo aWJiLCBNSV9OT09QKTsKIH0KIAogc3RhdGljIHZvaWQgZHJhd19yZWN0X3B0cl9saW5lYXIodm9p ZCAqcHRyLCB1aW50MzJfdCBzdHJpZGUsCkBAIC01MDksMjIgKzUwNSwzOSBAQCBzdGF0aWMgdm9p ZCBkcmF3X3JlY3RfcHdyaXRlKGludCBmZCwgc3RydWN0IGJ1Zl9kYXRhICpidWYsCiAJfQogfQog CitzdGF0aWMgc3RydWN0IGludGVsX2J1ZiAqY3JlYXRlX2J1ZihpbnQgZmQsIHN0cnVjdCBidWZf b3BzICpib3BzLAorCQkJCSAgICBzdHJ1Y3QgYnVmX2RhdGEgKmZyb20sIHVpbnQzMl90IHRpbGlu ZykKK3sKKwlzdHJ1Y3QgaW50ZWxfYnVmICpidWYgPSBjYWxsb2Moc2l6ZW9mKCpidWYpLCAxKTsK Kwl1aW50MzJfdCBoYW5kbGUsIG5hbWUsIHdpZHRoLCBoZWlnaHQ7CisKKwlpZ3RfYXNzZXJ0KGJ1 Zik7CisKKwl3aWR0aCA9IGZyb20tPnN0cmlkZSAvIChmcm9tLT5icHAgLyA4KTsKKwloZWlnaHQg PSBmcm9tLT5zaXplIC8gZnJvbS0+c3RyaWRlOworCisJbmFtZSA9IGdlbV9mbGluayhmZCwgZnJv bS0+aGFuZGxlKTsKKwloYW5kbGUgPSBnZW1fb3BlbihmZCwgbmFtZSk7CisJaW50ZWxfYnVmX2lu aXRfdXNpbmdfaGFuZGxlKGJvcHMsIGhhbmRsZSwgYnVmLAorCQkJCSAgICB3aWR0aCwgaGVpZ2h0 LCBmcm9tLT5icHAsIDAsCisJCQkJICAgIHRpbGluZywgMCk7CisKKwlyZXR1cm4gYnVmOworfQor CiBzdGF0aWMgdm9pZCBkcmF3X3JlY3RfYmx0KGludCBmZCwgc3RydWN0IGNtZF9kYXRhICpjbWRf ZGF0YSwKIAkJCSAgc3RydWN0IGJ1Zl9kYXRhICpidWYsIHN0cnVjdCByZWN0ICpyZWN0LAogCQkJ ICB1aW50MzJfdCB0aWxpbmcsIHVpbnQzMl90IGNvbG9yKQogewotCWRybV9pbnRlbF9ibyAqZHN0 OwotCXN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2g7CisJc3RydWN0IGludGVsX2JiICpp YmI7CisJc3RydWN0IGludGVsX2J1ZiAqZHN0OwogCWludCBibHRfY21kX2xlbiwgYmx0X2NtZF90 aWxpbmcsIGJsdF9jbWRfZGVwdGg7CiAJdWludDMyX3QgZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2Rl dmlkKGZkKTsKIAlpbnQgZ2VuID0gaW50ZWxfZ2VuKGRldmlkKTsKIAlpbnQgcGl0Y2g7CiAKLQlk c3QgPSBnZW1faGFuZGxlX3RvX2xpYmRybV9ibyhjbWRfZGF0YS0+YnVmbWdyLCBmZCwgIiIsIGJ1 Zi0+aGFuZGxlKTsKLQlpZ3RfYXNzZXJ0KGRzdCk7Ci0KLQliYXRjaCA9IGludGVsX2JhdGNoYnVm ZmVyX2FsbG9jKGNtZF9kYXRhLT5idWZtZ3IsIGRldmlkKTsKLQlpZ3RfYXNzZXJ0KGJhdGNoKTsK Kwlkc3QgPSBjcmVhdGVfYnVmKGZkLCBjbWRfZGF0YS0+Ym9wcywgYnVmLCB0aWxpbmcpOworCWli YiA9IGludGVsX2JiX2NyZWF0ZShmZCwgUEFHRV9TSVpFKTsKIAogCXN3aXRjaCAoYnVmLT5icHAp IHsKIAljYXNlIDg6CkBAIC01NDQsODEgKzU1Nyw2MyBAQCBzdGF0aWMgdm9pZCBkcmF3X3JlY3Rf Ymx0KGludCBmZCwgc3RydWN0IGNtZF9kYXRhICpjbWRfZGF0YSwKIAlibHRfY21kX3RpbGluZyA9 ICh0aWxpbmcpID8gWFlfQ09MT1JfQkxUX1RJTEVEIDogMDsKIAlwaXRjaCA9IChnZW4gPj0gNCAm JiB0aWxpbmcpID8gYnVmLT5zdHJpZGUgLyA0IDogYnVmLT5zdHJpZGU7CiAKLQlzd2l0Y2hfYmx0 X3RpbGluZyhiYXRjaCwgdGlsaW5nLCB0cnVlKTsKKwlzd2l0Y2hfYmx0X3RpbGluZyhpYmIsIHRp bGluZywgdHJ1ZSk7CiAKLQlCRUdJTl9CQVRDSCg2LCAxKTsKLQlPVVRfQkFUQ0goWFlfQ09MT1Jf QkxUX0NNRF9OT0xFTiB8IFhZX0NPTE9SX0JMVF9XUklURV9BTFBIQSB8Ci0JCSAgWFlfQ09MT1Jf QkxUX1dSSVRFX1JHQiB8IGJsdF9jbWRfdGlsaW5nIHwgYmx0X2NtZF9sZW4pOwotCU9VVF9CQVRD SChibHRfY21kX2RlcHRoIHwgKDB4RjAgPDwgMTYpIHwgcGl0Y2gpOwotCU9VVF9CQVRDSCgocmVj dC0+eSA8PCAxNikgfCByZWN0LT54KTsKLQlPVVRfQkFUQ0goKChyZWN0LT55ICsgcmVjdC0+aCkg PDwgMTYpIHwgKHJlY3QtPnggKyByZWN0LT53KSk7Ci0JT1VUX1JFTE9DX0ZFTkNFRChkc3QsIDAs IEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIsIDApOwotCU9VVF9CQVRDSChjb2xvcik7Ci0JQURWQU5D RV9CQVRDSCgpOworCWludGVsX2JiX291dChpYmIsIFhZX0NPTE9SX0JMVF9DTURfTk9MRU4gfCBY WV9DT0xPUl9CTFRfV1JJVEVfQUxQSEEgfAorCQkgICAgIFhZX0NPTE9SX0JMVF9XUklURV9SR0Ig fCBibHRfY21kX3RpbGluZyB8IGJsdF9jbWRfbGVuKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCBibHRf Y21kX2RlcHRoIHwgKDB4RjAgPDwgMTYpIHwgcGl0Y2gpOworCWludGVsX2JiX291dChpYmIsIChy ZWN0LT55IDw8IDE2KSB8IHJlY3QtPngpOworCWludGVsX2JiX291dChpYmIsICgocmVjdC0+eSAr IHJlY3QtPmgpIDw8IDE2KSB8IChyZWN0LT54ICsgcmVjdC0+dykpOworCWludGVsX2JiX2VtaXRf cmVsb2NfZmVuY2VkKGliYiwgZHN0LT5oYW5kbGUsIDAsIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIs CisJCQkJICAgMCwgZHN0LT5hZGRyLm9mZnNldCk7CisJaW50ZWxfYmJfb3V0KGliYiwgY29sb3Ip OwogCi0Jc3dpdGNoX2JsdF90aWxpbmcoYmF0Y2gsIHRpbGluZywgZmFsc2UpOworCXN3aXRjaF9i bHRfdGlsaW5nKGliYiwgdGlsaW5nLCBmYWxzZSk7CiAKLQlpbnRlbF9iYXRjaGJ1ZmZlcl9mbHVz aChiYXRjaCk7Ci0JaW50ZWxfYmF0Y2hidWZmZXJfZnJlZShiYXRjaCk7Ci0JZHJtX2ludGVsX2Jv X3VucmVmZXJlbmNlKGRzdCk7CisJaW50ZWxfYmJfZmx1c2hfYmxpdChpYmIpOworCWludGVsX2Ji X2Rlc3Ryb3koaWJiKTsKKwlpbnRlbF9idWZfZGVzdHJveShkc3QpOwogfQogCiBzdGF0aWMgdm9p ZCBkcmF3X3JlY3RfcmVuZGVyKGludCBmZCwgc3RydWN0IGNtZF9kYXRhICpjbWRfZGF0YSwKIAkJ CSAgICAgc3RydWN0IGJ1Zl9kYXRhICpidWYsIHN0cnVjdCByZWN0ICpyZWN0LAogCQkJICAgICB1 aW50MzJfdCB0aWxpbmcsIHVpbnQzMl90IGNvbG9yKQogewotCWRybV9pbnRlbF9ibyAqc3JjLCAq ZHN0OworCXN0cnVjdCBpbnRlbF9idWYgKnNyYywgKmRzdDsKIAl1aW50MzJfdCBkZXZpZCA9IGlu dGVsX2dldF9kcm1fZGV2aWQoZmQpOwogCWlndF9yZW5kZXJfY29weWZ1bmNfdCByZW5kZXJjb3B5 ID0gaWd0X2dldF9yZW5kZXJfY29weWZ1bmMoZGV2aWQpOwotCXN0cnVjdCBpZ3RfYnVmIHNyY19i dWYgPSB7fSwgZHN0X2J1ZiA9IHt9OwotCXN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2g7 CisJc3RydWN0IGludGVsX2JiICppYmI7CiAJc3RydWN0IGJ1Zl9kYXRhIHRtcDsKIAlpbnQgcGl4 ZWxfc2l6ZSA9IGJ1Zi0+YnBwIC8gODsKIAogCWlndF9za2lwX29uKCFyZW5kZXJjb3B5KTsKIAog CS8qIFdlIGNyZWF0ZSBhIHRlbXBvcmFyeSBidWZmZXIgYW5kIGNvcHkgZnJvbSBpdCB1c2luZyBy ZW5kZXJjb3B5LiAqLwotCXRtcC5zaXplID0gcmVjdC0+dyAqIHJlY3QtPmggKiBwaXhlbF9zaXpl OworCXRtcC5zaXplID0gQUxJR04ocmVjdC0+dyAqIHJlY3QtPmggKiBwaXhlbF9zaXplLCAxMjgp OwogCXRtcC5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCB0bXAuc2l6ZSk7Ci0JdG1wLnN0cmlkZSA9 IHJlY3QtPncgKiBwaXhlbF9zaXplOworCXRtcC5zdHJpZGUgPSBBTElHTihyZWN0LT53ICogcGl4 ZWxfc2l6ZSwgMzIpOwogCXRtcC5icHAgPSBidWYtPmJwcDsKIAlkcmF3X3JlY3RfbW1hcF9jcHUo ZmQsICZ0bXAsICYoc3RydWN0IHJlY3QpezAsIDAsIHJlY3QtPncsIHJlY3QtPmh9LAogCQkJICAg STkxNV9USUxJTkdfTk9ORSwgSTkxNV9CSVRfNl9TV0laWkxFX05PTkUsIGNvbG9yKTsKIAotCXNy YyA9IGdlbV9oYW5kbGVfdG9fbGliZHJtX2JvKGNtZF9kYXRhLT5idWZtZ3IsIGZkLCAiIiwgdG1w LmhhbmRsZSk7Ci0JaWd0X2Fzc2VydChzcmMpOwotCWRzdCA9IGdlbV9oYW5kbGVfdG9fbGliZHJt X2JvKGNtZF9kYXRhLT5idWZtZ3IsIGZkLCAiIiwgYnVmLT5oYW5kbGUpOwotCWlndF9hc3NlcnQo ZHN0KTsKLQotCXNyY19idWYuYm8gPSBzcmM7Ci0Jc3JjX2J1Zi5zdXJmYWNlWzBdLnN0cmlkZSA9 IHRtcC5zdHJpZGU7Ci0Jc3JjX2J1Zi50aWxpbmcgPSBJOTE1X1RJTElOR19OT05FOwotCXNyY19i dWYuc3VyZmFjZVswXS5zaXplID0gdG1wLnNpemU7Ci0Jc3JjX2J1Zi5icHAgPSB0bXAuYnBwOwot CWRzdF9idWYuYm8gPSBkc3Q7Ci0JZHN0X2J1Zi5zdXJmYWNlWzBdLnN0cmlkZSA9IGJ1Zi0+c3Ry aWRlOwotCWRzdF9idWYudGlsaW5nID0gdGlsaW5nOwotCWRzdF9idWYuc3VyZmFjZVswXS5zaXpl ID0gYnVmLT5zaXplOwotCWRzdF9idWYuYnBwID0gYnVmLT5icHA7Ci0KLQliYXRjaCA9IGludGVs X2JhdGNoYnVmZmVyX2FsbG9jKGNtZF9kYXRhLT5idWZtZ3IsIGRldmlkKTsKLQlpZ3RfYXNzZXJ0 KGJhdGNoKTsKLQotCXJlbmRlcmNvcHkoYmF0Y2gsIGNtZF9kYXRhLT5jb250ZXh0LCAmc3JjX2J1 ZiwgMCwgMCwgcmVjdC0+dywKLQkJICAgcmVjdC0+aCwgJmRzdF9idWYsIHJlY3QtPngsIHJlY3Qt PnkpOwotCi0JaW50ZWxfYmF0Y2hidWZmZXJfZnJlZShiYXRjaCk7Ci0JZHJtX2ludGVsX2JvX3Vu cmVmZXJlbmNlKHNyYyk7Ci0JZHJtX2ludGVsX2JvX3VucmVmZXJlbmNlKGRzdCk7CisJc3JjID0g Y3JlYXRlX2J1ZihmZCwgY21kX2RhdGEtPmJvcHMsICZ0bXAsIEk5MTVfVElMSU5HX05PTkUpOwor CWRzdCA9IGNyZWF0ZV9idWYoZmQsIGNtZF9kYXRhLT5ib3BzLCBidWYsIHRpbGluZyk7CisJaWJi ID0gaW50ZWxfYmJfY3JlYXRlKGZkLCBQQUdFX1NJWkUpOworCisJcmVuZGVyY29weShpYmIsIGNt ZF9kYXRhLT5jdHgsIHNyYywgMCwgMCwgcmVjdC0+dywKKwkJICAgcmVjdC0+aCwgZHN0LCByZWN0 LT54LCByZWN0LT55KTsKKworCWludGVsX2JiX2Rlc3Ryb3koaWJiKTsKKwlpbnRlbF9idWZfZGVz dHJveShzcmMpOworCWludGVsX2J1Zl9kZXN0cm95KGRzdCk7CiAJZ2VtX2Nsb3NlKGZkLCB0bXAu aGFuZGxlKTsKIH0KIAogLyoqCiAgKiBpZ3RfZHJhd19yZWN0OgogICogQGZkOiB0aGUgRFJNIGZp bGUgZGVzY3JpcHRvcgotICogQGJ1Zm1ncjogdGhlIGxpYmRybSBidWZtZ3IsIG9ubHkgcmVxdWly ZWQgZm9yIElHVF9EUkFXX0JMVCBhbmQKLSAqICAgICAgICAgIElHVF9EUkFXX1JFTkRFUgotICog QGNvbnRleHQ6IHRoZSBjb250ZXh0LCBjYW4gYmUgTlVMTCBpZiB5b3UgZG9uJ3Qgd2FudCB0byB0 aGluayBhYm91dCBpdAorICogQGJvcHM6IGJ1ZiBvcHMsIG9ubHkgcmVxdWlyZWQgZm9yIElHVF9E UkFXX0JMVCBhbmQgSUdUX0RSQVdfUkVOREVSCisgKiBAY3R4OiB0aGUgY29udGV4dCwgY2FuIGJl IDAgaWYgeW91IGRvbid0IHdhbnQgdG8gdGhpbmsgYWJvdXQgaXQKICAqIEBidWZfaGFuZGxlOiB0 aGUgaGFuZGxlIG9mIHRoZSBidWZmZXIgd2hlcmUgeW91J3JlIGdvaW5nIHRvIGRyYXcgdG8KICAq IEBidWZfc2l6ZTogdGhlIHNpemUgb2YgdGhlIGJ1ZmZlcgogICogQGJ1Zl9zdHJpZGU6IHRoZSBz dHJpZGUgb2YgdGhlIGJ1ZmZlcgpAQCAtNjM0LDcgKzYyOSw3IEBAIHN0YXRpYyB2b2lkIGRyYXdf cmVjdF9yZW5kZXIoaW50IGZkLCBzdHJ1Y3QgY21kX2RhdGEgKmNtZF9kYXRhLAogICogVGhpcyBm dW5jdGlvbiBkcmF3cyBhIGNvbG9yZWQgcmVjdGFuZ2xlIG9uIHRoZSBkZXN0aW5hdGlvbiBidWZm ZXIsIGFsbG93aW5nCiAgKiB5b3UgdG8gc3BlY2lmeSB0aGUgbWV0aG9kIHVzZWQgdG8gZHJhdyB0 aGUgcmVjdGFuZ2xlLgogICovCi12b2lkIGlndF9kcmF3X3JlY3QoaW50IGZkLCBkcm1faW50ZWxf YnVmbWdyICpidWZtZ3IsIGRybV9pbnRlbF9jb250ZXh0ICpjb250ZXh0LAordm9pZCBpZ3RfZHJh d19yZWN0KGludCBmZCwgc3RydWN0IGJ1Zl9vcHMgKmJvcHMsIHVpbnQzMl90IGN0eCwKIAkJICAg dWludDMyX3QgYnVmX2hhbmRsZSwgdWludDMyX3QgYnVmX3NpemUsIHVpbnQzMl90IGJ1Zl9zdHJp ZGUsCiAJCSAgIHVpbnQzMl90IHRpbGluZywgZW51bSBpZ3RfZHJhd19tZXRob2QgbWV0aG9kLAog CQkgICBpbnQgcmVjdF94LCBpbnQgcmVjdF95LCBpbnQgcmVjdF93LCBpbnQgcmVjdF9oLApAQCAt NjQzLDggKzYzOCw4IEBAIHZvaWQgaWd0X2RyYXdfcmVjdChpbnQgZmQsIGRybV9pbnRlbF9idWZt Z3IgKmJ1Zm1nciwgZHJtX2ludGVsX2NvbnRleHQgKmNvbnRleHQsCiAJdWludDMyX3QgYnVmX3Rp bGluZywgc3dpenpsZTsKIAogCXN0cnVjdCBjbWRfZGF0YSBjbWRfZGF0YSA9IHsKLQkJLmJ1Zm1n ciA9IGJ1Zm1nciwKLQkJLmNvbnRleHQgPSBjb250ZXh0LAorCQkuYm9wcyA9IGJvcHMsCisJCS5j dHggPSBjdHgsCiAJfTsKIAlzdHJ1Y3QgYnVmX2RhdGEgYnVmID0gewogCQkuaGFuZGxlID0gYnVm X2hhbmRsZSwKQEAgLTY5Myw5ICs2ODgsOCBAQCB2b2lkIGlndF9kcmF3X3JlY3QoaW50IGZkLCBk cm1faW50ZWxfYnVmbWdyICpidWZtZ3IsIGRybV9pbnRlbF9jb250ZXh0ICpjb250ZXh0LAogLyoq CiAgKiBpZ3RfZHJhd19yZWN0X2ZiOgogICogQGZkOiB0aGUgRFJNIGZpbGUgZGVzY3JpcHRvcgot ICogQGJ1Zm1ncjogdGhlIGxpYmRybSBidWZtZ3IsIG9ubHkgcmVxdWlyZWQgZm9yIElHVF9EUkFX X0JMVCBhbmQKLSAqICAgICAgICAgIElHVF9EUkFXX1JFTkRFUgotICogQGNvbnRleHQ6IHRoZSBj b250ZXh0LCBjYW4gYmUgTlVMTCBpZiB5b3UgZG9uJ3Qgd2FudCB0byB0aGluayBhYm91dCBpdAor ICogQGJvcHM6IGJ1ZiBvcHMsIG9ubHkgcmVxdWlyZWQgZm9yIElHVF9EUkFXX0JMVCBhbmQgSUdU X0RSQVdfUkVOREVSCisgKiBAY3R4OiBjb250ZXh0LCBjYW4gYmUgMCBpZiB5b3UgZG9uJ3Qgd2Fu dCB0byB0aGluayBhYm91dCBpdAogICogQGZiOiBmcmFtZWJ1ZmZlcgogICogQG1ldGhvZDogbWV0 aG9kIHlvdSdyZSBnb2luZyB0byB1c2UgdG8gd3JpdGUgdG8gdGhlIGJ1ZmZlcgogICogQHJlY3Rf eDogaG9yaXpvbnRhbCBwb3NpdGlvbiBvbiB0aGUgYnVmZmVyIHdoZXJlIHlvdXIgcmVjdGFuZ2xl IHN0YXJ0cwpAQCAtNzA3LDEyICs3MDEsMTIgQEAgdm9pZCBpZ3RfZHJhd19yZWN0KGludCBmZCwg ZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyLCBkcm1faW50ZWxfY29udGV4dCAqY29udGV4dCwKICAq IFRoaXMgaXMgZXhhY3RseSB0aGUgc2FtZSBhcyBpZ3RfZHJhd19yZWN0LCBidXQgeW91IGNhbiBw YXNzIGFuIGlndF9mYiBpbnN0ZWFkCiAgKiBvZiBtYW51YWxseSBwcm92aWRpbmcgaXRzIGRldGFp bHMuIFNlZSBpZ3RfZHJhd19yZWN0LgogICovCi12b2lkIGlndF9kcmF3X3JlY3RfZmIoaW50IGZk LCBkcm1faW50ZWxfYnVmbWdyICpidWZtZ3IsCi0JCSAgICAgIGRybV9pbnRlbF9jb250ZXh0ICpj b250ZXh0LCBzdHJ1Y3QgaWd0X2ZiICpmYiwKK3ZvaWQgaWd0X2RyYXdfcmVjdF9mYihpbnQgZmQs IHN0cnVjdCBidWZfb3BzICpib3BzLAorCQkgICAgICB1aW50MzJfdCBjdHgsIHN0cnVjdCBpZ3Rf ZmIgKmZiLAogCQkgICAgICBlbnVtIGlndF9kcmF3X21ldGhvZCBtZXRob2QsIGludCByZWN0X3gs IGludCByZWN0X3ksCiAJCSAgICAgIGludCByZWN0X3csIGludCByZWN0X2gsIHVpbnQzMl90IGNv bG9yKQogewotCWlndF9kcmF3X3JlY3QoZmQsIGJ1Zm1nciwgY29udGV4dCwgZmItPmdlbV9oYW5k bGUsIGZiLT5zaXplLCBmYi0+c3RyaWRlc1swXSwKKwlpZ3RfZHJhd19yZWN0KGZkLCBib3BzLCBj dHgsIGZiLT5nZW1faGFuZGxlLCBmYi0+c2l6ZSwgZmItPnN0cmlkZXNbMF0sCiAJCSAgICAgIGln dF9mYl9tb2RfdG9fdGlsaW5nKGZiLT5tb2RpZmllciksIG1ldGhvZCwKIAkJICAgICAgcmVjdF94 LCByZWN0X3ksIHJlY3RfdywgcmVjdF9oLCBjb2xvciwKIAkJICAgICAgaWd0X2RybV9mb3JtYXRf dG9fYnBwKGZiLT5kcm1fZm9ybWF0KSk7CkBAIC03MjgsNyArNzIyLDcgQEAgdm9pZCBpZ3RfZHJh d19yZWN0X2ZiKGludCBmZCwgZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyLAogICovCiB2b2lkIGln dF9kcmF3X2ZpbGxfZmIoaW50IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYiwgdWludDMyX3QgY29sb3Ip CiB7Ci0JaWd0X2RyYXdfcmVjdF9mYihmZCwgTlVMTCwgTlVMTCwgZmIsCisJaWd0X2RyYXdfcmVj dF9mYihmZCwgTlVMTCwgMCwgZmIsCiAJCQkgZ2VtX2hhc19tYXBwYWJsZV9nZ3R0KGZkKSA/IElH VF9EUkFXX01NQVBfR1RUIDoKIAkJCQkJCSAgICAgSUdUX0RSQVdfTU1BUF9XQywKIAkJCSAwLCAw LCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsIGNvbG9yKTsKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZHJh dy5oIGIvbGliL2lndF9kcmF3LmgKaW5kZXggZWMxNDY3NTQuLjJkMThlZjZjIDEwMDY0NAotLS0g YS9saWIvaWd0X2RyYXcuaAorKysgYi9saWIvaWd0X2RyYXcuaApAQCAtMjUsNyArMjUsNyBAQAog I2lmbmRlZiBfX0lHVF9EUkFXX0hfXwogI2RlZmluZSBfX0lHVF9EUkFXX0hfXwogCi0jaW5jbHVk ZSA8aW50ZWxfYnVmbWdyLmg+CisjaW5jbHVkZSA8aW50ZWxfYnVmb3BzLmg+CiAjaW5jbHVkZSAi aWd0X2ZiLmgiCiAKIC8qKgpAQCAtNTAsMTQgKzUwLDE0IEBAIGVudW0gaWd0X2RyYXdfbWV0aG9k IHsKIAogY29uc3QgY2hhciAqaWd0X2RyYXdfZ2V0X21ldGhvZF9uYW1lKGVudW0gaWd0X2RyYXdf bWV0aG9kIG1ldGhvZCk7CiAKLXZvaWQgaWd0X2RyYXdfcmVjdChpbnQgZmQsIGRybV9pbnRlbF9i dWZtZ3IgKmJ1Zm1nciwgZHJtX2ludGVsX2NvbnRleHQgKmNvbnRleHQsCit2b2lkIGlndF9kcmF3 X3JlY3QoaW50IGZkLCBzdHJ1Y3QgYnVmX29wcyAqYm9wcywgdWludDMyX3QgY3R4LAogCQkgICB1 aW50MzJfdCBidWZfaGFuZGxlLCB1aW50MzJfdCBidWZfc2l6ZSwgdWludDMyX3QgYnVmX3N0cmlk ZSwKIAkJICAgdWludDMyX3QgdGlsaW5nLCBlbnVtIGlndF9kcmF3X21ldGhvZCBtZXRob2QsCiAJ CSAgIGludCByZWN0X3gsIGludCByZWN0X3ksIGludCByZWN0X3csIGludCByZWN0X2gsCiAJCSAg IHVpbnQzMl90IGNvbG9yLCBpbnQgYnBwKTsKIAotdm9pZCBpZ3RfZHJhd19yZWN0X2ZiKGludCBm ZCwgZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyLAotCQkgICAgICBkcm1faW50ZWxfY29udGV4dCAq Y29udGV4dCwgc3RydWN0IGlndF9mYiAqZmIsCit2b2lkIGlndF9kcmF3X3JlY3RfZmIoaW50IGZk LCBzdHJ1Y3QgYnVmX29wcyAqYm9wcywKKwkJICAgICAgdWludDMyX3QgY3R4LCBzdHJ1Y3QgaWd0 X2ZiICpmYiwKIAkJICAgICAgZW51bSBpZ3RfZHJhd19tZXRob2QgbWV0aG9kLCBpbnQgcmVjdF94 LCBpbnQgcmVjdF95LAogCQkgICAgICBpbnQgcmVjdF93LCBpbnQgcmVjdF9oLCB1aW50MzJfdCBj b2xvcik7CiAKLS0gCjIuMjYuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Qt ZGV2Cg==