From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v4 01/13] libxl: add generic function to add device Date: Tue, 18 Jul 2017 17:25:18 +0300 Message-ID: <1500387930-16317-2-git-send-email-al1img@gmail.com> References: <1500387930-16317-1-git-send-email-al1img@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dXTRW-0002UX-7l for xen-devel@lists.xenproject.org; Tue, 18 Jul 2017 14:25:42 +0000 Received: by mail-lf0-f66.google.com with SMTP id p11so1997097lfd.1 for ; Tue, 18 Jul 2017 07:25:40 -0700 (PDT) In-Reply-To: <1500387930-16317-1-git-send-email-al1img@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: ian.jackson@eu.citrix.com, wei.liu2@citrix.com, Oleksandr Grytsov List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgoKQWRk IGxpYnhsX19kZXZpY2VfYWRkIHRvIHNpbXBsZSB3cml0ZSBYZW5TdG9yZSBkZXZpY2UgY29uaWZn CmFuZCBsaWJ4bF9fZGV2aWNlX2FkZF9hc3luYyB0byB1cGRhdGUgZG9tYWluIGNvbmZpZ3VyYXRp b24KYW5kIHdyaXRlIFhlblN0b3JlIGRldmljZSBjb25maWcgYXN5bmNocm9uaW91c2x5LgpBbG1v c3QgYWxsIGRldmljZXMgaGF2ZSBzaW1pbGFyIGxpYnhsX19kZXZpY2VfeHh4eF9hZGQgZnVuY3Rp b24uClRoaXMgZ2VuZXJpYyBmdW5jdGlvbnMgaW1wbGVtZW50IHNhbWUgZnVuY3Rpb25hbGl0eSBi dXQKdXNpbmcgdGhlIGRldmljZSBoYW5kbGluZyBmcmFtZXdvcmsuIFRoIGRldmljZSBzcGVjaWZp YwpwYXJ0IHN1Y2ggYXMgc2V0dGluZyB4ZW4gc3RvcmUgY29uZmlndXJhdGlvbmlzIG1vdmVkCnRv IHNldF94ZW5zdG9yZV9jb25maWcgY2FsbGJhY2sgb2YgdGhlIGRldmljZSBmcmFtZXdvcmsuCgpT aWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgR3J5dHNvdiA8b2xla3NhbmRyX2dyeXRzb3ZAZXBhbS5j b20+Ci0tLQogdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgICB8ICAgMyArCiB0b29scy9saWJ4 bC9saWJ4bF9kZXZpY2UuYyAgIHwgMTk4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIHRvb2xzL2xpYnhsL2xpYnhsX2Rpc2suYyAgICAgfCAgIDIgKwogdG9vbHMv bGlieGwvbGlieGxfaW50ZXJuYWwuaCB8ICAzNiArKysrKysrKwogdG9vbHMvbGlieGwvbGlieGxf bmljLmMgICAgICB8ICAgMiArCiB0b29scy9saWJ4bC9saWJ4bF9wY2kuYyAgICAgIHwgICAyICsK IHRvb2xzL2xpYnhsL2xpYnhsX3VzYi5jICAgICAgfCAgIDYgKysKIHRvb2xzL2xpYnhsL2xpYnhs X3Z0cG0uYyAgICAgfCAgIDIgKwogOCBmaWxlcyBjaGFuZ2VkLCAyNTEgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jIGIvdG9vbHMvbGlieGwvbGli eGxfY3JlYXRlLmMKaW5kZXggYmZmYmM0NS4uYjIxNjNjZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGli eGwvbGlieGxfY3JlYXRlLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKQEAgLTE0 MzAsNiArMTQzMCw5IEBAIG91dDoKIAogI2RlZmluZSBsaWJ4bF9kZXZpY2VfZHRkZXZfbGlzdCBO VUxMCiAjZGVmaW5lIGxpYnhsX2RldmljZV9kdGRldl9jb21wYXJlIE5VTEwKKyNkZWZpbmUgbGli eGxfX2RldmljZV9mcm9tX2R0ZGV2IE5VTEwKKyNkZWZpbmUgbGlieGxfX2RldmljZV9kdGRldl9z ZXRkZWZhdWx0IE5VTEwKKyNkZWZpbmUgbGlieGxfX2RldmljZV9kdGRldl91cGRhdGVfZGV2aWQg TlVMTAogc3RhdGljIERFRklORV9ERVZJQ0VfVFlQRV9TVFJVQ1QoZHRkZXYpOwogCiBjb25zdCBz dHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUgKmRldmljZV90eXBlX3RibFtdID0gewpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMgYi90b29scy9saWJ4bC9saWJ4bF9kZXZpY2Uu YwppbmRleCAwMDM1NmFmLi4wNzE2NWYwIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9k ZXZpY2UuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYwpAQCAtMTc5Myw2ICsxNzkz LDIwNCBAQCBvdXQ6CiAgICAgcmV0dXJuIEFPX0NSRUFURV9GQUlMKHJjKTsKIH0KIAorc3RhdGlj IHZvaWQgZGV2aWNlX2FkZF9kb21haW5fY29uZmlnKGxpYnhsX19nYyAqZ2MsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2NvbmZpZyAqZF9jb25maWcs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpYnhs X2RldmljZV90eXBlICpkdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 b2lkICp0eXBlKQoreworICAgIGludCAqbnVtX2RldjsKKyAgICBpbnQgaTsKKyAgICB2b2lkICpp dGVtID0gTlVMTDsKKworICAgIG51bV9kZXYgPSBsaWJ4bF9fZGV2aWNlX3R5cGVfZ2V0X251bShk dCwgZF9jb25maWcpOworCisgICAgLyogQ2hlY2sgZm9yIGV4aXN0aW5nIGRldmljZSAqLworICAg IGZvciAoaSA9IDA7IGkgPCAqbnVtX2RldjsgaSsrKSB7CisgICAgICAgIGlmIChkdC0+Y29tcGFy ZShsaWJ4bF9fZGV2aWNlX3R5cGVfZ2V0X2VsZW0oZHQsIGRfY29uZmlnLCBpKSwgdHlwZSkpIHsK KyAgICAgICAgICAgIGl0ZW0gPSBsaWJ4bF9fZGV2aWNlX3R5cGVfZ2V0X2VsZW0oZHQsIGRfY29u ZmlnLCBpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghaXRlbSkgeworICAgICAgICB2 b2lkICoqZGV2cz0gbGlieGxfX2RldmljZV90eXBlX2dldF9wdHIoZHQsIGRfY29uZmlnKTsKKyAg ICAgICAgKmRldnMgPSBsaWJ4bF9fcmVhbGxvYyhOT0dDLCAqZGV2cywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkdC0+ZGV2X2VsZW1fc2l6ZSAqICgqbnVtX2RldiArIDEpKTsKKyAg ICAgICAgaXRlbSA9IGxpYnhsX19kZXZpY2VfdHlwZV9nZXRfZWxlbShkdCwgZF9jb25maWcsICpu dW1fZGV2KTsKKyAgICAgICAgKCpudW1fZGV2KSsrOworICAgIH0gZWxzZSB7CisgICAgICAgIGR0 LT5kaXNwb3NlKGl0ZW0pOworICAgIH0KKworICAgIGR0LT5pbml0KGl0ZW0pOworICAgIGR0LT5j b3B5KENUWCwgaXRlbSwgdHlwZSk7Cit9CisKK3ZvaWQgbGlieGxfX2RldmljZV9hZGRfYXN5bmMo bGlieGxfX2VnYyAqZWdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IGxpYnhsX2RldmljZV90eXBlICpkdCwgdm9pZCAqdHlwZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2FvX2RldmljZSAqYW9kZXYpCit7Cisg ICAgU1RBVEVfQU9fR0MoYW9kZXYtPmFvKTsKKyAgICBmbGV4YXJyYXlfdCAqYmFjazsKKyAgICBm bGV4YXJyYXlfdCAqZnJvbnQsICpyb19mcm9udDsKKyAgICBsaWJ4bF9fZGV2aWNlICpkZXZpY2U7 CisgICAgeHNfdHJhbnNhY3Rpb25fdCB0ID0gWEJUX05VTEw7CisgICAgbGlieGxfZG9tYWluX2Nv bmZpZyBkX2NvbmZpZzsKKyAgICB2b2lkICp0eXBlX3NhdmVkOworICAgIGxpYnhsX19kb21haW5f dXNlcmRhdGFfbG9jayAqbG9jayA9IE5VTEw7CisgICAgaW50IHJjOworCisgICAgbGlieGxfZG9t YWluX2NvbmZpZ19pbml0KCZkX2NvbmZpZyk7CisKKyAgICB0eXBlX3NhdmVkID0gbGlieGxfX21h bGxvYyhnYywgZHQtPmRldl9lbGVtX3NpemUpOworCisgICAgZHQtPmluaXQodHlwZV9zYXZlZCk7 CisgICAgZHQtPmNvcHkoQ1RYLCB0eXBlX3NhdmVkLCB0eXBlKTsKKworICAgIGlmIChkdC0+c2V0 X2RlZmF1bHQpIHsKKyAgICAgICAgcmMgPSBkdC0+c2V0X2RlZmF1bHQoZ2MsIGRvbWlkLCB0eXBl LCBhb2Rldi0+dXBkYXRlX2pzb24pOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgIH0K KworICAgIGlmIChkdC0+dXBkYXRlX2RldmlkKSB7CisgICAgICAgIHJjID0gZHQtPnVwZGF0ZV9k ZXZpZChnYywgZG9taWQsIHR5cGUpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgIH0K KworICAgIGlmIChkdC0+dXBkYXRlX2NvbmZpZykKKyAgICAgICAgZHQtPnVwZGF0ZV9jb25maWco Z2MsIHR5cGVfc2F2ZWQsIHR5cGUpOworCisgICAgR0NORVcoZGV2aWNlKTsKKyAgICByYyA9IGR0 LT50b19kZXZpY2UoZ2MsIGRvbWlkLCB0eXBlLCBkZXZpY2UpOworICAgIGlmIChyYykgZ290byBv dXQ7CisKKyAgICBpZiAoYW9kZXYtPnVwZGF0ZV9qc29uKSB7CisKKyAgICAgICAgbG9jayA9IGxp YnhsX19sb2NrX2RvbWFpbl91c2VyZGF0YShnYywgZG9taWQpOworICAgICAgICBpZiAoIWxvY2sp IHsKKyAgICAgICAgICAgIHJjID0gRVJST1JfTE9DS19GQUlMOworICAgICAgICAgICAgZ290byBv dXQ7CisgICAgICAgIH0KKworICAgICAgICByYyA9IGxpYnhsX19nZXRfZG9tYWluX2NvbmZpZ3Vy YXRpb24oZ2MsIGRvbWlkLCAmZF9jb25maWcpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0Owor CisgICAgICAgIGRldmljZV9hZGRfZG9tYWluX2NvbmZpZyhnYywgJmRfY29uZmlnLCBkdCwgdHlw ZV9zYXZlZCk7CisKKyAgICAgICAgcmMgPSBsaWJ4bF9fZG1fY2hlY2tfc3RhcnQoZ2MsICZkX2Nv bmZpZywgZG9taWQpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgIH0KKworICAgIGJh Y2sgPSBmbGV4YXJyYXlfbWFrZShnYywgMTYsIDEpOworICAgIGZyb250ID0gZmxleGFycmF5X21h a2UoZ2MsIDE2LCAxKTsKKyAgICByb19mcm9udCA9IGZsZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7 CisKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoYmFjaywgImZyb250ZW5kLWlkIiwgR0NTUFJJ TlRGKCIlZCIsIGRvbWlkKSk7CisgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGJhY2ssICJvbmxp bmUiLCAiMSIpOworICAgIGZsZXhhcnJheV9hcHBlbmRfcGFpcihiYWNrLCAic3RhdGUiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVkIiwgWGVuYnVzU3RhdGVJbml0aWFs aXNpbmcpKTsKKworICAgIGZsZXhhcnJheV9hcHBlbmRfcGFpcihmcm9udCwgImJhY2tlbmQtaWQi LAorICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVkIiwgZGV2aWNlLT5iYWNr ZW5kX2RvbWlkKSk7CisgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGZyb250LCAic3RhdGUiLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVkIiwgWGVuYnVzU3RhdGVJbml0 aWFsaXNpbmcpKTsKKworICAgIGlmIChkdC0+c2V0X3hlbnN0b3JlX2NvbmZpZykKKyAgICAgICAg ZHQtPnNldF94ZW5zdG9yZV9jb25maWcoZ2MsIGRvbWlkLCB0eXBlLCBiYWNrLCBmcm9udCwgcm9f ZnJvbnQpOworCisgICAgZm9yICg7OykgeworICAgICAgICByYyA9IGxpYnhsX194c190cmFuc2Fj dGlvbl9zdGFydChnYywgJnQpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgICAg IHJjID0gbGlieGxfX2RldmljZV9leGlzdHMoZ2MsIHQsIGRldmljZSk7CisgICAgICAgIGlmIChy YyA8IDApIGdvdG8gb3V0OworICAgICAgICBpZiAocmMgPT0gMSkgeyAgICAgICAgICAgICAgLyog YWxyZWFkeSBleGlzdHMgaW4geGVuc3RvcmUgKi8KKyAgICAgICAgICAgIExPR0QoRVJST1IsIGRv bWlkLCAiZGV2aWNlIGFscmVhZHkgZXhpc3RzIGluIHhlbnN0b3JlIik7CisgICAgICAgICAgICBh b2Rldi0+YWN0aW9uID0gTElCWExfX0RFVklDRV9BQ1RJT05fQUREOyAvKiBmb3IgZXJyb3IgbWVz c2FnZSAqLworICAgICAgICAgICAgcmMgPSBFUlJPUl9ERVZJQ0VfRVhJU1RTOworICAgICAgICAg ICAgZ290byBvdXQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYW9kZXYtPnVwZGF0ZV9qc29u KSB7CisgICAgICAgICAgICByYyA9IGxpYnhsX19zZXRfZG9tYWluX2NvbmZpZ3VyYXRpb24oZ2Ms IGRvbWlkLCAmZF9jb25maWcpOworICAgICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICAg ICAgfQorCisgICAgICAgIGxpYnhsX19kZXZpY2VfZ2VuZXJpY19hZGQoZ2MsIHQsIGRldmljZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feHNfa3ZzX29mX2ZsZXhh cnJheShnYywgYmFjayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf X3hzX2t2c19vZl9mbGV4YXJyYXkoZ2MsIGZyb250KSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9feHNfa3ZzX29mX2ZsZXhhcnJheShnYywgcm9fZnJvbnQpKTsKKwor ICAgICAgICByYyA9IGxpYnhsX194c190cmFuc2FjdGlvbl9jb21taXQoZ2MsICZ0KTsKKyAgICAg ICAgaWYgKCFyYykgYnJlYWs7CisgICAgICAgIGlmIChyYyA8IDApIGdvdG8gb3V0OworICAgIH0K KworICAgIGFvZGV2LT5kZXYgPSBkZXZpY2U7CisgICAgYW9kZXYtPmFjdGlvbiA9IExJQlhMX19E RVZJQ0VfQUNUSU9OX0FERDsKKyAgICBsaWJ4bF9fd2FpdF9kZXZpY2VfY29ubmVjdGlvbihlZ2Ms IGFvZGV2KTsKKworICAgIHJjID0gMDsKKworb3V0OgorICAgIGxpYnhsX194c190cmFuc2FjdGlv bl9hYm9ydChnYywgJnQpOworICAgIGlmIChsb2NrKSBsaWJ4bF9fdW5sb2NrX2RvbWFpbl91c2Vy ZGF0YShsb2NrKTsKKyAgICBkdC0+ZGlzcG9zZSh0eXBlX3NhdmVkKTsKKyAgICBsaWJ4bF9kb21h aW5fY29uZmlnX2Rpc3Bvc2UoJmRfY29uZmlnKTsKKyAgICBhb2Rldi0+cmMgPSByYzsKKyAgICBp ZiAocmMpIGFvZGV2LT5jYWxsYmFjayhlZ2MsIGFvZGV2KTsKKyAgICByZXR1cm47Cit9CisKK2lu dCBsaWJ4bF9fZGV2aWNlX2FkZChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUgKmR0LCB2b2lk ICp0eXBlKQoreworICAgIGZsZXhhcnJheV90ICpiYWNrOworICAgIGZsZXhhcnJheV90ICpmcm9u dCwgKnJvX2Zyb250OworICAgIGxpYnhsX19kZXZpY2UgKmRldmljZTsKKyAgICBpbnQgcmM7CisK KyAgICBpZiAoZHQtPnNldF9kZWZhdWx0KSB7CisgICAgICAgIHJjID0gZHQtPnNldF9kZWZhdWx0 KGdjLCBkb21pZCwgdHlwZSwgZmFsc2UpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAg IH0KKworICAgIGlmIChkdC0+dXBkYXRlX2RldmlkKSB7CisgICAgICAgIHJjID0gZHQtPnVwZGF0 ZV9kZXZpZChnYywgZG9taWQsIHR5cGUpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAg IH0KKworICAgIEdDTkVXKGRldmljZSk7CisgICAgcmMgPSBkdC0+dG9fZGV2aWNlKGdjLCBkb21p ZCwgdHlwZSwgZGV2aWNlKTsKKyAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgYmFjayA9IGZs ZXhhcnJheV9tYWtlKGdjLCAxNiwgMSk7CisgICAgZnJvbnQgPSBmbGV4YXJyYXlfbWFrZShnYywg MTYsIDEpOworICAgIHJvX2Zyb250ID0gZmxleGFycmF5X21ha2UoZ2MsIDE2LCAxKTsKKworICAg IGZsZXhhcnJheV9hcHBlbmRfcGFpcihiYWNrLCAiZnJvbnRlbmQtaWQiLCBHQ1NQUklOVEYoIiVk IiwgZG9taWQpKTsKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoYmFjaywgIm9ubGluZSIsICIx Iik7CisgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGJhY2ssICJzdGF0ZSIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJWQiLCBYZW5idXNTdGF0ZUluaXRpYWxpc2luZykp OworICAgIGZsZXhhcnJheV9hcHBlbmRfcGFpcihmcm9udCwgImJhY2tlbmQtaWQiLAorICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3ByaW50ZihnYywgIiVkIiwgZGV2aWNlLT5iYWNr ZW5kX2RvbWlkKSk7CisgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGZyb250LCAic3RhdGUiLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVkIiwgWGVuYnVzU3RhdGVJbml0 aWFsaXNpbmcpKTsKKworICAgIGlmIChkdC0+c2V0X3hlbnN0b3JlX2NvbmZpZykKKyAgICAgICAg ZHQtPnNldF94ZW5zdG9yZV9jb25maWcoZ2MsIGRvbWlkLCB0eXBlLCBiYWNrLCBmcm9udCwgcm9f ZnJvbnQpOworCisgICAgcmMgPSBsaWJ4bF9fZGV2aWNlX2dlbmVyaWNfYWRkKGdjLCBYQlRfTlVM TCwgZGV2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feHNf a3ZzX29mX2ZsZXhhcnJheShnYywgYmFjayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX194c19rdnNfb2ZfZmxleGFycmF5KGdjLCBmcm9udCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX194c19rdnNfb2ZfZmxleGFycmF5KGdjLCBy b19mcm9udCkpOworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICByYyA9IDA7CisKK291dDoK KyAgICByZXR1cm4gcmM7Cit9CisKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBD CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kaXNrLmMgYi90b29scy9saWJ4bC9saWJ4 bF9kaXNrLmMKaW5kZXggNjNkZTc1Yy4uZjJmMzYzNSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfZGlzay5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2Rpc2suYwpAQCAtMTI0NCw2ICsx MjQ0LDggQEAgc3RhdGljIGludCBsaWJ4bF9kZXZpY2VfZGlza19kbV9uZWVkZWQodm9pZCAqZSwg dW5zaWduZWQgZG9taWQpCiAgICAgICAgICAgIGVsZW0tPmJhY2tlbmRfZG9taWQgPT0gZG9taWQ7 CiB9CiAKKyNkZWZpbmUgbGlieGxfX2RldmljZV9kaXNrX3VwZGF0ZV9kZXZpZCBOVUxMCisKIERF RklORV9ERVZJQ0VfVFlQRV9TVFJVQ1QoZGlzaywKICAgICAubWVyZ2UgICAgICAgPSBsaWJ4bF9k ZXZpY2VfZGlza19tZXJnZSwKICAgICAuZG1fbmVlZGVkICAgPSBsaWJ4bF9kZXZpY2VfZGlza19k bV9uZWVkZWQsCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9v bHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAppbmRleCBhZmU2NjUyLi4wNzVkZmUzIDEwMDY0NAot LS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhs X2ludGVybmFsLmgKQEAgLTM0NjcsNiArMzQ2NywxOCBAQCBfaGlkZGVuIHZvaWQgbGlieGxfX2Jv b3Rsb2FkZXJfcnVuKGxpYnhsX19lZ2MqLCBsaWJ4bF9fYm9vdGxvYWRlcl9zdGF0ZSAqc3QpOwog ICAgICAgICByZXR1cm4gQU9fSU5QUk9HUkVTUzsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogICAgIH0KIAorI2RlZmluZSBMSUJYTF9ERUZJTkVfVVBEQVRFX0RF VklEKHR5cGUsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGludCBsaWJ4 bF9fZGV2aWNlXyMjdHlwZSMjX3VwZGF0ZV9kZXZpZChsaWJ4bF9fZ2MgKmdjLCAgICAgICAgICAg ICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCBkb21pZCwgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9kZXZpY2VfIyN0eXBlICp0eXBlKSAgXAorICAgIHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgICBpZiAodHlwZS0+ZGV2aWQgPT0gLTEpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgdHlwZS0+ZGV2aWQgPSBsaWJ4bF9fZGV2 aWNlX25leHRpZChnYywgZG9taWQsIG5hbWUpOyAgICAgICAgXAorICAgICAgICBpZiAodHlwZS0+ ZGV2aWQgPCAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0KKwogI2RlZmluZSBMSUJY TF9ERUZJTkVfREVWSUNFX1JFTU9WRSh0eXBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgIExJQlhMX0RFRklORV9ERVZJQ0VfUkVNT1ZFX0VYVCh0eXBlLCBnZW5lcmljLCBy ZW1vdmUsIDApICAgICAgICAgICAgXAogICAgIExJQlhMX0RFRklORV9ERVZJQ0VfUkVNT1ZFX0VY VCh0eXBlLCBnZW5lcmljLCBkZXN0cm95LCAxKQpAQCAtMzQ4NCwxMSArMzQ5NiwxOCBAQCBzdHJ1 Y3QgbGlieGxfZGV2aWNlX3R5cGUgewogICAgIHZvaWQgKCphZGQpKGxpYnhsX19lZ2MgKiwgbGli eGxfX2FvICosIHVpbnQzMl90LCBsaWJ4bF9kb21haW5fY29uZmlnICosCiAgICAgICAgICAgICAg ICAgbGlieGxfX211bHRpZGV2ICopOwogICAgIHZvaWQgKigqbGlzdCkobGlieGxfY3R4ICosIHVp bnQzMl90LCBpbnQgKik7CisgICAgaW50ICgqc2V0X2RlZmF1bHQpKGxpYnhsX19nYyAqLCB1aW50 MzJfdCwgdm9pZCAqLCBib29sKTsKKyAgICBpbnQgKCp0b19kZXZpY2UpKGxpYnhsX19nYyAqLCB1 aW50MzJfdCwgdm9pZCAqLCBsaWJ4bF9fZGV2aWNlICopOworICAgIHZvaWQgKCppbml0KSh2b2lk ICopOworICAgIHZvaWQgKCpjb3B5KShsaWJ4bF9jdHggKiwgdm9pZCAqLCB2b2lkICopOwogICAg IHZvaWQgKCpkaXNwb3NlKSh2b2lkICopOwogICAgIGludCAoKmNvbXBhcmUpKHZvaWQgKiwgdm9p ZCAqKTsKICAgICB2b2lkICgqbWVyZ2UpKGxpYnhsX2N0eCAqLCB2b2lkICosIHZvaWQgKik7CiAg ICAgaW50ICgqZG1fbmVlZGVkKSh2b2lkICosIHVuc2lnbmVkKTsKICAgICB2b2lkICgqdXBkYXRl X2NvbmZpZykobGlieGxfX2djICosIHZvaWQgKiwgdm9pZCAqKTsKKyAgICBpbnQgKCp1cGRhdGVf ZGV2aWQpKGxpYnhsX19nYyAqLCB1aW50MzJfdCwgdm9pZCAqKTsKKyAgICBpbnQgKCpzZXRfeGVu c3RvcmVfY29uZmlnKShsaWJ4bF9fZ2MgKiwgdWludDMyX3QsIHZvaWQgKiwgZmxleGFycmF5X3Qg KiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlfdCAqLCBmbGV4YXJy YXlfdCAqKTsKIH07CiAKICNkZWZpbmUgREVGSU5FX0RFVklDRV9UWVBFX1NUUlVDVF9YKG5hbWUs IHNuYW1lLCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0zNTAwLDkgKzM1MTks MTkgQEAgc3RydWN0IGxpYnhsX2RldmljZV90eXBlIHsKICAgICAgICAgLmFkZCAgICAgICAgICAg PSBsaWJ4bF9fYWRkXyAjIyBuYW1lICMjIHMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgICAgIC5saXN0ICAgICAgICAgID0gKHZvaWQgKigqKShsaWJ4bF9jdHggKiwgdWludDMy X3QsIGludCAqKSkgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X2RldmljZV8gIyMgc25hbWUgIyMgX2xpc3QsICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgLnNldF9kZWZhdWx0ICAgPSAoaW50ICgqKShsaWJ4bF9fZ2MgKiwgdWludDMyX3QsIHZvaWQg KiwgYm9vbCBob3RwbHVnKSlcCisgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Rldmlj ZV8gIyMgc25hbWUgIyMgX3NldGRlZmF1bHQsICAgICAgICAgICAgICAgXAorICAgICAgICAudG9f ZGV2aWNlICAgICA9IChpbnQgKCopKGxpYnhsX19nYyAqLCB1aW50MzJfdCwgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICosIGxp YnhsX19kZXZpY2UgKikpICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfX2RldmljZV9mcm9tXyAjIyBuYW1lLCAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICAgICAuaW5pdCAgICAgICAgICA9ICh2b2lkICgqKSh2b2lkICopKWxpYnhsX2Rl dmljZV8gIyMgc25hbWUgIyMgX2luaXQsICAgIFwKKyAgICAgICAgLmNvcHkgICAgICAgICAgPSAo dm9pZCAoKikobGlieGxfY3R4ICosIHZvaWQgKiwgdm9pZCAqKSkgICAgICAgICAgICAgICBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlXyAjIyBzbmFtZSAjIyBfY29weSwg ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAuZGlzcG9zZSAgICAgICA9ICh2b2lkICgq KSh2b2lkICopKWxpYnhsX2RldmljZV8gIyMgc25hbWUgIyMgX2Rpc3Bvc2UsIFwKICAgICAgICAg LmNvbXBhcmUgICAgICAgPSAoaW50ICgqKSh2b2lkICosIHZvaWQgKikpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlXyAj IyBzbmFtZSAjIyBfY29tcGFyZSwgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAudXBkYXRl X2RldmlkICA9IChpbnQgKCopKGxpYnhsX19nYyAqLCB1aW50MzJfdCwgdm9pZCAqKSkgICAgICAg ICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fZGV2aWNlXyAjIyBzbmFt ZSAjIyBfdXBkYXRlX2RldmlkLCAgICAgICAgICAgICBcCiAgICAgICAgIF9fVkFfQVJHU19fICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgIH0KIApAQCAtNDM1MCw2ICs0Mzc5LDEzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBsaWJ4 bF9fYWNwaV9kZWZib29sX3ZhbChjb25zdCBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9pbmZv CiAgICAgcmV0dXJuIGxpYnhsX2RlZmJvb2xfdmFsKGJfaW5mby0+YWNwaSkgJiYKICAgICAgICAg ICAgbGlieGxfZGVmYm9vbF92YWwoYl9pbmZvLT51Lmh2bS5hY3BpKTsKIH0KKwordm9pZCBsaWJ4 bF9fZGV2aWNlX2FkZF9hc3luYyhsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUg KmR0LCB2b2lkICp0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fYW9f ZGV2aWNlICphb2Rldik7CitpbnQgbGlieGxfX2RldmljZV9hZGQobGlieGxfX2djICpnYywgdWlu dDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpYnhsX2Rl dmljZV90eXBlICpkdCwgdm9pZCAqdHlwZSk7CisKICNlbmRpZgogCiAvKgpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGwvbGlieGxfbmljLmMgYi90b29scy9saWJ4bC9saWJ4bF9uaWMuYwppbmRleCA0 YjZlOGMwLi5kZDA3YTZjIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9uaWMuYworKysg Yi90b29scy9saWJ4bC9saWJ4bF9uaWMuYwpAQCAtNjY5LDYgKzY2OSw4IEBAIExJQlhMX0RFRklO RV9ERVZJQ0VfQUREKG5pYykKIExJQlhMX0RFRklORV9ERVZJQ0VTX0FERChuaWMpCiBMSUJYTF9E RUZJTkVfREVWSUNFX1JFTU9WRShuaWMpCiAKKyNkZWZpbmUgbGlieGxfX2RldmljZV9uaWNfdXBk YXRlX2RldmlkIE5VTEwKKwogREVGSU5FX0RFVklDRV9UWVBFX1NUUlVDVChuaWMsCiAgICAgLnVw ZGF0ZV9jb25maWcgPSBsaWJ4bF9kZXZpY2VfbmljX3VwZGF0ZV9jb25maWcKICk7CmRpZmYgLS1n aXQgYS90b29scy9saWJ4bC9saWJ4bF9wY2kuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3BjaS5jCmlu ZGV4IGIxNGRmMTYuLmMzZjFlNWMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3BjaS5j CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3BjaS5jCkBAIC0xNzA4LDYgKzE3MDgsOCBAQCBzdGF0 aWMgaW50IGxpYnhsX2RldmljZV9wY2lfY29tcGFyZShsaWJ4bF9kZXZpY2VfcGNpICpkMSwKICAg ICByZXR1cm4gQ09NUEFSRV9QQ0koZDEsIGQyKTsKIH0KIAorI2RlZmluZSBsaWJ4bF9fZGV2aWNl X3BjaV91cGRhdGVfZGV2aWQgTlVMTAorCiBERUZJTkVfREVWSUNFX1RZUEVfU1RSVUNUX1gocGNp ZGV2LCBwY2kpOwogCiAvKgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfdXNiLmMgYi90 b29scy9saWJ4bC9saWJ4bF91c2IuYwppbmRleCBkODk0OGQ1Li4wN2ZiMjAyIDEwMDY0NAotLS0g YS90b29scy9saWJ4bC9saWJ4bF91c2IuYworKysgYi90b29scy9saWJ4bC9saWJ4bF91c2IuYwpA QCAtMTk2NSw5ICsxOTY1LDE1IEBAIHZvaWQgbGlieGxfZGV2aWNlX3VzYmRldl9saXN0X2ZyZWUo bGlieGxfZGV2aWNlX3VzYmRldiAqbGlzdCwgaW50IG5yKQogICAgZnJlZShsaXN0KTsKIH0KIAor I2RlZmluZSBsaWJ4bF9fZGV2aWNlX3VzYmN0cmxfdXBkYXRlX2RldmlkIE5VTEwKKwogREVGSU5F X0RFVklDRV9UWVBFX1NUUlVDVCh1c2JjdHJsLAogICAgIC5kbV9uZWVkZWQgPSBsaWJ4bF9kZXZp Y2VfdXNiY3RybF9kbV9uZWVkZWQKICk7CisKKyNkZWZpbmUgbGlieGxfX2RldmljZV9mcm9tX3Vz YmRldiBOVUxMCisjZGVmaW5lIGxpYnhsX19kZXZpY2VfdXNiZGV2X3VwZGF0ZV9kZXZpZCBOVUxM CisKIERFRklORV9ERVZJQ0VfVFlQRV9TVFJVQ1QodXNiZGV2KTsKIAogLyoKZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnhsL2xpYnhsX3Z0cG0uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3Z0cG0uYwppbmRl eCA5ZWU4Y2NlLi5jYmQ1NDYxIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF92dHBtLmMK KysrIGIvdG9vbHMvbGlieGwvbGlieGxfdnRwbS5jCkBAIC0zNjQsNiArMzY0LDggQEAgTElCWExf REVGSU5FX0RFVklDRV9BREQodnRwbSkKIHN0YXRpYyBMSUJYTF9ERUZJTkVfREVWSUNFU19BREQo dnRwbSkKIExJQlhMX0RFRklORV9ERVZJQ0VfUkVNT1ZFKHZ0cG0pCiAKKyNkZWZpbmUgbGlieGxf X2RldmljZV92dHBtX3VwZGF0ZV9kZXZpZCBOVUxMCisKIERFRklORV9ERVZJQ0VfVFlQRV9TVFJV Q1QodnRwbSwKICAgICAudXBkYXRlX2NvbmZpZyA9IGxpYnhsX2RldmljZV92dHBtX3VwZGF0ZV9j b25maWcKICk7Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=