From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Matt Roper Date: Tue, 13 Nov 2018 15:22:56 -0800 Message-Id: <20181113232256.22828-1-matthew.d.roper@intel.com> In-Reply-To: <20181113232149.22753-1-matthew.d.roper@intel.com> References: <20181113232149.22753-1-matthew.d.roper@intel.com> Subject: [igt-dev] [PATCH i-g-t v2] tests/kms_crtc_background_color: overhaul for latest ABI proposal (v2) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org List-ID: Q1JUQyBiYWNrZ3JvdW5kIGNvbG9yIGtlcm5lbCBwYXRjaGVzIHdlcmUgd3JpdHRlbiBhYm91dCAy LjUgeWVhcnMgYWdvCmFuZCBmbG9hdGVkIG9uIHRoZSB1cHN0cmVhbSBtYWlsaW5nIGxpc3QsIGJ1 dCBzaW5jZSBubyBvcGVuc291cmNlCnVzZXJzcGFjZSBtYXRlcmlhbGl6ZWQsIHdlIG5ldmVyIGFj dHVhbGx5IG1lcmdlZCB0aGVtLiAgSG93ZXZlciB0aGUKY29ycmVzcG9uZGluZyBJR1QgdGVzdCBk aWQgZ2V0IG1lcmdlZCBhbmQgaGFzIGJhc2ljYWxseSBiZWVuIGRlYWQgY29kZQpldmVyIHNpbmNl LgoKQSBjb3VwbGUgeWVhcnMgbGF0ZXIgd2UgbWF5IGZpbmFsbHkgYmUgZ2V0dGluZyBjbG9zZXIg dG8gbGFuZGluZyB0aGUKa2VybmVsIHBhdGNoZXMgKHRoZXJlJ3Mgc29tZSBpbnRlcmVzdCBpbiB0 aGlzIGZ1bmN0aW9uYWxpdHkgbm93IGZyb20KYm90aCB0aGUgQ2hyb21lT1MgYW5kIFdlc3RvbiBj YW1wcyksIHNvIGxldHMgdXBkYXRlIHRoZSBJR1QgdGVzdCB0bwptYXRjaCB0aGUgbGF0ZXN0IHBy b3Bvc2VkIEFCSSwgYW5kIHRvIHJlbW92ZSBzb21lIG9mIHRoZSBjcnVmdCBmcm9tIHRoZQpvcmln aW5hbCB0ZXN0IHRoYXQgd291bGRuJ3QgYWN0dWFsbHkgd29yay4KCkl0J3Mgd29ydGggbm90aW5n IHRoYXQgd2UgZG9uJ3Qgc2VlbSB0byBiZSBhYmxlIHRvIHRlc3QgdGhpcyBmZWF0dXJlCndpdGgg Q1JDJ3MuICBPcmlnaW5hbGx5IHdlIHdhbnRlZCB0byBkcmF3IGEgY29sb3IgaW50byBhIHBsYW5l J3MgRkIKKHdpdGggQ2Fpcm8pIGFuZCB0aGVuIGNvbXBhcmUgdGhlIENSQyB0byB0dXJuaW5nIG9m ZiBhbGwgcGxhbmVzIGFuZCBqdXN0CnNldHRpbmcgdGhlIENSVEMgYmFja2dyb3VuZCB0byB0aGUg c2FtZSBjb2xvci4gIEhvd2V2ZXIgdGhlIHByZWNpc2lvbgphbmQgcm91bmRpbmcgb2YgdGhlIGNv bG9yIGNvbXBvbmVudHMgY2F1c2VzIHRoZSBDUkMncyB0byBjb21lIG91dApkaWZmZXJlbnRseSwg ZXZlbiB0aG91Z2ggdGhlIGVuZCByZXN1bHQgaXMgdmlzdWFsbHkgaWRlbnRpY2FsLiAgU28gYXQK dGhlIG1vbWVudCB0aGlzIHRlc3QgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgdmlzdWFsIGluc3BlY3Rp b24gaW4KaW50ZXJhY3RpdmUgbW9kZS4KCnYyOgogLSBTd2FwIHJlZCBhbmQgYmx1ZSBvcmRlcmlu ZyBpbiBwcm9wZXJ0eSB2YWx1ZSB0byByZWZsZWN0IGNoYW5nZQogICBpbiB2MiBvZiBrZXJuZWwg c2VyaWVzLgoKQ2M6IGlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnClNpZ25lZC1vZmYtYnk6 IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9rbXMu YyAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB0ZXN0cy9rbXNfY3J0Y19iYWNrZ3JvdW5k X2NvbG9yLmMgfCAyMjEgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDIg ZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwppbmRleCBkODA2Y2NjMS4uMzNk NmE2ZmIgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21zLmMKKysrIGIvbGliL2lndF9rbXMuYwpAQCAt MTgwLDcgKzE4MCw3IEBAIGNvbnN0IGNoYXIgKiBjb25zdCBpZ3RfcGxhbmVfcHJvcF9uYW1lc1tJ R1RfTlVNX1BMQU5FX1BST1BTXSA9IHsKIH07CiAKIGNvbnN0IGNoYXIgKiBjb25zdCBpZ3RfY3J0 Y19wcm9wX25hbWVzW0lHVF9OVU1fQ1JUQ19QUk9QU10gPSB7Ci0JW0lHVF9DUlRDX0JBQ0tHUk9V TkRdID0gImJhY2tncm91bmRfY29sb3IiLAorCVtJR1RfQ1JUQ19CQUNLR1JPVU5EXSA9ICJCQUNL R1JPVU5EX0NPTE9SIiwKIAlbSUdUX0NSVENfQ1RNXSA9ICJDVE0iLAogCVtJR1RfQ1JUQ19HQU1N QV9MVVRdID0gIkdBTU1BX0xVVCIsCiAJW0lHVF9DUlRDX0dBTU1BX0xVVF9TSVpFXSA9ICJHQU1N QV9MVVRfU0laRSIsCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9y LmMgYi90ZXN0cy9rbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9yLmMKaW5kZXggM2RmMzQwMWYuLmU5 OTBlY2ZhIDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9yLmMKKysr IGIvdGVzdHMva21zX2NydGNfYmFja2dyb3VuZF9jb2xvci5jCkBAIC0yNSwxNjQgKzI1LDE4MSBA QAogI2luY2x1ZGUgImlndC5oIgogI2luY2x1ZGUgPG1hdGguaD4KIAotCiBJR1RfVEVTVF9ERVND UklQVElPTigiVGVzdCBjcnRjIGJhY2tncm91bmQgY29sb3IgZmVhdHVyZSIpOwogCisvKgorICog VGhlIG9yaWdpbmFsIGlkZWEgd2FzIHRvIHBhaW50IGEgZGVzaXJlZCBjb2xvciBpbnRvIGEgZnVs bC1zY3JlZW4gcHJpbWFyeQorICogcGxhbmUgYW5kIHRoZW4gY29tcGFyZSB0aGF0IENSQyB3aXRo IHR1cm5pbmcgb2ZmIGFsbCBwbGFuZXMgYW5kIHNldHRpbmcgdGhlCisgKiBDUlRDIGJhY2tncm91 bmQgdG8gdGhlIHNhbWUgY29sb3IuICBVbmZvcnVuYXRlbHksIHRoZSByb3VuZGluZyBhbmQgcHJl Y2lzaW9uCisgKiBvZiBjb2xvciB2YWx1ZXMgYXMgcmVuZGVyZWQgYnkgY2Fpcm8gdnMgY3JlYXRl ZCBieSB0aGUgZGlzcGxheSBjb250cm9sbGVyCisgKiBhcmUgc2xpZ2h0bHkgZGlmZmVyZW50IGFu ZCBnaXZlIGRpZmZlcmVudCBDUkMncywgZXZlbiB0aG91Z2ggdGhleSdyZQorICogdmlzdWFsbHkg aWRlbnRpY2FsLgorICoKKyAqIFNpbmNlIHdlIGNhbid0IHJlYWxseSB1c2UgQ1JDJ3MgZm9yIHRl c3RpbmcsIHRoaXMgdGVzdCBpcyBtYWlubHkgdXNlZnVsIGZvcgorICogdmlzdWFsIGluc3BlY3Rp b24gaW4gaW50ZXJhY3RpdmUgbW9kZSBhdCB0aGUgbW9tZW50LgorICovCisKIHR5cGVkZWYgc3Ry dWN0IHsKIAlpbnQgZ2Z4X2ZkOwotCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKLQlzdHJ1Y3QgaWd0 X2ZiIGZiOwotCWlndF9jcmNfdCByZWZfY3JjOwotCWlndF9waXBlX2NyY190ICpwaXBlX2NyYzsK KwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7CiB9IGRhdGFf dDsKIAotI2RlZmluZSBCTEFDSyAgICAgIDB4MDAwMDAwICAgICAgICAgICAvKiBCR1IgOGJwYyAq LwotI2RlZmluZSBDWUFOICAgICAgIDB4RkZGRjAwICAgICAgICAgICAvKiBCR1IgOGJwYyAqLwot I2RlZmluZSBQVVJQTEUgICAgIDB4RkYwMEZGICAgICAgICAgICAvKiBCR1IgOGJwYyAqLwotI2Rl ZmluZSBXSElURSAgICAgIDB4RkZGRkZGICAgICAgICAgICAvKiBCR1IgOGJwYyAqLwotCi0jZGVm aW5lIEJMQUNLNjQgICAgMHgwMDAwMDAwMDAwMDAgICAgIC8qIEJHUiAxNmJwYyAqLwotI2RlZmlu ZSBDWUFONjQgICAgIDB4RkZGRkZGRkYwMDAwICAgICAvKiBCR1IgMTZicGMgKi8KLSNkZWZpbmUg UFVSUExFNjQgICAweEZGRkYwMDAwRkZGRiAgICAgLyogQkdSIDE2YnBjICovCi0jZGVmaW5lIFlF TExPVzY0ICAgMHgwMDAwRkZGRkZGRkYgICAgIC8qIEJHUiAxNmJwYyAqLwotI2RlZmluZSBXSElU RTY0ICAgIDB4RkZGRkZGRkZGRkZGICAgICAvKiBCR1IgMTZicGMgKi8KLSNkZWZpbmUgUkVENjQg ICAgICAweDAwMDAwMDAwRkZGRiAgICAgLyogQkdSIDE2YnBjICovCi0jZGVmaW5lIEdSRUVONjQg ICAgMHgwMDAwRkZGRjAwMDAgICAgIC8qIEJHUiAxNmJwYyAqLwotI2RlZmluZSBCTFVFNjQgICAg IDB4RkZGRjAwMDAwMDAwICAgICAvKiBCR1IgMTZicGMgKi8KKy8qCisgKiBMb2NhbCBjb3B5IG9m IHByb3Bvc2VkIGtlcm5lbCB1YXBpCisgKi8KK3N0YXRpYyBpbmxpbmUgX191NjQKK2xvY2FsX3Jn YmEoX191OCBicGMsIF9fdTE2IHJlZCwgX191MTYgZ3JlZW4sIF9fdTE2IGJsdWUsIF9fdTE2IGFs cGhhKQoreworICAgICAgIGludCBtc2Jfc2hpZnQgPSAxNiAtIGJwYzsKIAorICAgICAgIHJldHVy biAoX191NjQpYWxwaGEgPDwgbXNiX3NoaWZ0IDw8IDQ4IHwKKyAgICAgICAgICAgICAgKF9fdTY0 KXJlZCAgIDw8IG1zYl9zaGlmdCA8PCAzMiB8CisgICAgICAgICAgICAgIChfX3U2NClncmVlbiA8 PCBtc2Jfc2hpZnQgPDwgMTYgfAorICAgICAgICAgICAgICAoX191NjQpYmx1ZSAgPDwgbXNiX3No aWZ0OworfQorI2RlZmluZSBMT0NBTF9SR0JBX0JMVUUoYywgbnVtYml0cykgIChfX3UxNikoKGMg JiAweEZGRkZ1bGwpICAgICA+PiAoMTYtbnVtYml0cykpCisjZGVmaW5lIExPQ0FMX1JHQkFfR1JF RU4oYywgbnVtYml0cykgKF9fdTE2KSgoYyAmIDB4RkZGRnVsbDw8MTYpID4+ICgzMi1udW1iaXRz KSkKKyNkZWZpbmUgTE9DQUxfUkdCQV9SRUQoYywgbnVtYml0cykgICAoX191MTYpKChjICYgMHhG RkZGdWxsPDwzMikgPj4gKDQ4LW51bWJpdHMpKQorI2RlZmluZSBMT0NBTF9SR0JBX0FMUEhBKGMs IG51bWJpdHMpIChfX3UxNikoKGMgJiAweEZGRkZ1bGw8PDQ4KSA+PiAoNjQtbnVtYml0cykpCisK KworLyogOGJwYyB2YWx1ZXMgKi8KKyNkZWZpbmUgQkxBQ0sgICAgICBsb2NhbF9yZ2JhKDgsICAg IDAsICAgIDAsICAgIDAsIDB4ZmYpCisjZGVmaW5lIFJFRCAgICAgICAgbG9jYWxfcmdiYSg4LCAw eGZmLCAgICAwLCAgICAwLCAweGZmKQorI2RlZmluZSBHUkVFTiAgICAgIGxvY2FsX3JnYmEoOCwg ICAgMCwgMHhmZiwgICAgMCwgMHhmZikKKyNkZWZpbmUgQkxVRSAgICAgICBsb2NhbF9yZ2JhKDgs ICAgIDAsICAgIDAsIDB4ZmYsIDB4ZmYpCisjZGVmaW5lIFlFTExPVyAgICAgbG9jYWxfcmdiYSg4 LCAweGZmLCAweGZmLCAgICAwLCAweGZmKQorI2RlZmluZSBXSElURSAgICAgIGxvY2FsX3JnYmEo OCwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZikKKworLyogMTZicGMgdmFsdWVzICovCisjZGVmaW5l IEJMQUNLNjQgICAgbG9jYWxfcmdiYSgxNiwgICAgICAwLCAgICAgIDAsICAgICAgMCwgMHhmZmZm KQorI2RlZmluZSBSRUQ2NCAgICAgIGxvY2FsX3JnYmEoMTYsIDB4ZmZmZiwgICAgICAwLCAgICAg IDAsIDB4ZmZmZikKKyNkZWZpbmUgR1JFRU42NCAgICBsb2NhbF9yZ2JhKDE2LCAgICAgIDAsIDB4 ZmZmZiwgICAgICAwLCAweGZmZmYpCisjZGVmaW5lIEJMVUU2NCAgICAgbG9jYWxfcmdiYSgxNiwg ICAgICAwLCAgICAgIDAsIDB4ZmZmZiwgMHhmZmZmKQorI2RlZmluZSBZRUxMT1c2NCAgIGxvY2Fs X3JnYmEoMTYsIDB4ZmZmZiwgMHhmZmZmLCAgICAgIDAsIDB4ZmZmZikKKyNkZWZpbmUgV0hJVEU2 NCAgICBsb2NhbF9yZ2JhKDE2LCAweGZmZmYsIDB4ZmZmZiwgMHhmZmZmLCAweGZmZmYpCisKKyNp ZiAwCiBzdGF0aWMgdm9pZAotcGFpbnRfYmFja2dyb3VuZChkYXRhX3QgKmRhdGEsIHN0cnVjdCBp Z3RfZmIgKmZiLCBkcm1Nb2RlTW9kZUluZm8gKm1vZGUsCi0JCXVpbnQzMl90IGJhY2tncm91bmQs IGRvdWJsZSBhbHBoYSkKK3BhaW50X2ZiKGRhdGFfdCAqZGF0YSwgc3RydWN0IGlndF9mYiAqZmIs IGRybU1vZGVNb2RlSW5mbyAqbW9kZSwKKwkgdWludDY0X3QgY29sb3IsIGludCBwcmVjKQogewog CWNhaXJvX3QgKmNyOwotCWludCB3LCBoOworCWludCB3ID0gbW9kZS0+aGRpc3BsYXk7CisJaW50 IGggPSBtb2RlLT52ZGlzcGxheTsKIAlkb3VibGUgciwgZywgYjsKIAotCXcgPSBtb2RlLT5oZGlz cGxheTsKLQloID0gbW9kZS0+dmRpc3BsYXk7CisJaWd0X2NyZWF0ZV9mYihkYXRhLT5nZnhfZmQs IHcsIGgsIERSTV9GT1JNQVRfWFJHQjg4ODgsCisJCSAgICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9E X05PTkUsIGZiKTsKIAotCWNyID0gaWd0X2dldF9jYWlyb19jdHgoZGF0YS0+Z2Z4X2ZkLCAmZGF0 YS0+ZmIpOworCWNyID0gaWd0X2dldF9jYWlyb19jdHgoZGF0YS0+Z2Z4X2ZkLCBmYik7CiAKLQkv KiBQYWludCB3aXRoIGJhY2tncm91bmQgY29sb3IgKi8KLQlyID0gKGRvdWJsZSkgKGJhY2tncm91 bmQgJiAweEZGKSAvIDI1NS4wOwotCWcgPSAoZG91YmxlKSAoKGJhY2tncm91bmQgJiAweEZGMDAp ID4+IDgpIC8gMjU1LjA7Ci0JYiA9IChkb3VibGUpICgoYmFja2dyb3VuZCAmIDB4RkYwMDAwKSA+ PiAxNikgLyAyNTUuMDsKLQlpZ3RfcGFpbnRfY29sb3JfYWxwaGEoY3IsIDAsIDAsIHcsIGgsIHIs IGcsIGIsIGFscGhhKTsKKwkvKgorCSAqIEdyYWIgY29sb3IgKHdpdGggYXBwcm9wcmlhdGUgYml0 cyBvZiBwcmVjaXNpb24pIGFuZCBwYWludCBhCisJICogZnJhbWVidWZmZXIgd2l0aCBpdC4KKwkg Ki8KKwlyID0gKGRvdWJsZSlMT0NBTF9SR0JBX1JFRChjb2xvciwgcHJlYykgLyAoKDE8PHByZWMp IC0gMSk7CisJZyA9IChkb3VibGUpTE9DQUxfUkdCQV9HUkVFTihjb2xvciwgcHJlYykgLyAoKDE8 PHByZWMpIC0gMSk7CisJYiA9IChkb3VibGUpTE9DQUxfUkdCQV9CTFVFKGNvbG9yLCBwcmVjKSAv ICgoMTw8cHJlYykgLSAxKTsKKwlpZ3RfcGFpbnRfY29sb3JfYWxwaGEoY3IsIDAsIDAsIHcsIGgs IHIsIGcsIGIsIDEuMCk7CiAKLQlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5nZnhfZmQsICZkYXRh LT5mYiwgY3IpOworCWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEtPmdmeF9mZCwgZmIsIGNyKTsKIH0K KyNlbmRpZgogCi1zdGF0aWMgdm9pZCBwcmVwYXJlX2NydGMoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0 cHV0X3QgKm91dHB1dCwgZW51bSBwaXBlIHBpcGUsCi0JCQlpZ3RfcGxhbmVfdCAqcGxhbmUsIGlu dCBvcGFxdWVfYnVmZmVyLCBpbnQgcGxhbmVfY29sb3IsCi0JCQl1aW50NjRfdCBwaXBlX2JhY2tn cm91bmRfY29sb3IpCitzdGF0aWMgdm9pZCBwcmVwYXJlX2NydGMoaWd0X2Rpc3BsYXlfdCAqZGlz cGxheSwgZGF0YV90ICpkYXRhLAorCQkJIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBlbnVtIHBpcGUg cGlwZSkKIHsKLQlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7Ci0JaWd0X2Rpc3BsYXlfdCAqZGlzcGxh eSA9ICZkYXRhLT5kaXNwbGF5OwotCWludCBmYl9pZDsKLQlkb3VibGUgYWxwaGE7Ci0KIAlpZ3Rf b3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Ci0KLQkvKiBjcmVhdGUgdGhlIHBpcGVfY3Jj IG9iamVjdCBmb3IgdGhpcyBwaXBlICovCi0JaWd0X3BpcGVfY3JjX2ZyZWUoZGF0YS0+cGlwZV9j cmMpOwotCWRhdGEtPnBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25ldyhkYXRhLT5nZnhfZmQsIHBp cGUsIElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9BVVRPKTsKLQotCW1vZGUgPSBpZ3Rfb3V0cHV0X2dl dF9tb2RlKG91dHB1dCk7Ci0KLQlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZGF0YS0+Z2Z4X2ZkLAot CQkJbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LAotCQkJRFJNX0ZPUk1BVF9YUkdCODg4 OCwKLQkJCUxPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsIC8qIHRpbGVkICovCi0JCQkmZGF0YS0+ ZmIpOwotCWlndF9hc3NlcnQoZmJfaWQpOwotCi0JLyogVG8gbWFrZSBGQiBwaXhlbCB3aW4gd2l0 aCBiYWNrZ3JvdW5kIGNvbG9yLCBzZXQgYWxwaGEgYXMgZnVsbCBvcGFxdWUgKi8KLQlpZ3RfcGlw ZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBwaXBl X2JhY2tncm91bmRfY29sb3IpOwotCWlmIChvcGFxdWVfYnVmZmVyKQotCQlhbHBoYSA9IDEuMDsg ICAgLyogYWxwaGEgMSBpcyBmdWxseSBvcHF1ZSAqLwotCWVsc2UKLQkJYWxwaGEgPSAwLjA7ICAg IC8qIGFscGhhIDAgaXMgZnVsbHkgdHJhbnNwYXJlbnQgKi8KLQlwYWludF9iYWNrZ3JvdW5kKGRh dGEsICZkYXRhLT5mYiwgbW9kZSwgcGxhbmVfY29sb3IsIGFscGhhKTsKLQotCWlndF9wbGFuZV9z ZXRfZmIocGxhbmUsICZkYXRhLT5mYik7Ci0JaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBD T01NSVRfVU5JVkVSU0FMKTsKKwlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9B VE9NSUMpOworCWRhdGEtPm91dHB1dCA9IG91dHB1dDsKKwlkYXRhLT5tb2RlID0gaWd0X291dHB1 dF9nZXRfbW9kZShvdXRwdXQpOwogfQogCi1zdGF0aWMgdm9pZCBjbGVhbnVwX2NydGMoZGF0YV90 ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0X3BsYW5lX3QgKnBsYW5lKQorc3RhdGlj IHZvaWQgY2xlYW51cF9jcnRjKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGRhdGFfdCAqZGF0YSwK KwkJCSBpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKIHsKLQlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0g JmRhdGEtPmRpc3BsYXk7Ci0KLQlpZ3RfcGlwZV9jcmNfZnJlZShkYXRhLT5waXBlX2NyYyk7Ci0J ZGF0YS0+cGlwZV9jcmMgPSBOVUxMOwotCi0JaWd0X3JlbW92ZV9mYihkYXRhLT5nZnhfZmQsICZk YXRhLT5mYik7Ci0KLQlpZ3RfcGlwZV9vYmpfc2V0X3Byb3BfdmFsdWUocGxhbmUtPnBpcGUsIElH VF9DUlRDX0JBQ0tHUk9VTkQsIEJMQUNLNjQpOwotCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsIE5V TEwpOwogCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7Ci0KLQlpZ3RfZGlz cGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOworCWlndF9kaXNwbGF5X2Nv bW1pdDIoZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7CiB9CiAKLXN0YXRpYyB2b2lkIHRlc3RfY3J0 Y19iYWNrZ3JvdW5kKGRhdGFfdCAqZGF0YSkKK3N0YXRpYyB2b2lkIHRlc3RfY3J0Y19iYWNrZ3Jv dW5kKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGRhdGFfdCAqZGF0YSkKIHsKLQlpZ3RfZGlzcGxh eV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7CiAJaWd0X291dHB1dF90ICpvdXRwdXQ7CiAJ ZW51bSBwaXBlIHBpcGU7CiAJaW50IHZhbGlkX3Rlc3RzID0gMDsKIAotCWZvcl9lYWNoX3BpcGVf d2l0aF92YWxpZF9vdXRwdXQoZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7CisJZm9yX2VhY2hfcGlw ZV93aXRoX3NpbmdsZV9vdXRwdXQoZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7CiAJCWlndF9wbGFu ZV90ICpwbGFuZTsKIAotCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Ci0KLQkJ cGxhbmUgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKG91dHB1dCwgRFJNX1BMQU5FX1RZUEVf UFJJTUFSWSk7CiAJCWlndF9yZXF1aXJlKGlndF9waXBlX2hhc19wcm9wKGRpc3BsYXksIHBpcGUs IElHVF9DUlRDX0JBQ0tHUk9VTkQpKTsKIAotCQlwcmVwYXJlX2NydGMoZGF0YSwgb3V0cHV0LCBw aXBlLCBwbGFuZSwgMSwgUFVSUExFLCBCTEFDSzY0KTsKKwkJcHJlcGFyZV9jcnRjKGRpc3BsYXks IGRhdGEsIG91dHB1dCwgcGlwZSk7CisJCXBsYW5lID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlw ZShvdXRwdXQsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwogCi0JCS8qIE5vdyBzZXQgYmFja2dy b3VuZCB3aXRob3V0IHVzaW5nIGEgcGxhbmUsIGkuZS4sCi0JCSAqIERpc2FibGUgdGhlIHBsYW5l IHRvIGxldCBodyBiYWNrZ3JvdW5kIGNvbG9yIHdpbiBibGVuZC4gKi8KKwkJLyoKKwkJICogVHVy biBvZmYgdGhlIHByaW1hcnkgcGxhbmUgKGRlZmF1bHQgYmdjb2xvciBzaG91bGQgYmUgYmxhY2sK KwkJICogdW5sZXNzIGEgcHJldmlvdXMgZHJtIG1hc3RlciBjaGFuZ2VkIGl0IHRvIHNvbWV0aGlu ZyBlbHNlKS4KKwkJICovCiAJCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsIE5VTEwpOwotCQlpZ3Rf cGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBQ VVJQTEU2NCk7Ci0JCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNB TCk7Ci0KLQkJLyogVHJ5IGZldyBvdGhlciBiYWNrZ3JvdW5kIGNvbG9ycyAqLwotCQlpZ3RfcGlw ZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBDWUFO NjQpOwotCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwot Ci0JCWlndF9waXBlX3NldF9wcm9wX3ZhbHVlKGRpc3BsYXksIHBpcGUsIElHVF9DUlRDX0JBQ0tH Uk9VTkQsIFlFTExPVzY0KTsKLQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRf VU5JVkVSU0FMKTsKLQorCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9N SUMpOworCisJCS8qIEV4cGxpY2l0bHkgc2V0IGJsYWNrIGFzIGJnIGNvbG9yICovCisJCWlndF9w aXBlX3NldF9wcm9wX3ZhbHVlKGRpc3BsYXksIHBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQsIEJM QUNLNjQpOworCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOwor CisJCS8qCisJCSAqIFRlc3Qgc2V2ZXJhbCBtb3JlIGNvbG9ycyBhbmQgcHJlY2lzaW9ucy4gIFVu Zm9ydHVuYXRlbHkgdGhlCisJCSAqIENSQydzIHdvbid0IG1hdGNoIGJldHdlZW4gYSBjYWlyby1k cmF3biBmYiBhbmQgYSBkaXNwbGF5CisJCSAqIGNvbnRyb2xsZXIgYmdjb2xvciBzZXR0aW5nLCBi dXQgdGhlc2UgY2FuIGF0IGxlYXN0IGJlCisJCSAqIHZpc3VhbGx5IHZlcmlmaWVkIGluIGludGVy YWN0aXZlIG1vZGUgdG8gZW5zdXJlIHRoZSBjb2xvcnMKKwkJICogbG9vayBnb29kLgorCQkgKi8K IAkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dS T1VORCwgUkVENjQpOwotCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklW RVJTQUwpOworCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOwor CQlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JP VU5ELCBSRUQpOworCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMp OwogCiAJCWlndF9waXBlX3NldF9wcm9wX3ZhbHVlKGRpc3BsYXksIHBpcGUsIElHVF9DUlRDX0JB Q0tHUk9VTkQsIEdSRUVONjQpOwotCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1J VF9VTklWRVJTQUwpOworCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9N SUMpOworCQlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19C QUNLR1JPVU5ELCBHUkVFTik7CisJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlU X0FUT01JQyk7CiAKIAkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdU X0NSVENfQkFDS0dST1VORCwgQkxVRTY0KTsKLQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5 LCBDT01NSVRfVU5JVkVSU0FMKTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01N SVRfQVRPTUlDKTsKKwkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdU X0NSVENfQkFDS0dST1VORCwgQkxVRSk7CisJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwg Q09NTUlUX0FUT01JQyk7CisKKwkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlw ZSwgSUdUX0NSVENfQkFDS0dST1VORCwgWUVMTE9XNjQpOworCQlpZ3RfZGlzcGxheV9jb21taXQy KGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCQlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNw bGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBZRUxMT1cpOworCQlpZ3RfZGlzcGxheV9j b21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOwogCiAJCWlndF9waXBlX3NldF9wcm9wX3Zh bHVlKGRpc3BsYXksIHBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQsIFdISVRFNjQpOwotCQlpZ3Rf ZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOworCQlpZ3RfZGlzcGxh eV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCQlpZ3RfcGlwZV9zZXRfcHJvcF92 YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBXSElURSk7CisJCWlndF9k aXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7CiAKIAkJdmFsaWRfdGVzdHMr KzsKLQkJY2xlYW51cF9jcnRjKGRhdGEsIG91dHB1dCwgcGxhbmUpOworCisJCWlndF9waXBlX3Nl dF9wcm9wX3ZhbHVlKGRpc3BsYXksIHBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQsIEJMQUNLNjQp OworCQljbGVhbnVwX2NydGMoZGlzcGxheSwgZGF0YSwgb3V0cHV0KTsKIAl9CiAJaWd0X3JlcXVp cmVfZih2YWxpZF90ZXN0cywgIm5vIHZhbGlkIGNydGMvY29ubmVjdG9yIGNvbWJpbmF0aW9ucyBm b3VuZFxuIik7CiB9CiAKIGlndF9zaW1wbGVfbWFpbgogeworCWlndF9kaXNwbGF5X3QgZGlzcGxh eTsKIAlkYXRhX3QgZGF0YSA9IHt9OwogCiAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwogCiAJ ZGF0YS5nZnhfZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKLQlpZ3RfcmVxdWly ZV9waXBlX2NyYyhkYXRhLmdmeF9mZCk7Ci0JaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNw bGF5LCBkYXRhLmdmeF9mZCk7CisJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGlzcGxheSwgZGF0YS5n ZnhfZmQpOwogCi0JdGVzdF9jcnRjX2JhY2tncm91bmQoJmRhdGEpOworCXRlc3RfY3J0Y19iYWNr Z3JvdW5kKCZkaXNwbGF5LCAmZGF0YSk7CiAKLQlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRpc3Bs YXkpOworCWlndF9kaXNwbGF5X2ZpbmkoJmRpc3BsYXkpOwogfQotLSAKMi4xNC40CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK