From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ronald Rojas Subject: [PATCH RFC 07/59] controller: Introduce basic Xen functionality Date: Wed, 28 Dec 2016 20:14:00 -0500 Message-ID: <1482974092-15891-7-git-send-email-ronladred@gmail.com> References: <1482974092-15891-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: <1482974092-15891-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 , Ian Jackson , Wei Liu , George Dunlap , George Dunlap List-Id: xen-devel@lists.xenproject.org RnJvbTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgoKUm91Z2gtYW5k LXJlYWR5IGV4ZWN1dGlvbiBvZiB4bCBjb21tYW5kcywgYnV0IHRoZXkgd29yaywgYW1hemluZ2x5 LgoKU2lnbmVkLW9mZi1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29t PgotLS0KIE1ha2VmaWxlICAgICB8ICAgMiArLQogbWFpbi5nbyAgICAgIHwgICAzICstCiB4ZW53 b3JrZXIuZ28gfCAyMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjM0IGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVud29ya2VyLmdvCgpkaWZmIC0tZ2l0 IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQppbmRleCAzMzJjOGQ5Li4xNmFmNTI4IDEwMDY0NAotLS0g YS9NYWtlZmlsZQorKysgYi9NYWtlZmlsZQpAQCAtNCw3ICs0LDcgQEAgQklOQUxMID0gJChCSU4p CiAuUEhPTlk6IGFsbAogYWxsOiAkKEJJTikKIAotY29udHJvbGxlcjogbWFpbi5nbyBwcm9jZXNz d29ya2VyLmdvCitjb250cm9sbGVyOiBtYWluLmdvIHByb2Nlc3N3b3JrZXIuZ28geGVud29ya2Vy LmdvCiAJZ28gYnVpbGQgLW8gJEAgJF4KIAogLlBIT05ZOiBjbGVhbgpkaWZmIC0tZ2l0IGEvbWFp bi5nbyBiL21haW4uZ28KaW5kZXggOTAzODhkZC4uMDRjODQ2NyAxMDA2NDQKLS0tIGEvbWFpbi5n bworKysgYi9tYWluLmdvCkBAIC03NSw3ICs3NSw4IEBAIGZ1bmMgbWFpbigpIHsKIAlXb3JrZXJz IDo9IFdvcmtlckxpc3QobWFrZShbXVdvcmtlclN0YXRlLCBjb3VudCkpCiAJCiAJZm9yIGkgPSAw OyBpPCBjb3VudDsgaSsrIHsKLQkJV29ya2Vyc1tpXS53ID0gJlByb2Nlc3NXb3JrZXJ7fQorCQkv L1dvcmtlcnNbaV0udyA9ICZQcm9jZXNzV29ya2Vye30KKwkJV29ya2Vyc1tpXS53ID0gJlhlbldv cmtlcnt9CiAJCVdvcmtlcnNbaV0udy5TZXRJZChpKQogCQkKIAkJV29ya2Vyc1tpXS53LkluaXQo V29ya2VyUGFyYW1ze1tdc3RyaW5neyJidXJud2FpdCIsICIyMCIsICIyMDAwMDAwMCJ9fSkKZGlm ZiAtLWdpdCBhL3hlbndvcmtlci5nbyBiL3hlbndvcmtlci5nbwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi42MDIzYzUwCi0tLSAvZGV2L251bGwKKysrIGIveGVud29ya2VyLmdv CkBAIC0wLDAgKzEsMjMxIEBACitwYWNrYWdlIG1haW4KKworaW1wb3J0ICgKKwkiZm10IgorCSJv cyIKKwkib3MvZXhlYyIKKwkiZW5jb2RpbmcvanNvbiIKKwkiYnVmaW8iCisJImlvIgorKQorCit0 eXBlIFhlbldvcmtlciBzdHJ1Y3QgeworCWlkIGludAorCXZtbmFtZSBzdHJpbmcKKwlkb21pZCBp bnQKKwljb25zb2xlQ21kICpleGVjLkNtZAorCWNvbnNvbGUgaW8uUmVhZENsb3NlcgorCWpzb25T dGFydGVkIGJvb2wKK30KKworLy8gV2UgaGF2ZSB0byBjYXBpdGFsaXplIHRoZSBlbGVtZW50IG5h bWVzIHNvIHRoYXQgdGhlIGpzb24gY2xhc3MgY2FuCisvLyBnZXQgYWNjZXNzIHRvIGl0OyBzbyBh bm5vdGF0ZSB0aGUgZWxlbWVudHMgc28gdGhleSBjb21lIG91dCBsb3dlcgorLy8gY2FzZQordHlw ZSBSdW1wUnVuQ29uZmlnQmxrIHN0cnVjdCB7CisJU291cmNlIHN0cmluZyAgICAgYGpzb246InNv dXJjZSJgCisJUGF0aCBzdHJpbmcgICAgICAgYGpzb246InBhdGgiYAorCUZzdHlwZSBzdHJpbmcg ICAgIGBqc29uOiJmc3R5cGUiYCAKKwlNb3VudHBvaW50IHN0cmluZyBganNvbjoibW91bnRwb2lu dCJgCit9CisKK3R5cGUgUnVtcFJ1bkNvbmZpZyBzdHJ1Y3QgeworCUJsayBSdW1wUnVuQ29uZmln QmxrIGBqc29uOiJibGsiYAorCUNtZGxpbmUgc3RyaW5nICAgICAgIGBqc29uOiJjbWRsaW5lImAK KwlIb3N0bmFtZSBzdHJpbmcgICAgICBganNvbjoiaG9zdG5hbWUiYAorfQorCitmdW5jICh3ICpY ZW5Xb3JrZXIpIFNldElkKGkgaW50KSB7CisJdy5pZCA9IGkKKwl3LnZtbmFtZSA9IGZtdC5TcHJp bnRmKCJ3b3JrZXItJWQiLCBpKQorCXcuZG9taWQgPSAtMSAvLyBJTlZBTElEIERPTUlECit9CisK K2Z1bmMgKHcgKlhlbldvcmtlcikgSW5pdChwIFdvcmtlclBhcmFtcykgKGVyciBlcnJvcikgewor CW1vY2sgOj0gZmFsc2UKKwkKKwkvLyBNYWtlIHhsIGNvbmZpZyBmaWxlCisJLy8gIG5hbWU9d29y a2VyLSQoaWQpCisKKwljZmdOYW1lIDo9IG9zLlRlbXBEaXIoKSsiL3NjaGVkYmVuY2gtIit3LnZt bmFtZSsiLmNmZyIKKworCWNmZywgZXJyIDo9IG9zLkNyZWF0ZShjZmdOYW1lKQorCS8vZGVmZXIg b3MuUmVtb3ZlKGNmZ05hbWUpCisKKwlpZiBlcnIgIT0gbmlsIHsKKwkJZm10LlByaW50ZigiRXJy b3IgY3JlYXRpbmcgY29uZmlnZmlsZSAlczogJXZcbiIsIGNmZ05hbWUsIGVycikKKwkJcmV0dXJu CisJfQorCisJZm10LkZwcmludGYoY2ZnLCAibmFtZSA9ICclcydcbiIsIHcudm1uYW1lKQorCWZt dC5GcHJpbnRmKGNmZywgImtlcm5lbCA9ICd3b3JrZXIteGVuLmltZydcbiIpCisJZm10LkZwcmlu dGYoY2ZnLCAibWVtb3J5ID0gMzJcbiIpCisJZm10LkZwcmludGYoY2ZnLCAidmNwdXMgPSAxXG4i KQorCWZtdC5GcHJpbnRmKGNmZywgIm9uX2NyYXNoID0gJ2Rlc3Ryb3knXG4iKQorCisJCisJLy8g eGwgY3JlYXRlIC1wIFtmaWxlbmFtZV0KKwl7CisJCWFyZ3MgOj0gW11zdHJpbmd7InhsIiwgImNy ZWF0ZSIsICItcCIsIGNmZ05hbWV9CisJCWlmIG1vY2sgeworCQkJYXJncyA9IGFwcGVuZChbXXN0 cmluZ3siZWNobyJ9LCBhcmdzLi4uKQorCQl9CisJCWUgOj0gZXhlYy5Db21tYW5kKGFyZ3NbMF0s IGFyZ3NbMTpdLi4uKQorCQkKKwkJZS5TdGRvdXQgPSBvcy5TdGRvdXQKKwkJZS5TdGRlcnIgPSBv cy5TdGRlcnIKKworCQllcnIgPSBlLlJ1bigpCisJCWlmIGVyciAhPSBuaWwgeworCQkJZm10LlBy aW50ZigiRXJyb3IgY3JlYXRpbmcgZG9tYWluOiAldlxuIiwgZXJyKQorCQkJcmV0dXJuCisJCX0K Kwl9CisKKwkvLyBHZXQgZG9taWQKKwl7CisJCXZhciBkb21pZFN0cmluZyBbXWJ5dGUKKwkJdmFy IGFyZ3MgW11zdHJpbmcKKwkJCisJCWlmIG1vY2sgeworCQkJYXJncyA9IFtdc3RyaW5neyJlY2hv IiwgIjIzMiJ9CisJCX0gZWxzZSB7CisJCQlhcmdzID0gW11zdHJpbmd7InhsIiwgImRvbWlkIiwg dy52bW5hbWV9CisJCX0KKwkJZSA6PSBleGVjLkNvbW1hbmQoYXJnc1swXSwgYXJnc1sxOl0uLi4p CisKKwkJZG9taWRTdHJpbmcsIGVyciA9IGUuT3V0cHV0KCkKKwkJaWYgZXJyICE9IG5pbCB7CisJ CQlmbXQuUHJpbnRmKCJFcnJvciBnZXR0aW5nIGRvbWlkOiAldlxuIiwgZXJyKQorCQkJcmV0dXJu CisJCX0KKworCQlfLCBlcnIgPSBmbXQuU3NjYW5mKHN0cmluZyhkb21pZFN0cmluZyksICIlZFxu IiwgJncuZG9taWQpCisJCWlmIGVyciAhPSBuaWwgeworCQkJZm10LlByaW50ZigiRXJyb3IgY29u dmVydGluZyBkb21pZDogJXZcbiIsIGVycikKKwkJCXJldHVybgorCQl9CisKKwkJZm10LlByaW50 ZigiICVzIGRvbWlkICVkXG4iLCB3LnZtbmFtZSwgdy5kb21pZCkKKwl9CisJCisJLy8gU2V0IHhl bnN0b3JlIGNvbmZpZworCXsKKwkJcmNmZyA6PSBSdW1wUnVuQ29uZmlneworCQkJQmxrOlJ1bXBS dW5Db25maWdCbGt7U291cmNlOiJkZXYiLAorCQkJCVBhdGg6InZpcnR1YWwiLAorCQkJCUZzdHlw ZToia2VybmZzIiwKKwkJCQlNb3VudHBvaW50OiIva2VybiJ9LAorCQkJSG9zdG5hbWU6dy52bW5h bWV9CisJCQorCQlyY2ZnLkNtZGxpbmUgPSAid29ya2VyLXhlbi5pbWciCisJCWZvciBfLCBhIDo9 IHJhbmdlIHAuQXJncyB7CisJCQlyY2ZnLkNtZGxpbmUgKz0gZm10LlNwcmludGYoIiAlcyIsIGEp CisJCX0KKworCQl2YXIgcmNmZ0J5dGVzIFtdYnl0ZQorCQorCQlyY2ZnQnl0ZXMsIGVyciA9IGpz b24uTWFyc2hhbChyY2ZnKQorCQlpZiBlcnIgIT0gbmlsIHsKKwkJCWZtdC5QcmludGYoIkVycm9y IG1hcnNoYWxsaW5nIHJ1bXBydW4ganNvbjogJXZcbiIsIGVycikKKwkJCXJldHVybgorCQl9CisK KwkJLy9mbXQuUHJpbnRmKCJqc29uOlxuJXNcbiIsIHN0cmluZyhyY2ZnQnl0ZXMpKQorCQlyY2Zn UGF0aCA6PSBmbXQuU3ByaW50ZigiL2xvY2FsL2RvbWFpbi8lZC9ydW1wcnVuL2NmZyIsIHcuZG9t aWQpCisKKwkJZm10LlByaW50ZigiV3JpdGluZyB0byAlcywganNvbiBjb25maWcgJXNcbiIsIHJj ZmdQYXRoLCByY2ZnQnl0ZXMpCisJCQorCQlhcmdzIDo9IFtdc3RyaW5neyJ4ZW5zdG9yZS13cml0 ZSIsIHJjZmdQYXRoLCBzdHJpbmcocmNmZ0J5dGVzKX0KKwkJaWYgbW9jayB7CisJCQlhcmdzID0g YXBwZW5kKFtdc3RyaW5neyJlY2hvIn0sIGFyZ3MuLi4pCisJCX0KKwkJZSA6PSBleGVjLkNvbW1h bmQoYXJnc1swXSwgYXJnc1sxOl0uLi4pCisJCQorCQllLlN0ZG91dCA9IG9zLlN0ZG91dAorCQll LlN0ZGVyciA9IG9zLlN0ZGVycgorCisJCWVyciA9IGUuUnVuKCkKKwkJaWYgZXJyICE9IG5pbCB7 CisJCQlmbXQuUHJpbnRmKCJFcnJvciB3cml0aW5nIGpzb24gaW50byB4ZW5zdG9yZTogJXZcbiIs IGVycikKKwkJCXJldHVybgorCQl9CisJfQorCQorCisJLy8gUnVuIGNvbnNvbGUgY29tbWFuZCwg YXR0YWNoIHRvIHcuY29uc29sZQorCXsKKwkJYXJncyA6PSBbXXN0cmluZ3sieGwiLCAiY29uc29s ZSIsIHcudm1uYW1lfQorCQlpZiBtb2NrIHsKKwkJCWFyZ3MgPSBhcHBlbmQoW11zdHJpbmd7ImVj aG8ifSwgYXJncy4uLikKKwkJfQorCQl3LmNvbnNvbGVDbWQgPSBleGVjLkNvbW1hbmQoYXJnc1sw XSwgYXJnc1sxOl0uLi4pCisKKwkJdy5jb25zb2xlLCBlcnIgPSB3LmNvbnNvbGVDbWQuU3Rkb3V0 UGlwZSgpCisJCWlmIGVyciAhPSBuaWwgeworCQkJZm10LlByaW50KCJDb25uZXRpbmcgdG8gc3Rk b3V0OiAiLCBlcnIpCisJCQlyZXR1cm4KKwkJfQorCisJCXcuY29uc29sZUNtZC5TdGFydCgpCisJ fQorCQorCXJldHVybgorfQorCisvLyBGSVhNRTogUmV0dXJuIGFuIGVycm9yCitmdW5jICh3ICpY ZW5Xb3JrZXIpIFNodXRkb3duKCkgeworCS8vIHhsIGRlc3Ryb3kgW3ZtbmFtZV0KKwllIDo9IGV4 ZWMuQ29tbWFuZCgieGwiLCAiZGVzdHJveSIsIHcudm1uYW1lKQorCisJZS5TdGRvdXQgPSBvcy5T dGRvdXQKKwllLlN0ZGVyciA9IG9zLlN0ZGVycgorCisJZXJyIDo9IGUuUnVuKCkKKwlpZiBlcnIg IT0gbmlsIHsKKwkJZm10LlByaW50ZigiRXJyb3IgZGVzdHJveWluZyBkb21haW46ICV2XG4iLCBl cnIpCisJCXJldHVybgorCX0KK30KKworLy8gRklYTUU6IFJldHVybiBhbiBlcnJvcgorZnVuYyAo dyAqWGVuV29ya2VyKSBQcm9jZXNzKHJlcG9ydCBjaGFuIFdvcmtlclJlcG9ydCwgZG9uZSBjaGFu IGJvb2wpIHsKKwltb2NrIDo9IGZhbHNlCisJCisJLy8geGwgdW5wYXVzZSBbdm1uYW1lXQorCWFy Z3MgOj0gW11zdHJpbmd7InhsIiwgInVucGF1c2UiLCB3LnZtbmFtZX0KKwlpZiBtb2NrIHsKKwkJ YXJncyA9IGFwcGVuZChbXXN0cmluZ3siZWNobyJ9LCBhcmdzLi4uKQorCX0KKwllIDo9IGV4ZWMu Q29tbWFuZChhcmdzWzBdLCBhcmdzWzE6XS4uLikKKworCWVyciA6PSBlLlJ1bigpCisJaWYgZXJy ICE9IG5pbCB7CisJCWZtdC5QcmludGYoIkVycm9yIHVucGF1c2luZyBkb21haW46ICV2XG4iLCBl cnIpCisJCXJldHVybgorCX0KKworCXNjYW5uZXIgOj0gYnVmaW8uTmV3U2Nhbm5lcih3LmNvbnNv bGUpCisKKwlmb3Igc2Nhbm5lci5TY2FuKCkgeworCQlzIDo9IHNjYW5uZXIuVGV4dCgpCisJCQor CQkvL2ZtdC5QcmludGxuKCJHb3QgdGhlc2UgYnl0ZXM6ICIsIHMpOworCisJCWlmIHcuanNvblN0 YXJ0ZWQgeworCQkJdmFyIHIgV29ya2VyUmVwb3J0CisJCQlqc29uLlVubWFyc2hhbChbXWJ5dGUo cyksICZyKQorCQkJci5JZCA9IHcuaWQKKwkJCXJlcG9ydCA8LSByCisJCX0gZWxzZSB7CisJCQlp ZiBzID09ICJTVEFSVCBKU09OIiB7CisJCQkJLy9mbXQuUHJpbnRsbigiR290IHRva2VuIHRvIHN0 YXJ0IHBhcnNpbmcganNvbiIpCisJCQkJdy5qc29uU3RhcnRlZCA9IHRydWUKKwkJCX0KKwkJfQor CX0KKworCWRvbmUgPC0gdHJ1ZQorCisJdy5jb25zb2xlQ21kLldhaXQoKQorfQorCi0tIAoyLjcu NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=