From mboxrd@z Thu Jan 1 00:00:00 1970 From: aq Subject: Re: [PATCH] pygrub improvements Date: Mon, 23 May 2005 10:27:46 +0900 Message-ID: <9cde8bff05052218272012c1ff@mail.gmail.com> References: <9cde8bff0505221825523c3508@mail.gmail.com> Reply-To: aq Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_2894_18102620.1116811666333" Return-path: In-Reply-To: <9cde8bff0505221825523c3508@mail.gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel List-Id: xen-devel@lists.xenproject.org ------=_Part_2894_18102620.1116811666333 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline hmm... sorry, i have pressed the send button by accidental. here is a patch of pygrub attached. On 5/23/05, aq wrote: > here is a patch for pygrub (tools/pygrub/src/pygrub), which provides: >=20 > - generalize grub menu display (by using constants for menu position and = size) > - support basic grub menu color > - correctly handle choosing menu item, even if menu size is less then > number of grub menu items > - allow user to quit pygrub by pressing 'q' > - few cleanups >=20 > Signed-off-by: Nguyen Anh Quynh >=20 > for those interested, here is a screenshot of the patched pygrub: > http://133.27.240.160/xen/pygrub2.png >=20 > $ diffstat pygrub3.patch > pygrub | 166 ++++++++++++++++++++++++++++++++++++----------------------= ------- > 1 files changed, 93 insertions(+), 73 deletions(-) >=20 > -- > regards, > aq >=20 --=20 regards, aq ------=_Part_2894_18102620.1116811666333 Content-Type: application/octet-stream; name="pygrub3.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pygrub3.patch" PT09PT0gdG9vbHMvcHlncnViL3NyYy9weWdydWIgMS4zIHZzIGVkaXRlZCA9PT09PQotLS0gMS4z L3Rvb2xzL3B5Z3J1Yi9zcmMvcHlncnViCTIwMDUtMDQtMjcgMTc6NTc6NDQgKzA5OjAwCisrKyBl ZGl0ZWQvdG9vbHMvcHlncnViL3NyYy9weWdydWIJMjAwNS0wNS0yMSAyMjozMzowOSArMDk6MDAK QEAgLTQsNiArNCw4IEBACiAjCiAjIENvcHlyaWdodCAyMDA1IFJlZCBIYXQsIEluYy4KICMgSmVy ZW15IEthdHogPGthdHpqQHJlZGhhdC5jb20+CisjIAorIyBDb3B5cmlnaHQgKEMpIDIwMDUgTmd1 eWVuIEFuaCBRdXluaCA8YXF1eW5oQGdtYWlsLmNvbT4KICMKICMgVGhpcyBzb2Z0d2FyZSBtYXkg YmUgZnJlZWx5IHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKICMgZ2Vu ZXJhbCBwdWJsaWMgbGljZW5zZS4KQEAgLTE2LDYwICsxOCw3MSBAQAogaW1wb3J0IG9zLCBzeXMs IHN0cmluZywgc3RydWN0LCB0ZW1wZmlsZQogaW1wb3J0IGxvZ2dpbmcKIAotaW1wb3J0IGN1cnNl cywgX2N1cnNlcywgY3Vyc2VzLndyYXBwZXIKK2ltcG9ydCBjdXJzZXMsIGN1cnNlcy53cmFwcGVy CiBpbXBvcnQgZ2V0b3B0CiAKLXN5cy5wYXRoID0gWyAnL3Vzci9saWIvcHl0aG9uJyBdICsgc3lz LnBhdGgKK3N5cy5wYXRoID0gc3lzLnBhdGggKyBbICcvdXNyL2xpYi9weXRob24nIF0KIAogaW1w b3J0IGdydWIuR3J1YkNvbmYKIGltcG9ydCBncnViLmZzeXMKIAogUFlHUlVCX1ZFUiA9IDAuMDIK K1NJWkVZID0gMTAKK1NJWkVYID0gNzQKK1RPUFkgPSAyCitUT1BYID0gMQogCi0KLWRlZiBkcmF3 X3dpbmRvdygpOgorZGVmIGRyYXdfd2luZG93KGNmKToKICAgICBzdGRzY3IgPSBjdXJzZXMuaW5p dHNjcigpCi0gICAgY3Vyc2VzLnVzZV9kZWZhdWx0X2NvbG9ycygpCisgICAgIyBjdXJzZXMudXNl X2RlZmF1bHRfY29sb3JzKCkKICAgICB0cnk6CiAgICAgICAgIGN1cnNlcy5jdXJzX3NldCgwKQog ICAgIGV4Y2VwdCBfY3Vyc2VzLmVycm9yOgogICAgICAgICBwYXNzCiAKLSAgICBzdGRzY3IuYWRk c3RyKDEsIDQsICJweUdSVUIgIHZlcnNpb24gJXMiICUoUFlHUlVCX1ZFUiwpKQorICAgIGNvbG9y ID0gY2YuZ2V0X2NvbG9yKCkKKyAgICBpZiBjb2xvciAhPSAic2VsZi5jb2xvciI6ICAjIHNob3cg Z3J1YiBtZW51IHdpdGggY29sb3IKKyAgICAgICAgaWYgY3Vyc2VzLmhhc19jb2xvcnMoKToKKyAg ICAgICAgICAgIGN1cnNlcy5zdGFydF9jb2xvcigpCisgICAgICAgICAgICBtZW51Y29sb3IgPSBj b2xvclswXQorICAgICAgICAgICAgaXRlbWNvbG9yID0gY29sb3JbMV0KKyAgICAgICAgICAgIGV4 ZWMoImN1cnNlcy5pbml0X3BhaXIoMSwgY3Vyc2VzLkNPTE9SXyVzLCBjdXJzZXMuQ09MT1JfJXMp IiAlKG1lbnVjb2xvclswXS51cHBlcigpLCBtZW51Y29sb3JbMV0udXBwZXIoKSkpCisgICAgICAg ICAgICBleGVjKCJjdXJzZXMuaW5pdF9wYWlyKDIsIGN1cnNlcy5DT0xPUl8lcywgY3Vyc2VzLkNP TE9SXyVzKSIgJShpdGVtY29sb3JbMF0udXBwZXIoKSwgaXRlbWNvbG9yWzFdLnVwcGVyKCkpKQor ICAgICAgICBlbHNlOgorICAgICAgICAgICAgY29sb3IgPSAic2VsZi5jb2xvciIKKworICAgIHN0 ZHNjci5hZGRzdHIoMSwgNCwgInB5R1JVQiB2ZXJzaW9uICVzIiAlKFBZR1JVQl9WRVIsKSkKIAot ICAgIHdpbiA9IGN1cnNlcy5uZXd3aW4oMTAsIDc0LCAyLCAxKQorICAgIHdpbiA9IGN1cnNlcy5u ZXd3aW4oU0laRVksIFNJWkVYLCBUT1BZLCBUT1BYKQogICAgIHdpbi5ib3goKQogICAgIHdpbi5y ZWZyZXNoKCkKIAotICAgIHN0ZHNjci5hZGRzdHIoMTIsIDUsICJVc2UgdGhlIFUgYW5kIEQga2V5 cyB0byBzZWxlY3Qgd2hpY2ggZW50cnkgaXMgaGlnaGxpZ2h0ZWQuIikKLSAgICBzdGRzY3IuYWRk c3RyKDEzLCA1LCAiUHJlc3MgZW50ZXIgdG8gYm9vdCB0aGUgc2VsZWN0ZWQgT1MuICdlJyB0byBl ZGl0IHRoZSIpCi0gICAgc3Rkc2NyLmFkZHN0cigxNCwgNSwgImNvbW1hbmRzIGJlZm9yZSBib290 aW5nLCAnYScgdG8gbW9kaWZ5IHRoZSBrZXJuZWwgYXJndW1lbnRzICIpCi0gICAgc3Rkc2NyLmFk ZHN0cigxNSwgNSwgImJlZm9yZSBib290aW5nLCBvciAnYycgZm9yIGEgY29tbWFuZCBsaW5lLiIp Ci0gICAgc3Rkc2NyLmFkZGNoKDEyLCAxMywgY3Vyc2VzLkFDU19VQVJST1cpCi0gICAgc3Rkc2Ny LmFkZGNoKDEyLCAxOSwgY3Vyc2VzLkFDU19EQVJST1cpCi0gICAgKHksIHgpID0gc3Rkc2NyLmdl dG1heHl4KCkKLSAgICBzdGRzY3IubW92ZSh5IC0gMSwgeCAtIDEpCisgICAgc3Rkc2NyLmFkZHN0 cihTSVpFWSArIFRPUFksIFRPUFggKyA0LCAiVXNlIHRoZSBVIGFuZCBEIGtleXMgdG8gc2VsZWN0 IHdoaWNoIGVudHJ5IGlzIGhpZ2hsaWdodGVkLiIpCisgICAgc3Rkc2NyLmFkZHN0cihUT1BZICsg U0laRVkgKyAxLCBUT1BYICsgNCwgIlByZXNzIGVudGVyIHRvIGJvb3QgdGhlIHNlbGVjdGVkIE9T LiAnZScgdG8gZWRpdCB0aGUiKQorICAgIHN0ZHNjci5hZGRzdHIoVE9QWSArIFNJWkVZICsgMiwg VE9QWCArIDQsICJjb21tYW5kcyBiZWZvcmUgYm9vdGluZywgJ2EnIHRvIG1vZGlmeSB0aGUga2Vy bmVsIGFyZ3VtZW50cyAiKQorICAgIHN0ZHNjci5hZGRzdHIoVE9QWSArIFNJWkVZICsgMywgVE9Q WCArIDQsICJiZWZvcmUgYm9vdGluZywgb3IgJ2MnIGZvciBhIGNvbW1hbmQgbGluZS4iKQorICAg IHN0ZHNjci5hZGRzdHIoVE9QWSArIFNJWkVZICsgNCwgVE9QWCArIDQsICJQcmVzcyAncScgdG8g cXVpdC4iKQorICAgIHN0ZHNjci5hZGRjaChUT1BZICsgU0laRVksIFRPUFggKyAxMiwgY3Vyc2Vz LkFDU19VQVJST1cpCisgICAgc3Rkc2NyLmFkZGNoKFRPUFkgKyBTSVpFWSwgVE9QWCArIDE4LCBj dXJzZXMuQUNTX0RBUlJPVykKIAogICAgIHN0ZHNjci5yZWZyZXNoKCkKICAgICByZXR1cm4gKHN0 ZHNjciwgd2luKQogCi1kZWYgZmlsbF9lbnRyaWVzKHdpbiwgY2ZnLCBzZWxlY3RlZCk6Ci0gICAg eSA9IDAKK2RlZiBmaWxsX2VudHJpZXMod2luLCBjZmcsIHRvcCwgc2VsZWN0ZWQpOgorICAgIGNv bG9yID0gY2YuZ2V0X2NvbG9yKCkKKyAgICBpZiBjb2xvciAhPSAic2VsZi5jb2xvciI6ICAjIHNo b3cgZ3J1YiBtZW51IHdpdGggY29sb3IKKyAgICAgICAgbWVudWNvbG9yID0gY3Vyc2VzLmNvbG9y X3BhaXIoMSkKKyAgICAgICAgaXRlbWNvbG9yID0gY3Vyc2VzLmNvbG9yX3BhaXIoMikKKyAgICBl bHNlOgorICAgICAgICBtZW51Y29sb3IgPSAwCisgICAgICAgIGl0ZW1jb2xvciA9IGN1cnNlcy5B X1JFVkVSU0UKIAotICAgIGZvciBpIGluIGNmZy5pbWFnZXM6Ci0gICAgICAgIGlmICgwLCB5KSA+ IHdpbi5nZXRtYXh5eCgpOgotICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgaWYgeSA9PSBzZWxl Y3RlZDoKLSAgICAgICAgICAgIGF0dHIgPSBjdXJzZXMuQV9SRVZFUlNFCisgICAgZm9yIGkgaW4g cmFuZ2UodG9wLCBtaW4odG9wICsgU0laRVkgLSAyLCBsZW4oY2ZnLmltYWdlcykpKToKKyAgICAg ICAgaWYgaSA9PSBzZWxlY3RlZDoKKyAgICAgICAgICAgIGF0dHIgPSBpdGVtY29sb3IKICAgICAg ICAgZWxzZToKLSAgICAgICAgICAgIGF0dHIgPSAwCi0gICAgICAgIHdpbi5hZGRzdHIoeSArIDEs IDIsIGkudGl0bGUubGp1c3QoNzApLCBhdHRyKQotICAgICAgICB5ICs9IDEKLSAgICB3aW4ucmVm cmVzaCgpCi0KLWRlZiBzZWxlY3Qod2luLCBsaW5lKToKLSAgICB3aW4uYXR0cm9uKGN1cnNlcy5B X1JFVkVSU0UpCi0gICAgd2luLnJlZHJhd2xuKGxpbmUgKyAxLCAxKQorICAgICAgICAgICAgYXR0 ciA9IG1lbnVjb2xvcgorICAgICAgICB3aW4uYWRkc3RyKGkgLSB0b3AgKyAxLCAyLCAnICcgKyBj ZmcuaW1hZ2VzW2ldLnRpdGxlLmxqdXN0KFNJWkVYIC0gNSlbOlNJWkVYIC0gNV0sIGF0dHIpCiAg ICAgd2luLnJlZnJlc2goKQogCiBkZWYgaXNfZGlza19pbWFnZShmaWxlKToKQEAgLTc3LDE4ICs5 MCwxOSBAQAogICAgIGJ1ZiA9IG9zLnJlYWQoZmQsIDUxMikKICAgICBvcy5jbG9zZShmZCkKIAot ICAgIGlmIGxlbihidWYpID49IDUxMiBhbmQgc3RydWN0LnVucGFjaygiSCIsIGJ1ZlsweDFmZTog MHgyMDBdKSA9PSAoMHhhYWZmKToKKyAgICBpZiBsZW4oYnVmKSA9PSA1MTIgYW5kIHN0cnVjdC51 bnBhY2soIkgiLCBidWZbMHgxZmU6IDB4MjAwXSkgPT0gKDB4YWFmZik6CiAgICAgICAgIHJldHVy biBUcnVlCiAgICAgcmV0dXJuIEZhbHNlCiAKIGRlZiBnZXRfY29uZmlnKGZuKToKKwogICAgIGlm IG5vdCBvcy5hY2Nlc3MoZm4sIG9zLlJfT0spOgogICAgICAgICByYWlzZSBSdW50aW1lRXJyb3Is ICJVbmFibGUgdG8gYWNjZXNzICVzIiAlKGZuLCkKIAogICAgIGNmID0gZ3J1Yi5HcnViQ29uZi5H cnViQ29uZmlnRmlsZSgpCiAKICAgICBpZiBpc19kaXNrX2ltYWdlKGZuKToKLSAgICAgICAgcmFp c2UgUnVudGltZUVycm9yLCAiYXBwZWFycyB0byBiZSBhIGZ1bGwgZGlzayBpbWFnZS4uLiB1bmFi bGUgdG8gaGFuZGxlIHRoaXMgeWV0IgorICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IsICJBcHBl YXJzIHRvIGJlIGEgZnVsbCBkaXNrIGltYWdlLi4uIHVuYWJsZSB0byBoYW5kbGUgdGhpcyB5ZXQi CiAKICAgICAjIG9wZW4gdGhlIGltYWdlIGFuZCByZWFkIHRoZSBncnViIGNvbmZpZwogICAgIGZz ID0gTm9uZQpAQCAtMTAzLDcgKzExNyw3IEBACiAgICAgICAgIGVsaWYgZnMuZmlsZV9leGlzdCgi L2Jvb3QvZ3J1Yi9ncnViLmNvbmYiKToKICAgICAgICAgICAgIGdydWJmaWxlID0gIi9ib290L2dy dWIvZ3J1Yi5jb25mIgogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgUnVudGltZUVy cm9yLCAid2UgY291bGRuJ3QgZmluZCAvYm9vdC9ncnVie21lbnUubHN0LGdydWIuY29uZn0gIiAr IFwKKyAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvciwgIldlIGNvdWxkbid0IGZpbmQgL2Jv b3QvZ3J1Yi97bWVudS5sc3QsZ3J1Yi5jb25mfSAiICsgXAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiaW4gdGhlIGltYWdlIHByb3ZpZGVkLiBoYWx0ISIKICAgICAgICAgZiA9IGZz Lm9wZW5fZmlsZShncnViZmlsZSkKICAgICAgICAgYnVmID0gZi5yZWFkKCkKQEAgLTEzNiwyNCAr MTUwLDI4IEBACiBkZWYgbWFpbihjZiA9IE5vbmUpOgogICAgIG15dGltZSA9IDAKIAotICAgIChz dGRzY3IsIHdpbikgPSBkcmF3X3dpbmRvdygpCisgICAgKHN0ZHNjciwgd2luKSA9IGRyYXdfd2lu ZG93KGNmKQogICAgIHN0ZHNjci50aW1lb3V0KDEwMDApCiAgICAgc2VsZWN0ZWQgPSBjZi5kZWZh dWx0CisgICAgdG9wID0gMAorICAgIHN0ZHNjci5hZGRzdHIoU0laRVkgKyBUT1BZICsgOCwgVE9Q WCArIDQsICJXaWxsIGJvb3Qgc2VsZWN0ZWQgZW50cnkgaW4gJTJkIHNlY29uZHMiCisgICAgICAg ICAgICAgICAgICAlKGludChjZi50aW1lb3V0KSAtIG15dGltZSkpCiAgICAgCiAgICAgd2hpbGUg KG15dGltZSA8IGludChjZi50aW1lb3V0KSk6Ci0gICAgICAgIGlmIGNmLnRpbWVvdXQgIT0gLTEg YW5kIG15dGltZSAhPSAtMTogCi0gICAgICAgICAgICBzdGRzY3IuYWRkc3RyKDIwLCA1LCAiV2ls bCBib290IHNlbGVjdGVkIGVudHJ5IGluICUyZCBzZWNvbmRzIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAlKGludChjZi50aW1lb3V0KSAtIG15dGltZSkpCi0gICAgICAgIGVsc2U6Ci0gICAg ICAgICAgICBzdGRzY3IuYWRkc3RyKDIwLCA1LCAiICIgKiA4MCkKICAgICAgICAgICAgIAotICAg ICAgICBmaWxsX2VudHJpZXMod2luLCBjZiwgc2VsZWN0ZWQpCisgICAgICAgIGZpbGxfZW50cmll cyh3aW4sIGNmLCB0b3AsIHNlbGVjdGVkKQogICAgICAgICBjID0gc3Rkc2NyLmdldGNoKCkKLSAg ICAgICAgaWYgbXl0aW1lICE9IC0xOgotICAgICAgICAgICAgbXl0aW1lICs9IDEKLSMgICAgICAg IGlmIGMgPT0gb3JkKCdxJyk6Ci0jICAgICAgICAgICAgc2VsZWN0ZWQgPSAtMQotIyAgICAgICAg ICAgIGJyZWFrCisgICAgICAgIGlmIChjID09IC0xKToKKyAgICAgICAgICAgIGlmIG15dGltZSAh PSAtMToKKyAgICAgICAgICAgICAgICBteXRpbWUgKz0gMQorICAgICAgICAgICAgICAgIHN0ZHNj ci5hZGRzdHIoU0laRVkgKyBUT1BZICsgOCwgVE9QWCArIDQsICJXaWxsIGJvb3Qgc2VsZWN0ZWQg ZW50cnkgaW4gJTJkIHNlY29uZHMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlKGlu dChjZi50aW1lb3V0KSAtIG15dGltZSkpCisgICAgICAgIGVsaWYgbXl0aW1lICE9IC0xOgorICAg ICAgICAgICAgc3Rkc2NyLmFkZHN0cihTSVpFWSArIFRPUFkgKyA4LCBUT1BYICsgNCwgIiAiICog ODApCisgICAgICAgICAgICBteXRpbWUgPSAtMQorICAgICAgICBpZiBjID09IG9yZCgncScpOgor ICAgICAgICAgICBzZWxlY3RlZCA9IC0xCisgICAgICAgICAgIGJyZWFrCiAgICAgICAgIGVsaWYg YyA9PSBvcmQoJ2MnKToKICAgICAgICAgICAgICMgRklYTUU6IG5lZWRzIHRvIGdvIHRvIGNvbW1h bmQgbGluZSBtb2RlCiAgICAgICAgICAgICBjb250aW51ZQpAQCAtMTY0LDMwICsxODIsMzYgQEAK ICAgICAgICAgICAgICMgRklYTUU6IG5lZWRzIHRvIGdvIHRvIGVkaXQgbW9kZQogICAgICAgICAg ICAgY29udGludWUKICAgICAgICAgZWxpZiBjIGluIChjdXJzZXMuS0VZX0VOVEVSLCBvcmQoJ1xu JyksIG9yZCgnXHInKSk6Ci0gICAgICAgICAgICBicmVhaworICAgICAgICAgICAgaWYgbm90IGNm LmltYWdlc1tzZWxlY3RlZF0uZ2V0X2tlcm5lbCgpID09IE5vbmU6ICAgICMgaXMgdGhpcyBhbiBp bGxlZ2FsIGtlcm5lbCA/CisgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgZWxpZiBjID09 IGN1cnNlcy5LRVlfVVA6Ci0gICAgICAgICAgICBteXRpbWUgPSAtMQotICAgICAgICAgICAgc2Vs ZWN0ZWQgLT0gMQorICAgICAgICAgICAgaWYgc2VsZWN0ZWQgPT0gdG9wOgorICAgICAgICAgICAg ICAgIGlmIHRvcCA+IDA6CisgICAgICAgICAgICAgICAgICAgICMgYm91bmQgYXQgdGhlIHRvcAor ICAgICAgICAgICAgICAgICAgICB0b3AgLT0gMQorICAgICAgICAgICAgICAgICAgICBzZWxlY3Rl ZCA9IHRvcAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxlY3RlZCAtPSAx CiAgICAgICAgIGVsaWYgYyA9PSBjdXJzZXMuS0VZX0RPV046Ci0gICAgICAgICAgICBteXRpbWUg PSAtMQotICAgICAgICAgICAgc2VsZWN0ZWQgKz0gMQotICAgICAgICBlbHNlOgotICAgICAgICAg ICAgcGFzcworICAgICAgICAgICAgaWYgc2VsZWN0ZWQgPT0gbGVuKGNmLmltYWdlcykgLSAxOgor ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBzZWxlY3RlZCA9PSB0b3Ag KyBTSVpFWSAtIDM6CisgICAgICAgICAgICAgICAgaWYgdG9wICsgU0laRVkgLSAyIDwgbGVuKGNm LmltYWdlcyk6CisgICAgICAgICAgICAgICAgICAgICMgYm91bmQgYXQgdGhlIGJvdHRvbQorICAg ICAgICAgICAgICAgICAgICB0b3AgKz0xCisgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkID0g dG9wICsgU0laRVkgLSAzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGVj dGVkICs9IDEKIAotICAgICAgICAjIGJvdW5kIGF0IHRoZSB0b3AgYW5kIGJvdHRvbQotICAgICAg ICBpZiBzZWxlY3RlZCA8IDA6Ci0gICAgICAgICAgICBzZWxlY3RlZCA9IDAKLSAgICAgICAgZWxp ZiBzZWxlY3RlZCA+PSBsZW4oY2YuaW1hZ2VzKToKLSAgICAgICAgICAgIHNlbGVjdGVkID0gbGVu KGNmLmltYWdlcykgLSAxCi0KLSAgICBpZiBzZWxlY3RlZCA+PSAwOgotICAgICAgICByZXR1cm4g c2VsZWN0ZWQKKyAgICByZXR1cm4gc2VsZWN0ZWQKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9f IjoKICAgICBzZWwgPSBOb25lCisgICAgY2YgPSBOb25lCiAgICAgCiAgICAgZGVmIHJ1bl9tYWlu KHNjciwgKmFyZ3MpOgogICAgICAgICBnbG9iYWwgc2VsCisgICAgICAgIGdsb2JhbCBjZgogICAg ICAgICBzZWwgPSBtYWluKGNmKQogCiAgICAgZGVmIHVzYWdlKCk6CkBAIC0yMjksMTMgKzI1Mywx NSBAQAogICAgIGNmID0gZ2V0X2NvbmZpZyhmaWxlKQogICAgIGlmIGludGVyYWN0aXZlOgogICAg ICAgICBjdXJzZXMud3JhcHBlcihydW5fbWFpbikKKyAgICAgICAgaWYgc2VsID09IC0xOiAgICMg dXNlciBoYXMgY2hvc2VuIHRvIHF1aXQKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCiAgICAgZWxz ZToKICAgICAgICAgc2VsID0gY2YuZGVmYXVsdAogCiAgICAgIyBzZXQgdGhlIGVudHJ5IHRvIGJv b3QgYXMgcmVxdWVzdGVkCiAgICAgaWYgZW50cnkgaXMgbm90IE5vbmU6CiAgICAgICAgIGlkeCA9 IGdldF9lbnRyeV9pZHgoY2YsIGVudHJ5KQotICAgICAgICBpZiBpZHggaXMgbm90IE5vbmUgYW5k IGlkeCA+IDAgYW5kIGlkeCA8IGxlbihjZi5pbWFnZXMpOgorICAgICAgICBpZiBpZHggaXMgbm90 IE5vbmUgYW5kIGlkeCA+PSAwIGFuZCBpZHggPCBsZW4oY2YuaW1hZ2VzKToKICAgICAgICAgICAg IHNlbCA9IGlkeAogCiAgICAgaW1nID0gY2YuaW1hZ2VzW3NlbF0KQEAgLTI0NCwzNSArMjcwLDI5 IEBACiAgICAgaWYgaW1nLmluaXRyZDoKICAgICAgICAgcHJpbnQgIiAgaW5pdHJkOiAlcyIgJShp bWcuaW5pdHJkWzFdLCkKIAotICAgIGlmIGlzX2Rpc2tfaW1hZ2UoZmlsZSk6Ci0gICAgICAgIHJh aXNlIFJ1bnRpbWVFcnJvciwgInVuYWJsZSB0byBoYW5kbGUgZnVsbCBkaXNrIGltYWdlcyB5ZXQi Ci0KICAgICAjIHJlYWQgdGhlIGtlcm5lbCBhbmQgaW5pdHJkIG9udG8gdGhlIGhvc3RmcwogICAg IGZzID0gTm9uZQogICAgIGZvciBmc3R5cGUgaW4gZ3J1Yi5mc3lzLmZzdHlwZXMudmFsdWVzKCk6 CiAgICAgICAgIGlmIGZzdHlwZS5zbmlmZl9tYWdpYyhmaWxlKToKICAgICAgICAgICAgIGZzID0g ZnN0eXBlLm9wZW5fZnMoZmlsZSkKICAgICAgICAgICAgIGJyZWFrCi0KLSAgICBpZiBmcyBpcyBO b25lOgotICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IsICJVbmFibGUgdG8gb3BlbiBmaWxlc3lz dGVtIgorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvciwgIlVuYWJsZSB0byBv cGVuIGZpbGVzeXN0ZW0gb3IgZmlsZXN5c3RlbSBub3Qgc3VwcG9ydGVkIgogCiAgICAga2VybmVs ID0gZnMub3Blbl9maWxlKGltZy5rZXJuZWxbMV0sKS5yZWFkKCkKICAgICAodGZkLCBmbikgPSB0 ZW1wZmlsZS5ta3N0ZW1wKHByZWZpeD0idm1saW51ei4iKQogICAgIG9zLndyaXRlKHRmZCwga2Vy bmVsKQogICAgIG9zLmNsb3NlKHRmZCkKLSAgICBzeHAgPSAibGludXggKGtlcm5lbCAlcykiICUo Zm4sKQorICAgIHN4cCA9ICJsaW51eCAoa2VybmVsICVzKSAiICUoZm4sKQogCiAgICAgaWYgaW1n LmluaXRyZDoKICAgICAgICAgaW5pdHJkID0gZnMub3Blbl9maWxlKGltZy5pbml0cmRbMV0sKS5y ZWFkKCkKICAgICAgICAgKHRmZCwgZm4pID0gdGVtcGZpbGUubWtzdGVtcChwcmVmaXg9ImluaXRy ZC4iKQogICAgICAgICBvcy53cml0ZSh0ZmQsIGluaXRyZCkKICAgICAgICAgb3MuY2xvc2UodGZk KQotICAgICAgICBzeHAgKz0gIihyYW1kaXNrICVzKSIgJShmbiwpCi0gICAgZWxzZToKLSAgICAg ICAgaW5pdHJkID0gTm9uZQotICAgIHN4cCArPSAiKGFyZ3MgJyVzJykiICUoaW1nLmFyZ3MsKQor ICAgICAgICBzeHAgKz0gIihyYW1kaXNrICVzKSAiICUoZm4sKQorCisgICAgc3hwICs9ICIoYXJn cyAnJXMnKVxuIiAlKGltZy5hcmdzLCkKIAogICAgIHN5cy5zdGRvdXQuZmx1c2goKQogICAgIG9z LndyaXRlKGZkLCBzeHApCi0gICAgCg== ------=_Part_2894_18102620.1116811666333 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel ------=_Part_2894_18102620.1116811666333--