From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ronald Rojas Subject: [PATCH v4 03/14] golang/xenlight: Add host-related functionality Date: Thu, 16 Mar 2017 15:08:39 -0400 Message-ID: <1489691330-17695-3-git-send-email-ronladred@gmail.com> References: <1489691330-17695-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: <1489691330-17695-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 ZSBsYXN0IHZlcnNpb24KCi0gVXNlZCBkZWZlciBmb3IgbGlieGxfcGh5c2luZm9fZGlzcG9zZQoK LSBGb3JtYXRpbmcgZml4ZXMKCkNDOiB4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpDQzogZ2Vvcmdl LmR1bmxhcEBjaXRyaXguY29tCkNDOiBpYW4uamFja3NvbkBldS5jaXRyaXguY29tCkNDOiB3ZWku bGl1MkBjaXRyaXguY29tCi0tLQotLS0KIHRvb2xzL2dvbGFuZy94ZW5saWdodC94ZW5saWdodC5n byB8IDIwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNo YW5nZWQsIDIwMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZ29sYW5nL3hlbmxp Z2h0L3hlbmxpZ2h0LmdvIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3hlbmxpZ2h0LmdvCmluZGV4 IGE5OWQ5ZDMuLjc4NWVhYWYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2dvbGFuZy94ZW5saWdodC94ZW5s aWdodC5nbworKysgYi90b29scy9nb2xhbmcveGVubGlnaHQveGVubGlnaHQuZ28KQEAgLTEwNiw2 ICsxMDYsMTAzIEBAIHR5cGUgQ29udGV4dCBzdHJ1Y3QgewogCWN0eCAqQy5saWJ4bF9jdHgKIH0K IAordHlwZSBId2NhcCBbXUMudWludDMyX3QKKworZnVuYyAoY2h3Y2FwIEMubGlieGxfaHdjYXAp IENUb0dvKCkgKGdod2NhcCBId2NhcCkgeworCS8vIEFsbG9jIGEgR28gc2xpY2UgZm9yIHRoZSBi eXRlcworCXNpemUgOj0gOAorCWdod2NhcCA9IG1ha2UoW11DLnVpbnQzMl90LCBzaXplKQorCisJ Ly8gTWFrZSBhIHNsaWNlIHBvaW50aW5nIHRvIHRoZSBDIGFycmF5CisJbWFwc2xpY2UgOj0gKCpb MSA8PCAzMF1DLnVpbnQzMl90KSh1bnNhZmUuUG9pbnRlcigmY2h3Y2FwWzBdKSlbOnNpemU6c2l6 ZV0KKworCS8vIEFuZCBjb3B5IHRoZSBDIGFycmF5IGludG8gdGhlIEdvIGFycmF5CisJY29weShn aHdjYXAsIG1hcHNsaWNlKQorCisJcmV0dXJuCit9CisKKy8qCisgKiBUeXBlczogSURMCisgKgor ICogRklYTUU6IEdlbmVyYXRlIHRoZXNlIGF1dG9tYXRpY2FsbHkgZnJvbSB0aGUgSURMCisgKi8K KwordHlwZSBQaHlzaW5mbyBzdHJ1Y3QgeworCVRocmVhZHNQZXJDb3JlICAgIHVpbnQzMgorCUNv cmVzUGVyU29ja2V0ICAgIHVpbnQzMgorCU1heENwdUlkICAgICAgICAgIHVpbnQzMgorCU5yQ3B1 cyAgICAgICAgICAgIHVpbnQzMgorCUNwdUtoeiAgICAgICAgICAgIHVpbnQzMgorCVRvdGFsUGFn ZXMgICAgICAgIHVpbnQ2NAorCUZyZWVQYWdlcyAgICAgICAgIHVpbnQ2NAorCVNjcnViUGFnZXMg ICAgICAgIHVpbnQ2NAorCU91dHN0YW5kaW5nUGFnZXMgIHVpbnQ2NAorCVNoYXJpbmdGcmVlZFBh Z2VzIHVpbnQ2NAorCVNoYXJpbmdVc2VkRnJhbWVzIHVpbnQ2NAorCU5yTm9kZXMgICAgICAgICAg IHVpbnQzMgorCUh3Q2FwICAgICAgICAgICAgIEh3Y2FwCisJQ2FwSHZtICAgICAgICAgICAgYm9v bAorCUNhcEh2bURpcmVjdGlvICAgIGJvb2wKK30KKworZnVuYyAoY3BoeXMgKkMubGlieGxfcGh5 c2luZm8pIHRvR28oKSAocGh5c2luZm8gKlBoeXNpbmZvKSB7CisKKwlwaHlzaW5mbyA9ICZQaHlz aW5mb3t9CisJcGh5c2luZm8uVGhyZWFkc1BlckNvcmUgPSB1aW50MzIoY3BoeXMudGhyZWFkc19w ZXJfY29yZSkKKwlwaHlzaW5mby5Db3Jlc1BlclNvY2tldCA9IHVpbnQzMihjcGh5cy5jb3Jlc19w ZXJfc29ja2V0KQorCXBoeXNpbmZvLk1heENwdUlkID0gdWludDMyKGNwaHlzLm1heF9jcHVfaWQp CisJcGh5c2luZm8uTnJDcHVzID0gdWludDMyKGNwaHlzLm5yX2NwdXMpCisJcGh5c2luZm8uQ3B1 S2h6ID0gdWludDMyKGNwaHlzLmNwdV9raHopCisJcGh5c2luZm8uVG90YWxQYWdlcyA9IHVpbnQ2 NChjcGh5cy50b3RhbF9wYWdlcykKKwlwaHlzaW5mby5GcmVlUGFnZXMgPSB1aW50NjQoY3BoeXMu ZnJlZV9wYWdlcykKKwlwaHlzaW5mby5TY3J1YlBhZ2VzID0gdWludDY0KGNwaHlzLnNjcnViX3Bh Z2VzKQorCXBoeXNpbmZvLlNjcnViUGFnZXMgPSB1aW50NjQoY3BoeXMuc2NydWJfcGFnZXMpCisJ cGh5c2luZm8uU2hhcmluZ0ZyZWVkUGFnZXMgPSB1aW50NjQoY3BoeXMuc2hhcmluZ19mcmVlZF9w YWdlcykKKwlwaHlzaW5mby5TaGFyaW5nVXNlZEZyYW1lcyA9IHVpbnQ2NChjcGh5cy5zaGFyaW5n X3VzZWRfZnJhbWVzKQorCXBoeXNpbmZvLk5yTm9kZXMgPSB1aW50MzIoY3BoeXMubnJfbm9kZXMp CisJcGh5c2luZm8uSHdDYXAgPSBjcGh5cy5od19jYXAuQ1RvR28oKQorCXBoeXNpbmZvLkNhcEh2 bSA9IGJvb2woY3BoeXMuY2FwX2h2bSkKKwlwaHlzaW5mby5DYXBIdm1EaXJlY3RpbyA9IGJvb2wo Y3BoeXMuY2FwX2h2bV9kaXJlY3RpbykKKworCXJldHVybgorfQorCit0eXBlIFZlcnNpb25JbmZv IHN0cnVjdCB7CisJWGVuVmVyc2lvbk1ham9yIGludAorCVhlblZlcnNpb25NaW5vciBpbnQKKwlY ZW5WZXJzaW9uRXh0cmEgc3RyaW5nCisJQ29tcGlsZXIgICAgICAgIHN0cmluZworCUNvbXBpbGVC eSAgICAgICBzdHJpbmcKKwlDb21waWxlRG9tYWluICAgc3RyaW5nCisJQ29tcGlsZURhdGUgICAg IHN0cmluZworCUNhcGFiaWxpdGllcyAgICBzdHJpbmcKKwlDaGFuZ2VzZXQgICAgICAgc3RyaW5n CisJVmlydFN0YXJ0ICAgICAgIHVpbnQ2NAorCVBhZ2VzaXplICAgICAgICBpbnQKKwlDb21tYW5k bGluZSAgICAgc3RyaW5nCisJQnVpbGRJZCAgICAgICAgIHN0cmluZworfQorCitmdW5jIChjaW5m byAqQy5saWJ4bF92ZXJzaW9uX2luZm8pIHRvR28oKSAoaW5mbyAqVmVyc2lvbkluZm8pIHsKKwlp bmZvID0gJlZlcnNpb25JbmZve30KKwlpbmZvLlhlblZlcnNpb25NYWpvciA9IGludChjaW5mby54 ZW5fdmVyc2lvbl9tYWpvcikKKwlpbmZvLlhlblZlcnNpb25NaW5vciA9IGludChjaW5mby54ZW5f dmVyc2lvbl9taW5vcikKKwlpbmZvLlhlblZlcnNpb25FeHRyYSA9IEMuR29TdHJpbmcoY2luZm8u eGVuX3ZlcnNpb25fZXh0cmEpCisJaW5mby5Db21waWxlciA9IEMuR29TdHJpbmcoY2luZm8uY29t cGlsZXIpCisJaW5mby5Db21waWxlQnkgPSBDLkdvU3RyaW5nKGNpbmZvLmNvbXBpbGVfYnkpCisJ aW5mby5Db21waWxlRG9tYWluID0gQy5Hb1N0cmluZyhjaW5mby5jb21waWxlX2RvbWFpbikKKwlp bmZvLkNvbXBpbGVEYXRlID0gQy5Hb1N0cmluZyhjaW5mby5jb21waWxlX2RhdGUpCisJaW5mby5D YXBhYmlsaXRpZXMgPSBDLkdvU3RyaW5nKGNpbmZvLmNhcGFiaWxpdGllcykKKwlpbmZvLkNoYW5n ZXNldCA9IEMuR29TdHJpbmcoY2luZm8uY2hhbmdlc2V0KQorCWluZm8uVmlydFN0YXJ0ID0gdWlu dDY0KGNpbmZvLnZpcnRfc3RhcnQpCisJaW5mby5QYWdlc2l6ZSA9IGludChjaW5mby5wYWdlc2l6 ZSkKKwlpbmZvLkNvbW1hbmRsaW5lID0gQy5Hb1N0cmluZyhjaW5mby5jb21tYW5kbGluZSkKKwlp bmZvLkJ1aWxkSWQgPSBDLkdvU3RyaW5nKGNpbmZvLmJ1aWxkX2lkKQorCisJcmV0dXJuCit9CisK IC8qCiAgKiBDb250ZXh0CiAgKi8KQEAgLTE2MCwzICsyNTcsMTA2IEBAIGZ1bmMgKEN0eCAqQ29u dGV4dCkgQ2hlY2tPcGVuKCkgKGVyciBlcnJvcikgewogCX0KIAlyZXR1cm4KIH0KKworLy9pbnQg bGlieGxfZ2V0X21heF9jcHVzKGxpYnhsX2N0eCAqY3R4KTsKK2Z1bmMgKEN0eCAqQ29udGV4dCkg R2V0TWF4Q3B1cygpIChtYXhDcHVzIGludCwgZXJyIGVycm9yKSB7CisJZXJyID0gQ3R4LkNoZWNr T3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybgorCX0KKworCXJldCA6PSBDLmxpYnhs X2dldF9tYXhfY3B1cyhDdHguY3R4KQorCWlmIHJldCA8IDAgeworCQllcnIgPSBFcnJvcigtcmV0 KQorCQlyZXR1cm4KKwl9CisJbWF4Q3B1cyA9IGludChyZXQpCisJcmV0dXJuCit9CisKKy8vaW50 IGxpYnhsX2dldF9vbmxpbmVfY3B1cyhsaWJ4bF9jdHggKmN0eCk7CitmdW5jIChDdHggKkNvbnRl eHQpIEdldE9ubGluZUNwdXMoKSAob25DcHVzIGludCwgZXJyIGVycm9yKSB7CisJZXJyID0gQ3R4 LkNoZWNrT3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybgorCX0KKworCXJldCA6PSBD LmxpYnhsX2dldF9vbmxpbmVfY3B1cyhDdHguY3R4KQorCWlmIHJldCA8IDAgeworCQllcnIgPSBF cnJvcigtcmV0KQorCQlyZXR1cm4KKwl9CisJb25DcHVzID0gaW50KHJldCkKKwlyZXR1cm4KK30K KworLy9pbnQgbGlieGxfZ2V0X21heF9ub2RlcyhsaWJ4bF9jdHggKmN0eCk7CitmdW5jIChDdHgg KkNvbnRleHQpIEdldE1heE5vZGVzKCkgKG1heE5vZGVzIGludCwgZXJyIGVycm9yKSB7CisJZXJy ID0gQ3R4LkNoZWNrT3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybgorCX0KKwlyZXQg Oj0gQy5saWJ4bF9nZXRfbWF4X25vZGVzKEN0eC5jdHgpCisJaWYgcmV0IDwgMCB7CisJCWVyciA9 IEVycm9yKC1yZXQpCisJCXJldHVybgorCX0KKwltYXhOb2RlcyA9IGludChyZXQpCisJcmV0dXJu Cit9CisKKy8vaW50IGxpYnhsX2dldF9mcmVlX21lbW9yeShsaWJ4bF9jdHggKmN0eCwgdWludDY0 X3QgKm1lbWtiKTsKK2Z1bmMgKEN0eCAqQ29udGV4dCkgR2V0RnJlZU1lbW9yeSgpIChtZW1rYiB1 aW50NjQsIGVyciBlcnJvcikgeworCWVyciA9IEN0eC5DaGVja09wZW4oKQorCWlmIGVyciAhPSBu aWwgeworCQlyZXR1cm4KKwl9CisJdmFyIGNtZW0gQy51aW50NjRfdAorCXJldCA6PSBDLmxpYnhs X2dldF9mcmVlX21lbW9yeShDdHguY3R4LCAmY21lbSkKKworCWlmIHJldCA8IDAgeworCQllcnIg PSBFcnJvcigtcmV0KQorCQlyZXR1cm4KKwl9CisKKwltZW1rYiA9IHVpbnQ2NChjbWVtKQorCXJl dHVybgorCit9CisKKy8vaW50IGxpYnhsX2dldF9waHlzaW5mbyhsaWJ4bF9jdHggKmN0eCwgbGli eGxfcGh5c2luZm8gKnBoeXNpbmZvKQorZnVuYyAoQ3R4ICpDb250ZXh0KSBHZXRQaHlzaW5mbygp IChwaHlzaW5mbyAqUGh5c2luZm8sIGVyciBlcnJvcikgeworCWVyciA9IEN0eC5DaGVja09wZW4o KQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4KKwl9CisJdmFyIGNwaHlzIEMubGlieGxfcGh5 c2luZm8KKwlDLmxpYnhsX3BoeXNpbmZvX2luaXQoJmNwaHlzKQorCisJcmV0IDo9IEMubGlieGxf Z2V0X3BoeXNpbmZvKEN0eC5jdHgsICZjcGh5cykKKworCWlmIHJldCA8IDAgeworCQllcnIgPSBF cnJvcihyZXQpCisJCXJldHVybgorCX0KKwlwaHlzaW5mbyA9IGNwaHlzLnRvR28oKQorCUMubGli eGxfcGh5c2luZm9fZGlzcG9zZSgmY3BoeXMpCisKKwlyZXR1cm4KK30KKworLy9jb25zdCBsaWJ4 bF92ZXJzaW9uX2luZm8qIGxpYnhsX2dldF92ZXJzaW9uX2luZm8obGlieGxfY3R4ICpjdHgpOwor ZnVuYyAoQ3R4ICpDb250ZXh0KSBHZXRWZXJzaW9uSW5mbygpIChpbmZvICpWZXJzaW9uSW5mbywg ZXJyIGVycm9yKSB7CisJZXJyID0gQ3R4LkNoZWNrT3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJ CXJldHVybgorCX0KKworCXZhciBjaW5mbyAqQy5saWJ4bF92ZXJzaW9uX2luZm8KKworCWNpbmZv ID0gQy5saWJ4bF9nZXRfdmVyc2lvbl9pbmZvKEN0eC5jdHgpCisKKwlpbmZvID0gY2luZm8udG9H bygpCisKKwlyZXR1cm4KK30KLS0gCjIuNy4zCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==