From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH v2 07/11] drm: add ycbcr helper functions Date: Tue, 30 May 2017 17:43:46 +0530 Message-ID: <1496146430-11430-8-git-send-email-shashank.sharma@intel.com> References: <1496146430-11430-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1496146430-11430-1-git-send-email-shashank.sharma@intel.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, intel-gfx@lists.freedesktop.org Cc: Jose Abreu List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIGhlbHBlciBmdW5jdGlvbnMgZm9yIHljYmNyIEhETUkgb3V0cHV0IGhh bmRsaW5nLgpUaGVzZSBmdW5jdGlvbnMgcHJvdmlkZSBmdW5jdGlvbmFsaXR5IGxpa2U6Ci0gZ2V0 dGluZyB0aGUgaGlnaGVzdCBzdWJzYW1sZWQgeWNiY3Igb3V0cHV0Ci0gZ2V0dGluZyB0aGUgbG93 ZXN0IHN1YnNhbWxlZCB5Y2JjciBvdXRwdXQKLSBjaGVjayBpZiBhIGdpdmVuIHNvdXJjZSBhbmQg c2luayBjb21iaW5hdGlvbiBjYW4gc3VwcG9ydCBhbnkgWUNCQ1Igb3V0cHV0Ci0gY2hlY2sgaWYg YSBnaXZlbiBzb3VyY2UgYW5kIHNpbmsgY29tYmluYXRpb24gY2FuIHN1cHBvcnQgYSBwYXJ0aWN1 bGFyCiAgWUNCQ1Igb3V0cHV0Ci0gY2hlY2sgaWYgYSBnaXZlIG1vZGUgY2FuIGJlIGRyaXZlbiBp biBZQ0JDUjQyMCBzdWJzYW1wbGluZy4KClRoZXNlIGZ1bmN0aW9ucyB3aWxsIGJlIHVzZWQgaW4g bmV4dCBmZXcgcGF0Y2hlcyBpbiB0aGlzCnNlcmllcyBmcm9tIEk5MTUgZHJpdmVyLgoKVjI6IEFk ZGVkIFlDQkNSIGZ1bmN0aW9ucyBhcyBoZWxwZXJzIGluIERSTSBsYXllciwgaW5zdGVhZCBvZgog ICAga2VlcGluZyBpdCBpbiBJOTE1IGxheWVyCgpDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBKb3NlIEFicmV1IDxKb3NlLkFicmV1QHN5bm9wc3lz LmNvbT4KU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50 ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jICB8ICAgMiArLQogZHJpdmVy cy9ncHUvZHJtL2RybV9tb2Rlcy5jIHwgMTc3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9kcm1fZWRpZC5oICAgICAgfCAgIDEgKwogaW5j bHVkZS9kcm0vZHJtX21vZGVzLmggICAgIHwgIDE2ICsrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTk1 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCmluZGV4IDk4ZTAwY2Uu LmE5ZDliMWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCkBAIC0yOTQ5LDcgKzI5NDksNyBAQCB1OCBkcm1fbWF0 Y2hfY2VhX21vZGUoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnRvX21hdGNoKQogfQog RVhQT1JUX1NZTUJPTChkcm1fbWF0Y2hfY2VhX21vZGUpOwogCi1zdGF0aWMgYm9vbCBkcm1fdmFs aWRfY2VhX3ZpYyh1OCB2aWMpCitib29sIGRybV92YWxpZF9jZWFfdmljKHU4IHZpYykKIHsKIAly ZXR1cm4gdmljID4gMCAmJiB2aWMgPCBBUlJBWV9TSVpFKGVkaWRfY2VhX21vZGVzKTsKIH0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fbW9kZXMuYwppbmRleCBmMjQ5M2I5Li40M2M2MzBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX21vZGVzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jCkBAIC0x NTc2LDMgKzE1NzYsMTgwIEBAIGludCBkcm1fbW9kZV9jb252ZXJ0X3Vtb2RlKHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICpvdXQsCiBvdXQ6CiAJcmV0dXJuIHJldDsKIH0KKworLyoqCisgKiBkcm1f bW9kZV9pc180MjAgLSBpZiBhIGdpdmVuIHZpZGVvbW9kZSBjYW4gYmUgc3VwcG9ydGVkIGluIFlD QkNSNDIwCisgKiBvdXRwdXQgZm9ybWF0IGFsc28KKyAqCisgKiBAY29ubmVjdG9yOiBkcm0gY29u bmVjdG9yIHVuZGVyIGFjdGlvbi4KKyAqIEBtb2RlOiB2aWRlbyBtb2RlIHRvIGJlIHRlc3RlZC4K KyAqCisgKiBSZXR1cm5zOgorICogdHJ1ZSBpZiB0aGUgbW9kZSBjYW4gc3VwcG9ydCBZQ0JDUjQy MCBvdXRwdXQKKyAqIGZhbHNlIGlmIG5vdC4KKyAqLworYm9vbCBkcm1fbW9kZV9pc180MjAoc3Ry dWN0IGRybV9kaXNwbGF5X2luZm8gKmRpc3BsYXksCisJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSkKK3sKKwl1OCB2aWMgPSBkcm1fbWF0Y2hfY2VhX21vZGUobW9kZSk7CisJdTMyICp2 Y2JfbWFwOworCXU4IGluZGV4OworCisJaWYgKCFkcm1fdmFsaWRfY2VhX3ZpYyh2aWMpKQorCQly ZXR1cm4gZmFsc2U7CisJLyoKKwkgKiB5Y2JjcjQyMF92Y2JfbW9kZXMgaXMgYSBmaXggcG9zaXRp b24gMTI4IGJpdCBiaXRtYXAuIFRoaXMgaW5kaWNhdGVzCisJICogc3VwcG9ydCBmb3IgeWNiY3I0 MjAgb3V0cHV0IHBlciBWSUMuIEFycmFuZ2VtZW50IGlzIGJpdFtuXSBpbmRpY2F0ZXMKKwkgKiBp ZiB2aWNbbisxXSBzdXBwb3J0cyB5Y2JjcjQyMCBvdXRwdXQuCisJICogeWNiY3I0MjBfdmNiX21v ZGVzWzBdID0gfFZJQz0zMiB8VklDPTMxIHwuLi4uLi4uLi4uLi58VklDPTIgfFZJQz0xIHwKKwkg KiB5Y2JjcjQyMF92Y2JfbW9kZXNbMV0gPSB8VklDPTY0IHxWSUM9NjMgfC4uLi4uLi4uLi4uLnxW SUM9MzR8VklDPTMzfAorCSAqIHljYmNyNDIwX3ZjYl9tb2Rlc1syXSA9IHxWSUM9OTYgfFZJQz05 NSB8Li4uLi4uLi4uLi4ufFZJQz02NnxWSUM9NjV8CisJICogeWNiY3I0MjBfdmNiX21vZGVzWzNd ID0gfFZJQz0xMjh8VklDPTEyN3wuLi4uLi4uLi4uLi58VklDPTM0fFZJQz05N3wKKwkgKi8KKwl2 Y2JfbWFwID0gJihkaXNwbGF5LT5oZG1pLnljYmNyNDIwX3ZjYl9tb2Rlc1sodmljIC0gMSkgLyAz Ml0pOworCWluZGV4ID0gKHZpYyAtIDEpICUgMzI7CisJcmV0dXJuICAqdmNiX21hcCAmICgxIDw8 IGluZGV4KTsKK30KKworLyoqCisgKiBkcm1fY2FuX3N1cHBvcnRfdGhpc195Y2Jjcl9vdXRwdXQg LSBjYW4gYSBnaXZlbiBzb3VyY2UgYW5kIHNpbmsgY29tYmluYXRpb24KKyAqIHN1cHBvcnQgYSBw YXJ0aWN1bGFyIFlDQkNSIG91dHB1dCB0eXBlLgorICoKKyAqIEBkaXNwbGF5OiBzaW5rIGluZm9y bWF0aW9uLgorICogQG1vZGU6IHZpZGVvIG1vZGUgZnJvbSBtb2Rlc2V0CisgKiBAdHlwZTogZW51 bSBpbmRpY2F0aW5nIFlDQkNSIG91dHB1dCB0eXBlCisgKiBAc291cmNlX291dHB1dHM6IGJpdG1h cCBvZiBzb3VyY2Ugc3VwcG9ydGVkIEhETUkgb3V0cHV0IGZvcm1hdHMuCisgKgorICogUmV0dXJu czoKKyAqIHRydWUgb24gc3VjY2Vzcy4KKyAqIGZhbHNlIG9uIGZhaWx1cmUuCisgKi8KK2Jvb2wg ZHJtX2Nhbl9zdXBwb3J0X3RoaXNfeWNiY3Jfb3V0cHV0KHN0cnVjdCBkcm1fZGlzcGxheV9pbmZv ICpkaXNwbGF5LAorCQkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKKwkJCQkJZW51 bSBkcm1faGRtaV9vdXRwdXRfdHlwZSB0eXBlLAorCQkJCQl1MzIgc291cmNlX291dHB1dHMpCit7 CisJLyogWUNCQ1I0MjAgb3V0cHV0IHN1cHBvcnQgY2FuIGJlIHBlciBtb2RlIGJhc2lzICovCisJ aWYgKHR5cGUgPT0gRFJNX0hETUlfT1VUUFVUX1lDQkNSNDIwICYmCisJCSFkcm1fbW9kZV9pc180 MjAoZGlzcGxheSwgbW9kZSkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiBkaXNwbGF5LT5j b2xvcl9mb3JtYXRzICYgc291cmNlX291dHB1dHMgJiB0eXBlOworfQorCisvKioKKyAqIGRybV9j YW5fc3VwcG9ydF9hbnlfeWNiY3Jfb3V0cHV0IC0gY2FuIGEgZ2l2ZW4gc291cmNlIGFuZCBzaW5r IGNvbWJpbmF0aW9uCisgKiBzdXBwb3J0IGFueSBZQ0JDUiBvdXRwdXRzLgorICoKKyAqIEBkaXNw bGF5OiBzaW5rIGluZm9ybWF0aW9uLgorICogQHNvdXJjZV9vdXRwdXRzOiBiaXRtYXAgb2Ygc291 cmNlIHN1cHBvcnRlZCBIRE1JIG91dHB1dCBmb3JtYXRzLgorICoKKyAqIFJldHVybnM6CisgKiB0 cnVlIG9uIHN1Y2Nlc3MuCisgKiBmYWxzZSBvbiBmYWlsdXJlLgorICovCitib29sIGRybV9jYW5f c3VwcG9ydF9hbnlfeWNiY3Jfb3V0cHV0KHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICpkaXNwbGF5 LAorCQkJCQl1MzIgc291cmNlX291dHB1dHMpCit7CisJdTMyIHN1cHBvcnRlZF9mb3JtYXRzOwor CisJaWYgKCFzb3VyY2Vfb3V0cHV0cyB8fCAhZGlzcGxheS0+Y29sb3JfZm9ybWF0cykgeworCQlE Uk1fREVCVUdfS01TKCJTb3VyY2UvU2luayBkb2Vzbid0IHN1cHBvcnQgYW55IG91dHB1dCA/XG4i KTsKKwkJcmV0dXJuIERSTV9IRE1JX09VVFBVVF9JTlZBTElEOworCX0KKworCS8qIEdldCB0aGUg Y29tbW9uIHN1cHBvcnRlZCBmcm9tYXRzIGJldHdlZW4gc291cmNlIGFuZCBzaW5rICovCisJc3Vw cG9ydGVkX2Zvcm1hdHMgPSBkaXNwbGF5LT5jb2xvcl9mb3JtYXRzICYgc291cmNlX291dHB1dHM7 CisJaWYgKCFzdXBwb3J0ZWRfZm9ybWF0cyB8fCAoc3VwcG9ydGVkX2Zvcm1hdHMgPT0KKwkJRFJN X0NPTE9SX0ZPUk1BVF9SR0I0NDQpKSB7CisJCURSTV9FUlJPUigiTm8gY29tbW9uIFlDQkNSIGZv cm1hdHMgYmV0d2VlbiBzb3VyY2UgYW5kIHNpbmtcbiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQor CisJRFJNX0RFQlVHX0tNUygiU3JjIGFuZCBTaW5rIGNvbWJpbmF0aW9uIGNhbiBzdXBwb3J0IFlD QkNSIG91dHB1dFxuIik7CisJcmV0dXJuIHRydWU7Cit9CisKKy8qKgorICogZHJtX2dldF9oaWdo ZXN0X3F1YWxpdHlfeWNiY3Jfc3VwcG9ydGVkIC0gZ2V0IHRoZSB5Y2JjciBvdXRwdXQgbW9kZQor ICogd2l0aCBoaWdoZXN0IHN1YnNhbXBsaW5nIHJhdGUKKyAqIEBkaXNwbGF5OiBzdHJ1Y3QgZHJt X2Rpc3BsYXlfaW5mbyBmcm9tIGN1cnJlbnQgY29ubmVjdG9yCisgKiBAbW9kZTogdmlkZW8gbW9k ZSBmcm9tIG1vZGVzZXQKKyAqIEBzb3VyY2Vfb3V0cHV0X21hcDogYml0bWFwIG9mIHN1cHBvcnRl ZCBIRE1JIG91dHB1dCBtb2RlcyBmcm9tIHNvdXJjZQorICoKKyAqIEZpbmRzIHRoZSBiZXN0IHBv c3NpYmxlIHljYmNyIG91dHB1dCBtb2RlIChiYXNlZCBvbiBzdWJzYW1wbGluZyksIGZvciB0aGUK KyAqIGdpdmVuIHNvdXJjZSBhbmQgc2luayBjb21iaW5hdGlvbi4KKyAqCisgKiBSZXR1cm5zOgor ICogZW51bSBjb3JyZXNwb25kaW5nIHRvIGJlc3Qgb3V0cHV0IG1vZGUgb24gc3VjY2Vzcy4KKyAq IERSTV9IRE1JX09VVFBVVF9JTlZBTElEIG9uIGZhaWx1cmUuCisgKi8KK2VudW0gZHJtX2hkbWlf b3V0cHV0X3R5cGUKK2RybV9nZXRfaGlnaGVzdF9xdWFsaXR5X3ljYmNyX3N1cHBvcnRlZChzdHJ1 Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqZGlzcGxheSwKKwkJCQkJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUsCisJCQkJCXUzMiBzb3VyY2Vfb3V0cHV0X21hcCkKK3sKKwllbnVtIGRybV9oZG1p X291dHB1dF90eXBlIG91dHB1dCA9IERSTV9IRE1JX09VVFBVVF9JTlZBTElEOworCXUzMiBzdXBw b3J0ZWRfZm9ybWF0cyA9IHNvdXJjZV9vdXRwdXRfbWFwICYgZGlzcGxheS0+Y29sb3JfZm9ybWF0 czsKKworCS8qCisJICogR2V0IHRoZSB5Y2JjciBvdXRwdXQgd2l0aCB0aGUgaGlnaGVzdCBwb3Nz aWJsZSBzdWJzYW1wbGluZyByYXRlLgorCSAqIFByZWZlcmVuY2Ugc2hvdWxkIGdvIGFzOgorCSAq IHljYmNyIDQ0NAorCSAqIHljYmNyIDQyMgorCSAqIHljYmNyIDQyMAorCSAqLworCWlmIChzdXBw b3J0ZWRfZm9ybWF0cyAmIERSTV9DT0xPUl9GT1JNQVRfWUNSQ0I0NDQpCisJCW91dHB1dCA9IERS TV9DT0xPUl9GT1JNQVRfWUNSQ0I0NDQ7CisJZWxzZSBpZiAoc3VwcG9ydGVkX2Zvcm1hdHMgJiBE Uk1fQ09MT1JfRk9STUFUX1lDUkNCNDIyKQorCQlvdXRwdXQgPSBEUk1fQ09MT1JfRk9STUFUX1lD UkNCNDIyOworCWVsc2UgaWYgKHN1cHBvcnRlZF9mb3JtYXRzICYgRFJNX0NPTE9SX0ZPUk1BVF9Z Q1JDQjQyMCAmJgorCQkJZHJtX21vZGVfaXNfNDIwKGRpc3BsYXksIG1vZGUpKQorCQlvdXRwdXQg PSBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDIwOworCisJRFJNX0RFQlVHX0tNUygiSGlnaGVzdCBz dWJzYW1wbGVkIFlDQkNSIG1vZGUgc3VwcG9ydGVkIGlzICVzXG4iLAorCQkJZHJtX2dldF9oZG1p X291dHB1dF9uYW1lKHN1cHBvcnRlZF9mb3JtYXRzKSk7CisJcmV0dXJuIG91dHB1dDsKK30KKwor LyoqCisgKiBkcm1fZ2V0X2xvd2VzdF9xdWFsaXR5X3ljYmNyX3N1cHBvcnRlZCAtIGdldCB0aGUg eWNiY3Igb3V0cHV0IG1vZGUKKyAqIHdpdGggbG93ZXN0IHN1YnNhbXBsaW5nIHJhdGUKKyAqIEBk aXNwbGF5OiBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyBmcm9tIGN1cnJlbnQgY29ubmVjdG9yCisg KiBAbW9kZTogdmlkZW8gbW9kZSBmcm9tIG1vZGVzZXQKKyAqIEBzb3VyY2Vfb3V0cHV0X21hcDog Yml0bWFwIG9mIHN1cHBvcnRlZCBIRE1JIG91dHB1dCBtb2RlcyBmcm9tIHNvdXJjZQorICoKKyAq IEZpbmRzIHRoZSBsb3dlc3QgcG9zc2libGUgeWNiY3Igb3V0cHV0IG1vZGUgKGJhc2VkIG9uIHN1 YnNhbXBsaW5nKSwgZm9yIHRoZQorICogZ2l2ZW4gc291cmNlIGFuZCBzaW5rIGNvbWJpbmF0aW9u LgorICoKKyAqIFJldHVybnM6CisgKiBlbnVtIGNvcnJlc3BvbmRpbmcgdG8gYmVzdCBvdXRwdXQg bW9kZSBvbiBzdWNjZXNzLgorICogRFJNX0hETUlfT1VUUFVUX0lOVkFMSUQgb24gZmFpbHVyZS4K KyAqLworZW51bSBkcm1faGRtaV9vdXRwdXRfdHlwZQorZHJtX2dldF9sb3dlc3RfcXVhbGl0eV95 Y2Jjcl9zdXBwb3J0ZWQoc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmRpc3BsYXksCisJCQkJCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAorCQkJCQl1MzIgc291cmNlX291dHB1dF9tYXAp Cit7CisJZW51bSBkcm1faGRtaV9vdXRwdXRfdHlwZSBvdXRwdXQgPSBEUk1fSERNSV9PVVRQVVRf SU5WQUxJRDsKKwl1MzIgc3VwcG9ydGVkX2Zvcm1hdHMgPSBzb3VyY2Vfb3V0cHV0X21hcCAmIGRp c3BsYXktPmNvbG9yX2Zvcm1hdHM7CisKKwkvKgorCSAqIEdldCB0aGUgeWNiY3Igb3V0cHV0IHdp dGggdGhlIGxvd2VzdCBwb3NzaWJsZSBzdWJzYW1wbGluZyByYXRlLgorCSAqIFByZWZlcmVuY2Ug c2hvdWxkIGdvIGFzOgorCSAqIHljYmNyIDQyMAorCSAqIHljYmNyIDQyMgorCSAqIHljYmNyIDQ0 NAorCSAqLworCWlmIChzdXBwb3J0ZWRfZm9ybWF0cyAmIERSTV9DT0xPUl9GT1JNQVRfWUNSQ0I0 MjAgJiYKKwkJZHJtX21vZGVfaXNfNDIwKGRpc3BsYXksIG1vZGUpKQorCQlvdXRwdXQgPSBEUk1f SERNSV9PVVRQVVRfWUNCQ1I0MjA7CisJZWxzZSBpZiAoZGlzcGxheS0+Y29sb3JfZm9ybWF0cyAm IERSTV9DT0xPUl9GT1JNQVRfWUNSQ0I0MjIpCisJCW91dHB1dCA9IERSTV9IRE1JX09VVFBVVF9Z Q0JDUjQyMjsKKwllbHNlIGlmIChkaXNwbGF5LT5jb2xvcl9mb3JtYXRzICYgRFJNX0NPTE9SX0ZP Uk1BVF9ZQ1JDQjQ0NCkKKwkJb3V0cHV0ID0gRFJNX0hETUlfT1VUUFVUX1lDQkNSNDIwOworCisJ RFJNX0RFQlVHX0tNUygiTG93ZXN0IHN1YnNhbXBsZWQgWUNCQ1IgbW9kZSBzdXBwb3J0ZWQgaXMg JXNcbiIsCisJCQlkcm1fZ2V0X2hkbWlfb3V0cHV0X25hbWUoc3VwcG9ydGVkX2Zvcm1hdHMpKTsK KwlyZXR1cm4gb3V0cHV0OworfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaCBi L2luY2x1ZGUvZHJtL2RybV9lZGlkLmgKaW5kZXggODk4MDM2Ni4uZDAyNWQ1NiAxMDA2NDQKLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCkBA IC00NjgsNiArNDY4LDcgQEAgaW50IGRybV9hZGRfZWRpZF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLCBzdHJ1Y3QgZWRpZCAqZWRpZCk7CiAKIHU4IGRybV9tYXRjaF9jZWFf bW9kZShjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqdG9fbWF0Y2gpOwogZW51bSBoZG1p X3BpY3R1cmVfYXNwZWN0IGRybV9nZXRfY2VhX2FzcGVjdF9yYXRpbyhjb25zdCB1OCB2aWRlb19j b2RlKTsKK2Jvb2wgZHJtX3ZhbGlkX2NlYV92aWModTggdmljKTsKIGJvb2wgZHJtX2RldGVjdF9o ZG1pX21vbml0b3Ioc3RydWN0IGVkaWQgKmVkaWQpOwogYm9vbCBkcm1fZGV0ZWN0X21vbml0b3Jf YXVkaW8oc3RydWN0IGVkaWQgKmVkaWQpOwogYm9vbCBkcm1fcmdiX3F1YW50X3JhbmdlX3NlbGVj dGFibGUoc3RydWN0IGVkaWQgKmVkaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21v ZGVzLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZXMuaAppbmRleCA2ZGQzNDI4MC4uZmMxYWVjMCAx MDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJt X21vZGVzLmgKQEAgLTQzMyw2ICs0MzMsMjIgQEAgaW50IGRybV9tb2RlX2NvbnZlcnRfdW1vZGUo c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm91dCwKIAkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fbW9k ZV9tb2RlaW5mbyAqaW4pOwogdm9pZCBkcm1fbW9kZV9wcm9iZWRfYWRkKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsKIHZvaWQg ZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZShjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSk7Citib29sIGRybV9tb2RlX2lzXzQyMChzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAq ZGlzcGxheSwKKwkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsKK2Jvb2wgZHJtX2Nh bl9zdXBwb3J0X3RoaXNfeWNiY3Jfb3V0cHV0KHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICpkaXNw bGF5LAorCQkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKKwkJCQkJZW51bSBkcm1f aGRtaV9vdXRwdXRfdHlwZSB0eXBlLAorCQkJCQl1MzIgc291cmNlX291dHB1dHMpOworYm9vbCBk cm1fY2FuX3N1cHBvcnRfYW55X3ljYmNyX291dHB1dChzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAq ZGlzcGxheSwKKwkJCQkJdTMyIHNvdXJjZV9vdXRwdXRzKTsKK2VudW0gZHJtX2hkbWlfb3V0cHV0 X3R5cGUKK2RybV9nZXRfaGlnaGVzdF9xdWFsaXR5X3ljYmNyX3N1cHBvcnRlZChzdHJ1Y3QgZHJt X2Rpc3BsYXlfaW5mbyAqZGlzcGxheSwKKwkJCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUsCisJCQkJCXUzMiBzb3VyY2Vfb3V0cHV0X21hcCk7CitlbnVtIGRybV9oZG1pX291dHB1dF90 eXBlCitkcm1fZ2V0X2xvd2VzdF9xdWFsaXR5X3ljYmNyX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX2Rp c3BsYXlfaW5mbyAqZGlzcGxheSwKKwkJCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUs CisJCQkJCXUzMiBzb3VyY2Vfb3V0cHV0X21hcCk7CiAKIHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICpkcm1fY3Z0X21vZGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgICAgICBpbnQgaGRp c3BsYXksIGludCB2ZGlzcGxheSwgaW50IHZyZWZyZXNoLAotLSAKMi43LjQKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=