From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ronald Rojas Subject: [PATCH RFC 3/8] golang/xenlight: Add host-related functionality Date: Wed, 18 Jan 2017 14:56:41 -0500 Message-ID: <1484769406-17416-3-git-send-email-ronladred@gmail.com> References: <1484769406-17416-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: <1484769406-17416-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" To: xen-devel@lists.xen.org, george.dunlap@citrix.com, ian.jackson@eu.citrix.com, wei.liu2@citrix.com Cc: Ronald Rojas List-Id: xen-devel@lists.xenproject.org QWRkIGNhbGxzIGZvciB0aGUgZm9sbG93aW5nIGhvc3QtcmVsYXRlZCBmdW5jdGlvbmFsaXR5Ogot IGxpYnhsX2dldF9tYXhfY3B1cwotIGxpYnhsX2dldF9vbmxpbmVfY3B1cwotIGxpYnhsX2dldF9t YXhfbm9kZXMKLSBsaWJ4bF9nZXRfZnJlZV9tZW1vcnkKLSBsaWJ4bF9nZXRfcGh5c2luZm8KLSBs aWJ4bF9nZXRfdmVyc2lvbl9pbmZvCgpJbmNsdWRlIEdvbGFuZyB2ZXJzaW9ucyBvZiB0aGUgZm9s bG93aW5nIHN0cnVjdHM6Ci0gbGlieGxfcGh5c2luZm8gYXMgUGh5c2luZm8KLSBsaWJ4bF92ZXJz aW9uX2luZm8gYXMgVmVyc2lvbkluZm8KLSBsaWJ4bF9od2NhcCBhcyBId2NhcAoKU2lnbmVkLW9m Zi1ieTogUm9uYWxkIFJvamFzIDxyb25sYWRyZWRAZ21haWwuY29tPgotLS0KIHRvb2xzL2dvbGFu Zy94ZW5saWdodC94ZW5saWdodC5nbyB8IDE4NSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE4NSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3hlbmxpZ2h0LmdvIGIvdG9vbHMvZ29sYW5nL3hlbmxp Z2h0L3hlbmxpZ2h0LmdvCmluZGV4IGQ1OGY4YjguLjZiMDQ4NTAgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2dvbGFuZy94ZW5saWdodC94ZW5saWdodC5nbworKysgYi90b29scy9nb2xhbmcveGVubGlnaHQv eGVubGlnaHQuZ28KQEAgLTEwOSw2ICsxMDksNjIgQEAgdHlwZSBDb250ZXh0IHN0cnVjdCB7CiAJ Y3R4ICpDLmxpYnhsX2N0eAogfQogCit0eXBlIEh3Y2FwIFtdQy51aW50MzJfdAorCitmdW5jIGh3 Y2FwQ1RvR28oY2h3Y2FwIEMubGlieGxfaHdjYXApIChnaHdjYXAgSHdjYXApIHsKKwkvLyBBbGxv YyBhIEdvIHNsaWNlIGZvciB0aGUgYnl0ZXMKKwlzaXplIDo9IDgKKwlnaHdjYXAgPSBtYWtlKFtd Qy51aW50MzJfdCwgc2l6ZSkKKworCS8vIE1ha2UgYSBzbGljZSBwb2ludGluZyB0byB0aGUgQyBh cnJheQorCW1hcHNsaWNlIDo9ICgqWzEgPDwgMzBdQy51aW50MzJfdCkodW5zYWZlLlBvaW50ZXIo JmNod2NhcFswXSkpWzpzaXplOnNpemVdCisKKwkvLyBBbmQgY29weSB0aGUgQyBhcnJheSBpbnRv IHRoZSBHbyBhcnJheQorCWNvcHkoZ2h3Y2FwLCBtYXBzbGljZSkKKworCXJldHVybgorfQorCisv KgorICogVHlwZXM6IElETAorICoKKyAqIEZJWE1FOiBHZW5lcmF0ZSB0aGVzZSBhdXRvbWF0aWNh bGx5IGZyb20gdGhlIElETAorICovCisKK3R5cGUgUGh5c2luZm8gc3RydWN0IHsKKwlUaHJlYWRz UGVyQ29yZSAgICB1aW50MzIKKwlDb3Jlc1BlclNvY2tldCAgICB1aW50MzIKKwlNYXhDcHVJZCAg ICAgICAgICB1aW50MzIKKwlOckNwdXMgICAgICAgICAgICB1aW50MzIKKwlDcHVLaHogICAgICAg ICAgICB1aW50MzIKKwlUb3RhbFBhZ2VzICAgICAgICB1aW50NjQKKwlGcmVlUGFnZXMgICAgICAg ICB1aW50NjQKKwlTY3J1YlBhZ2VzICAgICAgICB1aW50NjQKKwlPdXRzdGFuZGluZ1BhZ2VzICB1 aW50NjQKKwlTaGFyaW5nRnJlZWRQYWdlcyB1aW50NjQKKwlTaGFyaW5nVXNlZEZyYW1lcyB1aW50 NjQKKwlOck5vZGVzICAgICAgICAgICB1aW50MzIKKwlId0NhcCAgICAgICAgICAgICBId2NhcAor CUNhcEh2bSAgICAgICAgICAgIGJvb2wKKwlDYXBIdm1EaXJlY3RpbyAgICBib29sCit9CisKK3R5 cGUgVmVyc2lvbkluZm8gc3RydWN0IHsKKwlYZW5WZXJzaW9uTWFqb3IgaW50CisJWGVuVmVyc2lv bk1pbm9yIGludAorCVhlblZlcnNpb25FeHRyYSBzdHJpbmcKKwlDb21waWxlciAgICAgICAgc3Ry aW5nCisJQ29tcGlsZUJ5ICAgICAgIHN0cmluZworCUNvbXBpbGVEb21haW4gICBzdHJpbmcKKwlD b21waWxlRGF0ZSAgICAgc3RyaW5nCisJQ2FwYWJpbGl0aWVzICAgIHN0cmluZworCUNoYW5nZXNl dCAgICAgICBzdHJpbmcKKwlWaXJ0U3RhcnQgICAgICAgdWludDY0CisJUGFnZXNpemUgICAgICAg IGludAorCUNvbW1hbmRsaW5lICAgICBzdHJpbmcKKwlCdWlsZElkICAgICAgICAgc3RyaW5nCit9 CisKIC8qCiAgKiBDb250ZXh0CiAgKi8KQEAgLTE0NywzICsyMDMsMTMyIEBAIGZ1bmMgKEN0eCAq Q29udGV4dCkgQ2hlY2tPcGVuKCkgKGVyciBlcnJvcikgewogCX0KIAlyZXR1cm4KIH0KKworLy9p bnQgbGlieGxfZ2V0X21heF9jcHVzKGxpYnhsX2N0eCAqY3R4KTsKK2Z1bmMgKEN0eCAqQ29udGV4 dCkgR2V0TWF4Q3B1cygpIChtYXhDcHVzIGludCwgZXJyIGVycm9yKSB7CisJZXJyID0gQ3R4LkNo ZWNrT3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybgorCX0KKworCXJldCA6PSBDLmxp YnhsX2dldF9tYXhfY3B1cyhDdHguY3R4KQorCWlmIHJldCA8IDAgeworCQllcnIgPSBFcnJvcnhs KHJldCkKKwkJcmV0dXJuCisJfQorCW1heENwdXMgPSBpbnQocmV0KQorCXJldHVybgorfQorCisv L2ludCBsaWJ4bF9nZXRfb25saW5lX2NwdXMobGlieGxfY3R4ICpjdHgpOworZnVuYyAoQ3R4ICpD b250ZXh0KSBHZXRPbmxpbmVDcHVzKCkgKG9uQ3B1cyBpbnQsIGVyciBlcnJvcikgeworCWVyciA9 IEN0eC5DaGVja09wZW4oKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4KKwl9CisKKwlyZXQg Oj0gQy5saWJ4bF9nZXRfb25saW5lX2NwdXMoQ3R4LmN0eCkKKwlpZiByZXQgPCAwIHsKKwkJZXJy ID0gRXJyb3J4bChyZXQpCisJCXJldHVybgorCX0KKwlvbkNwdXMgPSBpbnQocmV0KQorCXJldHVy bgorfQorCisvL2ludCBsaWJ4bF9nZXRfbWF4X25vZGVzKGxpYnhsX2N0eCAqY3R4KTsKK2Z1bmMg KEN0eCAqQ29udGV4dCkgR2V0TWF4Tm9kZXMoKSAobWF4Tm9kZXMgaW50LCBlcnIgZXJyb3IpIHsK KwllcnIgPSBDdHguQ2hlY2tPcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQor CXJldCA6PSBDLmxpYnhsX2dldF9tYXhfbm9kZXMoQ3R4LmN0eCkKKwlpZiByZXQgPCAwIHsKKwkJ ZXJyID0gRXJyb3J4bChyZXQpCisJCXJldHVybgorCX0KKwltYXhOb2RlcyA9IGludChyZXQpCisJ cmV0dXJuCit9CisKKy8vaW50IGxpYnhsX2dldF9mcmVlX21lbW9yeShsaWJ4bF9jdHggKmN0eCwg dWludDY0X3QgKm1lbWtiKTsKK2Z1bmMgKEN0eCAqQ29udGV4dCkgR2V0RnJlZU1lbW9yeSgpICht ZW1rYiB1aW50NjQsIGVyciBlcnJvcikgeworCWVyciA9IEN0eC5DaGVja09wZW4oKQorCWlmIGVy ciAhPSBuaWwgeworCQlyZXR1cm4KKwl9CisJdmFyIGNtZW0gQy51aW50NjRfdAorCXJldCA6PSBD LmxpYnhsX2dldF9mcmVlX21lbW9yeShDdHguY3R4LCAmY21lbSkKKworCWlmIHJldCA8IDAgewor CQllcnIgPSBFcnJvcnhsKHJldCkKKwkJcmV0dXJuCisJfQorCisJbWVta2IgPSB1aW50NjQoY21l bSkKKwlyZXR1cm4KKworfQorCisvL2ludCBsaWJ4bF9nZXRfcGh5c2luZm8obGlieGxfY3R4ICpj dHgsIGxpYnhsX3BoeXNpbmZvICpwaHlzaW5mbykKK2Z1bmMgKEN0eCAqQ29udGV4dCkgR2V0UGh5 c2luZm8oKSAocGh5c2luZm8gKlBoeXNpbmZvLCBlcnIgZXJyb3IpIHsKKwllcnIgPSBDdHguQ2hl Y2tPcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQorCXZhciBjcGh5cyBDLmxp YnhsX3BoeXNpbmZvCisKKwlyZXQgOj0gQy5saWJ4bF9nZXRfcGh5c2luZm8oQ3R4LmN0eCwgJmNw aHlzKQorCisJaWYgcmV0IDwgMCB7CisJCWVyciA9IEVycm9yeGwocmV0KQorCQlyZXR1cm4KKwl9 CisJcGh5c2luZm8gPSAmUGh5c2luZm97fQorCXBoeXNpbmZvLlRocmVhZHNQZXJDb3JlID0gdWlu dDMyKGNwaHlzLnRocmVhZHNfcGVyX2NvcmUpCisJcGh5c2luZm8uQ29yZXNQZXJTb2NrZXQgPSB1 aW50MzIoY3BoeXMuY29yZXNfcGVyX3NvY2tldCkKKwlwaHlzaW5mby5NYXhDcHVJZCA9IHVpbnQz MihjcGh5cy5tYXhfY3B1X2lkKQorCXBoeXNpbmZvLk5yQ3B1cyA9IHVpbnQzMihjcGh5cy5ucl9j cHVzKQorCXBoeXNpbmZvLkNwdUtoeiA9IHVpbnQzMihjcGh5cy5jcHVfa2h6KQorCXBoeXNpbmZv LlRvdGFsUGFnZXMgPSB1aW50NjQoY3BoeXMudG90YWxfcGFnZXMpCisJcGh5c2luZm8uRnJlZVBh Z2VzID0gdWludDY0KGNwaHlzLmZyZWVfcGFnZXMpCisJcGh5c2luZm8uU2NydWJQYWdlcyA9IHVp bnQ2NChjcGh5cy5zY3J1Yl9wYWdlcykKKwlwaHlzaW5mby5TY3J1YlBhZ2VzID0gdWludDY0KGNw aHlzLnNjcnViX3BhZ2VzKQorCXBoeXNpbmZvLlNoYXJpbmdGcmVlZFBhZ2VzID0gdWludDY0KGNw aHlzLnNoYXJpbmdfZnJlZWRfcGFnZXMpCisJcGh5c2luZm8uU2hhcmluZ1VzZWRGcmFtZXMgPSB1 aW50NjQoY3BoeXMuc2hhcmluZ191c2VkX2ZyYW1lcykKKwlwaHlzaW5mby5Ock5vZGVzID0gdWlu dDMyKGNwaHlzLm5yX25vZGVzKQorCXBoeXNpbmZvLkh3Q2FwID0gaHdjYXBDVG9HbyhjcGh5cy5o d19jYXApCisJcGh5c2luZm8uQ2FwSHZtID0gYm9vbChjcGh5cy5jYXBfaHZtKQorCXBoeXNpbmZv LkNhcEh2bURpcmVjdGlvID0gYm9vbChjcGh5cy5jYXBfaHZtX2RpcmVjdGlvKQorCisJcmV0dXJu Cit9CisKKy8vY29uc3QgbGlieGxfdmVyc2lvbl9pbmZvKiBsaWJ4bF9nZXRfdmVyc2lvbl9pbmZv KGxpYnhsX2N0eCAqY3R4KTsKK2Z1bmMgKEN0eCAqQ29udGV4dCkgR2V0VmVyc2lvbkluZm8oKSAo aW5mbyAqVmVyc2lvbkluZm8sIGVyciBlcnJvcikgeworCWVyciA9IEN0eC5DaGVja09wZW4oKQor CWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4KKwl9CisKKwl2YXIgY2luZm8gKkMubGlieGxfdmVy c2lvbl9pbmZvCisKKwljaW5mbyA9IEMubGlieGxfZ2V0X3ZlcnNpb25faW5mbyhDdHguY3R4KQor CisJaW5mbyA9ICZWZXJzaW9uSW5mb3t9CisJaW5mby5YZW5WZXJzaW9uTWFqb3IgPSBpbnQoY2lu Zm8ueGVuX3ZlcnNpb25fbWFqb3IpCisJaW5mby5YZW5WZXJzaW9uTWlub3IgPSBpbnQoY2luZm8u eGVuX3ZlcnNpb25fbWlub3IpCisJaW5mby5YZW5WZXJzaW9uRXh0cmEgPSBDLkdvU3RyaW5nKGNp bmZvLnhlbl92ZXJzaW9uX2V4dHJhKQorCWluZm8uQ29tcGlsZXIgPSBDLkdvU3RyaW5nKGNpbmZv LmNvbXBpbGVyKQorCWluZm8uQ29tcGlsZUJ5ID0gQy5Hb1N0cmluZyhjaW5mby5jb21waWxlX2J5 KQorCWluZm8uQ29tcGlsZURvbWFpbiA9IEMuR29TdHJpbmcoY2luZm8uY29tcGlsZV9kb21haW4p CisJaW5mby5Db21waWxlRGF0ZSA9IEMuR29TdHJpbmcoY2luZm8uY29tcGlsZV9kYXRlKQorCWlu Zm8uQ2FwYWJpbGl0aWVzID0gQy5Hb1N0cmluZyhjaW5mby5jYXBhYmlsaXRpZXMpCisJaW5mby5D aGFuZ2VzZXQgPSBDLkdvU3RyaW5nKGNpbmZvLmNoYW5nZXNldCkKKwlpbmZvLlZpcnRTdGFydCA9 IHVpbnQ2NChjaW5mby52aXJ0X3N0YXJ0KQorCWluZm8uUGFnZXNpemUgPSBpbnQoY2luZm8ucGFn ZXNpemUpCisJaW5mby5Db21tYW5kbGluZSA9IEMuR29TdHJpbmcoY2luZm8uY29tbWFuZGxpbmUp CisJaW5mby5CdWlsZElkID0gQy5Hb1N0cmluZyhjaW5mby5idWlsZF9pZCkKKworCXJldHVybgor fQotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK