From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 4/5] tools/libxendevicemodel: introduce a Linux-specific implementation Date: Wed, 22 Feb 2017 13:27:37 +0000 Message-ID: <1487770058-21040-5-git-send-email-paul.durrant@citrix.com> References: <1487770058-21040-1-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cgWxx-0001xM-57 for xen-devel@lists.xenproject.org; Wed, 22 Feb 2017 13:28:21 +0000 In-Reply-To: <1487770058-21040-1-git-send-email-paul.durrant@citrix.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: Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org TXkgcmVjZW50IHBhdGNoIFsxXSB0byB0aGUgTGludXggcHJpdmNtZCBtb2R1bGUgaW50cm9kdWNl ZCBhIGRlZGljYXRlZAptZWNoYW5pc20gZm9yIG1ha2luZyBkbV9vcCBoeXBlcmNhbGxzLgoKVGhp cyBwYXRjaCBhZGRzIHRoZSBuZWNlc3NhcnkgY29kZSB0byBsaWJ4ZW5kZXZpY2Vtb2RlbCB0byB0 YWtlCmFkdmFudGFnZSBvZiB0aGF0IG1lY2hhbmlzbSBpZiBpdCBpcyBpbXBsZW1lbnRlZCBpbiB0 aGUgdG9vbHMgZG9tYWluCmtlcm5lbC4KClsxXSBodHRwczovL2dpdC5rZXJuZWwub3JnL2NnaXQv bGludXgva2VybmVsL2dpdC9vc3RyL2xpbnV4LmdpdC9jb21taXQvP2lkPWFiNTIwYmU4CgpTaWdu ZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpBY2tlZC1i eTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFu LmphY2tzb25AZXUuY2l0cml4LmNvbT4KLS0tCiB0b29scy9pbmNsdWRlL3hlbi1zeXMvTGludXgv cHJpdmNtZC5oIHwgIDEzICsrKysKIHRvb2xzL2xpYnMvZGV2aWNlbW9kZWwvTWFrZWZpbGUgICAg ICAgfCAgIDIgKy0KIHRvb2xzL2xpYnMvZGV2aWNlbW9kZWwvbGludXguYyAgICAgICAgfCAxMjMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMvbGlicy9kZXZpY2Vtb2Rl bC9wcml2YXRlLmggICAgICB8ICAgNCArKwogNCBmaWxlcyBjaGFuZ2VkLCAxNDEgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2xpYnMvZGV2aWNl bW9kZWwvbGludXguYwoKZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUveGVuLXN5cy9MaW51eC9w cml2Y21kLmggYi90b29scy9pbmNsdWRlL3hlbi1zeXMvTGludXgvcHJpdmNtZC5oCmluZGV4IGU0 ZTY2NmEuLmM4MGViNWUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUveGVuLXN5cy9MaW51eC9w cml2Y21kLmgKKysrIGIvdG9vbHMvaW5jbHVkZS94ZW4tc3lzL0xpbnV4L3ByaXZjbWQuaApAQCAt NzUsNiArNzUsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgcHJpdmNtZF9tbWFwYmF0Y2hfdjIgewogCWlu dCBfX3VzZXIgKmVycjsgIC8qIGFycmF5IG9mIGVycm9yIGNvZGVzICovCiB9IHByaXZjbWRfbW1h cGJhdGNoX3YyX3Q7CiAKK3R5cGVkZWYgc3RydWN0IHByaXZjbWRfZG1fb3BfYnVmIHsKKwl2b2lk IF9fdXNlciAqdXB0cjsKKwlzaXplX3Qgc2l6ZTsKK30gcHJpdmNtZF9kbV9vcF9idWZfdDsKKwor dHlwZWRlZiBzdHJ1Y3QgcHJpdmNtZF9kbV9vcCB7CisJZG9taWRfdCBkb207CisJX191MTYgbnVt OworCWNvbnN0IHByaXZjbWRfZG1fb3BfYnVmX3QgX191c2VyICp1YnVmczsKK30gcHJpdmNtZF9k bV9vcF90OworCiAvKgogICogQGNtZDogSU9DVExfUFJJVkNNRF9IWVBFUkNBTEwKICAqIEBhcmc6 ICZwcml2Y21kX2h5cGVyY2FsbF90CkBAIC04OCw1ICs5OSw3IEBAIHR5cGVkZWYgc3RydWN0IHBy aXZjbWRfbW1hcGJhdGNoX3YyIHsKIAlfSU9DKF9JT0NfTk9ORSwgJ1AnLCAzLCBzaXplb2YocHJp dmNtZF9tbWFwYmF0Y2hfdCkpCiAjZGVmaW5lIElPQ1RMX1BSSVZDTURfTU1BUEJBVENIX1YyCQkJ CVwKIAlfSU9DKF9JT0NfTk9ORSwgJ1AnLCA0LCBzaXplb2YocHJpdmNtZF9tbWFwYmF0Y2hfdjJf dCkpCisjZGVmaW5lIElPQ1RMX1BSSVZDTURfRE1fT1AJCQkJCVwKKwlfSU9DKF9JT0NfTk9ORSwg J1AnLCA1LCBzaXplb2YocHJpdmNtZF9kbV9vcF90KSkKIAogI2VuZGlmIC8qIF9fTElOVVhfUFVC TElDX1BSSVZDTURfSF9fICovCmRpZmYgLS1naXQgYS90b29scy9saWJzL2RldmljZW1vZGVsL01h a2VmaWxlIGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9NYWtlZmlsZQppbmRleCBiODdiZjg0Li4x ODAzOTQyIDEwMDY0NAotLS0gYS90b29scy9saWJzL2RldmljZW1vZGVsL01ha2VmaWxlCisrKyBi L3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvTWFrZWZpbGUKQEAgLTExLDcgKzExLDcgQEAgQ0ZMQUdT ICAgKz0gJChDRkxBR1NfbGlieGVudG9vbGxvZykKIENGTEFHUyAgICs9ICQoQ0ZMQUdTX2xpYnhl bmNhbGwpCiAKIFNSQ1MteSAgICAgICAgICAgICAgICAgKz0gY29yZS5jCi1TUkNTLSQoQ09ORklH X0xpbnV4KSAgICs9IGNvbXBhdC5jCitTUkNTLSQoQ09ORklHX0xpbnV4KSAgICs9IGxpbnV4LmMK IFNSQ1MtJChDT05GSUdfRnJlZUJTRCkgKz0gY29tcGF0LmMKIFNSQ1MtJChDT05GSUdfU3VuT1Mp ICAgKz0gY29tcGF0LmMKIFNSQ1MtJChDT05GSUdfTmV0QlNEKSAgKz0gY29tcGF0LmMKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvbGludXguYyBiL3Rvb2xzL2xpYnMvZGV2aWNl bW9kZWwvbGludXguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTExZWU3 Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9saW51eC5jCkBAIC0w LDAgKzEsMTIzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDE3IENpdHJpeCBTeXN0ZW1zIElu Yy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOworICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UuCisg KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5z ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorICovCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRs Lmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8 c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4K KyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCisjaW5jbHVk ZSA8eGVuL3hlbi5oPgorI2luY2x1ZGUgPHhlbi9zeXMvcHJpdmNtZC5oPgorCisjaW5jbHVkZSAi cHJpdmF0ZS5oIgorCitpbnQgb3NkZXBfeGVuZGV2aWNlbW9kZWxfb3Blbih4ZW5kZXZpY2Vtb2Rl bF9oYW5kbGUgKmRtb2QpCit7CisgICAgaW50IGZkID0gb3BlbigiL2Rldi94ZW4vcHJpdmNtZCIs IE9fUkRXUiB8IE9fQ0xPRVhFQyk7CisgICAgcHJpdmNtZF9kbV9vcF90IHVvcDsKKyAgICBpbnQg cmM7CisKKyAgICBpZiAoZmQgPCAwKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIElmIHRoZSAn bmV3JyBwcml2Y21kIGludGVyZmFjZSBkb2Vzbid0IGV4aXN0IHRoZW4gZG9uJ3QgdHJlYXQKKyAg ICAgICAgICogdGhpcyBhcyBhbiBlcnJvciwgYnV0IGFuIG9sZCBwcml2Y21kIGNsZWFybHkgd29u J3QgaW1wbGVtZW50CisgICAgICAgICAqIElPQ1RMX1BSSVZDTURfRE1fT1Agc28gZG9uJ3QgYm90 aGVyIHRyeWluZyB0byBvcGVuIGl0LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGVycm5vID09 IEVOT0VOVCB8fCBlcnJubyA9PSBFTlhJTyB8fCBlcnJubyA9PSBFTk9ERVYpCisgICAgICAgICAg ICBnb3RvIG91dDsKKworICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBvYnRhaW4gaGFuZGxlIG9u IHByaXZpbGVnZWQgY29tbWFuZCBpbnRlcmZhY2UiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAg IH0KKworICAgIC8qCisgICAgICogQ2hlY2sgdG8gc2VlIGlmIElPQ1RMX1BSSVZDTURfRE1fT1Ag aXMgaW1wbGVtZW50ZWQgYXMgd2Ugd2FudCB0bworICAgICAqIHVzZSB0aGF0IGluIHByZWZlcmVu Y2UgdG8gbGlieGVuY2FsbC4KKyAgICAgKi8KKyAgICB1b3AuZG9tID0gRE9NSURfSU5WQUxJRDsK KyAgICB1b3AubnVtID0gMDsKKyAgICB1b3AudWJ1ZnMgPSBOVUxMOworCisgICAgcmMgPSBpb2N0 bChmZCwgSU9DVExfUFJJVkNNRF9ETV9PUCwgJnVvcCk7CisgICAgaWYgKHJjIDwgMCkgeworICAg ICAgICBjbG9zZShmZCk7CisgICAgICAgIGZkID0gLTE7CisgICAgfQorCitvdXQ6CisgICAgZG1v ZC0+ZmQgPSBmZDsKKyAgICByZXR1cm4gMDsKK30KKworaW50IG9zZGVwX3hlbmRldmljZW1vZGVs X2Nsb3NlKHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCkKK3sKKyAgICBpZiAoZG1vZC0+ZmQg PCAwKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBjbG9zZShkbW9kLT5mZCk7Cit9 CisKK2ludCBvc2RlcF94ZW5kZXZpY2Vtb2RlbF9vcCh4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRt b2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCBkb21pZCwgdW5zaWduZWQg aW50IG5yX2J1ZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbmRldmlj ZW1vZGVsX2J1ZiBidWZzW10pCit7CisgICAgcHJpdmNtZF9kbV9vcF9idWZfdCAqdWJ1ZnM7Cisg ICAgcHJpdmNtZF9kbV9vcF90IHVvcDsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBpbnQgcmM7 CisKKyAgICBpZiAoZG1vZC0+ZmQgPCAwKQorICAgICAgICByZXR1cm4geGVuZGV2aWNlbW9kZWxf eGNhbGwoZG1vZCwgZG9taWQsIG5yX2J1ZnMsIGJ1ZnMpOworCisgICAgdWJ1ZnMgPSBjYWxsb2Mo bnJfYnVmcywgc2l6ZW9mICgqdWJ1ZnMpKTsKKyAgICBpZiAoIXVidWZzKQorICAgICAgICByZXR1 cm4gLTE7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnJfYnVmczsgaSsrKSB7CisgICAgICAgIHVi dWZzW2ldLnVwdHIgPSBidWZzW2ldLnB0cjsKKyAgICAgICAgdWJ1ZnNbaV0uc2l6ZSA9IGJ1ZnNb aV0uc2l6ZTsKKyAgICB9CisKKyAgICB1b3AuZG9tID0gZG9taWQ7CisgICAgdW9wLm51bSA9IG5y X2J1ZnM7CisgICAgdW9wLnVidWZzID0gdWJ1ZnM7CisKKyAgICByYyA9IGlvY3RsKGRtb2QtPmZk LCBJT0NUTF9QUklWQ01EX0RNX09QLCAmdW9wKTsKKworICAgIGZyZWUodWJ1ZnMpOworCisgICAg aWYgKHJjIDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8q CisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0Qi CisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1t b2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9kZXZpY2Vtb2Rl bC9wcml2YXRlLmggYi90b29scy9saWJzL2RldmljZW1vZGVsL3ByaXZhdGUuaAppbmRleCA3Yzdh Y2YyLi41Y2UzYjQ1IDEwMDY0NAotLS0gYS90b29scy9saWJzL2RldmljZW1vZGVsL3ByaXZhdGUu aAorKysgYi90b29scy9saWJzL2RldmljZW1vZGVsL3ByaXZhdGUuaApAQCAtMTEsNiArMTEsNyBA QCBzdHJ1Y3QgeGVuZGV2aWNlbW9kZWxfaGFuZGxlIHsKICAgICB4ZW50b29sbG9nX2xvZ2dlciAq bG9nZ2VyLCAqbG9nZ2VyX3RvZnJlZTsKICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgeGVu Y2FsbF9oYW5kbGUgKnhjYWxsOworICAgIGludCBmZDsKIH07CiAKIHN0cnVjdCB4ZW5kZXZpY2Vt b2RlbF9idWYgewpAQCAtMjgsNiArMjksOSBAQCBpbnQgb3NkZXBfeGVuZGV2aWNlbW9kZWxfb3Ao eGVuZGV2aWNlbW9kZWxfaGFuZGxlICpkbW9kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvbWlkX3QgZG9taWQsIHVuc2lnbmVkIGludCBucl9idWZzLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB4ZW5kZXZpY2Vtb2RlbF9idWYgYnVmc1tdKTsKIAorI2RlZmluZSBQ RVJST1IoX2YuLi4pIFwKKyAgICB4dGxfbG9nKGRtb2QtPmxvZ2dlciwgWFRMX0VSUk9SLCBlcnJu bywgInhlbmRldmljZW1vZGVsIiwgX2YpCisKICNlbmRpZgogCiAvKgotLSAKMi4xLjQKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK