From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v2 7/7] hotplug/Linux: add iscsi block hotplug script Date: Mon, 18 Mar 2013 12:47:11 +0100 Message-ID: <1363607231-35228-8-git-send-email-roger.pau@citrix.com> References: <1363607231-35228-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1363607231-35228-1-git-send-email-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Ian Jackson , Ian Campbell , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org VGhpcyBob3RwbHVnIHNjcmlwdCBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCBJRVQgYW5kIE5ldEJTRCBp U0NTSSB0YXJnZXRzLAp3aXRob3V0IGF1dGhlbnRpY2F0aW9uLgoKQXV0aGVudGljYXRpb24gcGFy YW1ldGVycywgaW5jbHVkaW5nIHRoZSBwYXNzd29yZCBhcmUgcGFzc2VkIGFzCnBhcmFtZXRlcnMg dG8gaXNjc2lhZG0sIHdoaWNoIGlzIG5vdCByZWNvbW1lbmRlZCBiZWNhdXNlIG90aGVyIHVzZXJz Cm9mIHRoZSBzeXN0ZW0gY2FuIHNlZSB0aGVtLiBUaGlzIHBhcmFtZXRlcnMgY291bGQgYWxzbyBi ZSBzZXQgYnkKZWRpdGluZyBhIGNvcnJlc3BvbmRpbmcgZmlsZSBkaXJlY3RseSwgYnV0IHRoZSBs b2NhdGlvbiBvZiB0aGlzIGZpbGUKc2VlbXMgdG8gYmUgZGlmZmVyZW50IGRlcGVuZGluZyBvbiB0 aGUgZGlzdHJpYnV0aW9uIHVzZWQuCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxy b2dlci5wYXVAY2l0cml4LmNvbT4KQ2M6IElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJp eC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AY2l0cml4LmNvbT4KLS0tCkNoYW5n ZXMgc2luY2UgdjE6CiAqIEFkZCAtZSB0byBzY3JpcHQgc2hlYmFuZywgYW5kIHVzZSAnc2V0ICtl JyBpZiB3ZSBrbm93IGhvdHBsdWcKICAgZXhlY3V0aW9uIG1pZ2h0IGZhaWwuCi0tLQogdG9vbHMv aG90cGx1Zy9MaW51eC9NYWtlZmlsZSAgICB8ICAgIDEgKwogdG9vbHMvaG90cGx1Zy9MaW51eC9i bG9jay1pc2NzaSB8ICAyNzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiAyIGZpbGVzIGNoYW5nZWQsIDI3OSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2hvdHBsdWcvTGludXgvYmxvY2staXNjc2kKCmRpZmYgLS1n aXQgYS90b29scy9ob3RwbHVnL0xpbnV4L01ha2VmaWxlIGIvdG9vbHMvaG90cGx1Zy9MaW51eC9N YWtlZmlsZQppbmRleCAwNjA1NTU5Li45OGM3NzM4IDEwMDY0NAotLS0gYS90b29scy9ob3RwbHVn L0xpbnV4L01ha2VmaWxlCisrKyBiL3Rvb2xzL2hvdHBsdWcvTGludXgvTWFrZWZpbGUKQEAgLTIx LDYgKzIxLDcgQEAgWEVOX1NDUklQVFMgKz0gYmxrdGFwCiBYRU5fU0NSSVBUUyArPSB4ZW4taG90 cGx1Zy1jbGVhbnVwCiBYRU5fU0NSSVBUUyArPSBleHRlcm5hbC1kZXZpY2UtbWlncmF0ZQogWEVO X1NDUklQVFMgKz0gdnNjc2kKK1hFTl9TQ1JJUFRTICs9IGJsb2NrLWlzY3NpCiBYRU5fU0NSSVBU X0RBVEEgPSB4ZW4tc2NyaXB0LWNvbW1vbi5zaCBsb2NraW5nLnNoIGxvZ2dpbmcuc2gKIFhFTl9T Q1JJUFRfREFUQSArPSB4ZW4taG90cGx1Zy1jb21tb24uc2ggeGVuLW5ldHdvcmstY29tbW9uLnNo IHZpZi1jb21tb24uc2gKIFhFTl9TQ1JJUFRfREFUQSArPSBibG9jay1jb21tb24uc2gKZGlmZiAt LWdpdCBhL3Rvb2xzL2hvdHBsdWcvTGludXgvYmxvY2staXNjc2kgYi90b29scy9ob3RwbHVnL0xp bnV4L2Jsb2NrLWlzY3NpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhZGZh NTIKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9ob3RwbHVnL0xpbnV4L2Jsb2NrLWlzY3NpCkBA IC0wLDAgKzEsMjc4IEBACisjIS9iaW4vc2ggLWUKKyMKKyMgT3Blbi1pU0NTSSBYZW4gYmxvY2sg ZGV2aWNlIGhvdHBsdWcgc2NyaXB0CisjCisjIEF1dGhvciBSb2dlciBQYXUgTW9ubsOpIDxyb2dl ci5wYXVAY2l0cml4LmNvbT4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkCisj IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMi4xIG9ubHkuIHdpdGgg dGhlIHNwZWNpYWwKKyMgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIGZpbGUgTElD RU5TRS4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKK3JlbW92ZV9sYWJlbCgpCit7Cisg ICAgZWNobyAkMSB8IHNlZCAicy9eXCgiJDIiXCkvLyIKK30KKworY2hlY2tfdG9vbHMoKQorewor ICAgIGlmICEgdHlwZSBpc2NzaWFkbSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICAgIGVj aG8gIlVuYWJsZSB0byBmaW5kIGlzY3NpYWRtIHRvb2wiCisgICAgICAgIHJldHVybiAxCisgICAg ZmkKKyAgICBpZiBbICIkbXVsdGlwYXRoIiA9ICJ5IiBdICYmICEgdHlwZSBtdWx0aXBhdGggPiAv ZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAgICBlY2hvICJVbmFibGUgdG8gZmluZCBtdWx0aXBh dGgiCisgICAgICAgIHJldHVybiAxCisgICAgZmkKK30KKworIyBTZXRzIHRoZSBmb2xsb3dpbmcg Z2xvYmFsIHZhcmlhYmxlcyBiYXNlZCBvbiB0aGUgcGFyYW1zIGZpZWxkIHBhc3NlZCBpbiBhcwor IyBhIHBhcmFtZXRlcjogaXFuLCBwb3J0YWwsIGF1dGhfbWV0aG9kLCB1c2VyLCBtdWx0aXBhdGgs IHBhc3N3b3JkCitwYXJzZV90YXJnZXQoKQoreworICAgICMgc2V0IG11bHRpcGF0aCBkZWZhdWx0 IHZhbHVlCisgICAgbXVsdGlwYXRoPSJuIgorICAgIGZvciBwYXJhbSBpbiAkKGVjaG8gIiQxIiB8 IHRyICIsIiAiXG4iKQorICAgIGRvCisgICAgICAgIGlmIFsgLW4gIiRwYXNzd29yZCIgXTsgdGhl bgorICAgICAgICAgICAgcGFzc3dvcmQ9IiRwYXNzd29yZCwkcGFyYW0iCisgICAgICAgICAgICBj b250aW51ZQorICAgICAgICBmaQorICAgICAgICBjYXNlICRwYXJhbSBpbgorICAgICAgICBpcW49 KikKKyAgICAgICAgICAgIGlxbj0kKHJlbW92ZV9sYWJlbCAkcGFyYW0gImlxbj0iKQorICAgICAg ICAgICAgOzsKKyAgICAgICAgcG9ydGFsPSopCisgICAgICAgICAgICBwb3J0YWw9JChyZW1vdmVf bGFiZWwgJHBhcmFtICJwb3J0YWw9IikKKyAgICAgICAgICAgIDs7CisgICAgICAgIGF1dGhfbWV0 aG9kPSopCisgICAgICAgICAgICBhdXRoX21ldGhvZD0kKHJlbW92ZV9sYWJlbCAkcGFyYW0gImF1 dGhfbWV0aG9kPSIpCisgICAgICAgICAgICA7OworICAgICAgICB1c2VyPSopCisgICAgICAgICAg ICB1c2VyPSQocmVtb3ZlX2xhYmVsICRwYXJhbSAidXNlcj0iKQorICAgICAgICAgICAgOzsKKyAg ICAgICAgbXVsdGlwYXRoPSopCisgICAgICAgICAgICBtdWx0aXBhdGg9JChyZW1vdmVfbGFiZWwg JHBhcmFtICJtdWx0aXBhdGg9IikKKyAgICAgICAgICAgIDs7CisgICAgICAgIHBhc3N3b3JkPSop CisgICAgICAgICAgICBwYXNzd29yZD0kKHJlbW92ZV9sYWJlbCAkcGFyYW0gInBhc3N3b3JkPSIp CisgICAgICAgICAgICA7OworICAgICAgICBlc2FjCisgICAgZG9uZQorICAgIGlmIFsgLXogIiRp cW4iIF0gfHwgWyAteiAiJHBvcnRhbCIgXTsgdGhlbgorICAgICAgICBlY2hvICJpcW49IGFuZCBw b3J0YWw9IGFyZSByZXF1aXJlZCBwYXJhbWV0ZXJzIgorICAgICAgICByZXR1cm4gMQorICAgIGZp CisgICAgaWYgWyAiJG11bHRpcGF0aCIgIT0gInkiIF0gJiYgWyAiJG11bHRpcGF0aCIgIT0gIm4i IF07IHRoZW4KKyAgICAgICAgZWNobyAibXVsdGlwYXRoIHZhbGlkIHZhbHVlcyBhcmUgeSBhbmQg biwgJG11bHRpcGF0aCBub3QgYSB2YWxpZCB2YWx1ZSIKKyAgICAgICAgcmV0dXJuIDEKKyAgICBm aQorICAgIHJldHVybiAwCit9CisKKyMgT3V0cHV0cyB0aGUgYmxvY2sgZGV2aWNlIG1ham9yOm1p bm9yCitkZXZpY2VfbWFqb3JfbWlub3IoKQoreworICAgIHN0YXQgLUwgLWMgJXQ6JVQgIiQxIgor fQorCisjIFNldHMgJGRldiB0byBwb2ludCB0byB0aGUgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0 aGUgdmFsdWUgaW4gaXFuCitmaW5kX2RldmljZSgpCit7CisgICAgd2hpbGUgWyAhIC1lIC9kZXYv ZGlzay9ieS1wYXRoLyoiJGlxbiItbHVuLTAgXTsgZG8KKyAgICAgICAgc2xlZXAgMC4xCisgICAg ZG9uZQorICAgIHNldCArZQorICAgIHNkZGV2PSQocmVhZGxpbmsgLWYgL2Rldi9kaXNrL2J5LXBh dGgvKiIkaXFuIi1sdW4tMCkKKyAgICBzZXQgLWUKKyAgICBpZiBbICEgLWIgIiRzZGRldiIgXTsg dGhlbgorICAgICAgICBlY2hvICJVbmFibGUgdG8gZmluZCBhdHRhY2hlZCBkZXZpY2UgcGF0aCIK KyAgICAgICAgcmV0dXJuIDEKKyAgICBmaQorICAgIGlmIFsgIiRtdWx0aXBhdGgiID0gInkiIF07 IHRoZW4KKyAgICAgICAgbWRldj0kKG11bHRpcGF0aCAtbGwgIiRzZGRldiIgfCBoZWFkIC0xIHwg YXdrICd7IHByaW50ICQxfScpCisgICAgICAgIGlmIFsgISAtYiAvZGV2L21hcHBlci8iJG1kZXYi IF07IHRoZW4KKyAgICAgICAgICAgIGVjaG8gIlVuYWJsZSB0byBmaW5kIGF0dGFjaGVkIGRldmlj ZSBtdWx0aXBhdGgiCisgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICBmaQorICAgICAgICBk ZXY9Ii9kZXYvbWFwcGVyLyRtZGV2IgorICAgIGVsc2UKKyAgICAgICAgZGV2PSIkc2RkZXYiCisg ICAgZmkKKyAgICByZXR1cm4gMAorfQorCisjIEF0dGFjaGVzIHRoZSB0YXJnZXQgJGlxbiBpbiAk cG9ydGFsIGFuZCBzZXRzICRkZXYgdG8gcG9pbnQgdG8gdGhlCisjIG11bHRpcGF0aCBkZXZpY2UK K2F0dGFjaCgpCit7CisgICAgc2V0ICtlCisgICAgaXNjc2lhZG0gLW0gbm9kZSAtLXRhcmdldG5h bWUgIiRpcW4iIC1wICIkcG9ydGFsIiAtLWxvZ2luID4gL2Rldi9udWxsIDI+JjEKKyAgICByYz0k PworICAgIHNldCAtZQorICAgIGlmIFsgJHJjIC1uZSAwIF07IHRoZW4KKyAgICAgICAgZWNobyAi VW5hYmxlIHRvIGNvbm5lY3QgdG8gdGFyZ2V0IgorICAgICAgICByZXR1cm4gMQorICAgIGZpCisg ICAgZmluZF9kZXZpY2UKKyAgICBpZiBbICQ/IC1uZSAwIF07IHRoZW4KKyAgICAgICAgZWNobyAi VW5hYmxlIHRvIGZpbmQgaVNDU0kgZGV2aWNlIgorICAgICAgICByZXR1cm4gMQorICAgIGZpCisg ICAgcmV0dXJuIDAKK30KKworIyBEaXNjb3ZlcnMgdGFyZ2V0cyBpbiAkcG9ydGFsIGFuZCBjaGVj a3MgdGhhdCAkaXFuIGlzIG9uZSBvZiB0aG9zZSB0YXJnZXRzCisjIEFsc28gc2V0cyB0aGUgYXV0 aCBwYXJhbWV0ZXJzIHRvIGF0dGFjaCB0aGUgZGV2aWNlCitwcmVwYXJlKCkKK3sKKyAgICAjIENo ZWNrIGlmIHRhcmdldCBpcyBhbHJlYWR5IG9wZW5lZAorICAgIHNldCArZQorICAgIGlzY3NpYWRt IC1tIHNlc3Npb24gMj4mMSB8IGdyZXAgLXEgIiRpcW4iCisgICAgcmM9JD8KKyAgICBzZXQgLWUK KyAgICBpZiBbICRyYyAtZXEgMCBdOyB0aGVuCisgICAgICAgIGVjaG8gIkRldmljZSBhbHJlYWR5 IG9wZW5lZCIKKyAgICAgICAgcmV0dXJuIDEKKyAgICBmaQorICAgICMgRGlzY292ZXIgcG9ydGFs IHRhcmdldHMKKyAgICBzZXQgK2UKKyAgICBpc2NzaWFkbSAtbSBkaXNjb3ZlcnkgLXQgc3QgLXAg JHBvcnRhbCAyPiYxIHwgZ3JlcCAtcSAiJGlxbiIKKyAgICByYz0kPworICAgIHNldCAtZQorICAg IGlmIFsgJHJjIC1uZSAwIF07IHRoZW4KKyAgICAgICAgZWNobyAiTm8gbWF0Y2hpbmcgdGFyZ2V0 IGlxbiBmb3VuZCIKKyAgICAgICAgcmV0dXJuIDEKKyAgICBmaQorICAgICMgU2V0IGF1dGggbWV0 aG9kIGlmIG5lY2Vzc2FyeQorICAgIGlmIFsgLW4gIiRhdXRoX21ldGhvZCIgXSB8fCBbIC1uICIk dXNlciIgXSB8fCBbIC1uICIkcGFzc3dvcmQiIF07IHRoZW4KKyAgICAgICAgc2V0ICtlCisgICAg ICAgIGlzY3NpYWRtIC1tIG5vZGUgLS10YXJnZXRuYW1lICIkaXFuIiAtcCAiJHBvcnRhbCIgLS1v cD11cGRhdGUgLS1uYW1lIFwKKyAgICAgICAgICAgIG5vZGUuc2Vzc2lvbi5hdXRoLmF1dGhtZXRo b2QgLS12YWx1ZT0iJGF1dGhfbWV0aG9kIiBcCisgICAgICAgICAgICA+IC9kZXYvbnVsbCAyPiYx ICYmIFwKKyAgICAgICAgaXNjc2lhZG0gLW0gbm9kZSAtLXRhcmdldG5hbWUgIiRpcW4iIC1wICIk cG9ydGFsIiAtLW9wPXVwZGF0ZSAtLW5hbWUgXAorICAgICAgICAgICAgbm9kZS5zZXNzaW9uLmF1 dGgudXNlcm5hbWUgLS12YWx1ZT0iJHVzZXIiIFwKKyAgICAgICAgICAgID4gL2Rldi9udWxsIDI+ JjEgJiYgXAorICAgICAgICBpc2NzaWFkbSAtbSBub2RlIC0tdGFyZ2V0bmFtZSAiJGlxbiIgLXAg IiRwb3J0YWwiIC0tb3A9dXBkYXRlIC0tbmFtZSBcCisgICAgICAgICAgICBub2RlLnNlc3Npb24u YXV0aC5wYXNzd29yZCAtLXZhbHVlPSIkcGFzc3dvcmQiIFwKKyAgICAgICAgICAgID4gL2Rldi9u dWxsIDI+JjEKKyAgICAgICAgcmM9JD8KKyAgICAgICAgc2V0IC1lCisgICAgICAgIGlmIFsgJHJj IC1uZSAwIF07IHRoZW4KKyAgICAgICAgICAgIGVjaG8gIlVuYWJsZSB0byBzZXQgYXV0aGVudGlj YXRpb24gcGFyYW1ldGVycyIKKyAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgIGZpCisgICAg ZmkKKyAgICByZXR1cm4gMAorfQorCisjIEF0dGFjaGVzIHRoZSBkZXZpY2UgYW5kIHdyaXRlcyB4 ZW5zdG9yZSBiYWNrZW5kIGVudHJpZXMgdG8gY29ubmVjdAorIyB0aGUgZGV2aWNlCithZGQoKQor eworICAgIGxvY2FsYXR0YWNoCisgICAgaWYgWyAkPyAtbmUgMCBdOyB0aGVuCisgICAgICAgIGVj aG8gIkZhaWxlZCB0byBhdHRhY2ggZGV2aWNlIgorICAgICAgICByZXR1cm4gMQorICAgIGZpCisg ICAgbW09JChkZXZpY2VfbWFqb3JfbWlub3IgIiRkZXYiKQorICAgIHhlbnN0b3JlLXdyaXRlICIk QkFDS0VORF9QQVRIL3BoeXNpY2FsLWRldmljZSIgIiRtbSIKKyAgICB4ZW5zdG9yZS13cml0ZSAi JEJBQ0tFTkRfUEFUSC9wYXJhbXMiICIkZGV2IgorICAgIHJldHVybiAwCit9CisKKyMgRGlzY29u bmVjdHMgdGhlIGRldmljZQorcmVtb3ZlKCkKK3sKKyAgICBmaW5kX2RldmljZQorICAgIGlmIFsg JD8gLW5lIDAgXTsgdGhlbgorICAgICAgICBlY2hvICJVbmFibGUgdG8gZmluZCBkZXZpY2UiCisg ICAgICAgIHJldHVybiAxCisgICAgZmkKKyAgICBzZXQgK2UKKyAgICBpc2NzaWFkbSAtbSBub2Rl IC0tdGFyZ2V0bmFtZSAiJGlxbiIgLXAgIiRwb3J0YWwiIC0tbG9nb3V0ID4gL2Rldi9udWxsIDI+ JjEKKyAgICByYz0kPworICAgIHNldCAtZQorICAgIGlmIFsgJHJjIC1uZSAwIF07IHRoZW4KKyAg ICAgICAgZWNobyAiVW5hYmxlIHRvIGRpc2Nvbm5lY3QgdGFyZ2V0IgorICAgICAgICByZXR1cm4g MQorICAgIGZpCisgICAgcmV0dXJuIDAKK30KKworIyBSZW1vdmVzIHRoZSBhdXRoIHBhcmFtcyBz ZXQgYnkgcHJlcGFyZQordW5wcmVwYXJlKCkKK3sKKyAgICBpZiBbIC1uICIkYXV0aF9tZXRob2Qi IF0gfHwgWyAtbiAiJHVzZXIiIF0gfHwgWyAtbiAiJHBhc3N3b3JkIiBdOyB0aGVuCisgICAgICAg IHNldCArZQorICAgICAgICBpc2NzaWFkbSAtbSBub2RlIC0tdGFyZ2V0bmFtZSAiJGlxbiIgLXAg IiRwb3J0YWwiIC0tb3A9ZGVsZXRlIC0tbmFtZSBcCisgICAgICAgICAgICBub2RlLnNlc3Npb24u YXV0aC5hdXRobWV0aG9kID4gL2Rldi9udWxsIDI+JjEKKyAgICAgICAgaXNjc2lhZG0gLW0gbm9k ZSAtLXRhcmdldG5hbWUgIiRpcW4iIC1wICIkcG9ydGFsIiAtLW9wPWRlbGV0ZSAtLW5hbWUgXAor ICAgICAgICAgICAgbm9kZS5zZXNzaW9uLmF1dGgudXNlcm5hbWUgPiAvZGV2L251bGwgMj4mMQor ICAgICAgICBpc2NzaWFkbSAtbSBub2RlIC0tdGFyZ2V0bmFtZSAiJGlxbiIgLXAgIiRwb3J0YWwi IC0tb3A9ZGVsZXRlIC0tbmFtZSBcCisgICAgICAgICAgICBub2RlLnNlc3Npb24uYXV0aC5wYXNz d29yZCA+IC9kZXYvbnVsbCAyPiYxCisgICAgICAgIHNldCAtZQorICAgIGZpCit9CisKKyMgQXR0 YWNoZXMgdGhlIGRldmljZSB0byB0aGUgY3VycmVudCBkb21haW4sIGFuZCB3cml0ZXMgdGhlIHJl c3VsdGluZworIyBibG9jayBkZXZpY2UgdG8geGVuc3RvcmUKK2xvY2FsYXR0YWNoKCkKK3sKKyAg ICBhdHRhY2gKKyAgICBpZiBbICQ/IC1uZSAwIF07IHRoZW4KKyAgICAgICAgZWNobyAiRmFpbGVk IHRvIGF0dGFjaCBkZXZpY2UiCisgICAgICAgIHJldHVybiAxCisgICAgZmkKKyAgICB4ZW5zdG9y ZS13cml0ZSAiJEhPVFBMVUdfUEFUSC9wZGV2IiAiJGRldiIKKyAgICByZXR1cm4gMAorfQorCitj b21tYW5kPSQxCitzZXQgK2UKK3RhcmdldD0kKHhlbnN0b3JlLXJlYWQgJEhPVFBMVUdfUEFUSC9w YXJhbXMpCitzZXQgLWUKK2lmIFsgLXogIiR0YXJnZXQiIF07IHRoZW4KKyAgICBlY2hvICJObyBp bmZvcm1hdGlvbiBhYm91dCB0aGUgdGFyZ2V0IgorICAgIGV4aXQgMQorZmkKKworY2hlY2tfdG9v bHMgfHwgZXhpdCAxCisKK3BhcnNlX3RhcmdldCAiJHRhcmdldCIKKworY2FzZSAkY29tbWFuZCBp bgorcHJlcGFyZSkKKyAgICBwcmVwYXJlCisgICAgZXhpdCAkPworICAgIDs7CithZGQpCisgICAg YWRkCisgICAgZXhpdCAkPworICAgIDs7CityZW1vdmUpCisgICAgcmVtb3ZlCisgICAgZXhpdCAk PworICAgIDs7Cit1bnByZXBhcmUpCisgICAgdW5wcmVwYXJlCisgICAgZXhpdCAkPworICAgIDs7 Citsb2NhbGF0dGFjaCkKKyAgICBsb2NhbGF0dGFjaAorICAgIGV4aXQgJD8KKyAgICA7OworbG9j YWxkZXRhY2gpCisgICAgcmVtb3ZlCisgICAgZXhpdCAkPworICAgIDs7Cit2ZXJzaW9uKQorICAg IHhlbnN0b3JlLXdyaXRlICIkSE9UUExVR19QQVRIL3ZlcnNpb24iICIyIgorICAgIGV4aXQgJD8K KyAgICA7OworZXNhYwotLSAKMS43LjcuNSAoQXBwbGUgR2l0LTI2KQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==