From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Matt Roper Date: Thu, 15 Nov 2018 14:15:43 -0800 Message-Id: <20181115221543.27436-1-matthew.d.roper@intel.com> In-Reply-To: <20181115221346.27335-1-matthew.d.roper@intel.com> References: <20181115221346.27335-1-matthew.d.roper@intel.com> Subject: [igt-dev] [PATCH i-g-t v3] tests/kms_crtc_background_color: overhaul for latest ABI proposal (v3) 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 c2VyaWVzLgoKdjM6CiAtIE1pbm9yIHVwZGF0ZXMgdG8gcHJvcG9zZWQgdWFwaSBoZWxwZXJzIChz L3JnYmEvYXJnYi8pLgoKQ2M6IGlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnClNpZ25lZC1v ZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Ci0tLQogbGliL2ln dF9rbXMuYyAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB0ZXN0cy9rbXNfY3J0Y19iYWNr Z3JvdW5kX2NvbG9yLmMgfCAyMjMgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0KIDIgZmlsZXMgY2hhbmdlZCwgMTIyIGluc2VydGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwppbmRleCBkODA2Y2Nj MS4uMzNkNmE2ZmIgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21zLmMKKysrIGIvbGliL2lndF9rbXMu YwpAQCAtMTgwLDcgKzE4MCw3IEBAIGNvbnN0IGNoYXIgKiBjb25zdCBpZ3RfcGxhbmVfcHJvcF9u YW1lc1tJR1RfTlVNX1BMQU5FX1BST1BTXSA9IHsKIH07CiAKIGNvbnN0IGNoYXIgKiBjb25zdCBp Z3RfY3J0Y19wcm9wX25hbWVzW0lHVF9OVU1fQ1JUQ19QUk9QU10gPSB7Ci0JW0lHVF9DUlRDX0JB Q0tHUk9VTkRdID0gImJhY2tncm91bmRfY29sb3IiLAorCVtJR1RfQ1JUQ19CQUNLR1JPVU5EXSA9 ICJCQUNLR1JPVU5EX0NPTE9SIiwKIAlbSUdUX0NSVENfQ1RNXSA9ICJDVE0iLAogCVtJR1RfQ1JU Q19HQU1NQV9MVVRdID0gIkdBTU1BX0xVVCIsCiAJW0lHVF9DUlRDX0dBTU1BX0xVVF9TSVpFXSA9 ICJHQU1NQV9MVVRfU0laRSIsCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfY3J0Y19iYWNrZ3JvdW5k X2NvbG9yLmMgYi90ZXN0cy9rbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9yLmMKaW5kZXggM2RmMzQw MWYuLmE5ZDk5ODY0IDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9y LmMKKysrIGIvdGVzdHMva21zX2NydGNfYmFja2dyb3VuZF9jb2xvci5jCkBAIC0yNSwxNjQgKzI1 LDE4MyBAQAogI2luY2x1ZGUgImlndC5oIgogI2luY2x1ZGUgPG1hdGguaD4KIAotCiBJR1RfVEVT VF9ERVNDUklQVElPTigiVGVzdCBjcnRjIGJhY2tncm91bmQgY29sb3IgZmVhdHVyZSIpOwogCisv KgorICogVGhlIG9yaWdpbmFsIGlkZWEgd2FzIHRvIHBhaW50IGEgZGVzaXJlZCBjb2xvciBpbnRv IGEgZnVsbC1zY3JlZW4gcHJpbWFyeQorICogcGxhbmUgYW5kIHRoZW4gY29tcGFyZSB0aGF0IENS QyB3aXRoIHR1cm5pbmcgb2ZmIGFsbCBwbGFuZXMgYW5kIHNldHRpbmcgdGhlCisgKiBDUlRDIGJh Y2tncm91bmQgdG8gdGhlIHNhbWUgY29sb3IuICBVbmZvcnVuYXRlbHksIHRoZSByb3VuZGluZyBh bmQgcHJlY2lzaW9uCisgKiBvZiBjb2xvciB2YWx1ZXMgYXMgcmVuZGVyZWQgYnkgY2Fpcm8gdnMg Y3JlYXRlZCBieSB0aGUgZGlzcGxheSBjb250cm9sbGVyCisgKiBhcmUgc2xpZ2h0bHkgZGlmZmVy ZW50IGFuZCBnaXZlIGRpZmZlcmVudCBDUkMncywgZXZlbiB0aG91Z2ggdGhleSdyZQorICogdmlz dWFsbHkgaWRlbnRpY2FsLgorICoKKyAqIFNpbmNlIHdlIGNhbid0IHJlYWxseSB1c2UgQ1JDJ3Mg Zm9yIHRlc3RpbmcsIHRoaXMgdGVzdCBpcyBtYWlubHkgdXNlZnVsIGZvcgorICogdmlzdWFsIGlu c3BlY3Rpb24gaW4gaW50ZXJhY3RpdmUgbW9kZSBhdCB0aGUgbW9tZW50LgorICovCisKIHR5cGVk ZWYgc3RydWN0IHsKIAlpbnQgZ2Z4X2ZkOwotCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKLQlzdHJ1 Y3QgaWd0X2ZiIGZiOwotCWlndF9jcmNfdCByZWZfY3JjOwotCWlndF9waXBlX2NyY190ICpwaXBl X2NyYzsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7CiB9 IGRhdGFfdDsKIAotI2RlZmluZSBCTEFDSyAgICAgIDB4MDAwMDAwICAgICAgICAgICAvKiBCR1Ig OGJwYyAqLwotI2RlZmluZSBDWUFOICAgICAgIDB4RkZGRjAwICAgICAgICAgICAvKiBCR1IgOGJw YyAqLwotI2RlZmluZSBQVVJQTEUgICAgIDB4RkYwMEZGICAgICAgICAgICAvKiBCR1IgOGJwYyAq LwotI2RlZmluZSBXSElURSAgICAgIDB4RkZGRkZGICAgICAgICAgICAvKiBCR1IgOGJwYyAqLwot Ci0jZGVmaW5lIEJMQUNLNjQgICAgMHgwMDAwMDAwMDAwMDAgICAgIC8qIEJHUiAxNmJwYyAqLwot I2RlZmluZSBDWUFONjQgICAgIDB4RkZGRkZGRkYwMDAwICAgICAvKiBCR1IgMTZicGMgKi8KLSNk ZWZpbmUgUFVSUExFNjQgICAweEZGRkYwMDAwRkZGRiAgICAgLyogQkdSIDE2YnBjICovCi0jZGVm aW5lIFlFTExPVzY0ICAgMHgwMDAwRkZGRkZGRkYgICAgIC8qIEJHUiAxNmJwYyAqLwotI2RlZmlu ZSBXSElURTY0ICAgIDB4RkZGRkZGRkZGRkZGICAgICAvKiBCR1IgMTZicGMgKi8KLSNkZWZpbmUg UkVENjQgICAgICAweDAwMDAwMDAwRkZGRiAgICAgLyogQkdSIDE2YnBjICovCi0jZGVmaW5lIEdS RUVONjQgICAgMHgwMDAwRkZGRjAwMDAgICAgIC8qIEJHUiAxNmJwYyAqLwotI2RlZmluZSBCTFVF NjQgICAgIDB4RkZGRjAwMDAwMDAwICAgICAvKiBCR1IgMTZicGMgKi8KKy8qCisgKiBMb2NhbCBj b3B5IG9mIHByb3Bvc2VkIGtlcm5lbCB1YXBpCisgKi8KK3N0YXRpYyBpbmxpbmUgX191NjQKK2xv Y2FsX2FyZ2IoX191OCBicGMsIF9fdTE2IGFscGhhLCBfX3UxNiByZWQsIF9fdTE2IGdyZWVuLCBf X3UxNiBibHVlKQoreworICAgICAgIGludCBtc2Jfc2hpZnQgPSAxNiAtIGJwYzsKIAorICAgICAg IHJldHVybiAoX191NjQpYWxwaGEgPDwgbXNiX3NoaWZ0IDw8IDQ4IHwKKyAgICAgICAgICAgICAg KF9fdTY0KXJlZCAgIDw8IG1zYl9zaGlmdCA8PCAzMiB8CisgICAgICAgICAgICAgIChfX3U2NCln cmVlbiA8PCBtc2Jfc2hpZnQgPDwgMTYgfAorICAgICAgICAgICAgICAoX191NjQpYmx1ZSAgPDwg bXNiX3NoaWZ0OworfQorI2RlZmluZSBMT0NBTF9BUkdCX0NPTVAoYywgc2hpZnQsIG51bWJpdHMp IFwKKyAgICAgICAoX191MTYpKCgoYykgJiAweEZGRkZ1bGwgPDwgKHNoaWZ0KSkgPj4gKChzaGlm dCkgKyAxNiAtIChudW1iaXRzKSkpCisjZGVmaW5lIExPQ0FMX0FSR0JfQkxVRShjLCBudW1iaXRz KSAgRFJNX0FSR0JfQ09NUChjLCAwLCBudW1iaXRzKQorI2RlZmluZSBMT0NBTF9BUkdCX0dSRUVO KGMsIG51bWJpdHMpIERSTV9BUkdCX0NPTVAoYywgMTYsIG51bWJpdHMpCisjZGVmaW5lIExPQ0FM X0FSR0JfUkVEKGMsIG51bWJpdHMpICAgRFJNX0FSR0JfQ09NUChjLCAzMiwgbnVtYml0cykKKyNk ZWZpbmUgTE9DQUxfQVJHQl9BTFBIQShjLCBudW1iaXRzKSBEUk1fQVJHQl9DT01QKGMsIDQ4LCBu dW1iaXRzKQorCisKKy8qIDhicGMgdmFsdWVzICovCisjZGVmaW5lIEJMQUNLICAgICAgbG9jYWxf YXJnYig4LCAweGZmLCAgICAwLCAgICAwLCAgICAwKQorI2RlZmluZSBSRUQgICAgICAgIGxvY2Fs X2FyZ2IoOCwgMHhmZiwgMHhmZiwgICAgMCwgICAgMCkKKyNkZWZpbmUgR1JFRU4gICAgICBsb2Nh bF9hcmdiKDgsIDB4ZmYsICAgIDAsIDB4ZmYsICAgIDApCisjZGVmaW5lIEJMVUUgICAgICAgbG9j YWxfYXJnYig4LCAweGZmLCAgICAwLCAgICAwLCAweGZmKQorI2RlZmluZSBZRUxMT1cgICAgIGxv Y2FsX2FyZ2IoOCwgMHhmZiwgMHhmZiwgMHhmZiwgICAgMCkKKyNkZWZpbmUgV0hJVEUgICAgICBs b2NhbF9hcmdiKDgsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYpCisKKy8qIDE2YnBjIHZhbHVlcyAq LworI2RlZmluZSBCTEFDSzY0ICAgIGxvY2FsX2FyZ2IoMTYsIDB4ZmZmZiwgICAgICAwLCAgICAg IDAsICAgICAgMCkKKyNkZWZpbmUgUkVENjQgICAgICBsb2NhbF9hcmdiKDE2LCAweGZmZmYsIDB4 ZmZmZiwgICAgICAwLCAgICAgIDApCisjZGVmaW5lIEdSRUVONjQgICAgbG9jYWxfYXJnYigxNiwg MHhmZmZmLCAgICAgIDAsIDB4ZmZmZiwgICAgICAwKQorI2RlZmluZSBCTFVFNjQgICAgIGxvY2Fs X2FyZ2IoMTYsIDB4ZmZmZiwgICAgICAwLCAgICAgIDAsIDB4ZmZmZikKKyNkZWZpbmUgWUVMTE9X NjQgICBsb2NhbF9hcmdiKDE2LCAweGZmZmYsIDB4ZmZmZiwgMHhmZmZmLCAgICAgIDApCisjZGVm aW5lIFdISVRFNjQgICAgbG9jYWxfYXJnYigxNiwgMHhmZmZmLCAweGZmZmYsIDB4ZmZmZiwgMHhm ZmZmKQorCisjaWYgMAogc3RhdGljIHZvaWQKLXBhaW50X2JhY2tncm91bmQoZGF0YV90ICpkYXRh LCBzdHJ1Y3QgaWd0X2ZiICpmYiwgZHJtTW9kZU1vZGVJbmZvICptb2RlLAotCQl1aW50MzJfdCBi YWNrZ3JvdW5kLCBkb3VibGUgYWxwaGEpCitwYWludF9mYihkYXRhX3QgKmRhdGEsIHN0cnVjdCBp Z3RfZmIgKmZiLCBkcm1Nb2RlTW9kZUluZm8gKm1vZGUsCisJIHVpbnQ2NF90IGNvbG9yLCBpbnQg cHJlYykKIHsKIAljYWlyb190ICpjcjsKLQlpbnQgdywgaDsKKwlpbnQgdyA9IG1vZGUtPmhkaXNw bGF5OworCWludCBoID0gbW9kZS0+dmRpc3BsYXk7CiAJZG91YmxlIHIsIGcsIGI7CiAKLQl3ID0g bW9kZS0+aGRpc3BsYXk7Ci0JaCA9IG1vZGUtPnZkaXNwbGF5OworCWlndF9jcmVhdGVfZmIoZGF0 YS0+Z2Z4X2ZkLCB3LCBoLCBEUk1fRk9STUFUX1hSR0I4ODg4LAorCQkgICAgICBMT0NBTF9EUk1f Rk9STUFUX01PRF9OT05FLCBmYik7CiAKLQljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmdm eF9mZCwgJmRhdGEtPmZiKTsKKwljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmdmeF9mZCwg ZmIpOwogCi0JLyogUGFpbnQgd2l0aCBiYWNrZ3JvdW5kIGNvbG9yICovCi0JciA9IChkb3VibGUp IChiYWNrZ3JvdW5kICYgMHhGRikgLyAyNTUuMDsKLQlnID0gKGRvdWJsZSkgKChiYWNrZ3JvdW5k ICYgMHhGRjAwKSA+PiA4KSAvIDI1NS4wOwotCWIgPSAoZG91YmxlKSAoKGJhY2tncm91bmQgJiAw eEZGMDAwMCkgPj4gMTYpIC8gMjU1LjA7Ci0JaWd0X3BhaW50X2NvbG9yX2FscGhhKGNyLCAwLCAw LCB3LCBoLCByLCBnLCBiLCBhbHBoYSk7CisJLyoKKwkgKiBHcmFiIGNvbG9yICh3aXRoIGFwcHJv cHJpYXRlIGJpdHMgb2YgcHJlY2lzaW9uKSBhbmQgcGFpbnQgYQorCSAqIGZyYW1lYnVmZmVyIHdp dGggaXQuCisJICovCisJciA9IChkb3VibGUpTE9DQUxfQVJHQl9SRUQoY29sb3IsIHByZWMpIC8g KCgxPDxwcmVjKSAtIDEpOworCWcgPSAoZG91YmxlKUxPQ0FMX0FSR0JfR1JFRU4oY29sb3IsIHBy ZWMpIC8gKCgxPDxwcmVjKSAtIDEpOworCWIgPSAoZG91YmxlKUxPQ0FMX0FSR0JfQkxVRShjb2xv ciwgcHJlYykgLyAoKDE8PHByZWMpIC0gMSk7CisJaWd0X3BhaW50X2NvbG9yX2FscGhhKGNyLCAw LCAwLCB3LCBoLCByLCBnLCBiLCAxLjApOwogCi0JaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+Z2Z4 X2ZkLCAmZGF0YS0+ZmIsIGNyKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5nZnhfZmQsIGZi LCBjcik7CiB9CisjZW5kaWYKIAotc3RhdGljIHZvaWQgcHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0 YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0gcGlwZSBwaXBlLAotCQkJaWd0X3BsYW5lX3Qg KnBsYW5lLCBpbnQgb3BhcXVlX2J1ZmZlciwgaW50IHBsYW5lX2NvbG9yLAotCQkJdWludDY0X3Qg cGlwZV9iYWNrZ3JvdW5kX2NvbG9yKQorc3RhdGljIHZvaWQgcHJlcGFyZV9jcnRjKGlndF9kaXNw bGF5X3QgKmRpc3BsYXksIGRhdGFfdCAqZGF0YSwKKwkJCSBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwg ZW51bSBwaXBlIHBpcGUpCiB7Ci0JZHJtTW9kZU1vZGVJbmZvICptb2RlOwotCWlndF9kaXNwbGF5 X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKLQlpbnQgZmJfaWQ7Ci0JZG91YmxlIGFscGhh OwotCiAJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOwotCi0JLyogY3JlYXRlIHRo ZSBwaXBlX2NyYyBvYmplY3QgZm9yIHRoaXMgcGlwZSAqLwotCWlndF9waXBlX2NyY19mcmVlKGRh dGEtPnBpcGVfY3JjKTsKLQlkYXRhLT5waXBlX2NyYyA9IGlndF9waXBlX2NyY19uZXcoZGF0YS0+ Z2Z4X2ZkLCBwaXBlLCBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7Ci0KLQltb2RlID0gaWd0 X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOwotCi0JZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGRhdGEt PmdmeF9mZCwKLQkJCW1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKLQkJCURSTV9GT1JN QVRfWFJHQjg4ODgsCi0JCQlMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLCAvKiB0aWxlZCAqLwot CQkJJmRhdGEtPmZiKTsKLQlpZ3RfYXNzZXJ0KGZiX2lkKTsKLQotCS8qIFRvIG1ha2UgRkIgcGl4 ZWwgd2luIHdpdGggYmFja2dyb3VuZCBjb2xvciwgc2V0IGFscGhhIGFzIGZ1bGwgb3BhcXVlICov Ci0JaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dS T1VORCwgcGlwZV9iYWNrZ3JvdW5kX2NvbG9yKTsKLQlpZiAob3BhcXVlX2J1ZmZlcikKLQkJYWxw aGEgPSAxLjA7ICAgIC8qIGFscGhhIDEgaXMgZnVsbHkgb3BxdWUgKi8KLQllbHNlCi0JCWFscGhh ID0gMC4wOyAgICAvKiBhbHBoYSAwIGlzIGZ1bGx5IHRyYW5zcGFyZW50ICovCi0JcGFpbnRfYmFj a2dyb3VuZChkYXRhLCAmZGF0YS0+ZmIsIG1vZGUsIHBsYW5lX2NvbG9yLCBhbHBoYSk7Ci0KLQlp Z3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCAmZGF0YS0+ZmIpOwotCWlndF9kaXNwbGF5X2NvbW1pdDIo ZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5 LCBDT01NSVRfQVRPTUlDKTsKKwlkYXRhLT5vdXRwdXQgPSBvdXRwdXQ7CisJZGF0YS0+bW9kZSA9 IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKIH0KIAotc3RhdGljIHZvaWQgY2xlYW51cF9j cnRjKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGlndF9wbGFuZV90ICpwbGFu ZSkKK3N0YXRpYyB2b2lkIGNsZWFudXBfY3J0YyhpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBkYXRh X3QgKmRhdGEsCisJCQkgaWd0X291dHB1dF90ICpvdXRwdXQpCiB7Ci0JaWd0X2Rpc3BsYXlfdCAq ZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5OwotCi0JaWd0X3BpcGVfY3JjX2ZyZWUoZGF0YS0+cGlw ZV9jcmMpOwotCWRhdGEtPnBpcGVfY3JjID0gTlVMTDsKLQotCWlndF9yZW1vdmVfZmIoZGF0YS0+ Z2Z4X2ZkLCAmZGF0YS0+ZmIpOwotCi0JaWd0X3BpcGVfb2JqX3NldF9wcm9wX3ZhbHVlKHBsYW5l LT5waXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBCTEFDSzY0KTsKLQlpZ3RfcGxhbmVfc2V0X2Zi KHBsYW5lLCBOVUxMKTsKIAlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgUElQRV9BTlkpOwot Ci0JaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKKwlpZ3Rf ZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOwogfQogCi1zdGF0aWMgdm9p ZCB0ZXN0X2NydGNfYmFja2dyb3VuZChkYXRhX3QgKmRhdGEpCitzdGF0aWMgdm9pZCB0ZXN0X2Ny dGNfYmFja2dyb3VuZChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBkYXRhX3QgKmRhdGEpCiB7Ci0J aWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5OwogCWlndF9vdXRwdXRfdCAq b3V0cHV0OwogCWVudW0gcGlwZSBwaXBlOwogCWludCB2YWxpZF90ZXN0cyA9IDA7CiAKLQlmb3Jf ZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KGRpc3BsYXksIHBpcGUsIG91dHB1dCkgeworCWZv cl9lYWNoX3BpcGVfd2l0aF9zaW5nbGVfb3V0cHV0KGRpc3BsYXksIHBpcGUsIG91dHB1dCkgewog CQlpZ3RfcGxhbmVfdCAqcGxhbmU7CiAKLQkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBp cGUpOwotCi0JCXBsYW5lID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsIERSTV9Q TEFORV9UWVBFX1BSSU1BUlkpOwogCQlpZ3RfcmVxdWlyZShpZ3RfcGlwZV9oYXNfcHJvcChkaXNw bGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5EKSk7CiAKLQkJcHJlcGFyZV9jcnRjKGRhdGEs IG91dHB1dCwgcGlwZSwgcGxhbmUsIDEsIFBVUlBMRSwgQkxBQ0s2NCk7CisJCXByZXBhcmVfY3J0 YyhkaXNwbGF5LCBkYXRhLCBvdXRwdXQsIHBpcGUpOworCQlwbGFuZSA9IGlndF9vdXRwdXRfZ2V0 X3BsYW5lX3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKIAotCQkvKiBOb3cg c2V0IGJhY2tncm91bmQgd2l0aG91dCB1c2luZyBhIHBsYW5lLCBpLmUuLAotCQkgKiBEaXNhYmxl IHRoZSBwbGFuZSB0byBsZXQgaHcgYmFja2dyb3VuZCBjb2xvciB3aW4gYmxlbmQuICovCisJCS8q CisJCSAqIFR1cm4gb2ZmIHRoZSBwcmltYXJ5IHBsYW5lIChkZWZhdWx0IGJnY29sb3Igc2hvdWxk IGJlIGJsYWNrCisJCSAqIHVubGVzcyBhIHByZXZpb3VzIGRybSBtYXN0ZXIgY2hhbmdlZCBpdCB0 byBzb21ldGhpbmcgZWxzZSkuCisJCSAqLwogCQlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCBOVUxM KTsKLQkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFD S0dST1VORCwgUFVSUExFNjQpOwotCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1J VF9VTklWRVJTQUwpOwotCi0JCS8qIFRyeSBmZXcgb3RoZXIgYmFja2dyb3VuZCBjb2xvcnMgKi8K LQkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dS T1VORCwgQ1lBTjY0KTsKLQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5J VkVSU0FMKTsKLQotCQlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1Rf Q1JUQ19CQUNLR1JPVU5ELCBZRUxMT1c2NCk7Ci0JCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxh eSwgQ09NTUlUX1VOSVZFUlNBTCk7Ci0KKwkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBD T01NSVRfQVRPTUlDKTsKKworCQkvKiBFeHBsaWNpdGx5IHNldCBibGFjayBhcyBiZyBjb2xvciAq LworCQlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNL R1JPVU5ELCBCTEFDSzY0KTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRf QVRPTUlDKTsKKworCQkvKgorCQkgKiBUZXN0IHNldmVyYWwgbW9yZSBjb2xvcnMgYW5kIHByZWNp c2lvbnMuICBVbmZvcnR1bmF0ZWx5IHRoZQorCQkgKiBDUkMncyB3b24ndCBtYXRjaCBiZXR3ZWVu IGEgY2Fpcm8tZHJhd24gZmIgYW5kIGEgZGlzcGxheQorCQkgKiBjb250cm9sbGVyIGJnY29sb3Ig c2V0dGluZywgYnV0IHRoZXNlIGNhbiBhdCBsZWFzdCBiZQorCQkgKiB2aXN1YWxseSB2ZXJpZmll ZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHRvIGVuc3VyZSB0aGUgY29sb3JzCisJCSAqIGxvb2sgZ29v ZC4KKwkJICovCiAJCWlndF9waXBlX3NldF9wcm9wX3ZhbHVlKGRpc3BsYXksIHBpcGUsIElHVF9D UlRDX0JBQ0tHUk9VTkQsIFJFRDY0KTsKLQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBD T01NSVRfVU5JVkVSU0FMKTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRf QVRPTUlDKTsKKwkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NS VENfQkFDS0dST1VORCwgUkVEKTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01N SVRfQVRPTUlDKTsKIAogCQlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJ R1RfQ1JUQ19CQUNLR1JPVU5ELCBHUkVFTjY0KTsKLQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNw bGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBD T01NSVRfQVRPTUlDKTsKKwkJaWd0X3BpcGVfc2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwg SUdUX0NSVENfQkFDS0dST1VORCwgR1JFRU4pOworCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3Bs YXksIENPTU1JVF9BVE9NSUMpOwogCiAJCWlndF9waXBlX3NldF9wcm9wX3ZhbHVlKGRpc3BsYXks IHBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQsIEJMVUU2NCk7Ci0JCWlndF9kaXNwbGF5X2NvbW1p dDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlz cGxheSwgQ09NTUlUX0FUT01JQyk7CisJCWlndF9waXBlX3NldF9wcm9wX3ZhbHVlKGRpc3BsYXks IHBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQsIEJMVUUpOworCQlpZ3RfZGlzcGxheV9jb21taXQy KGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCisJCWlndF9waXBlX3NldF9wcm9wX3ZhbHVlKGRp c3BsYXksIHBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQsIFlFTExPVzY0KTsKKwkJaWd0X2Rpc3Bs YXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKKwkJaWd0X3BpcGVfc2V0X3Byb3Bf dmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dST1VORCwgWUVMTE9XKTsKKwkJaWd0 X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKIAogCQlpZ3RfcGlwZV9z ZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBXSElURTY0 KTsKLQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKKwkJ aWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKKwkJaWd0X3BpcGVf c2V0X3Byb3BfdmFsdWUoZGlzcGxheSwgcGlwZSwgSUdUX0NSVENfQkFDS0dST1VORCwgV0hJVEUp OworCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOwogCiAJCXZh bGlkX3Rlc3RzKys7Ci0JCWNsZWFudXBfY3J0YyhkYXRhLCBvdXRwdXQsIHBsYW5lKTsKKworCQlp Z3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5E LCBCTEFDSzY0KTsKKwkJY2xlYW51cF9jcnRjKGRpc3BsYXksIGRhdGEsIG91dHB1dCk7CiAJfQog CWlndF9yZXF1aXJlX2YodmFsaWRfdGVzdHMsICJubyB2YWxpZCBjcnRjL2Nvbm5lY3RvciBjb21i aW5hdGlvbnMgZm91bmRcbiIpOwogfQogCiBpZ3Rfc2ltcGxlX21haW4KIHsKKwlpZ3RfZGlzcGxh eV90IGRpc3BsYXk7CiAJZGF0YV90IGRhdGEgPSB7fTsKIAogCWlndF9za2lwX29uX3NpbXVsYXRp b24oKTsKIAogCWRhdGEuZ2Z4X2ZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7Ci0J aWd0X3JlcXVpcmVfcGlwZV9jcmMoZGF0YS5nZnhfZmQpOwotCWlndF9kaXNwbGF5X3JlcXVpcmUo JmRhdGEuZGlzcGxheSwgZGF0YS5nZnhfZmQpOworCWlndF9kaXNwbGF5X3JlcXVpcmUoJmRpc3Bs YXksIGRhdGEuZ2Z4X2ZkKTsKIAotCXRlc3RfY3J0Y19iYWNrZ3JvdW5kKCZkYXRhKTsKKwl0ZXN0 X2NydGNfYmFja2dyb3VuZCgmZGlzcGxheSwgJmRhdGEpOwogCi0JaWd0X2Rpc3BsYXlfZmluaSgm ZGF0YS5kaXNwbGF5KTsKKwlpZ3RfZGlzcGxheV9maW5pKCZkaXNwbGF5KTsKIH0KLS0gCjIuMTQu NAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRl diBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==