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: Mon, 23 Jan 2017 11:43:32 -0500 Message-ID: <20170123164337.4205-3-ronladred@gmail.com> References: <20170123164337.4205-1-ronladred@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170123164337.4205-1-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 Zy94ZW5saWdodC94ZW5saWdodC5nbyB8IDE4NiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE4NiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3hlbmxpZ2h0LmdvIGIvdG9vbHMvZ29sYW5nL3hlbmxp Z2h0L3hlbmxpZ2h0LmdvCmluZGV4IGVlZTIyNTQuLjkyNDEwYTggMTAwNjQ0Ci0tLSBhL3Rvb2xz L2dvbGFuZy94ZW5saWdodC94ZW5saWdodC5nbworKysgYi90b29scy9nb2xhbmcveGVubGlnaHQv eGVubGlnaHQuZ28KQEAgLTEwOCw2ICsxMDgsNjMgQEAgdHlwZSBDb250ZXh0IHN0cnVjdCB7CiAJ Y3R4ICpDLmxpYnhsX2N0eAogfQogCit0eXBlIEh3Y2FwIFtdQy51aW50MzJfdAorCitmdW5jIChj aHdjYXAgQy5saWJ4bF9od2NhcClDVG9HbygpIChnaHdjYXAgSHdjYXApIHsKKwkvLyBBbGxvYyBh IEdvIHNsaWNlIGZvciB0aGUgYnl0ZXMKKwlzaXplIDo9IDgKKwlnaHdjYXA9IG1ha2UoW11DLnVp bnQzMl90LCBzaXplKQorCisJLy8gTWFrZSBhIHNsaWNlIHBvaW50aW5nIHRvIHRoZSBDIGFycmF5 CisJbWFwc2xpY2UgOj0gKCpbMSA8PCAzMF1DLnVpbnQzMl90KSh1bnNhZmUuUG9pbnRlcigmY2h3 Y2FwWzBdKSlbOnNpemU6c2l6ZV0KKworCS8vIEFuZCBjb3B5IHRoZSBDIGFycmF5IGludG8gdGhl IEdvIGFycmF5CisJY29weShnaHdjYXAsIG1hcHNsaWNlKQorCisJcmV0dXJuCit9CisKKworLyoK KyAqIFR5cGVzOiBJREwKKyAqCisgKiBGSVhNRTogR2VuZXJhdGUgdGhlc2UgYXV0b21hdGljYWxs eSBmcm9tIHRoZSBJREwKKyAqLworCit0eXBlIFBoeXNpbmZvIHN0cnVjdCB7CisJVGhyZWFkc1Bl ckNvcmUgdWludDMyCisJQ29yZXNQZXJTb2NrZXQgdWludDMyCisJTWF4Q3B1SWQgdWludDMyCisJ TnJDcHVzICAgIHVpbnQzMgorCUNwdUtoeiAgICB1aW50MzIKKwlUb3RhbFBhZ2VzICAgICAgICAg dWludDY0CisJRnJlZVBhZ2VzICAgICAgICAgIHVpbnQ2NAorCVNjcnViUGFnZXMgICAgICAgICB1 aW50NjQKKwlPdXRzdGFuZGluZ1BhZ2VzICAgdWludDY0CisJU2hhcmluZ0ZyZWVkUGFnZXMgdWlu dDY0CisJU2hhcmluZ1VzZWRGcmFtZXMgdWludDY0CisJTnJOb2RlcyB1aW50MzIKKwlId0NhcCAg IEh3Y2FwCisJQ2FwSHZtICAgICAgICAgIGJvb2wKKwlDYXBIdm1EaXJlY3RpbyBib29sCit9CisK K3R5cGUgVmVyc2lvbkluZm8gc3RydWN0IHsKKwlYZW5WZXJzaW9uTWFqb3IgaW50CisJWGVuVmVy c2lvbk1pbm9yIGludAorCVhlblZlcnNpb25FeHRyYSBzdHJpbmcKKwlDb21waWxlciAgICAgICAg ICBzdHJpbmcKKwlDb21waWxlQnkgICAgICAgIHN0cmluZworCUNvbXBpbGVEb21haW4gICAgc3Ry aW5nCisJQ29tcGlsZURhdGUgICAgICBzdHJpbmcKKwlDYXBhYmlsaXRpZXMgICAgICBzdHJpbmcK KwlDaGFuZ2VzZXQgICAgICAgICBzdHJpbmcKKwlWaXJ0U3RhcnQgICAgICAgIHVpbnQ2NAorCVBh Z2VzaXplICAgICAgICAgIGludAorCUNvbW1hbmRsaW5lICAgICAgIHN0cmluZworCUJ1aWxkSWQg ICAgICAgICAgc3RyaW5nCit9CisKIC8qCiAgKiBDb250ZXh0CiAgKi8KQEAgLTE1NywzICsyMTQs MTMyIEBAIGZ1bmMgKEN0eCAqQ29udGV4dCkgQ2hlY2tPcGVuKCkgKGVyciBlcnJvcikgewogCX0K IAlyZXR1cm4KIH0KKworLy9pbnQgbGlieGxfZ2V0X21heF9jcHVzKGxpYnhsX2N0eCAqY3R4KTsK K2Z1bmMgKEN0eCAqQ29udGV4dCkgR2V0TWF4Q3B1cygpIChtYXhDcHVzIGludCwgZXJyIGVycm9y KSB7CisJZXJyID0gQ3R4LkNoZWNrT3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybgor CX0KKworCXJldCA6PSBDLmxpYnhsX2dldF9tYXhfY3B1cyhDdHguY3R4KQorCWlmIHJldCA8IDAg eworCQllcnIgPSBFcnJvcigtcmV0KQorCQlyZXR1cm4KKwl9CisJbWF4Q3B1cyA9IGludChyZXQp CisJcmV0dXJuCit9CisKKy8vaW50IGxpYnhsX2dldF9vbmxpbmVfY3B1cyhsaWJ4bF9jdHggKmN0 eCk7CitmdW5jIChDdHggKkNvbnRleHQpIEdldE9ubGluZUNwdXMoKSAob25DcHVzIGludCwgZXJy IGVycm9yKSB7CisJZXJyID0gQ3R4LkNoZWNrT3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJl dHVybgorCX0KKworCXJldCA6PSBDLmxpYnhsX2dldF9vbmxpbmVfY3B1cyhDdHguY3R4KQorCWlm IHJldCA8IDAgeworCQllcnIgPSBFcnJvcigtcmV0KQorCQlyZXR1cm4KKwl9CisJb25DcHVzID0g aW50KHJldCkKKwlyZXR1cm4KK30KKworLy9pbnQgbGlieGxfZ2V0X21heF9ub2RlcyhsaWJ4bF9j dHggKmN0eCk7CitmdW5jIChDdHggKkNvbnRleHQpIEdldE1heE5vZGVzKCkgKG1heE5vZGVzIGlu dCwgZXJyIGVycm9yKSB7CisJZXJyID0gQ3R4LkNoZWNrT3BlbigpCisJaWYgZXJyICE9IG5pbCB7 CisJCXJldHVybgorCX0KKwlyZXQgOj0gQy5saWJ4bF9nZXRfbWF4X25vZGVzKEN0eC5jdHgpCisJ aWYgcmV0IDwgMCB7CisJCWVyciA9IEVycm9yKC1yZXQpCisJCXJldHVybgorCX0KKwltYXhOb2Rl cyA9IGludChyZXQpCisJcmV0dXJuCit9CisKKy8vaW50IGxpYnhsX2dldF9mcmVlX21lbW9yeShs aWJ4bF9jdHggKmN0eCwgdWludDY0X3QgKm1lbWtiKTsKK2Z1bmMgKEN0eCAqQ29udGV4dCkgR2V0 RnJlZU1lbW9yeSgpIChtZW1rYiB1aW50NjQsIGVyciBlcnJvcikgeworCWVyciA9IEN0eC5DaGVj a09wZW4oKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4KKwl9CisJdmFyIGNtZW0gQy51aW50 NjRfdAorCXJldCA6PSBDLmxpYnhsX2dldF9mcmVlX21lbW9yeShDdHguY3R4LCAmY21lbSkKKwor CWlmIHJldCA8IDAgeworCQllcnIgPSBFcnJvcigtcmV0KQorCQlyZXR1cm4KKwl9CisKKwltZW1r YiA9IHVpbnQ2NChjbWVtKQorCXJldHVybgorCit9CisKKy8vaW50IGxpYnhsX2dldF9waHlzaW5m byhsaWJ4bF9jdHggKmN0eCwgbGlieGxfcGh5c2luZm8gKnBoeXNpbmZvKQorZnVuYyAoQ3R4ICpD b250ZXh0KSBHZXRQaHlzaW5mbygpIChwaHlzaW5mbyAqUGh5c2luZm8sIGVyciBlcnJvcikgewor CWVyciA9IEN0eC5DaGVja09wZW4oKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4KKwl9CisJ dmFyIGNwaHlzIEMubGlieGxfcGh5c2luZm8KKworCXJldCA6PSBDLmxpYnhsX2dldF9waHlzaW5m byhDdHguY3R4LCAmY3BoeXMpCisKKwlpZiByZXQgPCAwIHsKKwkJZXJyID0gRXJyb3IocmV0KQor CQlyZXR1cm4KKwl9CisJcGh5c2luZm8gPSAmUGh5c2luZm97fQorCXBoeXNpbmZvLlRocmVhZHNQ ZXJDb3JlID0gdWludDMyKGNwaHlzLnRocmVhZHNfcGVyX2NvcmUpCisJcGh5c2luZm8uQ29yZXNQ ZXJTb2NrZXQgPSB1aW50MzIoY3BoeXMuY29yZXNfcGVyX3NvY2tldCkKKwlwaHlzaW5mby5NYXhD cHVJZCA9IHVpbnQzMihjcGh5cy5tYXhfY3B1X2lkKQorCXBoeXNpbmZvLk5yQ3B1cyA9IHVpbnQz MihjcGh5cy5ucl9jcHVzKQorCXBoeXNpbmZvLkNwdUtoej0gdWludDMyKGNwaHlzLmNwdV9raHop CisJcGh5c2luZm8uVG90YWxQYWdlcyA9IHVpbnQ2NChjcGh5cy50b3RhbF9wYWdlcykKKwlwaHlz aW5mby5GcmVlUGFnZXMgPSB1aW50NjQoY3BoeXMuZnJlZV9wYWdlcykKKwlwaHlzaW5mby5TY3J1 YlBhZ2VzID0gdWludDY0KGNwaHlzLnNjcnViX3BhZ2VzKQorCXBoeXNpbmZvLlNjcnViUGFnZXMg PSB1aW50NjQoY3BoeXMuc2NydWJfcGFnZXMpCisJcGh5c2luZm8uU2hhcmluZ0ZyZWVkUGFnZXMg PSB1aW50NjQoY3BoeXMuc2hhcmluZ19mcmVlZF9wYWdlcykKKwlwaHlzaW5mby5TaGFyaW5nVXNl ZEZyYW1lcyA9IHVpbnQ2NChjcGh5cy5zaGFyaW5nX3VzZWRfZnJhbWVzKQorCXBoeXNpbmZvLk5y Tm9kZXMgPSB1aW50MzIoY3BoeXMubnJfbm9kZXMpCisJcGh5c2luZm8uSHdDYXAgPSBjcGh5cy5o d19jYXAuQ1RvR28oKQorCXBoeXNpbmZvLkNhcEh2bSA9IGJvb2woY3BoeXMuY2FwX2h2bSkKKwlw aHlzaW5mby5DYXBIdm1EaXJlY3RpbyA9IGJvb2woY3BoeXMuY2FwX2h2bV9kaXJlY3RpbykKKwor CXJldHVybgorfQorCisvL2NvbnN0IGxpYnhsX3ZlcnNpb25faW5mbyogbGlieGxfZ2V0X3ZlcnNp b25faW5mbyhsaWJ4bF9jdHggKmN0eCk7CitmdW5jIChDdHggKkNvbnRleHQpIEdldFZlcnNpb25J bmZvKCkgKGluZm8gKlZlcnNpb25JbmZvLCBlcnIgZXJyb3IpIHsKKwllcnIgPSBDdHguQ2hlY2tP cGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQorCisJdmFyIGNpbmZvICpDLmxp YnhsX3ZlcnNpb25faW5mbworCisJY2luZm8gPSBDLmxpYnhsX2dldF92ZXJzaW9uX2luZm8oQ3R4 LmN0eCkKKworCWluZm8gPSAmVmVyc2lvbkluZm97fQorCWluZm8uWGVuVmVyc2lvbk1ham9yID0g aW50KGNpbmZvLnhlbl92ZXJzaW9uX21ham9yKQorCWluZm8uWGVuVmVyc2lvbk1pbm9yID0gaW50 KGNpbmZvLnhlbl92ZXJzaW9uX21pbm9yKQorCWluZm8uWGVuVmVyc2lvbkV4dHJhID0gQy5Hb1N0 cmluZyhjaW5mby54ZW5fdmVyc2lvbl9leHRyYSkKKwlpbmZvLkNvbXBpbGVyID0gQy5Hb1N0cmlu ZyhjaW5mby5jb21waWxlcikKKwlpbmZvLkNvbXBpbGVCeSA9IEMuR29TdHJpbmcoY2luZm8uY29t cGlsZV9ieSkKKwlpbmZvLkNvbXBpbGVEb21haW4gPSBDLkdvU3RyaW5nKGNpbmZvLmNvbXBpbGVf ZG9tYWluKQorCWluZm8uQ29tcGlsZURhdGUgPSBDLkdvU3RyaW5nKGNpbmZvLmNvbXBpbGVfZGF0 ZSkKKwlpbmZvLkNhcGFiaWxpdGllcyA9IEMuR29TdHJpbmcoY2luZm8uY2FwYWJpbGl0aWVzKQor CWluZm8uQ2hhbmdlc2V0ID0gQy5Hb1N0cmluZyhjaW5mby5jaGFuZ2VzZXQpCisJaW5mby5WaXJ0 U3RhcnQgPSB1aW50NjQoY2luZm8udmlydF9zdGFydCkKKwlpbmZvLlBhZ2VzaXplID0gaW50KGNp bmZvLnBhZ2VzaXplKQorCWluZm8uQ29tbWFuZGxpbmUgPSBDLkdvU3RyaW5nKGNpbmZvLmNvbW1h bmRsaW5lKQorCWluZm8uQnVpbGRJZCA9IEMuR29TdHJpbmcoY2luZm8uYnVpbGRfaWQpCisKKwly ZXR1cm4KK30KLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==