From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH 3/4] tools/libxendevicemodel: introduce a Linux-specific implementation Date: Fri, 17 Feb 2017 10:27:08 +0000 Message-ID: <1487327229-14641-3-git-send-email-paul.durrant@citrix.com> References: <1487327229-14641-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 1cefkx-00085T-Pt for xen-devel@lists.xenproject.org; Fri, 17 Feb 2017 10:27:15 +0000 In-Reply-To: <1487327229-14641-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: Wei Liu , Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org TXkgcmVjZW50IHBhdGNoIFsxXSB0byB0aGUgTGludXggcHJpdmNtZCBtb2R1bGUgaW50cm9kdWNl ZCBhIGRlZGljYXRlZAptZWNoYW5pc20gZm9yIG1ha2luZyBkbV9vcCBoeXBlcmNhbGxzLgoKVGhp cyBwYXRjaCBhZGRzIHRoZSBuZWNlc3NhcnkgY29kZSB0byBsaWJ4ZW5kZXZpY2Vtb2RlbCB0byB0 YWtlCmFkdmFudGFnZSBvZiB0aGF0IG1lY2hhbmlzbSBpZiBpdCBpcyBpbXBsZW1lbnRlZCBpbiB0 aGUgdG9vbHMgZG9tYWluCmtlcm5lbC4KClsxXSBodHRwczovL2dpdC5rZXJuZWwub3JnL2NnaXQv bGludXgva2VybmVsL2dpdC9vc3RyL2xpbnV4LmdpdC9jb21taXQvP2lkPWFiNTIwYmU4CgpTaWdu ZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6 IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KLS0tCiB0b29scy9pbmNsdWRlL3hlbi1zeXMvTGludXgvcHJpdmNt ZC5oIHwgIDEzICsrKysKIHRvb2xzL2xpYnMvZGV2aWNlbW9kZWwvTWFrZWZpbGUgICAgICAgfCAg IDIgKy0KIHRvb2xzL2xpYnMvZGV2aWNlbW9kZWwvbGludXguYyAgICAgICAgfCAxMjMgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9wcml2 YXRlLmggICAgICB8ICAgNCArKwogNCBmaWxlcyBjaGFuZ2VkLCAxNDEgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2xpYnMvZGV2aWNlbW9kZWwv bGludXguYwoKZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUveGVuLXN5cy9MaW51eC9wcml2Y21k LmggYi90b29scy9pbmNsdWRlL3hlbi1zeXMvTGludXgvcHJpdmNtZC5oCmluZGV4IGU0ZTY2NmEu LmM4MGViNWUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2luY2x1ZGUveGVuLXN5cy9MaW51eC9wcml2Y21k LmgKKysrIGIvdG9vbHMvaW5jbHVkZS94ZW4tc3lzL0xpbnV4L3ByaXZjbWQuaApAQCAtNzUsNiAr NzUsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgcHJpdmNtZF9tbWFwYmF0Y2hfdjIgewogCWludCBfX3Vz ZXIgKmVycjsgIC8qIGFycmF5IG9mIGVycm9yIGNvZGVzICovCiB9IHByaXZjbWRfbW1hcGJhdGNo X3YyX3Q7CiAKK3R5cGVkZWYgc3RydWN0IHByaXZjbWRfZG1fb3BfYnVmIHsKKwl2b2lkIF9fdXNl ciAqdXB0cjsKKwlzaXplX3Qgc2l6ZTsKK30gcHJpdmNtZF9kbV9vcF9idWZfdDsKKwordHlwZWRl ZiBzdHJ1Y3QgcHJpdmNtZF9kbV9vcCB7CisJZG9taWRfdCBkb207CisJX191MTYgbnVtOworCWNv bnN0IHByaXZjbWRfZG1fb3BfYnVmX3QgX191c2VyICp1YnVmczsKK30gcHJpdmNtZF9kbV9vcF90 OworCiAvKgogICogQGNtZDogSU9DVExfUFJJVkNNRF9IWVBFUkNBTEwKICAqIEBhcmc6ICZwcml2 Y21kX2h5cGVyY2FsbF90CkBAIC04OCw1ICs5OSw3IEBAIHR5cGVkZWYgc3RydWN0IHByaXZjbWRf bW1hcGJhdGNoX3YyIHsKIAlfSU9DKF9JT0NfTk9ORSwgJ1AnLCAzLCBzaXplb2YocHJpdmNtZF9t bWFwYmF0Y2hfdCkpCiAjZGVmaW5lIElPQ1RMX1BSSVZDTURfTU1BUEJBVENIX1YyCQkJCVwKIAlf SU9DKF9JT0NfTk9ORSwgJ1AnLCA0LCBzaXplb2YocHJpdmNtZF9tbWFwYmF0Y2hfdjJfdCkpCisj ZGVmaW5lIElPQ1RMX1BSSVZDTURfRE1fT1AJCQkJCVwKKwlfSU9DKF9JT0NfTk9ORSwgJ1AnLCA1 LCBzaXplb2YocHJpdmNtZF9kbV9vcF90KSkKIAogI2VuZGlmIC8qIF9fTElOVVhfUFVCTElDX1BS SVZDTURfSF9fICovCmRpZmYgLS1naXQgYS90b29scy9saWJzL2RldmljZW1vZGVsL01ha2VmaWxl IGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9NYWtlZmlsZQppbmRleCBiODdiZjg0Li4xODAzOTQy IDEwMDY0NAotLS0gYS90b29scy9saWJzL2RldmljZW1vZGVsL01ha2VmaWxlCisrKyBiL3Rvb2xz L2xpYnMvZGV2aWNlbW9kZWwvTWFrZWZpbGUKQEAgLTExLDcgKzExLDcgQEAgQ0ZMQUdTICAgKz0g JChDRkxBR1NfbGlieGVudG9vbGxvZykKIENGTEFHUyAgICs9ICQoQ0ZMQUdTX2xpYnhlbmNhbGwp CiAKIFNSQ1MteSAgICAgICAgICAgICAgICAgKz0gY29yZS5jCi1TUkNTLSQoQ09ORklHX0xpbnV4 KSAgICs9IGNvbXBhdC5jCitTUkNTLSQoQ09ORklHX0xpbnV4KSAgICs9IGxpbnV4LmMKIFNSQ1Mt JChDT05GSUdfRnJlZUJTRCkgKz0gY29tcGF0LmMKIFNSQ1MtJChDT05GSUdfU3VuT1MpICAgKz0g Y29tcGF0LmMKIFNSQ1MtJChDT05GSUdfTmV0QlNEKSAgKz0gY29tcGF0LmMKZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvbGludXguYyBiL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwv bGludXguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTExZWU3Ci0tLSAv ZGV2L251bGwKKysrIGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9saW51eC5jCkBAIC0wLDAgKzEs MTIzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDE3IENpdHJpeCBTeXN0ZW1zIEluYy4KKyAq CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOworICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UuCisgKgorICog VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9u ZyB3aXRoIHRoaXMgbGlicmFyeTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorICovCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+Cisj aW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5n Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNs dWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCisjaW5jbHVkZSA8eGVu L3hlbi5oPgorI2luY2x1ZGUgPHhlbi9zeXMvcHJpdmNtZC5oPgorCisjaW5jbHVkZSAicHJpdmF0 ZS5oIgorCitpbnQgb3NkZXBfeGVuZGV2aWNlbW9kZWxfb3Blbih4ZW5kZXZpY2Vtb2RlbF9oYW5k bGUgKmRtb2QpCit7CisgICAgaW50IGZkID0gb3BlbigiL2Rldi94ZW4vcHJpdmNtZCIsIE9fUkRX UiB8IE9fQ0xPRVhFQyk7CisgICAgcHJpdmNtZF9kbV9vcF90IHVvcDsKKyAgICBpbnQgcmM7CisK KyAgICBpZiAoZmQgPCAwKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIElmIHRoZSAnbmV3JyBw cml2Y21kIGludGVyZmFjZSBkb2Vzbid0IGV4aXN0IHRoZW4gZG9uJ3QgdHJlYXQKKyAgICAgICAg ICogdGhpcyBhcyBhbiBlcnJvciwgYnV0IGFuIG9sZCBwcml2Y21kIGNsZWFybHkgd29uJ3QgaW1w bGVtZW50CisgICAgICAgICAqIElPQ1RMX1BSSVZDTURfRE1fT1Agc28gZG9uJ3QgYm90aGVyIHRy eWluZyB0byBvcGVuIGl0LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGVycm5vID09IEVOT0VO VCB8fCBlcnJubyA9PSBFTlhJTyB8fCBlcnJubyA9PSBFTk9ERVYpCisgICAgICAgICAgICBnb3Rv IG91dDsKKworICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBvYnRhaW4gaGFuZGxlIG9uIHByaXZp bGVnZWQgY29tbWFuZCBpbnRlcmZhY2UiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKwor ICAgIC8qCisgICAgICogQ2hlY2sgdG8gc2VlIGlmIElPQ1RMX1BSSVZDTURfRE1fT1AgaXMgaW1w bGVtZW50ZWQgYXMgd2Ugd2FudCB0bworICAgICAqIHVzZSB0aGF0IGluIHByZWZlcmVuY2UgdG8g bGlieGVuY2FsbC4KKyAgICAgKi8KKyAgICB1b3AuZG9tID0gRE9NSURfSU5WQUxJRDsKKyAgICB1 b3AubnVtID0gMDsKKyAgICB1b3AudWJ1ZnMgPSBOVUxMOworCisgICAgcmMgPSBpb2N0bChmZCwg SU9DVExfUFJJVkNNRF9ETV9PUCwgJnVvcCk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBj bG9zZShmZCk7CisgICAgICAgIGZkID0gLTE7CisgICAgfQorCitvdXQ6CisgICAgZG1vZC0+ZmQg PSBmZDsKKyAgICByZXR1cm4gMDsKK30KKworaW50IG9zZGVwX3hlbmRldmljZW1vZGVsX2Nsb3Nl KHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCkKK3sKKyAgICBpZiAoZG1vZC0+ZmQgPCAwKQor ICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBjbG9zZShkbW9kLT5mZCk7Cit9CisKK2lu dCBvc2RlcF94ZW5kZXZpY2Vtb2RlbF9vcCh4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2QsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCBkb21pZCwgdW5zaWduZWQgaW50IG5y X2J1ZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbmRldmljZW1vZGVs X2J1ZiBidWZzW10pCit7CisgICAgcHJpdmNtZF9kbV9vcF9idWZfdCAqdWJ1ZnM7CisgICAgcHJp dmNtZF9kbV9vcF90IHVvcDsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBpbnQgcmM7CisKKyAg ICBpZiAoZG1vZC0+ZmQgPCAwKQorICAgICAgICByZXR1cm4geGVuZGV2aWNlbW9kZWxfeGNhbGwo ZG1vZCwgZG9taWQsIG5yX2J1ZnMsIGJ1ZnMpOworCisgICAgdWJ1ZnMgPSBjYWxsb2MobnJfYnVm cywgc2l6ZW9mICgqdWJ1ZnMpKTsKKyAgICBpZiAoIXVidWZzKQorICAgICAgICByZXR1cm4gLTE7 CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnJfYnVmczsgaSsrKSB7CisgICAgICAgIHVidWZzW2ld LnVwdHIgPSBidWZzW2ldLnB0cjsKKyAgICAgICAgdWJ1ZnNbaV0uc2l6ZSA9IGJ1ZnNbaV0uc2l6 ZTsKKyAgICB9CisKKyAgICB1b3AuZG9tID0gZG9taWQ7CisgICAgdW9wLm51bSA9IG5yX2J1ZnM7 CisgICAgdW9wLnVidWZzID0gdWJ1ZnM7CisKKyAgICByYyA9IGlvY3RsKGRtb2QtPmZkLCBJT0NU TF9QUklWQ01EX0RNX09QLCAmdW9wKTsKKworICAgIGZyZWUodWJ1ZnMpOworCisgICAgaWYgKHJj IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBM b2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBj LWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBu aWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9wcml2 YXRlLmggYi90b29scy9saWJzL2RldmljZW1vZGVsL3ByaXZhdGUuaAppbmRleCA3YzdhY2YyLi41 Y2UzYjQ1IDEwMDY0NAotLS0gYS90b29scy9saWJzL2RldmljZW1vZGVsL3ByaXZhdGUuaAorKysg Yi90b29scy9saWJzL2RldmljZW1vZGVsL3ByaXZhdGUuaApAQCAtMTEsNiArMTEsNyBAQCBzdHJ1 Y3QgeGVuZGV2aWNlbW9kZWxfaGFuZGxlIHsKICAgICB4ZW50b29sbG9nX2xvZ2dlciAqbG9nZ2Vy LCAqbG9nZ2VyX3RvZnJlZTsKICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgeGVuY2FsbF9o YW5kbGUgKnhjYWxsOworICAgIGludCBmZDsKIH07CiAKIHN0cnVjdCB4ZW5kZXZpY2Vtb2RlbF9i dWYgewpAQCAtMjgsNiArMjksOSBAQCBpbnQgb3NkZXBfeGVuZGV2aWNlbW9kZWxfb3AoeGVuZGV2 aWNlbW9kZWxfaGFuZGxlICpkbW9kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlk X3QgZG9taWQsIHVuc2lnbmVkIGludCBucl9idWZzLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCB4ZW5kZXZpY2Vtb2RlbF9idWYgYnVmc1tdKTsKIAorI2RlZmluZSBQRVJST1Io X2YuLi4pIFwKKyAgICB4dGxfbG9nKGRtb2QtPmxvZ2dlciwgWFRMX0VSUk9SLCBlcnJubywgInhl bmRldmljZW1vZGVsIiwgX2YpCisKICNlbmRpZgogCiAvKgotLSAKMi4xLjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK