From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v3 1/8] xen: move XENMAPSPACE_grant_table code into grant_table.c Date: Wed, 6 Sep 2017 14:46:46 +0200 Message-ID: <20170906124653.5408-2-jgross@suse.com> References: <20170906124653.5408-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170906124653.5408-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Juergen Gross , sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org VGhlIHg4NiBhbmQgYXJtIHZlcnNpb25zIG9mIFhFTk1BUFNQQUNFX2dyYW50X3RhYmxlIGhhbmRs aW5nIGFyZSBuZWFybHkKaWRlbnRpY2FsLiBNb3ZlIHRoZSBjb2RlIGludG8gYSBmdW5jdGlvbiBp biBncmFudF90YWJsZS5jIGFuZCBhZGQgYW4KYXJjaGl0ZWN0dXJlIGRlcGVuZGFudCBob29rIHRv IGhhbmRsZSB0aGUgZGlmZmVyZW5jZXMuCgpTd2l0Y2ggdG8gbWZuX3QgaW4gb3JkZXIgdG8gYmUg bW9yZSB0eXBlIHNhZmUuCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3Vz ZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29t PgpSZXZpZXdlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tClYzOgotIHVw ZGF0ZSBjb21taXQgbWVzc2FnZQoKVjI6Ci0gcmViYXNlZCB0byBzdGFnaW5nCi0tLQogeGVuL2Fy Y2gvYXJtL21tLmMgICAgICAgICAgICAgICAgIHwgMzYgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICAgIHwgNDEgKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9uL2dyYW50X3RhYmxl LmMgICAgICAgICAgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhl bi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaCB8ICA3ICsrKysrKysKIHhlbi9pbmNsdWRl L2FzbS14ODYvZ3JhbnRfdGFibGUuaCB8ICA1ICsrKysrCiB4ZW4vaW5jbHVkZS94ZW4vZ3JhbnRf dGFibGUuaCAgICAgfCAgMyArKysKIDYgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwg NjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL21tLmMgYi94ZW4vYXJj aC9hcm0vbW0uYwppbmRleCBiMzk2NzdlYWM5Li4zZGIwZTNiZGVhIDEwMDY0NAotLS0gYS94ZW4v YXJjaC9hcm0vbW0uYworKysgYi94ZW4vYXJjaC9hcm0vbW0uYwpAQCAtMTIyOSwzOSArMTIyOSwx MSBAQCBpbnQgeGVubWVtX2FkZF90b19waHlzbWFwX29uZSgKICAgICBzd2l0Y2ggKCBzcGFjZSAp CiAgICAgewogICAgIGNhc2UgWEVOTUFQU1BBQ0VfZ3JhbnRfdGFibGU6Ci0gICAgICAgIGdyYW50 X3dyaXRlX2xvY2soZC0+Z3JhbnRfdGFibGUpOwotCi0gICAgICAgIGlmICggZC0+Z3JhbnRfdGFi bGUtPmd0X3ZlcnNpb24gPT0gMCApCi0gICAgICAgICAgICBkLT5ncmFudF90YWJsZS0+Z3RfdmVy c2lvbiA9IDE7Ci0KLSAgICAgICAgaWYgKCBkLT5ncmFudF90YWJsZS0+Z3RfdmVyc2lvbiA9PSAy ICYmCi0gICAgICAgICAgICAgICAgKGlkeCAmIFhFTk1BUElEWF9ncmFudF90YWJsZV9zdGF0dXMp ICkKLSAgICAgICAgewotICAgICAgICAgICAgaWR4ICY9IH5YRU5NQVBJRFhfZ3JhbnRfdGFibGVf c3RhdHVzOwotICAgICAgICAgICAgaWYgKCBpZHggPCBucl9zdGF0dXNfZnJhbWVzKGQtPmdyYW50 X3RhYmxlKSApCi0gICAgICAgICAgICAgICAgbWZuID0gdmlydF90b19tZm4oZC0+Z3JhbnRfdGFi bGUtPnN0YXR1c1tpZHhdKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgIHsKLSAg ICAgICAgICAgIGlmICggKGlkeCA+PSBucl9ncmFudF9mcmFtZXMoZC0+Z3JhbnRfdGFibGUpKSAm JgotICAgICAgICAgICAgICAgICAoaWR4IDwgbWF4X2dyYW50X2ZyYW1lcykgKQotICAgICAgICAg ICAgICAgIGdudHRhYl9ncm93X3RhYmxlKGQsIGlkeCArIDEpOwotCi0gICAgICAgICAgICBpZiAo IGlkeCA8IG5yX2dyYW50X2ZyYW1lcyhkLT5ncmFudF90YWJsZSkgKQotICAgICAgICAgICAgICAg IG1mbiA9IHZpcnRfdG9fbWZuKGQtPmdyYW50X3RhYmxlLT5zaGFyZWRfcmF3W2lkeF0pOwotICAg ICAgICB9Ci0KLSAgICAgICAgaWYgKCAhbWZuX2VxKG1mbiwgSU5WQUxJRF9NRk4pICkKLSAgICAg ICAgewotICAgICAgICAgICAgZC0+YXJjaC5ncmFudF90YWJsZV9nZm5baWR4XSA9IGdmbjsKLQot ICAgICAgICAgICAgdCA9IHAybV9yYW1fcnc7Ci0gICAgICAgIH0KLQotICAgICAgICBncmFudF93 cml0ZV91bmxvY2soZC0+Z3JhbnRfdGFibGUpOworICAgICAgICByYyA9IGdudHRhYl9tYXBfZnJh bWUoZCwgaWR4LCBnZm4sICZtZm4pOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgIHJl dHVybiByYzsKIAotICAgICAgICBpZiAoIG1mbl9lcShtZm4sIElOVkFMSURfTUZOKSApCi0gICAg ICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgdCA9IHAybV9yYW1fcnc7CiAKICAgICAg ICAgYnJlYWs7CiAgICAgY2FzZSBYRU5NQVBTUEFDRV9zaGFyZWRfaW5mbzoKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMKaW5kZXggZTVhMDI5YzliZS4u M2Q4OTllNGE4ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysrIGIveGVuL2FyY2gv eDg2L21tLmMKQEAgLTQ2MzEsNDAgKzQ2MzEsMTkgQEAgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21h cF9vbmUoCiB7CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSA9IE5VTEw7CiAgICAgdW5zaWdu ZWQgbG9uZyBnZm4gPSAwOyAvKiBnY2MgLi4uICovCi0gICAgdW5zaWduZWQgbG9uZyBwcmV2X21m biwgbWZuID0gMCwgb2xkX2dwZm47CisgICAgdW5zaWduZWQgbG9uZyBwcmV2X21mbiwgb2xkX2dw Zm47CiAgICAgaW50IHJjID0gMDsKKyAgICBtZm5fdCBtZm4gPSBJTlZBTElEX01GTjsKICAgICBw Mm1fdHlwZV90IHAybXQ7CiAKICAgICBzd2l0Y2ggKCBzcGFjZSApCiAgICAgewogICAgICAgICBj YXNlIFhFTk1BUFNQQUNFX3NoYXJlZF9pbmZvOgogICAgICAgICAgICAgaWYgKCBpZHggPT0gMCAp Ci0gICAgICAgICAgICAgICAgbWZuID0gdmlydF90b19tZm4oZC0+c2hhcmVkX2luZm8pOworICAg ICAgICAgICAgICAgIG1mbiA9IF9tZm4odmlydF90b19tZm4oZC0+c2hhcmVkX2luZm8pKTsKICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFhFTk1BUFNQQUNFX2dyYW50X3RhYmxlOgot ICAgICAgICAgICAgZ3JhbnRfd3JpdGVfbG9jayhkLT5ncmFudF90YWJsZSk7Ci0KLSAgICAgICAg ICAgIGlmICggZC0+Z3JhbnRfdGFibGUtPmd0X3ZlcnNpb24gPT0gMCApCi0gICAgICAgICAgICAg ICAgZC0+Z3JhbnRfdGFibGUtPmd0X3ZlcnNpb24gPSAxOwotCi0gICAgICAgICAgICBpZiAoIGQt PmdyYW50X3RhYmxlLT5ndF92ZXJzaW9uID09IDIgJiYKLSAgICAgICAgICAgICAgICAgKGlkeCAm IFhFTk1BUElEWF9ncmFudF90YWJsZV9zdGF0dXMpICkKLSAgICAgICAgICAgIHsKLSAgICAgICAg ICAgICAgICBpZHggJj0gflhFTk1BUElEWF9ncmFudF90YWJsZV9zdGF0dXM7Ci0gICAgICAgICAg ICAgICAgaWYgKCBpZHggPCBucl9zdGF0dXNfZnJhbWVzKGQtPmdyYW50X3RhYmxlKSApCi0gICAg ICAgICAgICAgICAgICAgIG1mbiA9IHZpcnRfdG9fbWZuKGQtPmdyYW50X3RhYmxlLT5zdGF0dXNb aWR4XSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgICAgaWYgKCAoaWR4ID49IG5yX2dyYW50X2ZyYW1lcyhkLT5ncmFudF90YWJs ZSkpICYmCi0gICAgICAgICAgICAgICAgICAgICAoaWR4IDwgbWF4X2dyYW50X2ZyYW1lcykgKQot ICAgICAgICAgICAgICAgICAgICBnbnR0YWJfZ3Jvd190YWJsZShkLCBpZHggKyAxKTsKLQotICAg ICAgICAgICAgICAgIGlmICggaWR4IDwgbnJfZ3JhbnRfZnJhbWVzKGQtPmdyYW50X3RhYmxlKSAp Ci0gICAgICAgICAgICAgICAgICAgIG1mbiA9IHZpcnRfdG9fbWZuKGQtPmdyYW50X3RhYmxlLT5z aGFyZWRfcmF3W2lkeF0pOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBncmFudF93cml0 ZV91bmxvY2soZC0+Z3JhbnRfdGFibGUpOworICAgICAgICAgICAgZ250dGFiX21hcF9mcmFtZShk LCBpZHgsIGdwZm4sICZtZm4pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgWEVO TUFQU1BBQ0VfZ21mbl9yYW5nZToKICAgICAgICAgY2FzZSBYRU5NQVBTUEFDRV9nbWZuOgpAQCAt NDY4MSw4ICs0NjYwLDggQEAgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21hcF9vbmUoCiAgICAgICAg ICAgICB9CiAgICAgICAgICAgICBpZiAoICFnZXRfcGFnZV9mcm9tX21mbihfbWZuKGlkeCksIGQp ICkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIG1mbiA9IGlkeDsKLSAgICAg ICAgICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShfbWZuKG1mbikpOworICAgICAgICAgICAgbWZuID0g X21mbihpZHgpOworICAgICAgICAgICAgcGFnZSA9IG1mbl90b19wYWdlKG1mbik7CiAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFhFTk1BUFNQQUNFX2dtZm5fZm9y ZWlnbjoKQEAgLTQ2OTEsNyArNDY3MCw3IEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25l KAogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgaWYgKCAhcGFnaW5nX21vZGVfdHJh bnNsYXRlKGQpIHx8IChtZm4gPT0gMCkgKQorICAgIGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0 ZShkKSB8fCBtZm5fZXEobWZuLCBJTlZBTElEX01GTikgKQogICAgIHsKICAgICAgICAgcmMgPSAt RUlOVkFMOwogICAgICAgICBnb3RvIHB1dF9ib3RoOwpAQCAtNDcxNSwxNiArNDY5NCwxNiBAQCBp bnQgeGVubWVtX2FkZF90b19waHlzbWFwX29uZSgKICAgICAgICAgZ290byBwdXRfYm90aDsKIAog ICAgIC8qIFVubWFwIGZyb20gb2xkIGxvY2F0aW9uLCBpZiBhbnkuICovCi0gICAgb2xkX2dwZm4g PSBnZXRfZ3Bmbl9mcm9tX21mbihtZm4pOworICAgIG9sZF9ncGZuID0gZ2V0X2dwZm5fZnJvbV9t Zm4obWZuX3gobWZuKSk7CiAgICAgQVNTRVJUKCBvbGRfZ3BmbiAhPSBTSEFSRURfTTJQX0VOVFJZ ICk7CiAgICAgaWYgKCBzcGFjZSA9PSBYRU5NQVBTUEFDRV9nbWZuIHx8IHNwYWNlID09IFhFTk1B UFNQQUNFX2dtZm5fcmFuZ2UgKQogICAgICAgICBBU1NFUlQoIG9sZF9ncGZuID09IGdmbiApOwog ICAgIGlmICggb2xkX2dwZm4gIT0gSU5WQUxJRF9NMlBfRU5UUlkgKQotICAgICAgICByYyA9IGd1 ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dmbihvbGRfZ3BmbiksIF9tZm4obWZuKSwgUEFH RV9PUkRFUl80Syk7CisgICAgICAgIHJjID0gZ3Vlc3RfcGh5c21hcF9yZW1vdmVfcGFnZShkLCBf Z2ZuKG9sZF9ncGZuKSwgbWZuLCBQQUdFX09SREVSXzRLKTsKIAogICAgIC8qIE1hcCBhdCBuZXcg bG9jYXRpb24uICovCiAgICAgaWYgKCAhcmMgKQotICAgICAgICByYyA9IGd1ZXN0X3BoeXNtYXBf YWRkX3BhZ2UoZCwgZ3BmbiwgX21mbihtZm4pLCBQQUdFX09SREVSXzRLKTsKKyAgICAgICAgcmMg PSBndWVzdF9waHlzbWFwX2FkZF9wYWdlKGQsIGdwZm4sIG1mbiwgUEFHRV9PUkRFUl80Syk7CiAK ICBwdXRfYm90aDoKICAgICAvKiBJbiB0aGUgWEVOTUFQU1BBQ0VfZ21mbiwgd2UgdG9vayBhIHJl ZiBvZiB0aGUgZ2ZuIGF0IHRoZSB0b3AgKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3JhbnRf dGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCBmYjM4NTljZThlLi40YzJl OWU0MGE1IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2Nv bW1vbi9ncmFudF90YWJsZS5jCkBAIC0zNjA3LDYgKzM2MDcsNDQgQEAgaW50IG1lbV9zaGFyaW5n X2dyZWZfdG9fZ2ZuKHN0cnVjdCBncmFudF90YWJsZSAqZ3QsIGdyYW50X3JlZl90IHJlZiwKIH0K ICNlbmRpZgogCitpbnQgZ250dGFiX21hcF9mcmFtZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBsb25nIGlkeCwgZ2ZuX3QgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgbWZuX3QgKm1mbikK K3sKKyAgICBpbnQgcmMgPSAwOworICAgIHN0cnVjdCBncmFudF90YWJsZSAqZ3QgPSBkLT5ncmFu dF90YWJsZTsKKworICAgIGdyYW50X3dyaXRlX2xvY2soZ3QpOworCisgICAgaWYgKCBndC0+Z3Rf dmVyc2lvbiA9PSAwICkKKyAgICAgICAgZ3QtPmd0X3ZlcnNpb24gPSAxOworCisgICAgaWYgKCBn dC0+Z3RfdmVyc2lvbiA9PSAyICYmCisgICAgICAgICAoaWR4ICYgWEVOTUFQSURYX2dyYW50X3Rh YmxlX3N0YXR1cykgKQorICAgIHsKKyAgICAgICAgaWR4ICY9IH5YRU5NQVBJRFhfZ3JhbnRfdGFi bGVfc3RhdHVzOworICAgICAgICBpZiAoIGlkeCA8IG5yX3N0YXR1c19mcmFtZXMoZ3QpICkKKyAg ICAgICAgICAgICptZm4gPSBfbWZuKHZpcnRfdG9fbWZuKGd0LT5zdGF0dXNbaWR4XSkpOworICAg ICAgICBlbHNlCisgICAgICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgfQorICAgIGVsc2UKKyAg ICB7CisgICAgICAgIGlmICggKGlkeCA+PSBucl9ncmFudF9mcmFtZXMoZ3QpKSAmJiAoaWR4IDwg bWF4X2dyYW50X2ZyYW1lcykgKQorICAgICAgICAgICAgZ250dGFiX2dyb3dfdGFibGUoZCwgaWR4 ICsgMSk7CisKKyAgICAgICAgaWYgKCBpZHggPCBucl9ncmFudF9mcmFtZXMoZ3QpICkKKyAgICAg ICAgICAgICptZm4gPSBfbWZuKHZpcnRfdG9fbWZuKGd0LT5zaGFyZWRfcmF3W2lkeF0pKTsKKyAg ICAgICAgZWxzZQorICAgICAgICAgICAgcmMgPSAtRUlOVkFMOworICAgIH0KKworICAgIGdudHRh Yl9zZXRfZnJhbWVfZ2ZuKGQsIGlkeCwgZ2ZuKTsKKworICAgIGdyYW50X3dyaXRlX3VubG9jayhn dCk7CisKKyAgICByZXR1cm4gcmM7Cit9CisKIHN0YXRpYyB2b2lkIGdudHRhYl91c2FnZV9wcmlu dChzdHJ1Y3QgZG9tYWluICpyZCkKIHsKICAgICBpbnQgZmlyc3QgPSAxOwpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLWFybS9ncmFudF90YWJsZS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9n cmFudF90YWJsZS5oCmluZGV4IGJjNGQ2MWE5NDAuLjBhMjQ4YTc2NWEgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJt L2dyYW50X3RhYmxlLmgKQEAgLTIsNiArMiw3IEBACiAjZGVmaW5lIF9fQVNNX0dSQU5UX1RBQkxF X0hfXwogCiAjaW5jbHVkZSA8eGVuL2dyYW50X3RhYmxlLmg+CisjaW5jbHVkZSA8eGVuL3NjaGVk Lmg+CiAKICNkZWZpbmUgSU5JVElBTF9OUl9HUkFOVF9GUkFNRVMgNAogCkBAIC0yMSw2ICsyMiwx MiBAQCBzdGF0aWMgaW5saW5lIGludCByZXBsYWNlX2dyYW50X3N1cHBvcnRlZCh2b2lkKQogICAg IHJldHVybiAxOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgZ250dGFiX3NldF9mcmFtZV9nZm4o c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBpZHgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2ZuX3QgZ2ZuKQoreworICAgIGQtPmFyY2guZ3JhbnRfdGFi bGVfZ2ZuW2lkeF0gPSBnZm47Cit9CisKICNkZWZpbmUgZ250dGFiX2NyZWF0ZV9zaGFyZWRfcGFn ZShkLCB0LCBpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgZG8geyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgICAgICBzaGFyZV94ZW5fcGFnZV93aXRoX2d1ZXN0KCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYv Z3JhbnRfdGFibGUuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3JhbnRfdGFibGUuaAppbmRleCAz M2IyZjg4Yjk2Li5jODY1OTk5YTMzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2dy YW50X3RhYmxlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ncmFudF90YWJsZS5oCkBAIC03 NSw2ICs3NSwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ250dGFiX2NsZWFyX2ZsYWcodW5zaWdu ZWQgaW50IG5yLCB1aW50MTZfdCAqc3QpCiAgICAgYXNtIHZvbGF0aWxlICgibG9jayBidHJ3ICV3 MSwlMCIgOiAiPW0iICgqc3QpIDogIklyIiAobnIpLCAibSIgKCpzdCkpOwogfQogCitzdGF0aWMg aW5saW5lIHZvaWQgZ250dGFiX3NldF9mcmFtZV9nZm4oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWdu ZWQgbG9uZyBpZHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Zu X3QgZ2ZuKQoreworfQorCiAvKiBGb3JlaWduIG1hcHBpbmdzIG9mIEhIVk0tZ3Vlc3QgcGFnZXMg ZG8gbm90IG1vZGlmeSB0aGUgdHlwZSBjb3VudC4gKi8KICNkZWZpbmUgZ250dGFiX2hvc3RfbWFw cGluZ19nZXRfcGFnZV90eXBlKHJvLCBsZCwgcmQpICAgXAogICAgICghKHJvKSAmJiAoKChsZCkg PT0gKHJkKSkgfHwgIXBhZ2luZ19tb2RlX2V4dGVybmFsKHJkKSkpCmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaCBiL3hlbi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5o CmluZGV4IGFmMjY5YTEwOGQuLjQzZWM2YzRkODAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hl bi9ncmFudF90YWJsZS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oCkBAIC0x MzYsNCArMTM2LDcgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZ3JhbnRfdG9fc3RhdHVz X2ZyYW1lcyhpbnQgZ3JhbnRfZnJhbWVzKQogaW50IG1lbV9zaGFyaW5nX2dyZWZfdG9fZ2ZuKHN0 cnVjdCBncmFudF90YWJsZSAqZ3QsIGdyYW50X3JlZl90IHJlZiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnZm5fdCAqZ2ZuLCB1aW50MTZfdCAqc3RhdHVzKTsKIAoraW50IGdudHRhYl9t YXBfZnJhbWUoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBpZHgsIGdmbl90IGdmbiwK KyAgICAgICAgICAgICAgICAgICAgIG1mbl90ICptZm4pOworCiAjZW5kaWYgLyogX19YRU5fR1JB TlRfVEFCTEVfSF9fICovCi0tIAoyLjEyLjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK