From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ronald Rojas Subject: [PATCH v2 3/5] golang/xenlight: Add host-related functionality Date: Thu, 2 Mar 2017 11:07:15 -0500 Message-ID: <1488470837-23181-3-git-send-email-ronladred@gmail.com> References: <1488470837-23181-1-git-send-email-ronladred@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1488470837-23181-1-git-send-email-ronladred@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" Cc: Ronald Rojas , wei.liu2@citrix.com, ian.jackson@eu.citrix.com, george.dunlap@citrix.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org QWRkIGNhbGxzIGZvciB0aGUgZm9sbG93aW5nIGhvc3QtcmVsYXRlZCBmdW5jdGlvbmFsaXR5Ogot IGxpYnhsX2dldF9tYXhfY3B1cwotIGxpYnhsX2dldF9vbmxpbmVfY3B1cwotIGxpYnhsX2dldF9t YXhfbm9kZXMKLSBsaWJ4bF9nZXRfZnJlZV9tZW1vcnkKLSBsaWJ4bF9nZXRfcGh5c2luZm8KLSBs aWJ4bF9nZXRfdmVyc2lvbl9pbmZvCgpJbmNsdWRlIEdvbGFuZyB2ZXJzaW9ucyBvZiB0aGUgZm9s bG93aW5nIHN0cnVjdHM6Ci0gbGlieGxfcGh5c2luZm8gYXMgUGh5c2luZm8KLSBsaWJ4bF92ZXJz aW9uX2luZm8gYXMgVmVyc2lvbkluZm8KLSBsaWJ4bF9od2NhcCBhcyBId2NhcAoKU2lnbmVkLW9m Zi1ieTogUm9uYWxkIFJvamFzIDxyb25sYWRyZWRAZ21haWwuY29tPgotLS0KQ2hhbmdlcyBzaW5j ZSBsYXN0IHZlcnNpb24KCi0gUmVmYWN0b3JlZCBjcmVhdGluZyBQaHlzaW5mbyBhbmQgVmVyc2lv bkluZm8gdHlwZXMgaW50bwpzZXBlcmF0ZSB0b0dvKCkgZnVuY3Rpb25zLgoKLSBVc2VkIGxpYnhs Xzx0eXBlPl9pbml0KCkgYW5kIGxpYnhsXzx0eXBlPl9kaXNwb3NlKCkgb24gSURMCnR5cGUgcGh5 c2luZm8KCi0gV2hpdGVzcGFjZSBmaXhlcwoKQ0M6IHhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCkND OiBnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20KQ0M6IGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20K Q0M6IHdlaS5saXUyQGNpdHJpeC5jb20KLS0tCi0tLQogdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3hl bmxpZ2h0LmdvIHwgMjAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAx IGZpbGUgY2hhbmdlZCwgMjAwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90b29scy9nb2xh bmcveGVubGlnaHQveGVubGlnaHQuZ28gYi90b29scy9nb2xhbmcveGVubGlnaHQveGVubGlnaHQu Z28KaW5kZXggY2JkMzUyNy4uNjNjYzgwNSAxMDA2NDQKLS0tIGEvdG9vbHMvZ29sYW5nL3hlbmxp Z2h0L3hlbmxpZ2h0LmdvCisrKyBiL3Rvb2xzL2dvbGFuZy94ZW5saWdodC94ZW5saWdodC5nbwpA QCAtMTA2LDYgKzEwNiwxMDMgQEAgdHlwZSBDb250ZXh0IHN0cnVjdCB7CiAJY3R4ICpDLmxpYnhs X2N0eAogfQogCit0eXBlIEh3Y2FwIFtdQy51aW50MzJfdAorCitmdW5jIChjaHdjYXAgQy5saWJ4 bF9od2NhcCkgQ1RvR28oKSAoZ2h3Y2FwIEh3Y2FwKSB7CisJLy8gQWxsb2MgYSBHbyBzbGljZSBm b3IgdGhlIGJ5dGVzCisJc2l6ZSA6PSA4CisJZ2h3Y2FwID0gbWFrZShbXUMudWludDMyX3QsIHNp emUpCisKKwkvLyBNYWtlIGEgc2xpY2UgcG9pbnRpbmcgdG8gdGhlIEMgYXJyYXkKKwltYXBzbGlj ZSA6PSAoKlsxIDw8IDMwXUMudWludDMyX3QpKHVuc2FmZS5Qb2ludGVyKCZjaHdjYXBbMF0pKVs6 c2l6ZTpzaXplXQorCisJLy8gQW5kIGNvcHkgdGhlIEMgYXJyYXkgaW50byB0aGUgR28gYXJyYXkK Kwljb3B5KGdod2NhcCwgbWFwc2xpY2UpCisKKwlyZXR1cm4KK30KKworLyoKKyAqIFR5cGVzOiBJ REwKKyAqCisgKiBGSVhNRTogR2VuZXJhdGUgdGhlc2UgYXV0b21hdGljYWxseSBmcm9tIHRoZSBJ REwKKyAqLworCit0eXBlIFBoeXNpbmZvIHN0cnVjdCB7CisJVGhyZWFkc1BlckNvcmUgICAgdWlu dDMyCisJQ29yZXNQZXJTb2NrZXQgICAgdWludDMyCisJTWF4Q3B1SWQgICAgICAgICAgdWludDMy CisJTnJDcHVzICAgICAgICAgICAgdWludDMyCisJQ3B1S2h6ICAgICAgICAgICAgdWludDMyCisJ VG90YWxQYWdlcyAgICAgICAgdWludDY0CisJRnJlZVBhZ2VzICAgICAgICAgdWludDY0CisJU2Ny dWJQYWdlcyAgICAgICAgdWludDY0CisJT3V0c3RhbmRpbmdQYWdlcyAgdWludDY0CisJU2hhcmlu Z0ZyZWVkUGFnZXMgdWludDY0CisJU2hhcmluZ1VzZWRGcmFtZXMgdWludDY0CisJTnJOb2RlcyAg ICAgICAgICAgdWludDMyCisJSHdDYXAgICAgICAgICAgICAgSHdjYXAKKwlDYXBIdm0gICAgICAg ICAgICBib29sCisJQ2FwSHZtRGlyZWN0aW8gICAgYm9vbAorfQorCitmdW5jIChjcGh5cyAqQy5s aWJ4bF9waHlzaW5mbykgdG9HbygpIChwaHlzaW5mbyAqUGh5c2luZm8pIHsKKworCXBoeXNpbmZv ID0gJlBoeXNpbmZve30KKwlwaHlzaW5mby5UaHJlYWRzUGVyQ29yZSA9IHVpbnQzMihjcGh5cy50 aHJlYWRzX3Blcl9jb3JlKQorCXBoeXNpbmZvLkNvcmVzUGVyU29ja2V0ID0gdWludDMyKGNwaHlz LmNvcmVzX3Blcl9zb2NrZXQpCisJcGh5c2luZm8uTWF4Q3B1SWQgPSB1aW50MzIoY3BoeXMubWF4 X2NwdV9pZCkKKwlwaHlzaW5mby5OckNwdXMgPSB1aW50MzIoY3BoeXMubnJfY3B1cykKKwlwaHlz aW5mby5DcHVLaHogPSB1aW50MzIoY3BoeXMuY3B1X2toeikKKwlwaHlzaW5mby5Ub3RhbFBhZ2Vz ID0gdWludDY0KGNwaHlzLnRvdGFsX3BhZ2VzKQorCXBoeXNpbmZvLkZyZWVQYWdlcyA9IHVpbnQ2 NChjcGh5cy5mcmVlX3BhZ2VzKQorCXBoeXNpbmZvLlNjcnViUGFnZXMgPSB1aW50NjQoY3BoeXMu c2NydWJfcGFnZXMpCisJcGh5c2luZm8uU2NydWJQYWdlcyA9IHVpbnQ2NChjcGh5cy5zY3J1Yl9w YWdlcykKKwlwaHlzaW5mby5TaGFyaW5nRnJlZWRQYWdlcyA9IHVpbnQ2NChjcGh5cy5zaGFyaW5n X2ZyZWVkX3BhZ2VzKQorCXBoeXNpbmZvLlNoYXJpbmdVc2VkRnJhbWVzID0gdWludDY0KGNwaHlz LnNoYXJpbmdfdXNlZF9mcmFtZXMpCisJcGh5c2luZm8uTnJOb2RlcyA9IHVpbnQzMihjcGh5cy5u cl9ub2RlcykKKwlwaHlzaW5mby5Id0NhcCA9IGNwaHlzLmh3X2NhcC5DVG9HbygpCisJcGh5c2lu Zm8uQ2FwSHZtID0gYm9vbChjcGh5cy5jYXBfaHZtKQorCXBoeXNpbmZvLkNhcEh2bURpcmVjdGlv ID0gYm9vbChjcGh5cy5jYXBfaHZtX2RpcmVjdGlvKQorCisJcmV0dXJuCit9CisKK3R5cGUgVmVy c2lvbkluZm8gc3RydWN0IHsKKwlYZW5WZXJzaW9uTWFqb3IgaW50CisJWGVuVmVyc2lvbk1pbm9y IGludAorCVhlblZlcnNpb25FeHRyYSBzdHJpbmcKKwlDb21waWxlciAgICAgICAgc3RyaW5nCisJ Q29tcGlsZUJ5ICAgICAgIHN0cmluZworCUNvbXBpbGVEb21haW4gICBzdHJpbmcKKwlDb21waWxl RGF0ZSAgICAgc3RyaW5nCisJQ2FwYWJpbGl0aWVzICAgIHN0cmluZworCUNoYW5nZXNldCAgICAg ICBzdHJpbmcKKwlWaXJ0U3RhcnQgICAgICAgdWludDY0CisJUGFnZXNpemUgICAgICAgIGludAor CUNvbW1hbmRsaW5lICAgICBzdHJpbmcKKwlCdWlsZElkICAgICAgICAgc3RyaW5nCit9CisKK2Z1 bmMgKGNpbmZvICpDLmxpYnhsX3ZlcnNpb25faW5mbykgdG9HbygpIChpbmZvICpWZXJzaW9uSW5m bykgeworCWluZm8gPSAmVmVyc2lvbkluZm97fQorCWluZm8uWGVuVmVyc2lvbk1ham9yID0gaW50 KGNpbmZvLnhlbl92ZXJzaW9uX21ham9yKQorCWluZm8uWGVuVmVyc2lvbk1pbm9yID0gaW50KGNp bmZvLnhlbl92ZXJzaW9uX21pbm9yKQorCWluZm8uWGVuVmVyc2lvbkV4dHJhID0gQy5Hb1N0cmlu ZyhjaW5mby54ZW5fdmVyc2lvbl9leHRyYSkKKwlpbmZvLkNvbXBpbGVyID0gQy5Hb1N0cmluZyhj aW5mby5jb21waWxlcikKKwlpbmZvLkNvbXBpbGVCeSA9IEMuR29TdHJpbmcoY2luZm8uY29tcGls ZV9ieSkKKwlpbmZvLkNvbXBpbGVEb21haW4gPSBDLkdvU3RyaW5nKGNpbmZvLmNvbXBpbGVfZG9t YWluKQorCWluZm8uQ29tcGlsZURhdGUgPSBDLkdvU3RyaW5nKGNpbmZvLmNvbXBpbGVfZGF0ZSkK KwlpbmZvLkNhcGFiaWxpdGllcyA9IEMuR29TdHJpbmcoY2luZm8uY2FwYWJpbGl0aWVzKQorCWlu Zm8uQ2hhbmdlc2V0ID0gQy5Hb1N0cmluZyhjaW5mby5jaGFuZ2VzZXQpCisJaW5mby5WaXJ0U3Rh cnQgPSB1aW50NjQoY2luZm8udmlydF9zdGFydCkKKwlpbmZvLlBhZ2VzaXplID0gaW50KGNpbmZv LnBhZ2VzaXplKQorCWluZm8uQ29tbWFuZGxpbmUgPSBDLkdvU3RyaW5nKGNpbmZvLmNvbW1hbmRs aW5lKQorCWluZm8uQnVpbGRJZCA9IEMuR29TdHJpbmcoY2luZm8uYnVpbGRfaWQpCisKKwlyZXR1 cm4KK30KKwogLyoKICAqIENvbnRleHQKICAqLwpAQCAtMTU2LDMgKzI1MywxMDYgQEAgZnVuYyAo Q3R4ICpDb250ZXh0KSBDaGVja09wZW4oKSAoZXJyIGVycm9yKSB7CiAJfQogCXJldHVybgogfQor CisvL2ludCBsaWJ4bF9nZXRfbWF4X2NwdXMobGlieGxfY3R4ICpjdHgpOworZnVuYyAoQ3R4ICpD b250ZXh0KSBHZXRNYXhDcHVzKCkgKG1heENwdXMgaW50LCBlcnIgZXJyb3IpIHsKKwllcnIgPSBD dHguQ2hlY2tPcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQorCisJcmV0IDo9 IEMubGlieGxfZ2V0X21heF9jcHVzKEN0eC5jdHgpCisJaWYgcmV0IDwgMCB7CisJCWVyciA9IEVy cm9yKC1yZXQpCisJCXJldHVybgorCX0KKwltYXhDcHVzID0gaW50KHJldCkKKwlyZXR1cm4KK30K KworLy9pbnQgbGlieGxfZ2V0X29ubGluZV9jcHVzKGxpYnhsX2N0eCAqY3R4KTsKK2Z1bmMgKEN0 eCAqQ29udGV4dCkgR2V0T25saW5lQ3B1cygpIChvbkNwdXMgaW50LCBlcnIgZXJyb3IpIHsKKwll cnIgPSBDdHguQ2hlY2tPcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQorCisJ cmV0IDo9IEMubGlieGxfZ2V0X29ubGluZV9jcHVzKEN0eC5jdHgpCisJaWYgcmV0IDwgMCB7CisJ CWVyciA9IEVycm9yKC1yZXQpCisJCXJldHVybgorCX0KKwlvbkNwdXMgPSBpbnQocmV0KQorCXJl dHVybgorfQorCisvL2ludCBsaWJ4bF9nZXRfbWF4X25vZGVzKGxpYnhsX2N0eCAqY3R4KTsKK2Z1 bmMgKEN0eCAqQ29udGV4dCkgR2V0TWF4Tm9kZXMoKSAobWF4Tm9kZXMgaW50LCBlcnIgZXJyb3Ip IHsKKwllcnIgPSBDdHguQ2hlY2tPcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJ fQorCXJldCA6PSBDLmxpYnhsX2dldF9tYXhfbm9kZXMoQ3R4LmN0eCkKKwlpZiByZXQgPCAwIHsK KwkJZXJyID0gRXJyb3IoLXJldCkKKwkJcmV0dXJuCisJfQorCW1heE5vZGVzID0gaW50KHJldCkK KwlyZXR1cm4KK30KKworLy9pbnQgbGlieGxfZ2V0X2ZyZWVfbWVtb3J5KGxpYnhsX2N0eCAqY3R4 LCB1aW50NjRfdCAqbWVta2IpOworZnVuYyAoQ3R4ICpDb250ZXh0KSBHZXRGcmVlTWVtb3J5KCkg KG1lbWtiIHVpbnQ2NCwgZXJyIGVycm9yKSB7CisJZXJyID0gQ3R4LkNoZWNrT3BlbigpCisJaWYg ZXJyICE9IG5pbCB7CisJCXJldHVybgorCX0KKwl2YXIgY21lbSBDLnVpbnQ2NF90CisJcmV0IDo9 IEMubGlieGxfZ2V0X2ZyZWVfbWVtb3J5KEN0eC5jdHgsICZjbWVtKQorCisJaWYgcmV0IDwgMCB7 CisJCWVyciA9IEVycm9yKC1yZXQpCisJCXJldHVybgorCX0KKworCW1lbWtiID0gdWludDY0KGNt ZW0pCisJcmV0dXJuCisKK30KKworLy9pbnQgbGlieGxfZ2V0X3BoeXNpbmZvKGxpYnhsX2N0eCAq Y3R4LCBsaWJ4bF9waHlzaW5mbyAqcGh5c2luZm8pCitmdW5jIChDdHggKkNvbnRleHQpIEdldFBo eXNpbmZvKCkgKHBoeXNpbmZvICpQaHlzaW5mbywgZXJyIGVycm9yKSB7CisJZXJyID0gQ3R4LkNo ZWNrT3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybgorCX0KKwl2YXIgY3BoeXMgQy5s aWJ4bF9waHlzaW5mbworCUMubGlieGxfcGh5c2luZm9faW5pdCgmY3BoeXMpCisKKwlyZXQgOj0g Qy5saWJ4bF9nZXRfcGh5c2luZm8oQ3R4LmN0eCwgJmNwaHlzKQorCisJaWYgcmV0IDwgMCB7CisJ CWVyciA9IEVycm9yKHJldCkKKwkJcmV0dXJuCisJfQorCXBoeXNpbmZvID0gY3BoeXMudG9Hbygp CisJQy5saWJ4bF9waHlzaW5mb19kaXNwb3NlKCZjcGh5cykKKworCXJldHVybgorfQorCisvL2Nv bnN0IGxpYnhsX3ZlcnNpb25faW5mbyogbGlieGxfZ2V0X3ZlcnNpb25faW5mbyhsaWJ4bF9jdHgg KmN0eCk7CitmdW5jIChDdHggKkNvbnRleHQpIEdldFZlcnNpb25JbmZvKCkgKGluZm8gKlZlcnNp b25JbmZvLCBlcnIgZXJyb3IpIHsKKwllcnIgPSBDdHguQ2hlY2tPcGVuKCkKKwlpZiBlcnIgIT0g bmlsIHsKKwkJcmV0dXJuCisJfQorCisJdmFyIGNpbmZvICpDLmxpYnhsX3ZlcnNpb25faW5mbwor CisJY2luZm8gPSBDLmxpYnhsX2dldF92ZXJzaW9uX2luZm8oQ3R4LmN0eCkKKworCWluZm8gPSBj aW5mby50b0dvKCkKKworCXJldHVybgorfQotLSAKMi43LjMKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK