From mboxrd@z Thu Jan 1 00:00:00 1970 From: James Smith Subject: Re: [RFC] Move all btrfs command to only one command Date: Thu, 19 Aug 2010 14:52:24 -0600 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=000e0cd29cb6035cf0048e335ccf To: linux-btrfs Return-path: List-ID: --000e0cd29cb6035cf0048e335ccf Content-Type: text/plain; charset=ISO-8859-1 This patch randomizes the error codes and also fixes up some typos including capitalization in the output. It would almost be nice to see a translation effort for the tool as well. --000e0cd29cb6035cf0048e335ccf Content-Type: text/plain; charset=US-ASCII; name="errcodes.diff" Content-Disposition: attachment; filename="errcodes.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gd1ezhgu0 ZGlmZiAtLWdpdCBhL2J0cmZzLmMgYi9idHJmcy5jCmluZGV4IDRkMjYzYzQuLjM0MTg4MzcgMTAw NjQ0Ci0tLSBhL2J0cmZzLmMKKysrIGIvYnRyZnMuYwpAQCAtNDQsNTIgKzQ0LDUyIEBAIHN0YXRp YyBzdHJ1Y3QgQ29tbWFuZCBjb21tYW5kc1tdID0gewogCQlhdm9pZCBzaG9ydCBjb21tYW5kcyBk aWZmZXJlbnQgZm9yIHRoZSBjYXNlIG9ubHkKIAkqLwogCXsgZG9fY2xvbmUsIDIsCi0JICAic3Vi dm9sdW1lIHNuYXBzaG90IiwgIjxzb3VyY2U+IFs8ZGVzdD4vXTxuYW1lPlxuIgotCQkiQ3JlYXRl IGEgd3JpdGFibGUgc25hcHNob3Qgb2YgdGhlIHN1YnZvbHVtZSA8c291cmNlPiB3aXRoXG4iCi0J CSJ0aGUgbmFtZSA8bmFtZT4gaW4gdGhlIDxkZXN0PiBkaXJlY3RvcnkuIgorCSAgInN1YnZvbHVt ZSBzbmFwc2hvdCIsICI8U291cmNlPiBbPERlc3Q+L108TmFtZT5cbiIKKwkJIkNyZWF0ZSBhIHdy aXRhYmxlIHNuYXBzaG90IG9mIHRoZSBzdWJ2b2x1bWUgPFNvdXJjZT4gd2l0aFxuIgorCQkidGhl IG5hbWUgPE5hbWU+IGluIHRoZSA8RGVzdD4gZGlyZWN0b3J5LiIKIAl9LAogCXsgZG9fZGVsZXRl X3N1YnZvbHVtZSwgMSwKLQkgICJzdWJ2b2x1bWUgZGVsZXRlIiwgIjxzdWJ2b2x1bWU+XG4iCi0J CSJEZWxldGUgdGhlIHN1YnZvbHVtZSA8c3Vidm9sdW1lPi4iCisJICAic3Vidm9sdW1lIGRlbGV0 ZSIsICI8U3Vidm9sdW1lPlxuIgorCQkiRGVsZXRlIHRoZSBzdWJ2b2x1bWUgPFN1YnZvbHVtZT4u IgogCX0sCiAJeyBkb19jcmVhdGVfc3Vidm9sLCAxLAotCSAgInN1YnZvbHVtZSBjcmVhdGUiLCAi WzxkZXN0Pi9dPG5hbWU+XG4iCi0JCSJDcmVhdGUgYSBzdWJ2b2x1bWUgaW4gPGRlc3Q+IChvciB0 aGUgY3VycmVudCBkaXJlY3RvcnkgaWZcbiIKKwkgICJzdWJ2b2x1bWUgY3JlYXRlIiwgIls8RGVz dD4vXTxOYW1lPlxuIgorCQkiQ3JlYXRlIGEgc3Vidm9sdW1lIGluIDxEZXN0PiAob3IgdGhlIGN1 cnJlbnQgZGlyZWN0b3J5IGlmXG4iCiAJCSJub3QgcGFzc2VkKS4iCiAJfSwKIAl7IGRvX2RlZnJh ZywgLTEsCi0JICAiZmlsZXN5c3RlbSBkZWZyYWdtZW50IiwgIjxmaWxlPnw8ZGlyPiBbPGZpbGU+ fDxkaXI+Li4uXVxuIgorCSAgImZpbGVzeXN0ZW0gZGVmcmFnbWVudCIsICI8RmlsZT58PERpcj4g WzxGaWxlPnw8RGlyPi4uLl1cbiIKIAkJIkRlZnJhZ21lbnQgYSBmaWxlIG9yIGEgZGlyZWN0b3J5 LiIKIAl9LAogCXsgZG9fZnNzeW5jLCAxLAotCSAgImZpbGVzeXN0ZW0gc3luYyIsICI8cGF0aD5c biIKLQkJIkZvcmNlIGEgc3luYyBvbiB0aGUgZmlsZXN5c3RlbSA8cGF0aD4uIgorCSAgImZpbGVz eXN0ZW0gc3luYyIsICI8UGF0aD5cbiIKKwkJIkZvcmNlIGEgc3luYyBvbiB0aGUgZmlsZXN5c3Rl bSA8UGF0aD4uIgogCX0sCiAJeyBkb19yZXNpemUsIDIsCi0JICAiZmlsZXN5c3RlbSByZXNpemUi LCAiWysvLV08bmV3c2l6ZT5bZ2ttXXxtYXggPGZpbGVzeXN0ZW0+XG4iCisJICAiZmlsZXN5c3Rl bSByZXNpemUiLCAiWysvLV08TmV3c2l6ZT5bZ2ttXXxtYXggPEZpbGVzeXN0ZW0+XG4iCiAJCSJS ZXNpemUgdGhlIGZpbGUgc3lzdGVtLiBJZiAnbWF4JyBpcyBwYXNzZWQsIHRoZSBmaWxlc3lzdGVt XG4iCi0JCSJ3aWxsIG9jY3VwZSBhbGwgYXZhaWxhYmxlIHNwYWNlIG9uIHRoZSBkZXZpY2UuIgor CQkid2lsbCBvY2N1cHkgYWxsIGF2YWlsYWJsZSBzcGFjZSBvbiB0aGUgZGV2aWNlLiIKIAl9LAog CXsgZG9fc2hvd19maWxlc3lzdGVtLCA5OTksCi0JICAiZmlsZXN5c3RlbSBzaG93IiwgIls8dXVp ZD58PGxhYmVsPl1cbiIKLQkJIlNob3cgdGhlIGluZm8gb2YgYSBidHJmcyBmaWxlc3lzdGVtLiBJ ZiBubyA8dXVpZD4gb3IgPGxhYmVsPlxuIgotCQkiaXMgcGFzc2VkLCBpbmZvIG9mIGFsbCB0aGUg YnRyZnMgZmlsZXN5c3RlbSBhcmUgc2hvd24uIgorCSAgImZpbGVzeXN0ZW0gc2hvdyIsICJbPFVV SUQ+fDxMYWJlbD5dXG4iCisJCSJTaG93IGFsbCBpbmZvIGFib3V0IHNwZWNpZmljIEJUUkZTIGZp bGVzeXN0ZW1zLiBJZiBubyA8VVVJRD4gb3IgPExhYmVsPlxuIgorCQkiaXMgcGFzc2VkLCBpbmZv cm1hdGlvbiBmcm9tIGFsbCB0aGUgQlRSRlMgZmlsZXN5c3RlbXMgYXJlIHNob3duLiIKIAl9LAog CXsgZG9fYmFsYW5jZSwgMSwKLQkgICJmaWxlc3lzdGVtIGJhbGFuY2UiLCAiPHBhdGg+XG4iCisJ ICAiZmlsZXN5c3RlbSBiYWxhbmNlIiwgIjxQYXRoPlxuIgogCQkiQmFsYW5jZSB0aGUgY2h1bmtz IGFjcm9zcyB0aGUgZGV2aWNlLiIKIAl9LAogCXsgZG9fc2NhbiwKLQkgIDk5OSwgImRldmljZSBz Y2FuIiwgIls8ZGV2aWNlPiBbPGRldmljZT4uLl1cbiIKLQkJIlNjYW4gYWxsIGRldmljZSBmb3Ig b3IgdGhlIHBhc3NlZCBkZXZpY2UgZm9yIGEgYnRyZnNcbiIKKwkgIDk5OSwgImRldmljZSBzY2Fu IiwgIls8RGV2aWNlPiBbPERldmljZT4uLl1cbiIKKwkJIlNjYW4gYWxsIGRldmljZXMgb3IgdGhl IHBhc3NlZCBkZXZpY2UgZm9yIGEgQlRSRlNcbiIKIAkJImZpbGVzeXN0ZW0uIgogCX0sCQogCXsg ZG9fYWRkX3ZvbHVtZSwgLTEsCi0JICAiZGV2aWNlIGFkZCIsICI8ZGV2PiBbPGRldj4uLl0gPHBh dGg+XG4iCisJICAiZGV2aWNlIGFkZCIsICI8RGV2aWNlPiBbPERldmljZT4uLl0gPFBhdGg+XG4i CiAJCSJBZGQgYSBkZXZpY2UgdG8gYSBmaWxlc3lzdGVtLiIKIAl9LAogCXsgZG9fcmVtb3ZlX3Zv bHVtZSwgLTEsCi0JICAiZGV2aWNlIGRlbGV0ZSIsICI8ZGV2PiBbPGRldj4uLl0gPHBhdGg+XG4i CisJICAiZGV2aWNlIGRlbGV0ZSIsICI8RGV2aWNlPiBbPERldmljZT4uLl0gPFBhdGg+XG4iCiAJ CSJSZW1vdmUgYSBkZXZpY2UgZnJvbSBhIGZpbGVzeXN0ZW0uIgogCX0sCiAJLyogY29taW5nIHNv b24KQEAgLTEzNCwxMiArMTM0LDEzIEBAIHN0YXRpYyB2b2lkIGhlbHAoY2hhciAqbnApCiB7CiAJ c3RydWN0IENvbW1hbmQgKmNwOwogCi0JcHJpbnRmKCJVc2FnZTpcbiIpOworCXByaW50ZigiVkZT LTI1OTMgJXNcbiIsIEJUUkZTX0JVSUxEX1ZFUlNJT04pOworCXByaW50ZigiXG5ObyBtYXR0ZXIg d2hlcmUgeW91IGdvLCB0aGVyZSB5b3UgYXJlLlxuIik7CisJcHJpbnRmKCJcblVzYWdlOlxuIik7 CiAJZm9yKCBjcCA9IGNvbW1hbmRzOyBjcC0+dmVyYjsgY3ArKyApCiAJCXByaW50X2hlbHAobnAs IGNwKTsKIAotCXByaW50ZigiXG5cdCVzIGhlbHB8LS1oZWxwfC1oXG5cdFx0U2hvdyB0aGUgaGVs cC5cbiIsbnApOwotCXByaW50ZigiXG4lc1xuIiwgQlRSRlNfQlVJTERfVkVSU0lPTik7CisJcHJp bnRmKCJcblx0JXMgaGVscHwtLWhlbHB8LWhcblx0XHRTaG93IGhlbHAuXG4iLG5wKTsKIH0KIAog c3RhdGljIGludCBzcGxpdF9jb21tYW5kKGNoYXIgKmNtZCwgY2hhciAqKipjb21tYW5kcykKQEAg LTE5NSw3ICsxOTYsNyBAQCBzdGF0aWMgaW50IGNoZWNrX2FtYmlndWl0eShzdHJ1Y3QgQ29tbWFu ZCAqY21kLCBjaGFyICoqYXJndil7CiAJCX0KIAkJaWYobWF0Y2gpewogCQkJaW50IGo7Ci0JCQlm cHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBpbiBjb21tYW5kICciKTsKKwkJCWZwcmludGYoc3RkZXJy LCAiRVJSLUEuMTE6IGluIGNvbW1hbmQgJyIpOwogCQkJZm9yKCBqID0gMCA7IGogPD0gaSA7IGor KyApCiAJCQkJZnByaW50ZihzdGRlcnIsICIlcyVzIixqPyIgIjoiIiwgYXJndltqKzFdKTsKIAkJ CWZwcmludGYoc3RkZXJyLCAiJywgJyVzJyBpcyBhbWJpZ3VvdXNcbiIsYXJndltqXSk7CkBAIC0y OTEsNyArMjkyLDcgQEAgc3RhdGljIGludCBwYXJzZV9hcmdzKGludCBhcmdjLCBjaGFyICoqYXJn diwKIAl9CiAKIAlpZighbWF0Y2hjbWQpewotCQlmcHJpbnRmKCBzdGRlcnIsICJFUlJPUjogdW5r bm93IGNvbW1hbmQgJyVzJ1xuIixhcmd2WzFdKTsKKwkJZnByaW50Ziggc3RkZXJyLCAiRVJSLUIu MTI6IHVua25vd24gY29tbWFuZCAnJXMnXG4iLGFyZ3ZbMV0pOwogCQloZWxwKHByZ25hbWUpOwog CQlyZXR1cm4gLTE7CiAJfQpAQCAtMzAxLDEyICszMDIsMTIgQEAgc3RhdGljIGludCBwYXJzZV9h cmdzKGludCBhcmdjLCBjaGFyICoqYXJndiwKIAogCS8qIGNoZWNrIHRoZSBudW1iZXIgb2YgYXJn dW1lbnQgKi8KIAlpZiAobWF0Y2hjbWQtPm5hcmdzIDwgMCAmJiBtYXRjaGNtZC0+bmFyZ3MgPCAt Km5hcmdzXyApewotCQlmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiAnJXMnIHJlcXVpcmVzIG1pbmlt dW0gJWQgYXJnKHMpXG4iLAorCQlmcHJpbnRmKHN0ZGVyciwgIkVSUi1DLjEzOiAnJXMnIHJlcXVp cmVzIG1pbmltdW0gJWQgYXJnKHMpXG4iLAogCQkJbWF0Y2hjbWQtPnZlcmIsIC1tYXRjaGNtZC0+ bmFyZ3MpOwogCQkJcmV0dXJuIC0yOwogCX0KIAlpZihtYXRjaGNtZC0+bmFyZ3MgPj0gMCAmJiBt YXRjaGNtZC0+bmFyZ3MgIT0gKm5hcmdzXyAmJiBtYXRjaGNtZC0+bmFyZ3MgIT0gOTk5ICl7Ci0J CWZwcmludGYoc3RkZXJyLCAiRVJST1I6ICclcycgcmVxdWlyZXMgJWQgYXJnKHMpXG4iLAorCQlm cHJpbnRmKHN0ZGVyciwgIkVSUi1ELjE0OiAnJXMnIHJlcXVpcmVzICVkIGFyZyhzKVxuIiwKIAkJ CW1hdGNoY21kLT52ZXJiLCBtYXRjaGNtZC0+bmFyZ3MpOwogCQkJcmV0dXJuIC0yOwogCX0KZGlm ZiAtLWdpdCBhL2J0cmZzX2NtZHMuYyBiL2J0cmZzX2NtZHMuYwppbmRleCBlMTEyOTAyLi45NDc1 YWM2IDEwMDY0NAotLS0gYS9idHJmc19jbWRzLmMKKysrIGIvYnRyZnNfY21kcy5jCkBAIC0xMjgs MTcgKzEyOCwxNyBAQCBpbnQgZG9fY2xvbmUoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJcmVz ID0gdGVzdF9pc3N1YnZvbHVtZShzdWJ2b2wpOwogCWlmKHJlczwwKXsKLQkJZnByaW50ZihzdGRl cnIsICJFUlJPUjogZXJyb3IgYWNjZXNzaW5nICclcydcbiIsIHN1YnZvbCk7CisJCWZwcmludGYo c3RkZXJyLCAiRVJSLUExOiBFcnJvciBhY2Nlc3NpbmcgJyVzJ1xuIiwgc3Vidm9sKTsKIAkJcmV0 dXJuIDEyOwogCX0KIAlpZighcmVzKXsKLQkJZnByaW50ZihzdGRlcnIsICJFUlJPUjogJyVzJyBp cyBub3QgYSBzdWJ2b2x1bWVcbiIsIHN1YnZvbCk7CisJCWZwcmludGYoc3RkZXJyLCAiRVJSLUEy OiAnJXMnIGlzIG5vdCBhIHN1YnZvbHVtZVxuIiwgc3Vidm9sKTsKIAkJcmV0dXJuIDEzOwogCX0K IAogCXJlcyA9IHRlc3RfaXNkaXIoZHN0KTsKIAlpZihyZXMgPT0gMCApewotCQlmcHJpbnRmKHN0 ZGVyciwgIkVSUk9SOiAnJXMnIGV4aXN0cyBhbmQgaXQgaXMgbm90IGEgZGlyZWN0b3J5XG4iLCBk c3QpOworCQlmcHJpbnRmKHN0ZGVyciwgIkVSUi1BMzogJyVzJyBleGlzdHMgYW5kIGl0IGlzIG5v dCBhIGRpcmVjdG9yeVxuIiwgZHN0KTsKIAkJcmV0dXJuIDEyOwogCX0KIApAQCAtMTU1LDI4ICsx NTUsMjggQEAgaW50IGRvX2Nsb25lKGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCWlmKCAhc3Ry Y21wKG5ld25hbWUsIi4iKSB8fCAhc3RyY21wKG5ld25hbWUsIi4uIikgfHwKIAkgICAgIHN0cmNo cihuZXduYW1lLCAnLycpICl7Ci0JCWZwcmludGYoc3RkZXJyLCAiRVJST1I6IHVuY29ycmVjdCBz bmFwc2hvdCBuYW1lICgnJXMnKVxuIiwKKwkJZnByaW50ZihzdGRlcnIsICJFUlItQjE6IFVuY29y cmVjdCBzbmFwc2hvdCBuYW1lICgnJXMnKVxuIiwKIAkJCW5ld25hbWUpOwogCQlyZXR1cm4gMTQ7 CiAJfQogCiAJbGVuID0gc3RybGVuKG5ld25hbWUpOwogCWlmIChsZW4gPT0gMCB8fCBsZW4gPj0g QlRSRlNfVk9MX05BTUVfTUFYKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiRVJST1I6IHNuYXBzaG90 IG5hbWUgdG9vIGxvbmcgKCclcylcbiIsCisJCWZwcmludGYoc3RkZXJyLCAiRVJSLUIyOiBTbmFw c2hvdCBuYW1lIHRvbyBsb25nICgnJXMpXG4iLAogCQkJbmV3bmFtZSk7CiAJCXJldHVybiAxNDsK IAl9CiAKIAlmZGRzdCA9IG9wZW5fZmlsZV9vcl9kaXIoZHN0ZGlyKTsKIAlpZiAoZmRkc3QgPCAw KSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiRVJST1I6IGNhbid0IGFjY2VzcyB0byAnJXMnXG4iLCBk c3RkaXIpOworCQlmcHJpbnRmKHN0ZGVyciwgIkVSUi1CMzogQ2FuJ3QgYWNjZXNzIHRvICclcydc biIsIGRzdGRpcik7CiAJCXJldHVybiAxMjsKIAl9CiAKIAlmZCA9IG9wZW5fZmlsZV9vcl9kaXIo c3Vidm9sKTsKIAlpZiAoZmQgPCAwKSB7CiAJCWNsb3NlKGZkZHN0KTsKLQkJZnByaW50ZihzdGRl cnIsICJFUlJPUjogY2FuJ3QgYWNjZXNzIHRvICclcydcbiIsIGRzdGRpcik7CisJCWZwcmludGYo c3RkZXJyLCAiRVJSLUI0OiBDYW4ndCBhY2Nlc3MgdG8gJyVzJ1xuIiwgZHN0ZGlyKTsKIAkJcmV0 dXJuIDEyOwogCX0KIApAQCAtMTkwLDcgKzE5MCw3IEBAIGludCBkb19jbG9uZShpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAJY2xvc2UoZmRkc3QpOwogCiAJaWYocmVzIDwgMCApewotCQlmcHJpbnRm KCBzdGRlcnIsICJFUlJPUjogY2Fubm90IHNuYXBzaG90ICclcydcbiIsc3Vidm9sKTsKKwkJZnBy aW50Ziggc3RkZXJyLCAiRVJSLUI1OiBDYW5ub3Qgc25hcHNob3QgJyVzJ1xuIixzdWJ2b2wpOwog CQlyZXR1cm4gMTE7CiAJfQogCkBAIC0yMDcsMTEgKzIwNywxMSBAQCBpbnQgZG9fZGVsZXRlX3N1 YnZvbHVtZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIAlyZXMgPSB0ZXN0X2lzc3Vidm9sdW1l KHBhdGgpOwogCWlmKHJlczwwKXsKLQkJZnByaW50ZihzdGRlcnIsICJFUlJPUjogZXJyb3IgYWNj ZXNzaW5nICclcydcbiIsIHBhdGgpOworCQlmcHJpbnRmKHN0ZGVyciwgIkVSUi1DMTogRXJyb3Ig YWNjZXNzaW5nICclcydcbiIsIHBhdGgpOwogCQlyZXR1cm4gMTI7CiAJfQogCWlmKCFyZXMpewot CQlmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiAnJXMnIGlzIG5vdCBhIHN1YnZvbHVtZVxuIiwgcGF0 aCk7CisJCWZwcmludGYoc3RkZXJyLCAiRVJSLUMyOiAnJXMnIGlzIG5vdCBhIHN1YnZvbHVtZVxu IiwgcGF0aCk7CiAJCXJldHVybiAxMzsKIAl9CiAKQEAgLTIyNCwxNCArMjI0LDE0IEBAIGludCBk b19kZWxldGVfc3Vidm9sdW1lKGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCWlmKCAhc3RyY21w KHZuYW1lLCIuIikgfHwgIXN0cmNtcCh2bmFtZSwiLi4iKSB8fAogCSAgICAgc3RyY2hyKHZuYW1l LCAnLycpICl7Ci0JCWZwcmludGYoc3RkZXJyLCAiRVJST1I6IHVuY29ycmVjdCBzdWJ2b2x1bWUg bmFtZSAoJyVzJylcbiIsCisJCWZwcmludGYoc3RkZXJyLCAiRVJSLUMzOiBJbmNvcnJlY3Qgc3Vi dm9sdW1lIG5hbWUgKCclcycpXG4iLAogCQkJdm5hbWUpOwogCQlyZXR1cm4gMTQ7CiAJfQogCiAJ bGVuID0gc3RybGVuKHZuYW1lKTsKIAlpZiAobGVuID09IDAgfHwgbGVuID49IEJUUkZTX1ZPTF9O QU1FX01BWCkgewotCQlmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBzbmFwc2hvdCBuYW1lIHRvbyBs b25nICgnJXMpXG4iLAorCQlmcHJpbnRmKHN0ZGVyciwgIkVSUi1DNDogU25hcHNob3QgbmFtZSB0 b28gbG9uZyAoJyVzKVxuIiwKIAkJCXZuYW1lKTsKIAkJcmV0dXJuIDE0OwogCX0KQEAgLTIzOSw3 ICsyMzksNyBAQCBpbnQgZG9fZGVsZXRlX3N1YnZvbHVtZShpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAJZmQgPSBvcGVuX2ZpbGVfb3JfZGlyKGRuYW1lKTsKIAlpZiAoZmQgPCAwKSB7CiAJCWNsb3Nl KGZkKTsKLQkJZnByaW50ZihzdGRlcnIsICJFUlJPUjogY2FuJ3QgYWNjZXNzIHRvICclcydcbiIs IGRuYW1lKTsKKwkJZnByaW50ZihzdGRlcnIsICJFUlItQzU6IENhbid0IGFjY2VzcyB0byAnJXMn XG4iLCBkbmFtZSk7CiAJCXJldHVybiAxMjsKIAl9CiAKQEAgLTI1MCw3ICsyNTAsNyBAQCBpbnQg ZG9fZGVsZXRlX3N1YnZvbHVtZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJY2xvc2UoZmQpOwog CiAJaWYocmVzIDwgMCApewotCQlmcHJpbnRmKCBzdGRlcnIsICJFUlJPUjogY2Fubm90IGRlbGV0 ZSAnJXMvJXMnXG4iLGRuYW1lLCB2bmFtZSk7CisJCWZwcmludGYoIHN0ZGVyciwgIkVSUi1DNjog Q2Fubm90IGRlbGV0ZSAnJXMvJXMnXG4iLGRuYW1lLCB2bmFtZSk7CiAJCXJldHVybiAxMTsKIAl9 CiAKQEAgLTI2OCw3ICsyNjgsNyBAQCBpbnQgZG9fY3JlYXRlX3N1YnZvbChpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCiAKIAlyZXMgPSB0ZXN0X2lzZGlyKGRzdCk7CiAJaWYocmVzID49IDAgKXsKLQkJ ZnByaW50ZihzdGRlcnIsICJFUlJPUjogJyVzJyBleGlzdHNcbiIsIGRzdCk7CisJCWZwcmludGYo c3RkZXJyLCAiRVJSLUQxOiAnJXMnIGV4aXN0c1xuIiwgZHN0KTsKIAkJcmV0dXJuIDEyOwogCX0K IApAQCAtMjc5LDIxICsyNzksMjEgQEAgaW50IGRvX2NyZWF0ZV9zdWJ2b2woaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCiAJaWYoICFzdHJjbXAobmV3bmFtZSwiLiIpIHx8ICFzdHJjbXAobmV3bmFt ZSwiLi4iKSB8fAogCSAgICAgc3RyY2hyKG5ld25hbWUsICcvJykgKXsKLQkJZnByaW50ZihzdGRl cnIsICJFUlJPUjogdW5jb3JyZWN0IHN1YnZvbHVtZSBuYW1lICgnJXMnKVxuIiwKKwkJZnByaW50 ZihzdGRlcnIsICJFUlItRDI6IEluY29ycmVjdCBzdWJ2b2x1bWUgbmFtZSAoJyVzJylcbiIsCiAJ CQluZXduYW1lKTsKIAkJcmV0dXJuIDE0OwogCX0KIAkKIAlsZW4gPSBzdHJsZW4obmV3bmFtZSk7 CiAJaWYgKGxlbiA9PSAwIHx8IGxlbiA+PSBCVFJGU19WT0xfTkFNRV9NQVgpIHsKLQkJZnByaW50 ZihzdGRlcnIsICJFUlJPUjogc3Vidm9sdW1lIG5hbWUgdG9vIGxvbmcgKCclcylcbiIsCisJCWZw cmludGYoc3RkZXJyLCAiRVJSLUQzOiBTdWJ2b2x1bWUgbmFtZSB0b28gbG9uZyAoJyVzKVxuIiwK IAkJCW5ld25hbWUpOwogCQlyZXR1cm4gMTQ7CiAJfQogCiAJZmRkc3QgPSBvcGVuX2ZpbGVfb3Jf ZGlyKGRzdGRpcik7CiAJaWYgKGZkZHN0IDwgMCkgewotCQlmcHJpbnRmKHN0ZGVyciwgIkVSUk9S OiBjYW4ndCBhY2Nlc3MgdG8gJyVzJ1xuIiwgZHN0ZGlyKTsKKwkJZnByaW50ZihzdGRlcnIsICJF UlItRDQ6IENhbid0IGFjY2VzcyB0byAnJXMnXG4iLCBkc3RkaXIpOwogCQlyZXR1cm4gMTI7CiAJ fQogCkBAIC0zMDQsNyArMzA0LDcgQEAgaW50IGRvX2NyZWF0ZV9zdWJ2b2woaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCWNsb3NlKGZkZHN0KTsKIAogCWlmKHJlcyA8IDAgKXsKLQkJZnByaW50Zigg c3RkZXJyLCAiRVJST1I6IGNhbm5vdCBjcmVhdGUgc3Vidm9sdW1lXG4iKTsKKwkJZnByaW50Zigg c3RkZXJyLCAiRVJSLUQ1OiBDYW5ub3QgY3JlYXRlIHN1YnZvbHVtZVxuIik7CiAJCXJldHVybiAx MTsKIAl9CiAKQEAgLTMxOSw3ICszMTksNyBAQCBpbnQgZG9fZnNzeW5jKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAogCWZkID0gb3Blbl9maWxlX29yX2RpcihwYXRoKTsKIAlpZiAoZmQgPCAwKSB7 Ci0JCWZwcmludGYoc3RkZXJyLCAiRVJST1I6IGNhbid0IGFjY2VzcyB0byAnJXMnXG4iLCBwYXRo KTsKKwkJZnByaW50ZihzdGRlcnIsICJFUlItRDY6IENhbid0IGFjY2VzcyB0byAnJXMnXG4iLCBw YXRoKTsKIAkJcmV0dXJuIDEyOwogCX0KIApAQCAtMzI3LDcgKzMyNyw3IEBAIGludCBkb19mc3N5 bmMoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCXJlcyA9IGlvY3RsKGZkLCBCVFJGU19JT0NfU1lO Qyk7CiAJY2xvc2UoZmQpOwogCWlmKCByZXMgPCAwICl7Ci0JCWZwcmludGYoc3RkZXJyLCAiRVJS T1I6IHVuYWJsZSB0byBmcy1zeW5jaW5nICclcydcbiIsIHBhdGgpOworCQlmcHJpbnRmKHN0ZGVy ciwgIkVSUi1ENzogVW5hYmxlIHRvIGRyb3Atc3luYyAnJXMnXG4iLCBwYXRoKTsKIAkJcmV0dXJu IDE2OwogCX0KIApAQCAtMzQzLDcgKzM0Myw3IEBAIGludCBkb19zY2FuKGludCBuYXJncywgY2hh ciAqKmFyZ3YpCiAJCXByaW50ZigiU2Nhbm5pbmcgZm9yIEJ0cmZzIGZpbGVzeXN0ZW1zXG4iKTsK IAkJcmV0ID0gYnRyZnNfc2Nhbl9vbmVfZGlyKCIvZGV2IiwgMSk7CiAJCWlmIChyZXQpewotCQkJ ZnByaW50ZihzdGRlcnIsICJFUlJPUjogZXJyb3IgJWQgd2hpbGUgc2Nhbm5pbmdcbiIsIHJldCk7 CisJCQlmcHJpbnRmKHN0ZGVyciwgIkVSUi1FMTogRXJyb3IgJWQgd2hpbGUgc2Nhbm5pbmdcbiIs IHJldCk7CiAJCQlyZXR1cm4gMTg7CiAJCX0KIAkJcmV0dXJuIDA7CkBAIC0zNTEsNyArMzUxLDcg QEAgaW50IGRvX3NjYW4oaW50IG5hcmdzLCBjaGFyICoqYXJndikKIAogCWZkID0gb3BlbigiL2Rl di9idHJmcy1jb250cm9sIiwgT19SRFdSKTsKIAlpZiAoZmQgPCAwKSB7Ci0JCXBlcnJvcigiZmFp bGVkIHRvIG9wZW4gL2Rldi9idHJmcy1jb250cm9sIik7CisJCXBlcnJvcigiRVJSLUUyOiBGYWls ZWQgdG8gb3BlbiAvZGV2L2J0cmZzLWNvbnRyb2wiKTsKIAkJcmV0dXJuIDEwOwogCX0KIApAQCAt MzcxLDcgKzM3MSw3IEBAIGludCBkb19zY2FuKGludCBuYXJncywgY2hhciAqKmFyZ3YpCiAKIAkJ aWYoIHJldCA8IDAgKXsKIAkJCWNsb3NlKGZkKTsKLQkJCWZwcmludGYoc3RkZXJyLCAiRVJST1I6 IHVuYWJsZSB0byBzY2FuIHRoZSBkZXZpY2UgJyVzJ1xuIiwgYXJndltpXSk7CisJCQlmcHJpbnRm KHN0ZGVyciwgIkVSUi1FMzogVW5hYmxlIHRvIHNjYW4gdGhlIGRldmljZSAnJXMnXG4iLCBhcmd2 W2ldKTsKIAkJCXJldHVybiAxMTsKIAkJfQogCX0KQEAgLTM5MSw3ICszOTEsNyBAQCBpbnQgZG9f ZGVmcmFnKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJY2hhcgkqcGF0aCA9IGFyZ3ZbaV07CiAJ CWZkID0gb3Blbl9maWxlX29yX2RpcihwYXRoKTsKIAkJaWYgKGZkIDwgMCkgewotCQkJZnByaW50 ZihzdGRlcnIsICJFUlJPUjogY2FuJ3QgYWNjZXNzIHRvICclcydcbiIsIHBhdGgpOworCQkJZnBy aW50ZihzdGRlcnIsICJFUlItRjE6IENhbid0IGFjY2VzcyB0byAnJXMnXG4iLCBwYXRoKTsKIAkJ CXJldCsrOwogCQkJY29udGludWU7CiAJCX0KQEAgLTQwMCw3ICs0MDAsNyBAQCBpbnQgZG9fZGVm cmFnKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJcmVzID0gaW9jdGwoZmQsIEJUUkZTX0lPQ19E RUZSQUcpOwogCQljbG9zZShmZCk7CiAJCWlmKCByZXMgPCAwICl7Ci0JCQlmcHJpbnRmKHN0ZGVy ciwgIkVSUk9SOiB1bmFibGUgdG8gZGVmcmFnICclcydcbiIsIGFyZ3ZbaV0pOworCQkJZnByaW50 ZihzdGRlcnIsICJFUlItRjI6IFVuYWJsZSB0byBkZWZyYWdtZW50ICclcydcbiIsIGFyZ3ZbaV0p OwogCQkJcmV0Kys7CiAJCQljb250aW51ZTsKIAkJfQpAQCAtNDIzLDIyICs0MjMsMjIgQEAgaW50 IGRvX3Jlc2l6ZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCiAJZmQgPSBvcGVuX2ZpbGVfb3Jf ZGlyKHBhdGgpOwogCWlmIChmZCA8IDApIHsKLQkJZnByaW50ZihzdGRlcnIsICJFUlJPUjogY2Fu J3QgYWNjZXNzIHRvICclcydcbiIsIHBhdGgpOworCQlmcHJpbnRmKHN0ZGVyciwgIkVSUi1HMTog Q2FuJ3QgYWNjZXNzIHRvICclcydcbiIsIHBhdGgpOwogCQlyZXR1cm4gMTI7CiAJfQogCWxlbiA9 IHN0cmxlbihhbW91bnQpOwogCWlmIChsZW4gPT0gMCB8fCBsZW4gPj0gQlRSRlNfVk9MX05BTUVf TUFYKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiRVJST1I6IHNpemUgdmFsdWUgdG9vIGxvbmcgKCcl cylcbiIsCisJCWZwcmludGYoc3RkZXJyLCAiRVJSLUcyOiBTaXplIHZhbHVlIHRvbyBsb25nICgn JXMpXG4iLAogCQkJYW1vdW50KTsKIAkJcmV0dXJuIDE0OwogCX0KIAotCXByaW50ZigiUmVzaXpl ICclcycgb2YgJyVzJ1xuIiwgcGF0aCwgYW1vdW50KTsKKwlwcmludGYoIlJlc2l6aW5nICclcycg b2YgJyVzJ1xuIiwgcGF0aCwgYW1vdW50KTsKIAlzdHJjcHkoYXJncy5uYW1lLCBhbW91bnQpOwog CXJlcyA9IGlvY3RsKGZkLCBCVFJGU19JT0NfUkVTSVpFLCAmYXJncyk7CiAJY2xvc2UoZmQpOwog CWlmKCByZXMgPCAwICl7Ci0JCWZwcmludGYoc3RkZXJyLCAiRVJST1I6IHVuYWJsZSB0byByZXNp emUgJyVzJ1xuIiwgcGF0aCk7CisJCWZwcmludGYoc3RkZXJyLCAiRVJSLUczOiBVbmFibGUgdG8g cmVzaXplICclcydcbiIsIHBhdGgpOwogCQlyZXR1cm4gMzA7CiAJfQogCXJldHVybiAwOwpAQCAt NDk3LDcgKzQ5Nyw3IEBAIHN0YXRpYyB2b2lkIHByaW50X29uZV91dWlkKHN0cnVjdCBidHJmc19m c19kZXZpY2VzICpmc19kZXZpY2VzKQogCQlkZXZzX2ZvdW5kKys7CiAJfQogCWlmIChkZXZzX2Zv dW5kIDwgdG90YWwpIHsKLQkJcHJpbnRmKCJcdCoqKiBTb21lIGRldmljZXMgbWlzc2luZ1xuIik7 CisJCXByaW50ZigiXHQgKioqIFNvbWUgZGV2aWNlcyBtaXNzaW5nXG4iKTsKIAl9CiAJcHJpbnRm KCJcbiIpOwogfQpAQCAtNTEyLDcgKzUxMiw3IEBAIGludCBkb19zaG93X2ZpbGVzeXN0ZW0oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJcmV0ID0gYnRyZnNfc2Nhbl9vbmVfZGlyKCIvZGV2Iiwg MCk7CiAJaWYgKHJldCl7Ci0JCWZwcmludGYoc3RkZXJyLCAiRVJST1I6IGVycm9yICVkIHdoaWxl IHNjYW5uaW5nXG4iLCByZXQpOworCQlmcHJpbnRmKHN0ZGVyciwgIkVSUi1IMTogRXJyb3IgJWQg d2hpbGUgc2Nhbm5pbmdcbiIsIHJldCk7CiAJCXJldHVybiAxODsKIAl9CiAKQEAgLTUzNyw3ICs1 MzcsNyBAQCBpbnQgZG9fYWRkX3ZvbHVtZShpbnQgbmFyZ3MsIGNoYXIgKiphcmdzKQogCiAJZmRt bnQgPSBvcGVuX2ZpbGVfb3JfZGlyKG1udHBudCk7CiAJaWYgKGZkbW50IDwgMCkgewotCQlmcHJp bnRmKHN0ZGVyciwgIkVSUk9SOiBjYW4ndCBhY2Nlc3MgdG8gJyVzJ1xuIiwgbW50cG50KTsKKwkJ ZnByaW50ZihzdGRlcnIsICJFUlItSTE6IENhbid0IGFjY2VzcyB0byAnJXMnXG4iLCBtbnRwbnQp OwogCQlyZXR1cm4gMTI7CiAJfQogCkBAIC01NDksMjAgKzU0OSwyMCBAQCBpbnQgZG9fYWRkX3Zv bHVtZShpbnQgbmFyZ3MsIGNoYXIgKiphcmdzKQogCiAJCWRldmZkID0gb3BlbihhcmdzW2ldLCBP X1JEV1IpOwogCQlpZiAoIWRldmZkKSB7Ci0JCQlmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBVbmFi bGUgdG8gb3BlbiBkZXZpY2UgJyVzJ1xuIiwgYXJnc1tpXSk7CisJCQlmcHJpbnRmKHN0ZGVyciwg IkVSUi1JMjogVW5hYmxlIHRvIG9wZW4gZGV2aWNlICclcydcbiIsIGFyZ3NbaV0pOwogCQkJY2xv c2UoZGV2ZmQpOwogCQkJcmV0Kys7CiAJCQljb250aW51ZTsKIAkJfQogCQlyZXQgPSBmc3RhdChk ZXZmZCwgJnN0KTsKIAkJaWYgKHJldCkgewotCQkJZnByaW50ZihzdGRlcnIsICJFUlJPUjogVW5h YmxlIHRvIHN0YXQgJyVzJ1xuIiwgYXJnc1tpXSk7CisJCQlmcHJpbnRmKHN0ZGVyciwgIkVSUi1J MzogVW5hYmxlIHRvIHN0YXQgJyVzJ1xuIiwgYXJnc1tpXSk7CiAJCQljbG9zZShkZXZmZCk7CiAJ CQlyZXQrKzsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCWlmICghU19JU0JMSyhzdC5zdF9tb2RlKSkg ewotCQkJZnByaW50ZihzdGRlcnIsICJFUlJPUjogJyVzJyBpcyBub3QgYSBibG9jayBkZXZpY2Vc biIsIGFyZ3NbaV0pOworCQkJZnByaW50ZihzdGRlcnIsICJFUlItSTQ6ICclcycgaXMgbm90IGEg YmxvY2sgZGV2aWNlXG4iLCBhcmdzW2ldKTsKIAkJCWNsb3NlKGRldmZkKTsKIAkJCXJldCsrOwog CQkJY29udGludWU7CkBAIC01NzAsNyArNTcwLDcgQEAgaW50IGRvX2FkZF92b2x1bWUoaW50IG5h cmdzLCBjaGFyICoqYXJncykKIAogCQlyZXMgPSBidHJmc19wcmVwYXJlX2RldmljZShkZXZmZCwg YXJnc1tpXSwgMSwgJmRldl9ibG9ja19jb3VudCk7CiAJCWlmIChyZXQpIHsKLQkJCWZwcmludGYo c3RkZXJyLCAiRVJST1I6IFVuYWJsZSB0byBpbml0ICclcydcbiIsIGFyZ3NbaV0pOworCQkJZnBy aW50ZihzdGRlcnIsICJFUlItSTU6IFVuYWJsZSB0byBpbml0ICclcydcbiIsIGFyZ3NbaV0pOwog CQkJY2xvc2UoZGV2ZmQpOwogCQkJcmV0Kys7CiAJCQljb250aW51ZTsKQEAgLTU4MCw3ICs1ODAs NyBAQCBpbnQgZG9fYWRkX3ZvbHVtZShpbnQgbmFyZ3MsIGNoYXIgKiphcmdzKQogCQlzdHJjcHko aW9jdGxfYXJncy5uYW1lLCBhcmdzW2ldKTsKIAkJcmVzID0gaW9jdGwoZmRtbnQsIEJUUkZTX0lP Q19BRERfREVWLCAmaW9jdGxfYXJncyk7CiAJCWlmKHJlczwwKXsKLQkJCWZwcmludGYoc3RkZXJy LCAiRVJST1I6IGVycm9yIGFkZGluZyB0aGUgZGV2aWNlICclcydcbiIsIGFyZ3NbaV0pOworCQkJ ZnByaW50ZihzdGRlcnIsICJFUlItSTY6IEVycm9yIGFkZGluZyB0aGUgZGV2aWNlICclcydcbiIs IGFyZ3NbaV0pOwogCQkJcmV0Kys7CiAJCX0KIApAQCAtNjAyLDE0ICs2MDIsMTQgQEAgaW50IGRv X2JhbGFuY2UoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJZmRtbnQgPSBvcGVuX2ZpbGVfb3Jf ZGlyKHBhdGgpOwogCWlmIChmZG1udCA8IDApIHsKLQkJZnByaW50ZihzdGRlcnIsICJFUlJPUjog Y2FuJ3QgYWNjZXNzIHRvICclcydcbiIsIHBhdGgpOworCQlmcHJpbnRmKHN0ZGVyciwgIkVSUi1K MTogQ2FuJ3QgYWNjZXNzIHRvICclcydcbiIsIHBhdGgpOwogCQlyZXR1cm4gMTI7CiAJfQogCiAJ cmV0ID0gaW9jdGwoZmRtbnQsIEJUUkZTX0lPQ19CQUxBTkNFKTsKIAljbG9zZShmZG1udCk7CiAJ aWYocmV0PDApewotCQlmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBiYWxhbmNpbmcgJyVzJ1xuIiwg cGF0aCk7CisJCWZwcmludGYoc3RkZXJyLCAiRVJSLUoyOiBCYWxhbmNpbmcgJyVzJ1xuIiwgcGF0 aCk7CiAKIAkJcmV0dXJuIDE5OwogCX0KQEAgLTYyMyw3ICs2MjMsNyBAQCBpbnQgZG9fcmVtb3Zl X3ZvbHVtZShpbnQgbmFyZ3MsIGNoYXIgKiphcmdzKQogCiAJZmRtbnQgPSBvcGVuX2ZpbGVfb3Jf ZGlyKG1udHBudCk7CiAJaWYgKGZkbW50IDwgMCkgewotCQlmcHJpbnRmKHN0ZGVyciwgIkVSUk9S OiBjYW4ndCBhY2Nlc3MgdG8gJyVzJ1xuIiwgbW50cG50KTsKKwkJZnByaW50ZihzdGRlcnIsICJF UlItSzE6IENhbid0IGFjY2VzcyB0byAnJXMnXG4iLCBtbnRwbnQpOwogCQlyZXR1cm4gMTI7CiAJ fQogCkBAIC02MzQsNyArNjM0LDcgQEAgaW50IGRvX3JlbW92ZV92b2x1bWUoaW50IG5hcmdzLCBj aGFyICoqYXJncykKIAkJc3RyY3B5KGFyZy5uYW1lLCBhcmdzW2ldKTsKIAkJcmVzID0gaW9jdGwo ZmRtbnQsIEJUUkZTX0lPQ19STV9ERVYsICZhcmcpOwogCQlpZihyZXM8MCl7Ci0JCQlmcHJpbnRm KHN0ZGVyciwgIkVSUk9SOiBlcnJvciByZW1vdmluZyB0aGUgZGV2aWNlICclcydcbiIsIGFyZ3Nb aV0pOworCQkJZnByaW50ZihzdGRlcnIsICJFUlItSzI6IEVycm9yIHJlbW92aW5nIHRoZSBkZXZp Y2UgJyVzJ1xuIiwgYXJnc1tpXSk7CiAJCQlyZXQrKzsKIAkJfQogCX0K --000e0cd29cb6035cf0048e335ccf--