From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Date: Sun, 10 Sep 2017 07:21:25 -0400 Subject: [U-Boot] [PATCH v3 4/9] fs: add fs_readdir() In-Reply-To: <20170910112149.21358-1-robdclark@gmail.com> References: <20170910112149.21358-1-robdclark@gmail.com> Message-ID: <20170910112149.21358-9-robdclark@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1254" Content-Transfer-Encoding: base64 To: u-boot@lists.denx.de TmVlZGVkIHRvIHN1cHBvcnQgZWZpIGZpbGUgcHJvdG9jb2wuICBUaGUgZmFsbGJhY2suZWZpIGxv YWRlciB3YW50cwp0byBiZSBhYmxlIHRvIHJlYWQgdGhlIGNvbnRlbnRzIG9mIHRoZSAvRUZJIGRp cmVjdG9yeSB0byBmaW5kIGFuIE9TCnRvIGJvb3QuCgpNb2RlbGxlZCBhZnRlciBQT1NJWCBvcGVu ZGlyKCkvcmVhZGRpcigpL2Nsb3NlZGlyKCkuICBVbmxpa2UgdGhlIG90aGVyCmZzIEFQSXMsIHRo aXMgaXMgc3RhdGVmdWwgKGllLiBzdGF0ZSBpcyBoZWxkIGluIHRoZSBGU19ESVIgImRpcmVjdG9y eQpzdHJlYW0iKSwgdG8gYXZvaWQgcmUtdHJhdmVyc2luZyBvZiB0aGUgZGlyZWN0b3J5IHN0cnVj dHVyZSBhdCBlYWNoCnN0ZXAuICBUaGUgZGlyZWN0b3J5IHN0cmVhbSBtdXN0IGJlIHJlbGVhc2Vk IHdpdGggY2xvc2VkaXIoKSB3aGVuIGl0CmlzIG5vIGxvbmdlciBuZWVkZWQuCgpTaWduZWQtb2Zm LWJ5OiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiDFgXVrYXN6 IE1hamV3c2tpIDxsdWttYUBkZW54LmRlPgotLS0KIGRpc2svcGFydC5jICAgIHwgIDMxICsrKysr KysrKystLS0tLS0tCiBmcy9mcy5jICAgICAgICB8IDEwNCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvZnMuaCAgIHwgIDY3 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvcGFydC5oIHwg ICA5ICsrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDE5OSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kaXNrL3BhcnQuYyBiL2Rpc2svcGFydC5jCmluZGV4IGM2N2Zk YWNjNzkuLmFhOTE4M2Q2OTYgMTAwNjQ0Ci0tLSBhL2Rpc2svcGFydC5jCisrKyBiL2Rpc2svcGFy dC5jCkBAIC0zMzEsNiArMzMxLDI0IEBAIGludCBwYXJ0X2dldF9pbmZvKHN0cnVjdCBibGtfZGVz YyAqZGV2X2Rlc2MsIGludCBwYXJ0LAogCXJldHVybiAtMTsKIH0KIAoraW50IHBhcnRfZ2V0X2lu Zm9fd2hvbGVfZGlzayhzdHJ1Y3QgYmxrX2Rlc2MgKmRldl9kZXNjLCBkaXNrX3BhcnRpdGlvbl90 ICppbmZvKQoreworCWluZm8tPnN0YXJ0ID0gMDsKKwlpbmZvLT5zaXplID0gZGV2X2Rlc2MtPmxi YTsKKwlpbmZvLT5ibGtzeiA9IGRldl9kZXNjLT5ibGtzejsKKwlpbmZvLT5ib290YWJsZSA9IDA7 CisJc3RyY3B5KChjaGFyICopaW5mby0+dHlwZSwgQk9PVF9QQVJUX1RZUEUpOworCXN0cmNweSgo Y2hhciAqKWluZm8tPm5hbWUsICJXaG9sZSBEaXNrIik7CisjaWYgQ09ORklHX0lTX0VOQUJMRUQo UEFSVElUSU9OX1VVSURTKQorCWluZm8tPnV1aWRbMF0gPSAwOworI2VuZGlmCisjaWZkZWYgQ09O RklHX1BBUlRJVElPTl9UWVBFX0dVSUQKKwlpbmZvLT50eXBlX2d1aWRbMF0gPSAwOworI2VuZGlm CisKKwlyZXR1cm4gMDsKK30KKwogaW50IGJsa19nZXRfZGV2aWNlX2J5X3N0cihjb25zdCBjaGFy ICppZm5hbWUsIGNvbnN0IGNoYXIgKmRldl9od3BhcnRfc3RyLAogCQkJICBzdHJ1Y3QgYmxrX2Rl c2MgKipkZXZfZGVzYykKIHsKQEAgLTUyMywxOCArNTQxLDcgQEAgaW50IGJsa19nZXRfZGV2aWNl X3BhcnRfc3RyKGNvbnN0IGNoYXIgKmlmbmFtZSwgY29uc3QgY2hhciAqZGV2X3BhcnRfc3RyLAog CiAJCSgqZGV2X2Rlc2MpLT5sb2cyYmxrc3ogPSBMT0cyKCgqZGV2X2Rlc2MpLT5ibGtzeik7CiAK LQkJaW5mby0+c3RhcnQgPSAwOwotCQlpbmZvLT5zaXplID0gKCpkZXZfZGVzYyktPmxiYTsKLQkJ aW5mby0+Ymxrc3ogPSAoKmRldl9kZXNjKS0+Ymxrc3o7Ci0JCWluZm8tPmJvb3RhYmxlID0gMDsK LQkJc3RyY3B5KChjaGFyICopaW5mby0+dHlwZSwgQk9PVF9QQVJUX1RZUEUpOwotCQlzdHJjcHko KGNoYXIgKilpbmZvLT5uYW1lLCAiV2hvbGUgRGlzayIpOwotI2lmIENPTkZJR19JU19FTkFCTEVE KFBBUlRJVElPTl9VVUlEUykKLQkJaW5mby0+dXVpZFswXSA9IDA7Ci0jZW5kaWYKLSNpZmRlZiBD T05GSUdfUEFSVElUSU9OX1RZUEVfR1VJRAotCQlpbmZvLT50eXBlX2d1aWRbMF0gPSAwOwotI2Vu ZGlmCisJCXBhcnRfZ2V0X2luZm9fd2hvbGVfZGlzaygqZGV2X2Rlc2MsIGluZm8pOwogCiAJCXJl dCA9IDA7CiAJCWdvdG8gY2xlYW51cDsKZGlmZiAtLWdpdCBhL2ZzL2ZzLmMgYi9mcy9mcy5jCmlu ZGV4IDEzY2QzNjI2YzYuLmZjMGM5NTNmY2IgMTAwNjQ0Ci0tLSBhL2ZzL2ZzLmMKKysrIGIvZnMv ZnMuYwpAQCAtMjEsNiArMjEsNyBAQAogREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CiAKIHN0YXRp YyBzdHJ1Y3QgYmxrX2Rlc2MgKmZzX2Rldl9kZXNjOworc3RhdGljIGludCBmc19kZXZfcGFydDsK IHN0YXRpYyBkaXNrX3BhcnRpdGlvbl90IGZzX3BhcnRpdGlvbjsKIHN0YXRpYyBpbnQgZnNfdHlw ZSA9IEZTX1RZUEVfQU5ZOwogCkBAIC02OSw2ICs3MCwxMiBAQCBzdGF0aWMgaW5saW5lIGludCBm c191dWlkX3Vuc3VwcG9ydGVkKGNoYXIgKnV1aWRfc3RyKQogCXJldHVybiAtMTsKIH0KIAorc3Rh dGljIGlubGluZSBpbnQgZnNfb3BlbmRpcl91bnN1cHBvcnRlZChjb25zdCBjaGFyICpmaWxlbmFt ZSwKKwkJCQkJIHN0cnVjdCBmc19kaXJfc3RyZWFtICoqZGlycykKK3sKKwlyZXR1cm4gLUVBQ0NF UzsKK30KKwogc3RydWN0IGZzdHlwZV9pbmZvIHsKIAlpbnQgZnN0eXBlOwogCWNoYXIgKm5hbWU7 CkBAIC05Miw2ICs5OSwyMCBAQCBzdHJ1Y3QgZnN0eXBlX2luZm8gewogCQkgICAgIGxvZmZfdCBs ZW4sIGxvZmZfdCAqYWN0d3JpdGUpOwogCXZvaWQgKCpjbG9zZSkodm9pZCk7CiAJaW50ICgqdXVp ZCkoY2hhciAqdXVpZF9zdHIpOworCS8qCisJICogT3BlbiBhIGRpcmVjdG9yeSBzdHJlYW0uICBP biBzdWNjZXNzIHJldHVybiAwIGFuZCBkaXJlY3RvcnkKKwkgKiBzdHJlYW0gcG9pbnRlciB2aWEg J2RpcnNwJy4gIE9uIGVycm9yLCByZXR1cm4gLWVycm5vLiAgU2VlCisJICogZnNfb3BlbmRpcigp LgorCSAqLworCWludCAoKm9wZW5kaXIpKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgZnNf ZGlyX3N0cmVhbSAqKmRpcnNwKTsKKwkvKgorCSAqIFJlYWQgbmV4dCBlbnRyeSBmcm9tIGRpcmVj dG9yeSBzdHJlYW0uICBPbiBzdWNjZXNzIHJldHVybiAwCisJICogYW5kIGRpcmVjdG9yeSBlbnRy eSBwb2ludGVyIHZpYSAnZGVudHAnLiAgT24gZXJyb3IgcmV0dXJuCisJICogLWVycm5vLiAgU2Vl IGZzX3JlYWRkaXIoKS4KKwkgKi8KKwlpbnQgKCpyZWFkZGlyKShzdHJ1Y3QgZnNfZGlyX3N0cmVh bSAqZGlycywgc3RydWN0IGZzX2RpcmVudCAqKmRlbnRwKTsKKwkvKiBzZWUgZnNfY2xvc2VkaXIo KSAqLworCXZvaWQgKCpjbG9zZWRpcikoc3RydWN0IGZzX2Rpcl9zdHJlYW0gKmRpcnMpOwogfTsK IAogc3RhdGljIHN0cnVjdCBmc3R5cGVfaW5mbyBmc3R5cGVzW10gPSB7CkBAIC0xMTIsNiArMTMz LDcgQEAgc3RhdGljIHN0cnVjdCBmc3R5cGVfaW5mbyBmc3R5cGVzW10gPSB7CiAJCS53cml0ZSA9 IGZzX3dyaXRlX3Vuc3VwcG9ydGVkLAogI2VuZGlmCiAJCS51dWlkID0gZnNfdXVpZF91bnN1cHBv cnRlZCwKKwkJLm9wZW5kaXIgPSBmc19vcGVuZGlyX3Vuc3VwcG9ydGVkLAogCX0sCiAjZW5kaWYK ICNpZmRlZiBDT05GSUdfRlNfRVhUNApAQCAtMTMxLDYgKzE1Myw3IEBAIHN0YXRpYyBzdHJ1Y3Qg ZnN0eXBlX2luZm8gZnN0eXBlc1tdID0gewogCQkud3JpdGUgPSBmc193cml0ZV91bnN1cHBvcnRl ZCwKICNlbmRpZgogCQkudXVpZCA9IGV4dDRmc191dWlkLAorCQkub3BlbmRpciA9IGZzX29wZW5k aXJfdW5zdXBwb3J0ZWQsCiAJfSwKICNlbmRpZgogI2lmZGVmIENPTkZJR19TQU5EQk9YCkBAIC0x NDYsNiArMTY5LDcgQEAgc3RhdGljIHN0cnVjdCBmc3R5cGVfaW5mbyBmc3R5cGVzW10gPSB7CiAJ CS5yZWFkID0gZnNfcmVhZF9zYW5kYm94LAogCQkud3JpdGUgPSBmc193cml0ZV9zYW5kYm94LAog CQkudXVpZCA9IGZzX3V1aWRfdW5zdXBwb3J0ZWQsCisJCS5vcGVuZGlyID0gZnNfb3BlbmRpcl91 bnN1cHBvcnRlZCwKIAl9LAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0NNRF9VQklGUwpAQCAtMTYx LDYgKzE4NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZnN0eXBlX2luZm8gZnN0eXBlc1tdID0gewogCQku cmVhZCA9IHViaWZzX3JlYWQsCiAJCS53cml0ZSA9IGZzX3dyaXRlX3Vuc3VwcG9ydGVkLAogCQku dXVpZCA9IGZzX3V1aWRfdW5zdXBwb3J0ZWQsCisJCS5vcGVuZGlyID0gZnNfb3BlbmRpcl91bnN1 cHBvcnRlZCwKIAl9LAogI2VuZGlmCiAJewpAQCAtMTc1LDYgKzIwMCw3IEBAIHN0YXRpYyBzdHJ1 Y3QgZnN0eXBlX2luZm8gZnN0eXBlc1tdID0gewogCQkucmVhZCA9IGZzX3JlYWRfdW5zdXBwb3J0 ZWQsCiAJCS53cml0ZSA9IGZzX3dyaXRlX3Vuc3VwcG9ydGVkLAogCQkudXVpZCA9IGZzX3V1aWRf dW5zdXBwb3J0ZWQsCisJCS5vcGVuZGlyID0gZnNfb3BlbmRpcl91bnN1cHBvcnRlZCwKIAl9LAog fTsKIApAQCAtMjI4LDYgKzI1NCwzMSBAQCBpbnQgZnNfc2V0X2Jsa19kZXYoY29uc3QgY2hhciAq aWZuYW1lLCBjb25zdCBjaGFyICpkZXZfcGFydF9zdHIsIGludCBmc3R5cGUpCiAKIAkJaWYgKCFp bmZvLT5wcm9iZShmc19kZXZfZGVzYywgJmZzX3BhcnRpdGlvbikpIHsKIAkJCWZzX3R5cGUgPSBp bmZvLT5mc3R5cGU7CisJCQlmc19kZXZfcGFydCA9IHBhcnQ7CisJCQlyZXR1cm4gMDsKKwkJfQor CX0KKworCXJldHVybiAtMTsKK30KKworLyogc2V0IGN1cnJlbnQgYmxrIGRldmljZSB3LyBibGtf ZGVzYyArIHBhcnRpdGlvbiAjICovCitpbnQgZnNfc2V0X2Jsa19kZXZfd2l0aF9wYXJ0KHN0cnVj dCBibGtfZGVzYyAqZGVzYywgaW50IHBhcnQpCit7CisJc3RydWN0IGZzdHlwZV9pbmZvICppbmZv OworCWludCByZXQsIGk7CisKKwlpZiAocGFydCA+PSAxKQorCQlyZXQgPSBwYXJ0X2dldF9pbmZv KGRlc2MsIHBhcnQsICZmc19wYXJ0aXRpb24pOworCWVsc2UKKwkJcmV0ID0gcGFydF9nZXRfaW5m b193aG9sZV9kaXNrKGRlc2MsICZmc19wYXJ0aXRpb24pOworCWlmIChyZXQpCisJCXJldHVybiBy ZXQ7CisJZnNfZGV2X2Rlc2MgPSBkZXNjOworCisJZm9yIChpID0gMCwgaW5mbyA9IGZzdHlwZXM7 IGkgPCBBUlJBWV9TSVpFKGZzdHlwZXMpOyBpKyssIGluZm8rKykgeworCQlpZiAoIWluZm8tPnBy b2JlKGZzX2Rldl9kZXNjLCAmZnNfcGFydGl0aW9uKSkgeworCQkJZnNfdHlwZSA9IGluZm8tPmZz dHlwZTsKIAkJCXJldHVybiAwOwogCQl9CiAJfQpAQCAtMzM0LDYgKzM4NSw1OSBAQCBpbnQgZnNf d3JpdGUoY29uc3QgY2hhciAqZmlsZW5hbWUsIHVsb25nIGFkZHIsIGxvZmZfdCBvZmZzZXQsIGxv ZmZfdCBsZW4sCiAJcmV0dXJuIHJldDsKIH0KIAorc3RydWN0IGZzX2Rpcl9zdHJlYW0gKmZzX29w ZW5kaXIoY29uc3QgY2hhciAqZmlsZW5hbWUpCit7CisJc3RydWN0IGZzdHlwZV9pbmZvICppbmZv ID0gZnNfZ2V0X2luZm8oZnNfdHlwZSk7CisJc3RydWN0IGZzX2Rpcl9zdHJlYW0gKmRpcnMgPSBO VUxMOworCWludCByZXQ7CisKKwlyZXQgPSBpbmZvLT5vcGVuZGlyKGZpbGVuYW1lLCAmZGlycyk7 CisJZnNfY2xvc2UoKTsKKwlpZiAocmV0KSB7CisJCWVycm5vID0gLXJldDsKKwkJcmV0dXJuIE5V TEw7CisJfQorCisJZGlycy0+ZGVzYyA9IGZzX2Rldl9kZXNjOworCWRpcnMtPnBhcnQgPSBmc19k ZXZfcGFydDsKKworCXJldHVybiBkaXJzOworfQorCitzdHJ1Y3QgZnNfZGlyZW50ICpmc19yZWFk ZGlyKHN0cnVjdCBmc19kaXJfc3RyZWFtICpkaXJzKQoreworCXN0cnVjdCBmc3R5cGVfaW5mbyAq aW5mbzsKKwlzdHJ1Y3QgZnNfZGlyZW50ICpkaXJlbnQ7CisJaW50IHJldDsKKworCWZzX3NldF9i bGtfZGV2X3dpdGhfcGFydChkaXJzLT5kZXNjLCBkaXJzLT5wYXJ0KTsKKwlpbmZvID0gZnNfZ2V0 X2luZm8oZnNfdHlwZSk7CisKKwlyZXQgPSBpbmZvLT5yZWFkZGlyKGRpcnMsICZkaXJlbnQpOwor CWZzX2Nsb3NlKCk7CisJaWYgKHJldCkgeworCQllcnJubyA9IC1yZXQ7CisJCXJldHVybiBOVUxM OworCX0KKworCXJldHVybiBkaXJlbnQ7Cit9CisKK3ZvaWQgZnNfY2xvc2VkaXIoc3RydWN0IGZz X2Rpcl9zdHJlYW0gKmRpcnMpCit7CisJc3RydWN0IGZzdHlwZV9pbmZvICppbmZvOworCisJaWYg KCFkaXJzKQorCQlyZXR1cm47CisKKwlmc19zZXRfYmxrX2Rldl93aXRoX3BhcnQoZGlycy0+ZGVz YywgZGlycy0+cGFydCk7CisJaW5mbyA9IGZzX2dldF9pbmZvKGZzX3R5cGUpOworCisJaW5mby0+ Y2xvc2VkaXIoZGlycyk7CisJZnNfY2xvc2UoKTsKK30KKworCiBpbnQgZG9fc2l6ZShjbWRfdGJs X3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKiBjb25zdCBhcmd2W10sCiAJCWlu dCBmc3R5cGUpCiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2ZzLmggYi9pbmNsdWRlL2ZzLmgKaW5k ZXggMmYyYWNhODM3OC4uMDg2OWFkNmU4MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9mcy5oCisrKyBi L2luY2x1ZGUvZnMuaApAQCAtMjcsNiArMjcsMTcgQEAKIGludCBmc19zZXRfYmxrX2Rldihjb25z dCBjaGFyICppZm5hbWUsIGNvbnN0IGNoYXIgKmRldl9wYXJ0X3N0ciwgaW50IGZzdHlwZSk7CiAK IC8qCisgKiBmc19zZXRfYmxrX2Rldl93aXRoX3BhcnQgLSBTZXQgY3VycmVudCBibG9jayBkZXZp Y2UgKyBwYXJ0aXRpb24KKyAqCisgKiBTaW1pbGFyIHRvIGZzX3NldF9ibGtfZGV2KCksIGJ1dCB1 c2VmdWwgZm9yIGNhc2VzIHdoZXJlIHlvdSBhbHJlYWR5CisgKiBrbm93IHRoZSBibGtfZGVzYyBh bmQgcGFydCBudW1iZXIuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MuCisgKiBSZXR1cm5z IG5vbi16ZXJvIGlmIGludmFsaWQgcGFydGl0aW9uIG9yIGVycm9yIGFjY2Vzc2luZyB0aGUgZGlz ay4KKyAqLworaW50IGZzX3NldF9ibGtfZGV2X3dpdGhfcGFydChzdHJ1Y3QgYmxrX2Rlc2MgKmRl c2MsIGludCBwYXJ0KTsKKworLyoKICAqIFByaW50IHRoZSBsaXN0IG9mIGZpbGVzIG9uIHRoZSBw YXJ0aXRpb24gcHJldmlvdXNseSBzZXQgYnkgZnNfc2V0X2Jsa19kZXYoKSwKICAqIGluIGRpcmVj dG9yeSAiZGlybmFtZSIuCiAgKgpAQCAtNzksNiArOTAsNjIgQEAgaW50IGZzX3dyaXRlKGNvbnN0 IGNoYXIgKmZpbGVuYW1lLCB1bG9uZyBhZGRyLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuLAog CSAgICAgbG9mZl90ICphY3R3cml0ZSk7CiAKIC8qCisgKiBEaXJlY3RvcnkgZW50cnkgdHlwZXMs IG1hdGNoZXMgdGhlIHN1YnNldCBvZiBEVF94IGluIHBvc2l4IHJlYWRkaXIoKQorICogd2hpY2gg YXBwbHkgdG8gdS1ib290LgorICovCisjZGVmaW5lIEZTX0RUX0RJUiAgNCAgICAgICAgIC8qIGRp cmVjdG9yeSAqLworI2RlZmluZSBGU19EVF9SRUcgIDggICAgICAgICAvKiByZWd1bGFyIGZpbGUg Ki8KKyNkZWZpbmUgRlNfRFRfTE5LICAxMCAgICAgICAgLyogc3ltYm9saWMgbGluayAqLworCisv KgorICogQSBkaXJlY3RvcnkgZW50cnksIHJldHVybmVkIGJ5IGZzX3JlYWRkaXIoKS4gIFJldHVy bnMgaW5mb3JtYXRpb24KKyAqIGFib3V0IHRoZSBmaWxlL2RpcmVjdG9yeSBhdCB0aGUgY3VycmVu dCBkaXJlY3RvcnkgZW50cnkgcG9zaXRpb24uCisgKi8KK3N0cnVjdCBmc19kaXJlbnQgeworCXVu c2lnbmVkIHR5cGU7ICAgICAgIC8qIG9uZSBvZiBGU19EVF94IChub3QgYSBtYXNrKSAqLworCWxv ZmZfdCBzaXplOyAgICAgICAgIC8qIHNpemUgaW4gYnl0ZXMgKi8KKwljaGFyIG5hbWVbMjU2XTsK K307CisKKy8qIE5vdGU6IGZzX2Rpcl9zdHJlYW0gc2hvdWxkIGJlIHRyZWF0ZWQgYXMgb3BhcXVl IHRvIHRoZSB1c2VyIG9mIGZzIGxheWVyICovCitzdHJ1Y3QgZnNfZGlyX3N0cmVhbSB7CisJLyog cHJpdmF0ZSB0byBmcy4gbGF5ZXI6ICovCisJc3RydWN0IGJsa19kZXNjICpkZXNjOworCWludCBw YXJ0OworfTsKKworLyoKKyAqIGZzX29wZW5kaXIgLSBPcGVuIGEgZGlyZWN0b3J5CisgKgorICog QGZpbGVuYW1lOiB0aGUgcGF0aCB0byBkaXJlY3RvcnkgdG8gb3BlbgorICogQHJldHVybiBhIHBv aW50ZXIgdG8gdGhlIGRpcmVjdG9yeSBzdHJlYW0gb3IgTlVMTCBvbiBlcnJvciBhbmQgZXJybm8K KyAqICAgIHNldCBhcHByb3ByaWF0ZWx5CisgKi8KK3N0cnVjdCBmc19kaXJfc3RyZWFtICpmc19v cGVuZGlyKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKKworLyoKKyAqIGZzX3JlYWRkaXIgLSBSZWFk IHRoZSBuZXh0IGRpcmVjdG9yeSBlbnRyeSBpbiB0aGUgZGlyZWN0b3J5IHN0cmVhbS4KKyAqCisg KiBXb3JrcyBpbiBhbiBhbmFsb2dvdXMgd2F5IHRvIHBvc2l4IHJlYWRkaXIoKS4gIFRoZSBwcmV2 aW91c2x5IHJldHVybmVkCisgKiBkaXJlY3RvcnkgZW50cnkgaXMgbm8gbG9uZ2VyIHZhbGlkIGFm dGVyIGNhbGxpbmcgZnNfcmVhZGRpcigpIGFnYWluLgorICogQWZ0ZXIgZnNfY2xvc2VkaXIoKSBp cyBjYWxsZWQsIHRoZSByZXR1cm5lZCBkaXJlY3RvcnkgZW50cnkgaXMgbm8KKyAqIGxvbmdlciB2 YWxpZC4KKyAqCisgKiBAZGlyczogdGhlIGRpcmVjdG9yeSBzdHJlYW0KKyAqIEByZXR1cm4gdGhl IG5leHQgZGlyZWN0b3J5IGVudHJ5IChvbmx5IHZhbGlkIHVudGlsIG5leHQgZnNfcmVhZGRpcigp IG9yCisgKiAgICBmc19jbG9zZWRpcigpIGNhbGwsIGRvIG5vdCBhdHRlbXB0IHRvIGZyZWUoKSkg b3IgTlVMTCBpZiB0aGUgZW5kIG9mCisgKiAgICB0aGUgZGlyZWN0b3J5IGlzIHJlYWNoZWQuCisg Ki8KK3N0cnVjdCBmc19kaXJlbnQgKmZzX3JlYWRkaXIoc3RydWN0IGZzX2Rpcl9zdHJlYW0gKmRp cnMpOworCisvKgorICogZnNfY2xvc2VkaXIgLSBjbG9zZSBhIGRpcmVjdG9yeSBzdHJlYW0KKyAq CisgKiBAZGlyczogdGhlIGRpcmVjdG9yeSBzdHJlYW0KKyAqLwordm9pZCBmc19jbG9zZWRpcihz dHJ1Y3QgZnNfZGlyX3N0cmVhbSAqZGlycyk7CisKKy8qCiAgKiBDb21tb24gaW1wbGVtZW50YXRp b24gZm9yIHZhcmlvdXMgZmlsZXN5c3RlbSBjb21tYW5kcywgb3B0aW9uYWxseSBsaW1pdGVkCiAg KiB0byBhIHNwZWNpZmljIGZpbGVzeXN0ZW0gdHlwZSB2aWEgdGhlIGZzdHlwZSBwYXJhbWV0ZXIu CiAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcGFydC5oIGIvaW5jbHVkZS9wYXJ0LmgKaW5kZXgg MGQ1Yzk5ODM2Yi4uODYxMTdhN2NlNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wYXJ0LmgKKysrIGIv aW5jbHVkZS9wYXJ0LmgKQEAgLTk4LDYgKzk4LDEyIEBAIGludCBob3N0X2dldF9kZXZfZXJyKGlu dCBkZXYsIHN0cnVjdCBibGtfZGVzYyAqKmJsa19kZXZwKTsKIAogLyogZGlzay9wYXJ0LmMgKi8K IGludCBwYXJ0X2dldF9pbmZvKHN0cnVjdCBibGtfZGVzYyAqZGV2X2Rlc2MsIGludCBwYXJ0LCBk aXNrX3BhcnRpdGlvbl90ICppbmZvKTsKKy8qKgorICogcGFydF9nZXRfaW5mb193aG9sZV9kaXNr KCkgLSBnZXQgcGFydGl0aW9uIGluZm8gZm9yIHRoZSBzcGVjaWFsIGNhc2Ugb2YKKyAqIGEgcGFy dGl0aW9uIG9jY3VweWluZyB0aGUgZW50aXJlIGRpc2suCisgKi8KK2ludCBwYXJ0X2dldF9pbmZv X3dob2xlX2Rpc2soc3RydWN0IGJsa19kZXNjICpkZXZfZGVzYywgZGlza19wYXJ0aXRpb25fdCAq aW5mbyk7CisKIHZvaWQgcGFydF9wcmludChzdHJ1Y3QgYmxrX2Rlc2MgKmRldl9kZXNjKTsKIHZv aWQgcGFydF9pbml0KHN0cnVjdCBibGtfZGVzYyAqZGV2X2Rlc2MpOwogdm9pZCBkZXZfcHJpbnQo c3RydWN0IGJsa19kZXNjICpkZXZfZGVzYyk7CkBAIC0yMDMsNiArMjA5LDkgQEAgc3RhdGljIGlu bGluZSBzdHJ1Y3QgYmxrX2Rlc2MgKm1nX2Rpc2tfZ2V0X2RldihpbnQgZGV2KSB7IHJldHVybiBO VUxMOyB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHBhcnRfZ2V0X2luZm8oc3RydWN0IGJsa19kZXNj ICpkZXZfZGVzYywgaW50IHBhcnQsCiAJCQkJZGlza19wYXJ0aXRpb25fdCAqaW5mbykgeyByZXR1 cm4gLTE7IH0KK3N0YXRpYyBpbmxpbmUgaW50IHBhcnRfZ2V0X2luZm9fd2hvbGVfZGlzayhzdHJ1 Y3QgYmxrX2Rlc2MgKmRldl9kZXNjLAorCQkJCQkgICBkaXNrX3BhcnRpdGlvbl90ICppbmZvKQor eyByZXR1cm4gLTE7IH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXJ0X3ByaW50KHN0cnVjdCBibGtf ZGVzYyAqZGV2X2Rlc2MpIHt9CiBzdGF0aWMgaW5saW5lIHZvaWQgcGFydF9pbml0KHN0cnVjdCBi bGtfZGVzYyAqZGV2X2Rlc2MpIHt9CiBzdGF0aWMgaW5saW5lIHZvaWQgZGV2X3ByaW50KHN0cnVj dCBibGtfZGVzYyAqZGV2X2Rlc2MpIHt9Ci0tIAoyLjEzLjUKCg==