From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v5 03/10] golang/xenlight: Add host-related functionality Date: Wed, 5 Apr 2017 17:05:47 +0100 Message-ID: <1491408354-9643-4-git-send-email-george.dunlap@citrix.com> References: <1491408354-9643-1-git-send-email-george.dunlap@citrix.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 1cvnRj-0004LZ-GF for xen-devel@lists.xenproject.org; Wed, 05 Apr 2017 16:06:11 +0000 In-Reply-To: <1491408354-9643-1-git-send-email-george.dunlap@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: Ronald Rojas , Wei Liu , Ian Jackson List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9uYWxkIFJvamFzIDxyb25sYWRyZWRAZ21haWwuY29tPgoKQWRkIGNhbGxzIGZvciB0 aGUgZm9sbG93aW5nIGhvc3QtcmVsYXRlZCBmdW5jdGlvbmFsaXR5OgotIGxpYnhsX2dldF9tYXhf Y3B1cwotIGxpYnhsX2dldF9vbmxpbmVfY3B1cwotIGxpYnhsX2dldF9tYXhfbm9kZXMKLSBsaWJ4 bF9nZXRfZnJlZV9tZW1vcnkKLSBsaWJ4bF9nZXRfcGh5c2luZm8KLSBsaWJ4bF9nZXRfdmVyc2lv bl9pbmZvCgpJbmNsdWRlIEdvbGFuZyB2ZXJzaW9ucyBvZiB0aGUgZm9sbG93aW5nIHN0cnVjdHM6 Ci0gbGlieGxfcGh5c2luZm8gYXMgUGh5c2luZm8KLSBsaWJ4bF92ZXJzaW9uX2luZm8gYXMgVmVy c2lvbkluZm8KLSBsaWJ4bF9od2NhcCBhcyBId2NhcAoKU2lnbmVkLW9mZi1ieTogUm9uYWxkIFJv amFzIDxyb25sYWRyZWRAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogIEdlb3JnZSBEdW5sYXAgPGdl b3JnZS5kdW5sYXBAY2l0cml4LmNvbT4KLS0tCkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25A Y2l0cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CgpDaGFuZ2VzIHNp bmNlIHY0OgogLSBNb3ZlZCBmaXggZnJvbSB0aGUgbmV4dCBwYXRjaAotLS0KIHRvb2xzL2dvbGFu Zy94ZW5saWdodC94ZW5saWdodC5nbyB8IDIwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIwMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3hlbmxpZ2h0LmdvIGIvdG9vbHMvZ29sYW5nL3hlbmxp Z2h0L3hlbmxpZ2h0LmdvCmluZGV4IGRlMjRmZmQuLjViNTAwZjMgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2dvbGFuZy94ZW5saWdodC94ZW5saWdodC5nbworKysgYi90b29scy9nb2xhbmcveGVubGlnaHQv eGVubGlnaHQuZ28KQEAgLTExOCw2ICsxMTgsMTAzIEBAIHR5cGUgQ29udGV4dCBzdHJ1Y3Qgewog CWxvZ2dlciAqQy54ZW50b29sbG9nX2xvZ2dlcl9zdGRpb3N0cmVhbQogfQogCit0eXBlIEh3Y2Fw IFtdQy51aW50MzJfdAorCitmdW5jIChjaHdjYXAgQy5saWJ4bF9od2NhcCkgQ1RvR28oKSAoZ2h3 Y2FwIEh3Y2FwKSB7CisJLy8gQWxsb2MgYSBHbyBzbGljZSBmb3IgdGhlIGJ5dGVzCisJc2l6ZSA6 PSA4CisJZ2h3Y2FwID0gbWFrZShbXUMudWludDMyX3QsIHNpemUpCisKKwkvLyBNYWtlIGEgc2xp Y2UgcG9pbnRpbmcgdG8gdGhlIEMgYXJyYXkKKwltYXBzbGljZSA6PSAoKlsxIDw8IDMwXUMudWlu dDMyX3QpKHVuc2FmZS5Qb2ludGVyKCZjaHdjYXBbMF0pKVs6c2l6ZTpzaXplXQorCisJLy8gQW5k IGNvcHkgdGhlIEMgYXJyYXkgaW50byB0aGUgR28gYXJyYXkKKwljb3B5KGdod2NhcCwgbWFwc2xp Y2UpCisKKwlyZXR1cm4KK30KKworLyoKKyAqIFR5cGVzOiBJREwKKyAqCisgKiBGSVhNRTogR2Vu ZXJhdGUgdGhlc2UgYXV0b21hdGljYWxseSBmcm9tIHRoZSBJREwKKyAqLworCit0eXBlIFBoeXNp bmZvIHN0cnVjdCB7CisJVGhyZWFkc1BlckNvcmUgICAgdWludDMyCisJQ29yZXNQZXJTb2NrZXQg ICAgdWludDMyCisJTWF4Q3B1SWQgICAgICAgICAgdWludDMyCisJTnJDcHVzICAgICAgICAgICAg dWludDMyCisJQ3B1S2h6ICAgICAgICAgICAgdWludDMyCisJVG90YWxQYWdlcyAgICAgICAgdWlu dDY0CisJRnJlZVBhZ2VzICAgICAgICAgdWludDY0CisJU2NydWJQYWdlcyAgICAgICAgdWludDY0 CisJT3V0c3RhbmRpbmdQYWdlcyAgdWludDY0CisJU2hhcmluZ0ZyZWVkUGFnZXMgdWludDY0CisJ U2hhcmluZ1VzZWRGcmFtZXMgdWludDY0CisJTnJOb2RlcyAgICAgICAgICAgdWludDMyCisJSHdD YXAgICAgICAgICAgICAgSHdjYXAKKwlDYXBIdm0gICAgICAgICAgICBib29sCisJQ2FwSHZtRGly ZWN0aW8gICAgYm9vbAorfQorCitmdW5jIChjcGh5cyAqQy5saWJ4bF9waHlzaW5mbykgdG9Hbygp IChwaHlzaW5mbyAqUGh5c2luZm8pIHsKKworCXBoeXNpbmZvID0gJlBoeXNpbmZve30KKwlwaHlz aW5mby5UaHJlYWRzUGVyQ29yZSA9IHVpbnQzMihjcGh5cy50aHJlYWRzX3Blcl9jb3JlKQorCXBo eXNpbmZvLkNvcmVzUGVyU29ja2V0ID0gdWludDMyKGNwaHlzLmNvcmVzX3Blcl9zb2NrZXQpCisJ cGh5c2luZm8uTWF4Q3B1SWQgPSB1aW50MzIoY3BoeXMubWF4X2NwdV9pZCkKKwlwaHlzaW5mby5O ckNwdXMgPSB1aW50MzIoY3BoeXMubnJfY3B1cykKKwlwaHlzaW5mby5DcHVLaHogPSB1aW50MzIo Y3BoeXMuY3B1X2toeikKKwlwaHlzaW5mby5Ub3RhbFBhZ2VzID0gdWludDY0KGNwaHlzLnRvdGFs X3BhZ2VzKQorCXBoeXNpbmZvLkZyZWVQYWdlcyA9IHVpbnQ2NChjcGh5cy5mcmVlX3BhZ2VzKQor CXBoeXNpbmZvLlNjcnViUGFnZXMgPSB1aW50NjQoY3BoeXMuc2NydWJfcGFnZXMpCisJcGh5c2lu Zm8uU2NydWJQYWdlcyA9IHVpbnQ2NChjcGh5cy5zY3J1Yl9wYWdlcykKKwlwaHlzaW5mby5TaGFy aW5nRnJlZWRQYWdlcyA9IHVpbnQ2NChjcGh5cy5zaGFyaW5nX2ZyZWVkX3BhZ2VzKQorCXBoeXNp bmZvLlNoYXJpbmdVc2VkRnJhbWVzID0gdWludDY0KGNwaHlzLnNoYXJpbmdfdXNlZF9mcmFtZXMp CisJcGh5c2luZm8uTnJOb2RlcyA9IHVpbnQzMihjcGh5cy5ucl9ub2RlcykKKwlwaHlzaW5mby5I d0NhcCA9IGNwaHlzLmh3X2NhcC5DVG9HbygpCisJcGh5c2luZm8uQ2FwSHZtID0gYm9vbChjcGh5 cy5jYXBfaHZtKQorCXBoeXNpbmZvLkNhcEh2bURpcmVjdGlvID0gYm9vbChjcGh5cy5jYXBfaHZt X2RpcmVjdGlvKQorCisJcmV0dXJuCit9CisKK3R5cGUgVmVyc2lvbkluZm8gc3RydWN0IHsKKwlY ZW5WZXJzaW9uTWFqb3IgaW50CisJWGVuVmVyc2lvbk1pbm9yIGludAorCVhlblZlcnNpb25FeHRy YSBzdHJpbmcKKwlDb21waWxlciAgICAgICAgc3RyaW5nCisJQ29tcGlsZUJ5ICAgICAgIHN0cmlu ZworCUNvbXBpbGVEb21haW4gICBzdHJpbmcKKwlDb21waWxlRGF0ZSAgICAgc3RyaW5nCisJQ2Fw YWJpbGl0aWVzICAgIHN0cmluZworCUNoYW5nZXNldCAgICAgICBzdHJpbmcKKwlWaXJ0U3RhcnQg ICAgICAgdWludDY0CisJUGFnZXNpemUgICAgICAgIGludAorCUNvbW1hbmRsaW5lICAgICBzdHJp bmcKKwlCdWlsZElkICAgICAgICAgc3RyaW5nCit9CisKK2Z1bmMgKGNpbmZvICpDLmxpYnhsX3Zl cnNpb25faW5mbykgdG9HbygpIChpbmZvICpWZXJzaW9uSW5mbykgeworCWluZm8gPSAmVmVyc2lv bkluZm97fQorCWluZm8uWGVuVmVyc2lvbk1ham9yID0gaW50KGNpbmZvLnhlbl92ZXJzaW9uX21h am9yKQorCWluZm8uWGVuVmVyc2lvbk1pbm9yID0gaW50KGNpbmZvLnhlbl92ZXJzaW9uX21pbm9y KQorCWluZm8uWGVuVmVyc2lvbkV4dHJhID0gQy5Hb1N0cmluZyhjaW5mby54ZW5fdmVyc2lvbl9l eHRyYSkKKwlpbmZvLkNvbXBpbGVyID0gQy5Hb1N0cmluZyhjaW5mby5jb21waWxlcikKKwlpbmZv LkNvbXBpbGVCeSA9IEMuR29TdHJpbmcoY2luZm8uY29tcGlsZV9ieSkKKwlpbmZvLkNvbXBpbGVE b21haW4gPSBDLkdvU3RyaW5nKGNpbmZvLmNvbXBpbGVfZG9tYWluKQorCWluZm8uQ29tcGlsZURh dGUgPSBDLkdvU3RyaW5nKGNpbmZvLmNvbXBpbGVfZGF0ZSkKKwlpbmZvLkNhcGFiaWxpdGllcyA9 IEMuR29TdHJpbmcoY2luZm8uY2FwYWJpbGl0aWVzKQorCWluZm8uQ2hhbmdlc2V0ID0gQy5Hb1N0 cmluZyhjaW5mby5jaGFuZ2VzZXQpCisJaW5mby5WaXJ0U3RhcnQgPSB1aW50NjQoY2luZm8udmly dF9zdGFydCkKKwlpbmZvLlBhZ2VzaXplID0gaW50KGNpbmZvLnBhZ2VzaXplKQorCWluZm8uQ29t bWFuZGxpbmUgPSBDLkdvU3RyaW5nKGNpbmZvLmNvbW1hbmRsaW5lKQorCWluZm8uQnVpbGRJZCA9 IEMuR29TdHJpbmcoY2luZm8uYnVpbGRfaWQpCisKKwlyZXR1cm4KK30KKwogLyoKICAqIENvbnRl eHQKICAqLwpAQCAtMTY0LDMgKzI2MSwxMDYgQEAgZnVuYyAoQ3R4ICpDb250ZXh0KSBDaGVja09w ZW4oKSAoZXJyIGVycm9yKSB7CiAJfQogCXJldHVybgogfQorCisvL2ludCBsaWJ4bF9nZXRfbWF4 X2NwdXMobGlieGxfY3R4ICpjdHgpOworZnVuYyAoQ3R4ICpDb250ZXh0KSBHZXRNYXhDcHVzKCkg KG1heENwdXMgaW50LCBlcnIgZXJyb3IpIHsKKwllcnIgPSBDdHguQ2hlY2tPcGVuKCkKKwlpZiBl cnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQorCisJcmV0IDo9IEMubGlieGxfZ2V0X21heF9jcHVz KEN0eC5jdHgpCisJaWYgcmV0IDwgMCB7CisJCWVyciA9IEVycm9yKC1yZXQpCisJCXJldHVybgor CX0KKwltYXhDcHVzID0gaW50KHJldCkKKwlyZXR1cm4KK30KKworLy9pbnQgbGlieGxfZ2V0X29u bGluZV9jcHVzKGxpYnhsX2N0eCAqY3R4KTsKK2Z1bmMgKEN0eCAqQ29udGV4dCkgR2V0T25saW5l Q3B1cygpIChvbkNwdXMgaW50LCBlcnIgZXJyb3IpIHsKKwllcnIgPSBDdHguQ2hlY2tPcGVuKCkK KwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQorCisJcmV0IDo9IEMubGlieGxfZ2V0X29u bGluZV9jcHVzKEN0eC5jdHgpCisJaWYgcmV0IDwgMCB7CisJCWVyciA9IEVycm9yKC1yZXQpCisJ CXJldHVybgorCX0KKwlvbkNwdXMgPSBpbnQocmV0KQorCXJldHVybgorfQorCisvL2ludCBsaWJ4 bF9nZXRfbWF4X25vZGVzKGxpYnhsX2N0eCAqY3R4KTsKK2Z1bmMgKEN0eCAqQ29udGV4dCkgR2V0 TWF4Tm9kZXMoKSAobWF4Tm9kZXMgaW50LCBlcnIgZXJyb3IpIHsKKwllcnIgPSBDdHguQ2hlY2tP cGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQorCXJldCA6PSBDLmxpYnhsX2dl dF9tYXhfbm9kZXMoQ3R4LmN0eCkKKwlpZiByZXQgPCAwIHsKKwkJZXJyID0gRXJyb3IoLXJldCkK KwkJcmV0dXJuCisJfQorCW1heE5vZGVzID0gaW50KHJldCkKKwlyZXR1cm4KK30KKworLy9pbnQg bGlieGxfZ2V0X2ZyZWVfbWVtb3J5KGxpYnhsX2N0eCAqY3R4LCB1aW50NjRfdCAqbWVta2IpOwor ZnVuYyAoQ3R4ICpDb250ZXh0KSBHZXRGcmVlTWVtb3J5KCkgKG1lbWtiIHVpbnQ2NCwgZXJyIGVy cm9yKSB7CisJZXJyID0gQ3R4LkNoZWNrT3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVy bgorCX0KKwl2YXIgY21lbSBDLnVpbnQ2NF90CisJcmV0IDo9IEMubGlieGxfZ2V0X2ZyZWVfbWVt b3J5KEN0eC5jdHgsICZjbWVtKQorCisJaWYgcmV0IDwgMCB7CisJCWVyciA9IEVycm9yKC1yZXQp CisJCXJldHVybgorCX0KKworCW1lbWtiID0gdWludDY0KGNtZW0pCisJcmV0dXJuCisKK30KKwor Ly9pbnQgbGlieGxfZ2V0X3BoeXNpbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9waHlzaW5mbyAq cGh5c2luZm8pCitmdW5jIChDdHggKkNvbnRleHQpIEdldFBoeXNpbmZvKCkgKHBoeXNpbmZvICpQ aHlzaW5mbywgZXJyIGVycm9yKSB7CisJZXJyID0gQ3R4LkNoZWNrT3BlbigpCisJaWYgZXJyICE9 IG5pbCB7CisJCXJldHVybgorCX0KKwl2YXIgY3BoeXMgQy5saWJ4bF9waHlzaW5mbworCUMubGli eGxfcGh5c2luZm9faW5pdCgmY3BoeXMpCisJZGVmZXIgQy5saWJ4bF9waHlzaW5mb19kaXNwb3Nl KCZjcGh5cykKKworCXJldCA6PSBDLmxpYnhsX2dldF9waHlzaW5mbyhDdHguY3R4LCAmY3BoeXMp CisKKwlpZiByZXQgPCAwIHsKKwkJZXJyID0gRXJyb3IocmV0KQorCQlyZXR1cm4KKwl9CisJcGh5 c2luZm8gPSBjcGh5cy50b0dvKCkKKworCXJldHVybgorfQorCisvL2NvbnN0IGxpYnhsX3ZlcnNp b25faW5mbyogbGlieGxfZ2V0X3ZlcnNpb25faW5mbyhsaWJ4bF9jdHggKmN0eCk7CitmdW5jIChD dHggKkNvbnRleHQpIEdldFZlcnNpb25JbmZvKCkgKGluZm8gKlZlcnNpb25JbmZvLCBlcnIgZXJy b3IpIHsKKwllcnIgPSBDdHguQ2hlY2tPcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJu CisJfQorCisJdmFyIGNpbmZvICpDLmxpYnhsX3ZlcnNpb25faW5mbworCisJY2luZm8gPSBDLmxp YnhsX2dldF92ZXJzaW9uX2luZm8oQ3R4LmN0eCkKKworCWluZm8gPSBjaW5mby50b0dvKCkKKwor CXJldHVybgorfQotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK