From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LEQ2Y-0005oB-6k for qemu-devel@nongnu.org; Sun, 21 Dec 2008 10:16:22 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LEQ2V-0005nz-ND for qemu-devel@nongnu.org; Sun, 21 Dec 2008 10:16:20 -0500 Received: from [199.232.76.173] (port=40631 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LEQ2V-0005nw-Ge for qemu-devel@nongnu.org; Sun, 21 Dec 2008 10:16:19 -0500 Received: from wf-out-1314.google.com ([209.85.200.174]:4687) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LEQ2U-0002Hx-U0 for qemu-devel@nongnu.org; Sun, 21 Dec 2008 10:16:19 -0500 Received: by wf-out-1314.google.com with SMTP id 27so1770377wfd.4 for ; Sun, 21 Dec 2008 07:16:17 -0800 (PST) Message-ID: Date: Sun, 21 Dec 2008 17:16:17 +0200 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_62844_17979756.1229872577480" Subject: [Qemu-devel] [PATCH] Add -prom-env support to PPC Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laurent Vivier , Aurelien Jarno , "qemu-devel@nongnu.org" ------=_Part_62844_17979756.1229872577480 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, This patch adds support for -prom-env command line option also for OpenBIOS/PPC. For example: qemu-system-ppc -prom-env 'boot-device=cdrom:1,\install\yaboot' -prom-env 'auto-boot?=false' OpenBIOS also needs a patch (attached). ------=_Part_62844_17979756.1229872577480 Content-Type: plain/text; name=ppc_use_prom_env.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fozt1vgi Content-Disposition: attachment; filename=ppc_use_prom_env.diff LS0tCiBody9tYWNfbnZyYW0uYyAgICB8ICAxMjYgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGh3L3BwY19tYWMuaCAgICAgIHwgICAgNCArLQog aHcvcHBjX29sZHdvcmxkLmMgfCAgICA0ICstCiAzIGZpbGVzIGNoYW5nZWQsIDEwNCBpbnNlcnRp b25zKCspLCAzMCBkZWxldGlvbnMoLSkKCkluZGV4OiBxZW11L2h3L21hY19udnJhbS5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIHFlbXUub3JpZy9ody9tYWNfbnZyYW0uYwkyMDA4LTEyLTE1IDE5OjM2OjU4LjAw MDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9tYWNfbnZyYW0uYwkyMDA4LTEyLTIxIDE0OjIwOjQ4 LjAwMDAwMDAwMCArMDAwMApAQCAtMjMsMTIgKzIzLDE2IEBACiAgKiBUSEUgU09GVFdBUkUuCiAg Ki8KICNpbmNsdWRlICJody5oIgorI2luY2x1ZGUgImZpcm13YXJlX2FiaS5oIgorI2luY2x1ZGUg InN5c2VtdS5oIgogI2luY2x1ZGUgInBwY19tYWMuaCIKIAorI2RlZmluZSBERUZfU1lTVEVNX1NJ WkUgMHhjMTAKKwogc3RydWN0IE1hY0lPTlZSQU1TdGF0ZSB7Ci0gICAgdGFyZ2V0X3BoeXNfYWRk cl90IHNpemU7CisgICAgdWludDMyX3Qgc2l6ZTsKICAgICBpbnQgbWVtX2luZGV4OwotICAgIHVp bnQ4X3QgZGF0YVsweDIwMDBdOworICAgIHVpbnQ4X3QgZGF0YVtOVlJBTV9TSVpFXTsKIH07CiAK IC8qIERpcmVjdCBhY2Nlc3MgdG8gTlZSQU0gKi8KQEAgLTM4LDcgKzQyLDcgQEAKICAgICB1aW50 MzJfdCByZXQ7CiAKICAgICAvLyAgICBwcmludGYoIiVzOiAlcCBhZGRyICUwNHhcbiIsIF9fZnVu Y19fLCBzLCBhZGRyKTsKLSAgICBpZiAoYWRkciA8IDB4MjAwMCkKKyAgICBpZiAoYWRkciA8IE5W UkFNX1NJWkUpCiAgICAgICAgIHJldCA9IHMtPmRhdGFbYWRkcl07CiAgICAgZWxzZQogICAgICAg ICByZXQgPSAtMTsKQEAgLTUxLDcgKzU1LDcgQEAKICAgICBNYWNJT05WUkFNU3RhdGUgKnMgPSBv cGFxdWU7CiAKICAgICAvLyAgICBwcmludGYoIiVzOiAlcCBhZGRyICUwNHggdmFsICUwMnhcbiIs IF9fZnVuY19fLCBzLCBhZGRyLCB2YWwpOwotICAgIGlmIChhZGRyIDwgMHgyMDAwKQorICAgIGlm IChhZGRyIDwgTlZSQU1fU0laRSkKICAgICAgICAgcy0+ZGF0YVthZGRyXSA9IHZhbDsKIH0KIApA QCAtNjEsNyArNjUsNyBAQAogewogICAgIE1hY0lPTlZSQU1TdGF0ZSAqcyA9IG9wYXF1ZTsKIAot ICAgIGFkZHIgPSAoYWRkciA+PiA0KSAmIDB4MWZmZjsKKyAgICBhZGRyID4+PSA0OwogICAgIHMt PmRhdGFbYWRkcl0gPSB2YWx1ZTsKICAgICAvLyAgICBwcmludGYoIm1hY2lvX252cmFtX3dyaXRl YiAlMDR4ID0gJTAyeFxuIiwgYWRkciwgdmFsdWUpOwogfQpAQCAtNzEsNyArNzUsNyBAQAogICAg IE1hY0lPTlZSQU1TdGF0ZSAqcyA9IG9wYXF1ZTsKICAgICB1aW50MzJfdCB2YWx1ZTsKIAotICAg IGFkZHIgPSAoYWRkciA+PiA0KSAmIDB4MWZmZjsKKyAgICBhZGRyID4+PSA0OwogICAgIHZhbHVl ID0gcy0+ZGF0YVthZGRyXTsKICAgICAvLyAgICBwcmludGYoIm1hY2lvX252cmFtX3JlYWRiICUw NHggPSAlMDJ4XG4iLCBhZGRyLCB2YWx1ZSk7CiAKQEAgLTkwLDE3ICs5NCwxNiBAQAogICAgICZt YWNpb19udnJhbV9yZWFkYiwKIH07CiAKLU1hY0lPTlZSQU1TdGF0ZSAqbWFjaW9fbnZyYW1faW5p dCAoaW50ICptZW1faW5kZXgsIHRhcmdldF9waHlzX2FkZHJfdCBzaXplKQorTWFjSU9OVlJBTVN0 YXRlICptYWNpb19udnJhbV9pbml0IChpbnQgKm1lbV9pbmRleCkKIHsKICAgICBNYWNJT05WUkFN U3RhdGUgKnM7CiAKICAgICBzID0gcWVtdV9tYWxsb2N6KHNpemVvZihNYWNJT05WUkFNU3RhdGUp KTsKICAgICBpZiAoIXMpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHMtPnNpemUgPSBzaXpl OworICAgIHMtPnNpemUgPSBOVlJBTV9TSVpFIDw8IDQ7CiAgICAgcy0+bWVtX2luZGV4ID0gY3B1 X3JlZ2lzdGVyX2lvX21lbW9yeSgwLCBudnJhbV9yZWFkLCBudnJhbV93cml0ZSwgcyk7CiAgICAg Km1lbV9pbmRleCA9IHMtPm1lbV9pbmRleDsKLQogICAgIHJldHVybiBzOwogfQogCkBAIC0xMTIs MjYgKzExNSwzNSBAQAogICAgIGNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1vcnkobWVtX2Jhc2Us IHMtPnNpemUsIHMtPm1lbV9pbmRleCk7CiB9CiAKLXN0YXRpYyB1aW50OF90IG52cmFtX2Noa3N1 bSAoY29uc3QgdWludDhfdCAqYnVmLCBpbnQgbikKKy8qIHNldCBhIHN5c3RlbSBNYWMgT1MgTlZS QU0gcGFydGl0aW9uICovCit2b2lkIHBtYWNfZm9ybWF0X252cmFtX3BhcnRpdGlvbiAoTWFjSU9O VlJBTVN0YXRlICpudnIpCiB7Ci0gICAgaW50IHN1bSwgaTsKLSAgICBzdW0gPSAwOwotICAgIGZv cihpID0gMDsgaSA8IG47IGkrKykKLSAgICAgICAgc3VtICs9IGJ1ZltpXTsKLSAgICByZXR1cm4g KHN1bSAmIDB4ZmYpICsgKHN1bSA+PiA4KTsKLX0KLQotLyogc2V0IGEgZnJlZSBNYWMgT1MgTlZS QU0gcGFydGl0aW9uICovCi12b2lkIHBtYWNfZm9ybWF0X252cmFtX3BhcnRpdGlvbiAoTWFjSU9O VlJBTVN0YXRlICpudnIsIGludCBsZW4pCi17Ci0gICAgdWludDhfdCAqYnVmOwotICAgIGNoYXIg cGFydGl0aW9uX25hbWVbMTJdID0gInd3d3d3d3d3d3d3dyI7Ci0KLSAgICBidWYgPSBudnItPmRh dGE7Ci0gICAgYnVmWzBdID0gMHg3ZjsgLyogZnJlZSBwYXJ0aXRpb24gbWFnaWMgKi8KLSAgICBi dWZbMV0gPSAwOyAvKiBjaGVja3N1bSAqLwotICAgIGJ1ZlsyXSA9IGxlbiA+PiA4OwotICAgIGJ1 ZlszXSA9IGxlbjsKLSAgICBtZW1jcHkoYnVmICsgNCwgcGFydGl0aW9uX25hbWUsIDEyKTsKLSAg ICBidWZbMV0gPSBudnJhbV9jaGtzdW0oYnVmLCAxNik7CisgICAgdW5zaWduZWQgaW50IGk7Cisg ICAgdWludDMyX3Qgc3RhcnQgPSAwLCBlbmQ7CisgICAgc3RydWN0IE9wZW5CSU9TX252cGFydF92 MSAqcGFydF9oZWFkZXI7CisKKyAgICAvLyBPcGVuQklPUyBudnJhbSB2YXJpYWJsZXMKKyAgICAv LyBWYXJpYWJsZSBwYXJ0aXRpb24KKyAgICBwYXJ0X2hlYWRlciA9IChzdHJ1Y3QgT3BlbkJJT1Nf bnZwYXJ0X3YxICopbnZyLT5kYXRhOworICAgIHBhcnRfaGVhZGVyLT5zaWduYXR1cmUgPSBPUEVO QklPU19QQVJUX1NZU1RFTTsKKyAgICBwc3RyY3B5KHBhcnRfaGVhZGVyLT5uYW1lLCBzaXplb2Yo cGFydF9oZWFkZXItPm5hbWUpLCAic3lzdGVtIik7CisKKyAgICBlbmQgPSBzdGFydCArIHNpemVv ZihzdHJ1Y3QgT3BlbkJJT1NfbnZwYXJ0X3YxKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbmJfcHJv bV9lbnZzOyBpKyspCisgICAgICAgIGVuZCA9IE9wZW5CSU9TX3NldF92YXIobnZyLT5kYXRhLCBl bmQsIHByb21fZW52c1tpXSk7CisKKyAgICAvLyBFbmQgbWFya2VyCisgICAgbnZyLT5kYXRhW2Vu ZCsrXSA9ICdcMCc7CisKKyAgICBlbmQgPSBzdGFydCArICgoZW5kIC0gc3RhcnQgKyAxNSkgJiB+ MTUpOworICAgIE9wZW5CSU9TX2ZpbmlzaF9wYXJ0aXRpb24ocGFydF9oZWFkZXIsIGVuZCAtIHN0 YXJ0KTsKKworICAgIC8vIGZyZWUgcGFydGl0aW9uCisgICAgc3RhcnQgPSBlbmQ7CisgICAgcGFy dF9oZWFkZXIgPSAoc3RydWN0IE9wZW5CSU9TX252cGFydF92MSAqKSZudnItPmRhdGFbc3RhcnRd OworICAgIHBhcnRfaGVhZGVyLT5zaWduYXR1cmUgPSBPUEVOQklPU19QQVJUX0ZSRUU7CisgICAg cHN0cmNweShwYXJ0X2hlYWRlci0+bmFtZSwgc2l6ZW9mKHBhcnRfaGVhZGVyLT5uYW1lKSwgImZy ZWUiKTsKKworICAgIGVuZCA9IE5WUkFNX1NJWkU7CisgICAgT3BlbkJJT1NfZmluaXNoX3BhcnRp dGlvbihwYXJ0X2hlYWRlciwgZW5kIC0gc3RhcnQpOwogfQpJbmRleDogcWVtdS9ody9wcGNfbWFj LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L3BwY19tYWMuaAkyMDA4LTEyLTIxIDEwOjU1 OjE0LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9wcGNfbWFjLmgJMjAwOC0xMi0yMSAxNDoy MTozMC4wMDAwMDAwMDAgKzAwMDAKQEAgLTY0LDkgKzY0LDkgQEAKIC8qIE1hYyBOVlJBTSAqLwog dHlwZWRlZiBzdHJ1Y3QgTWFjSU9OVlJBTVN0YXRlIE1hY0lPTlZSQU1TdGF0ZTsKIAotTWFjSU9O VlJBTVN0YXRlICptYWNpb19udnJhbV9pbml0IChpbnQgKm1lbV9pbmRleCwgdGFyZ2V0X3BoeXNf YWRkcl90IHNpemUpOworTWFjSU9OVlJBTVN0YXRlICptYWNpb19udnJhbV9pbml0IChpbnQgKm1l bV9pbmRleCk7CiB2b2lkIG1hY2lvX252cmFtX21hcCAodm9pZCAqb3BhcXVlLCB0YXJnZXRfcGh5 c19hZGRyX3QgbWVtX2Jhc2UpOwotdm9pZCBwbWFjX2Zvcm1hdF9udnJhbV9wYXJ0aXRpb24gKE1h Y0lPTlZSQU1TdGF0ZSAqbnZyLCBpbnQgbGVuKTsKK3ZvaWQgcG1hY19mb3JtYXRfbnZyYW1fcGFy dGl0aW9uIChNYWNJT05WUkFNU3RhdGUgKm52cik7CiB1aW50MzJfdCBtYWNpb19udnJhbV9yZWFk ICh2b2lkICpvcGFxdWUsIHVpbnQzMl90IGFkZHIpOwogdm9pZCBtYWNpb19udnJhbV93cml0ZSAo dm9pZCAqb3BhcXVlLCB1aW50MzJfdCBhZGRyLCB1aW50MzJfdCB2YWwpOwogCkluZGV4OiBxZW11 L2h3L3BwY19vbGR3b3JsZC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9wcGNfb2xkd29y bGQuYwkyMDA4LTEyLTIxIDEwOjU1OjE0LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9wcGNf b2xkd29ybGQuYwkyMDA4LTEyLTIxIDE0OjIyOjE3LjAwMDAwMDAwMCArMDAwMApAQCAtMzMzLDgg KzMzMyw4IEBACiAgICAgYWRiX2tiZF9pbml0KCZhZGJfYnVzKTsKICAgICBhZGJfbW91c2VfaW5p dCgmYWRiX2J1cyk7CiAKLSAgICBudnIgPSBtYWNpb19udnJhbV9pbml0KCZudnJhbV9tZW1faW5k ZXgsIDB4MjAwMCk7Ci0gICAgcG1hY19mb3JtYXRfbnZyYW1fcGFydGl0aW9uKG52ciwgMHgyMDAw KTsKKyAgICBudnIgPSBtYWNpb19udnJhbV9pbml0KCZudnJhbV9tZW1faW5kZXgpOworICAgIHBt YWNfZm9ybWF0X252cmFtX3BhcnRpdGlvbihudnIpOwogCiAgICAgZGJkbWFfaW5pdCgmZGJkbWFf bWVtX2luZGV4KTsKIApJbmRleDogcWVtdS9zeXNlbXUuaAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9y aWcvc3lzZW11LmgJMjAwOC0xMi0yMSAxNDoxNTowOS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUv c3lzZW11LmgJMjAwOC0xMi0yMSAxNDoxNTozMC4wMDAwMDAwMDAgKzAwMDAKQEAgLTEwOCw3ICsx MDgsNyBAQAogZXh0ZXJuIGNvbnN0IGNoYXIgKm9wdGlvbl9yb21bTUFYX09QVElPTl9ST01TXTsK IGV4dGVybiBpbnQgbmJfb3B0aW9uX3JvbXM7CiAKLSNpZmRlZiBUQVJHRVRfU1BBUkMKKyNpZiBk ZWZpbmVkKFRBUkdFVF9TUEFSQykgfHwgZGVmaW5lZChUQVJHRVRfUFBDKQogI2RlZmluZSBNQVhf UFJPTV9FTlZTIDEyOAogZXh0ZXJuIGNvbnN0IGNoYXIgKnByb21fZW52c1tNQVhfUFJPTV9FTlZT XTsKIGV4dGVybiB1bnNpZ25lZCBpbnQgbmJfcHJvbV9lbnZzOwpJbmRleDogcWVtdS92bC5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIHFlbXUub3JpZy92bC5jCTIwMDgtMTItMjEgMTQ6MTU6MDQuMDAwMDAwMDAw ICswMDAwCisrKyBxZW11L3ZsLmMJMjAwOC0xMi0yMSAxNDoxNTozMC4wMDAwMDAwMDAgKzAwMDAK QEAgLTIzMSw3ICsyMzEsNyBAQAogI2VuZGlmCiBjb25zdCBjaGFyICpxZW11X25hbWU7CiBpbnQg YWx0X2dyYWIgPSAwOwotI2lmZGVmIFRBUkdFVF9TUEFSQworI2lmIGRlZmluZWQoVEFSR0VUX1NQ QVJDKSB8fCBkZWZpbmVkKFRBUkdFVF9QUEMpCiB1bnNpZ25lZCBpbnQgbmJfcHJvbV9lbnZzID0g MDsKIGNvbnN0IGNoYXIgKnByb21fZW52c1tNQVhfUFJPTV9FTlZTXTsKICNlbmRpZgpAQCAtNDE4 NSw3ICs0MTg1LDcgQEAKICAgICB7ICJzZW1paG9zdGluZyIsIDAsIFFFTVVfT1BUSU9OX3NlbWlo b3N0aW5nIH0sCiAjZW5kaWYKICAgICB7ICJuYW1lIiwgSEFTX0FSRywgUUVNVV9PUFRJT05fbmFt ZSB9LAotI2lmIGRlZmluZWQoVEFSR0VUX1NQQVJDKQorI2lmIGRlZmluZWQoVEFSR0VUX1NQQVJD KSB8fCBkZWZpbmVkKFRBUkdFVF9QUEMpCiAgICAgeyAicHJvbS1lbnYiLCBIQVNfQVJHLCBRRU1V X09QVElPTl9wcm9tX2VudiB9LAogI2VuZGlmCiAjaWYgZGVmaW5lZChUQVJHRVRfQVJNKQpAQCAt NTA0OSw3ICs1MDQ5LDcgQEAKICAgICAgICAgICAgIGNhc2UgUUVNVV9PUFRJT05fbmFtZToKICAg ICAgICAgICAgICAgICBxZW11X25hbWUgPSBvcHRhcmc7CiAgICAgICAgICAgICAgICAgYnJlYWs7 Ci0jaWZkZWYgVEFSR0VUX1NQQVJDCisjaWYgZGVmaW5lZChUQVJHRVRfU1BBUkMpIHx8IGRlZmlu ZWQoVEFSR0VUX1BQQykKICAgICAgICAgICAgIGNhc2UgUUVNVV9PUFRJT05fcHJvbV9lbnY6CiAg ICAgICAgICAgICAgICAgaWYgKG5iX3Byb21fZW52cyA+PSBNQVhfUFJPTV9FTlZTKSB7CiAgICAg ICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVG9vIG1hbnkgcHJvbSB2YXJpYWJsZXNc biIpOwo= ------=_Part_62844_17979756.1229872577480 Content-Type: plain/text; name=ppc_add_boot.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fozt20o1 Content-Disposition: attachment; filename=ppc_add_boot.diff SW5kZXg6IG9wZW5iaW9zLXF1aWx0L2FyY2gvcHBjL3FlbXUvbWFpbi5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IG9wZW5iaW9zLXF1aWx0Lm9yaWcvYXJjaC9wcGMvcWVtdS9tYWluLmMJMjAwOC0xMi0yMSAxNDoy Mzo1Mi4wMDAwMDAwMDAgKzAwMDAKKysrIG9wZW5iaW9zLXF1aWx0L2FyY2gvcHBjL3FlbXUvbWFp bi5jCTIwMDgtMTItMjEgMTQ6MjQ6NDAuMDAwMDAwMDAwICswMDAwCkBAIC01Niw3ICs1Niw3IEBA CiAKIAkvKiB0aGUgRUxGLWltYWdlICh1c3VhbGx5KSBzdGFydHMgYXQgb2Zmc2V0IDB4NDAwMCAq LwogCWlmKCAoZWxmX29mZnM9ZmluZF9lbGYoZmQpKSA8IDAgKSB7Ci0JCUVMRl9EUFJJTlRGKCIt LS0tPiAlcyBpcyBub3QgYW4gRUxGIGltYWdlXG4iLCBidWYgKTsKKyAgICAgICAgICAgICAgICBF TEZfRFBSSU5URigiLS0tLT4gJXMgaXMgbm90IGFuIEVMRiBpbWFnZVxuIiwgZ2V0X2ZpbGVfcGF0 aChmZCkpOwogCQlleGl0KDEpOwogCX0KIAlpZiggIShwaGRyPWVsZl9yZWFkaGRycyhmZCwgZWxm X29mZnMsICZlaGRyKSkgKQpAQCAtNzMsOCArNzMsOCBAQAogCQlzZWVrX2lvKCBmZCwgZWxmX29m ZnMgKyBwaGRyW2ldLnBfb2Zmc2V0ICk7CiAKIAkJRUxGX0RQUklOVEYoImZpbGVzejogJTA4bFgg bWVtc3o6ICUwOGxYIHBfb2Zmc2V0OiAlMDhsWCBwX3ZhZGRyICUwOGxYXG4iLAotCQkgICBwaGRy W2ldLnBfZmlsZXN6LCBwaGRyW2ldLnBfbWVtc3osIHBoZHJbaV0ucF9vZmZzZXQsCi0JCSAgIHBo ZHJbaV0ucF92YWRkciApOworICAgICAgICAgICAgICAgICAgICh1bG9uZylwaGRyW2ldLnBfZmls ZXN6LCAodWxvbmcpcGhkcltpXS5wX21lbXN6LCAodWxvbmcpcGhkcltpXS5wX29mZnNldCwKKyAg ICAgICAgICAgICAgICAgICAodWxvbmcpcGhkcltpXS5wX3ZhZGRyICk7CiAKIAkJaWYoIHBoZHJb aV0ucF92YWRkciAhPSBwaGRyW2ldLnBfcGFkZHIgKQogCQkJRUxGX0RQUklOVEYoIldBUk5JTkc6 IEVMRiBzZWdtZW50IHZpcnR1YWwgYWRkciAhPSBwaHlzaWNhbCBhZGRyXG4iKTsKQEAgLTEwOCwy OCArMTA4LDYzIEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoJcWVtdSBib290aW5nCQkJCQkJCSov CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQKK3RyeV9wYXRoKGNvbnN0IGNoYXIgKnBh dGgsIGNvbnN0IGNoYXIgKnBhcmFtKQoreworICAgIHVsb25nIGVsZl9lbnRyeTsKKyAgICBpbnQg ZmQ7CisKKyAgICBFTEZfRFBSSU5URigiVHJ5aW5nICVzICVzXG4iLCBwYXRoLCBwYXJhbSk7Cisg ICAgaWYgKChmZCA9IG9wZW5faW8ocGF0aCkpID09IC0xKSB7CisgICAgICAgIEVMRl9EUFJJTlRG KCJDYW4ndCBvcGVuICVzXG4iLCBwYXRoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAo dm9pZCkgbG9hZF9lbGZfcm9tKCAmZWxmX2VudHJ5LCBmZCApOworICAgIGNsb3NlX2lvKCBmZCAp OworICAgIGVuY29kZV9ib290cGF0aCggcGF0aCwgcGFyYW0gKTsKKworICAgIHVwZGF0ZV9udnJh bSgpOworICAgIEVMRl9EUFJJTlRGKCJUcmFuc2ZlcmluZyBjb250cm9sIHRvICVzICVzXG4iLAor ICAgICAgICAgICAgICAgIHBhdGgsIHBhcmFtKTsKKyAgICB0cmFuc2Zlcl9jb250cm9sX3RvX2Vs ZiggZWxmX2VudHJ5ICk7CisgICAgLyogd29uJ3QgY29tZSBoZXJlICovCit9CiAKIHN0YXRpYyB2 b2lkCiB5YWJvb3Rfc3RhcnR1cCggdm9pZCApCiB7Ci0JY29uc3QgY2hhciAqcGF0aHNbXSA9IHsg ImhkOjIsXFxvZmNsaWVudCIsICJoZDoyLFxceWFib290IiwgTlVMTCB9OwotCWNvbnN0IGNoYXIg KmFyZ3NbXSA9IHsgIiIsICJjb25mPWhkOjIsXFx5YWJvb3QuY29uZiIsIE5VTEwgfTsKLSAgICAg ICAgdWxvbmcgZWxmX2VudHJ5OwotCWludCBpLCBmZDsKLQotCWZvciggaT0wOyBwYXRoc1tpXTsg aSsrICkgewotCQlpZiggKGZkPW9wZW5faW8ocGF0aHNbaV0pKSA9PSAtMSApCi0JCQljb250aW51 ZTsKLSAgICAgICAgICAgICAgICAodm9pZCkgbG9hZF9lbGZfcm9tKCAmZWxmX2VudHJ5LCBmZCAp OwotCQljbG9zZV9pbyggZmQgKTsKLQkJZW5jb2RlX2Jvb3RwYXRoKCBwYXRoc1tpXSwgYXJnc1tp XSApOwotCi0JCXVwZGF0ZV9udnJhbSgpOwotCQlFTEZfRFBSSU5URigiVHJhbnNmZXJpbmcgY29u dHJvbCB0byAlcyAlc1xuIiwKLQkJCSAgICBwYXRoc1tpXSwgYXJnc1tpXSk7Ci0gICAgICAgICAg ICAgICAgdHJhbnNmZXJfY29udHJvbF90b19lbGYoIGVsZl9lbnRyeSApOwotCQkvKiB3b24ndCBj b21lIGhlcmUgKi8KLQl9CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcGF0aHNb XSA9IHsgImhkOjIsXFxvZmNsaWVudCIsICJoZDoyLFxceWFib290IiB9OworICAgICAgICBzdGF0 aWMgY29uc3QgY2hhciAqIGNvbnN0IGFyZ3NbXSA9IHsgIiIsICJjb25mPWhkOjIsXFx5YWJvb3Qu Y29uZiIgfTsKKyAgICAgICAgY2hhciAqcGF0aCA9IHBvcF9mc3RyX2NvcHkoKSwgKnBhcmFtOwor ICAgICAgICBpbnQgaTsKKworICAgICAgICBpZiAoIXBhdGgpIHsKKyAgICAgICAgICAgIHB1c2hf c3RyKCJib290LWRldmljZSIpOworICAgICAgICAgICAgcHVzaF9zdHIoIi9vcHRpb25zIik7Cisg ICAgICAgICAgICBmd29yZCgiKGZpbmQtZGV2KSIpOworICAgICAgICAgICAgUE9QKCk7CisgICAg ICAgICAgICBmd29yZCgiZ2V0LXBhY2thZ2UtcHJvcGVydHkiKTsKKyAgICAgICAgICAgIGlmICgh UE9QKCkpIHsKKyAgICAgICAgICAgICAgICBwYXRoID0gcG9wX2ZzdHJfY29weSgpOworICAgICAg ICAgICAgICAgIHBhcmFtID0gc3RyY2hyKHBhdGgsICcgJyk7CisgICAgICAgICAgICAgICAgaWYg KHBhcmFtKSB7CisgICAgICAgICAgICAgICAgICAgICpwYXJhbSA9ICdcMCc7CisgICAgICAgICAg ICAgICAgICAgIHBhcmFtKys7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg ICAgICAgICAgcHVzaF9zdHIoImJvb3QtYXJncyIpOworICAgICAgICAgICAgICAgICAgICBwdXNo X3N0cigiL29wdGlvbnMiKTsKKyAgICAgICAgICAgICAgICAgICAgZndvcmQoIihmaW5kLWRldiki KTsKKyAgICAgICAgICAgICAgICAgICAgUE9QKCk7CisgICAgICAgICAgICAgICAgICAgIGZ3b3Jk KCJnZXQtcGFja2FnZS1wcm9wZXJ0eSIpOworICAgICAgICAgICAgICAgICAgICBQT1AoKTsKKyAg ICAgICAgICAgICAgICAgICAgcGFyYW0gPSBwb3BfZnN0cl9jb3B5KCk7CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgIHRyeV9wYXRoKHBhdGgsIHBhcmFtKTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgfQorICAgICAgICBmb3IoIGk9MDsgaSA8IHNpemVvZihwYXRocykgLyBzaXpl b2YocGF0aHNbMF0pOyBpKysgKSB7CisgICAgICAgICAgICB0cnlfcGF0aChwYXRoc1tpXSwgYXJn c1tpXSk7CisgICAgICAgIH0KIAlwcmludGsoIioqKiBCb290IGZhaWx1cmUhIE5vIHNlY29uZGFy eSBib290bG9hZGVyIHNwZWNpZmllZCAqKipcbiIpOwogfQogCg== ------=_Part_62844_17979756.1229872577480--