From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Nicol Subject: Re: revised ioctl#21 btrfsprogs patch Date: Fri, 24 Dec 2010 13:52:29 -0600 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0003255735f2bc617604982d54cb To: BTRFS MAILING LIST Return-path: In-Reply-To: List-ID: --0003255735f2bc617604982d54cb Content-Type: text/plain; charset=UTF-8 Attached is another patch, that includes the new files, against a progs clone taken earlier today. It's attached, not in-line, because that seems better, as there are lines that wrap in-line. I have 2.6.35-24-generic_2.6.35-24.42_i386 Maverick kernel image and header debs available with the ioctl#21 feature in them too if anyone would like; e-mail me off-list for the link. --0003255735f2bc617604982d54cb Content-Type: text/x-diff; charset=US-ASCII; name="20101224.dln.patch" Content-Disposition: attachment; filename="20101224.dln.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gi3hr9os0 ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggNmU2ZjZjNi4uNTU1ZGE5MiAx MDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTM3LDEyICszNywxMyBAQCBh bGw6IHZlcnNpb24gJChwcm9ncykgbWFucGFnZXMKIHZlcnNpb246CiAJYmFzaCB2ZXJzaW9uLnNo CiAKLWJ0cmZzOiAkKG9iamVjdHMpIGJ0cmZzLm8gYnRyZnNfY21kcy5vCi0JZ2NjICQoQ0ZMQUdT KSAtbyBidHJmcyBidHJmcy5vIGJ0cmZzX2NtZHMubyBcCitidHJmczogJChvYmplY3RzKSBidHJm cy5vIGJ0cmZzX2NtZHMubyBpc284NjAxdG9tcy5vCisJZ2NjICQoQ0ZMQUdTKSAtbyBidHJmcyBi dHJmcy5vIGJ0cmZzX2NtZHMubyBpc284NjAxdG9tcy5vIFwKIAkJJChvYmplY3RzKSAkKExERkxB R1MpICQoTElCUykKIAotYnRyZnNjdGw6ICQob2JqZWN0cykgYnRyZnNjdGwubwotCWdjYyAkKENG TEFHUykgLW8gYnRyZnNjdGwgYnRyZnNjdGwubyAkKG9iamVjdHMpICQoTERGTEFHUykgJChMSUJT KQorYnRyZnNjdGw6ICQob2JqZWN0cykgYnRyZnNjdGwubyBpc284NjAxdG9tcy5vCisJZ2NjICQo Q0ZMQUdTKSAtbyBidHJmc2N0bCBidHJmc2N0bC5vIGlzbzg2MDF0b21zLm8gXAorCQkkKG9iamVj dHMpICQoTERGTEFHUykgJChMSUJTKQogCiBidHJmcy12b2w6ICQob2JqZWN0cykgYnRyZnMtdm9s Lm8KIAlnY2MgJChDRkxBR1MpIC1vIGJ0cmZzLXZvbCBidHJmcy12b2wubyAkKG9iamVjdHMpICQo TERGTEFHUykgJChMSUJTKQpkaWZmIC0tZ2l0IGEvYnRyZnMuYyBiL2J0cmZzLmMKaW5kZXggNDYz MTRjZi4uNmIzZWJmNiAxMDA2NDQKLS0tIGEvYnRyZnMuYworKysgYi9idHJmcy5jCkBAIC0yOSw2 ICsyOSw3IEBAIHN0cnVjdCBDb21tYW5kIHsKIAlDb21tYW5kRnVuY3Rpb24JZnVuYzsJLyogZnVu Y3Rpb24gd2hpY2ggaW1wbGVtZW50cyB0aGUgY29tbWFuZCAqLwogCWludAluYXJnczsJCS8qIGlm ID09IDk5OSwgYW55IG51bWJlciBvZiBhcmd1bWVudHMKIAkJCQkgICBpZiA+PSAwLCBudW1iZXIg b2YgYXJndW1lbnRzLAorCQkJCSAgIGlmID4gMTAwMCwgMTAwMCBtb3JlIHRoYW4gdGhlIF9tYXhp bXVtXyBudW1iZXIgb2YgYXJndW1lbnRzLAogCQkJCSAgIGlmIDwgMCwgX21pbmltdW1fIG51bWJl ciBvZiBhcmd1bWVudHMgKi8KIAljaGFyCSp2ZXJiOwkJLyogdmVyYiAqLwogCWNoYXIJKmhlbHA7 CQkvKiBoZWxwIGxpbmVzOyBmb3JtIHRoZSAybmQgb253YXJkIHRoZXkgYXJlCkBAIC03MywxNCAr NzQsMTkgQEAgc3RhdGljIHN0cnVjdCBDb21tYW5kIGNvbW1hbmRzW10gPSB7CiAJCSJTZXQgdGhl IHN1YnZvbHVtZSBvZiB0aGUgZmlsZXN5c3RlbSA8cGF0aD4gd2hpY2ggd2lsbCBiZSBtb3VudGVk XG4iCiAJCSJhcyBkZWZhdWx0LiIKIAl9LAotCXsgZG9fZnNzeW5jLCAxLAotCSAgImZpbGVzeXN0 ZW0gc3luYyIsICI8cGF0aD5cbiIKLQkJIkZvcmNlIGEgc3luYyBvbiB0aGUgZmlsZXN5c3RlbSA8 cGF0aD4uIgorCXsgZG9fZnNzeW5jLCAxMDAyLAorCSAgImZpbGVzeXN0ZW0gc3luYyIsICJbLWRx XSA8cGF0aD5cbiIKKwkJIkZvcmNlIGEgc3luYyBvbiB0aGUgZmlsZXN5c3RlbSA8cGF0aD4sIGRl ZmF1bHRpbmcgdG8gJy4nLiIKKwl9LAorCXsgZG9fd2FpdDRjbGVhbiwgMTAwMiwgLyogcmVxdWly ZSBhdCBtb3N0IHR3byBhcmdzICovCisJICAiZmlsZXN5c3RlbSByZWNsYWltIiwgIltwYXRoIFt0 aW1lb3V0XV0gXG4iCisJCSJXYWl0IGZvciBjbGVhbnVwIG9mIGRlbGV0ZWQgc3Vidm9sdW1lcy4g UGF0aCBkZWZhdWx0cyB0byAuXG4iCisJCSJUaW1lb3V0IGluIHNlY29uZHMsIG9yIGFkZCBtIGZv ciBtaW51dGVzLlxuIgogCX0sCiAJeyBkb19yZXNpemUsIDIsCiAJICAiZmlsZXN5c3RlbSByZXNp emUiLCAiWysvLV08bmV3c2l6ZT5bZ2ttXXxtYXggPGZpbGVzeXN0ZW0+XG4iCiAJCSJSZXNpemUg dGhlIGZpbGUgc3lzdGVtLiBJZiAnbWF4JyBpcyBwYXNzZWQsIHRoZSBmaWxlc3lzdGVtXG4iCi0J CSJ3aWxsIG9jY3VwZSBhbGwgYXZhaWxhYmxlIHNwYWNlIG9uIHRoZSBkZXZpY2UuIgorCQkid2ls bCBvY2N1cHkgYWxsIGF2YWlsYWJsZSBzcGFjZSBvbiB0aGUgZGV2aWNlLiIKIAl9LAogCXsgZG9f c2hvd19maWxlc3lzdGVtLCA5OTksCiAJICAiZmlsZXN5c3RlbSBzaG93IiwgIls8dXVpZD58PGxh YmVsPl1cbiIKQEAgLTM0OSw2ICszNTUsMTUgQEAgc3RhdGljIGludCBwYXJzZV9hcmdzKGludCBh cmdjLCBjaGFyICoqYXJndiwKIAkJcmV0dXJuIC0yOwogCiAJLyogY2hlY2sgdGhlIG51bWJlciBv ZiBhcmd1bWVudCAqLworCisJaWYobWF0Y2hjbWQtPm5hcmdzID4gMTAwMCApeworICAgICAgICAg IGlmICggbWF0Y2hjbWQtPm5hcmdzIDwgKDEwMDAgKyAqbmFyZ3NfKSl7CisJCWZwcmludGYoc3Rk ZXJyLCAiRVJST1I6ICclcycgcmVxdWlyZXMgb25seSAlZCBvciBmZXdlciBhcmcocylcbiIsCisJ CQltYXRjaGNtZC0+dmVyYiwgbWF0Y2hjbWQtPm5hcmdzIC0gMTAwMCApOworCQkJcmV0dXJuIC0y OworICAgICAgICAgIH0KKwl9IGVsc2UgeworCiAJaWYgKG1hdGNoY21kLT5uYXJncyA8IDAgJiYg bWF0Y2hjbWQtPm5hcmdzIDwgLSpuYXJnc18gKXsKIAkJZnByaW50ZihzdGRlcnIsICJFUlJPUjog JyVzJyByZXF1aXJlcyBtaW5pbXVtICVkIGFyZyhzKVxuIiwKIAkJCW1hdGNoY21kLT52ZXJiLCAt bWF0Y2hjbWQtPm5hcmdzKTsKQEAgLTM1OSw3ICszNzQsNyBAQCBzdGF0aWMgaW50IHBhcnNlX2Fy Z3MoaW50IGFyZ2MsIGNoYXIgKiphcmd2LAogCQkJbWF0Y2hjbWQtPnZlcmIsIG1hdGNoY21kLT5u YXJncyk7CiAJCQlyZXR1cm4gLTI7CiAJfQotCQorCX0gCiAgICAgICAgIGlmIChwcmVwYXJlX2Fy Z3MoIG5hcmdzXywgYXJnc18sIHByZ25hbWUsIG1hdGNoY21kICkpewogICAgICAgICAgICAgICAg IGZwcmludGYoc3RkZXJyLCAiRVJST1I6IG5vdCBlbm91Z2ggbWVtb3J5XFxuIik7CiAJCXJldHVy biAtMjA7CmRpZmYgLS1naXQgYS9idHJmc19jbWRzLmMgYi9idHJmc19jbWRzLmMKaW5kZXggODAz MWM1OC4uODlmMWYyMiAxMDA2NDQKLS0tIGEvYnRyZnNfY21kcy5jCisrKyBiL2J0cmZzX2NtZHMu YwpAQCAtNTA3LDE1ICs1MDcsMzcgQEAgaW50IGRvX2NyZWF0ZV9zdWJ2b2woaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogaW50IGRvX2Zzc3luYyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJaW50 IGZkLCByZXM7Ci0JY2hhcgkqcGF0aCA9IGFyZ3ZbMV07Ci0KKyAgICAgICAgaW50IGNsZWFudXA9 MSwgcXVpZXQ9MDsKKwljaGFyCSpwYXRoID0gIi4iLCAqcDsgLyogWy1kcV0gWzxwYXRoPl0gKi8K KyAgICAgICAgc3RydWN0IGJ0cmZzX2lvY3RsX2NsZWFuZXJfd2FpdF9hcmdzIHc0Y19hcmc7CisK KyAgICAgICAgaWYgKGFyZ2MgPiAxKXsKKyAgICAgICAgICAgaWYgKGFyZ3ZbMV1bMF0gPT0gJy0n KXsKKyAgICAgICAgICAgICBmb3IgKHA9JmFyZ3ZbMV1bMV07ICpwOyBwKyspIHN3aXRjaCAoKnAp eworICAgICAgICAgICAgICAgIGNhc2UgJ3EnOiBxdWlldCsrOyBicmVhazsKKyAgICAgICAgICAg ICAgICBjYXNlICdkJzogY2xlYW51cCsrOyBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0 OgorICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAiRVJST1I6IHVua25v d24gZmxhZyAnJWMnIGluICclcydcbiIsICpwLGFyZ3ZbMV0pOworCQkgICByZXR1cm4gMTI7Cisg ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICBpZiAoYXJnYyA+IDIpCisgICAgICAgICAgICAg ICAgIHBhdGggPSBhcmd2WzJdOworCisgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICBw YXRoID0gYXJndlsxXTsKKworICAgICAgICAgICB9OworCisgICAgICAgIH07CisgICAgd2hpbGUg KGNsZWFudXAtLSl7IC8qIGNsZWFudXAgc3RhcnRzIGF0IDEgKi8KIAlmZCA9IG9wZW5fZmlsZV9v cl9kaXIocGF0aCk7CiAJaWYgKGZkIDwgMCkgewogCQlmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBj YW4ndCBhY2Nlc3MgdG8gJyVzJ1xuIiwgcGF0aCk7CiAJCXJldHVybiAxMjsKIAl9CiAKLQlwcmlu dGYoIkZTU3luYyAnJXMnXG4iLCBwYXRoKTsKKwlpZiAoIXF1aWV0KSBwcmludGYoIkZTU3luYyAn JXMnXG4iLCBwYXRoKTsKIAlyZXMgPSBpb2N0bChmZCwgQlRSRlNfSU9DX1NZTkMpOwogCWNsb3Nl KGZkKTsKIAlpZiggcmVzIDwgMCApewpAQCAtNTIzLDYgKzU0NSw1NiBAQCBpbnQgZG9fZnNzeW5j KGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJcmV0dXJuIDE2OwogCX0KIAorICAgICAgICBpZiAo Y2xlYW51cCl7CisgICAgICAgICAgIHc0Y19hcmcubXMgPSAweDAwMDAwMDAwOworICAgICAgICAg ICB3NGNfYXJnLmZsYWdzID0gMHgwMDAwMDAwMDsKKwkgICBmZCA9IG9wZW5fZmlsZV9vcl9kaXIo cGF0aCk7CisJICAgaWYgKGZkIDwgMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBjYW4n dCBhY2Nlc3MgdG8gJyVzJ1xuIiwgcGF0aCk7CisJCXJldHVybiAxMjsKKwkgICB9CisJICAgaWYg KCFxdWlldCkgcHJpbnRmKCJyZWNsYWltOiAnJXMnXG4iLCBwYXRoKTsKKwkgICByZXMgPSBpb2N0 bChmZCwgQlRSRlNfSU9DX0NMRUFORVJfV0FJVCwgJnc0Y19hcmcpOworCSAgIGNsb3NlKGZkKTsK KwkgICBpZiggcmVzICE9IDAgKXsKKwkJZnByaW50ZihzdGRlcnIsICIlczplcnJvciAjJWk6JXNc biIsCisgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLCBlcnJubyxzdHJlcnJvcihlcnJubykp OworCQlyZXR1cm4gZXJybm87CisgCSAgIH0KKyAgICAgICAgfQorICAgIH07CisJcmV0dXJuIDA7 Cit9CisKKyNpbmNsdWRlICJpc284NjAxdG9tcy5oIgorCitpbnQgZG9fd2FpdDRjbGVhbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCit7CisJaW50IGZkLCByZXM7CisgICAgICAgIHN0cnVjdCBidHJm c19pb2N0bF9jbGVhbmVyX3dhaXRfYXJncyB3NGNfYXJnOworCisJY2hhcgkqcGF0aCA9ICIuIjsK KyAgICAgICAgdzRjX2FyZy5tcyA9IDB4MDAwMDAwMDA7CisgICAgICAgIHc0Y19hcmcuZmxhZ3Mg PSAweDAwMDAwMDAwOworCisgICAgICAgIGlmIChhcmdjID4gMSkgCisJICAgICBwYXRoID0gYXJn dlsxXTsKKyAgICAgICAgaWYgKGFyZ2MgPiAyKSAKKyAgICAgICAgICAgICB3NGNfYXJnLm1zID0g aXNvODYwMXRvbXMoYXJndlsyXSk7CisKKwlmZCA9IG9wZW5fZmlsZV9vcl9kaXIocGF0aCk7CisJ aWYgKGZkIDwgMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBjYW4ndCBvcGVuIGZpbGUg b3IgZGlyICclcydcbiIsIHBhdGgpOworCQlyZXR1cm4gMTI7CisJfQorCXJlcyA9IGlvY3RsKGZk LCBCVFJGU19JT0NfQ0xFQU5FUl9XQUlULCAmdzRjX2FyZyk7CisJY2xvc2UoZmQpOworCWlmKCBy ZXMgIT0gMCApeworCQlmcHJpbnRmKHN0ZGVyciwgIiVzOmVycm9yICMlaTolc1xuIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgIHBhdGgsIGVycm5vLHN0cmVycm9yKGVycm5vKSk7CisJCXJldHVy biBlcnJubzsKKwl9CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYnRyZnNfY21kcy5o IGIvYnRyZnNfY21kcy5oCmluZGV4IDdiZGUxOTEuLmM5NTgzMzggMTAwNjQ0Ci0tLSBhL2J0cmZz X2NtZHMuaAorKysgYi9idHJmc19jbWRzLmgKQEAgLTE5LDYgKzE5LDcgQEAgaW50IGRvX2Nsb25l KGludCBuYXJncywgY2hhciAqKmFyZ3YpOwogaW50IGRvX2RlbGV0ZV9zdWJ2b2x1bWUoaW50IG5h cmdzLCBjaGFyICoqYXJndik7CiBpbnQgZG9fY3JlYXRlX3N1YnZvbChpbnQgbmFyZ3MsIGNoYXIg Kiphcmd2KTsKIGludCBkb19mc3N5bmMoaW50IG5hcmdzLCBjaGFyICoqYXJndik7CitpbnQgZG9f d2FpdDRjbGVhbihpbnQgbmFyZ3MsIGNoYXIgKiphcmd2KTsKIGludCBkb19kZWZyYWcoaW50IGFy Z2MsIGNoYXIgKiphcmd2KTsKIGludCBkb19zaG93X2ZpbGVzeXN0ZW0oaW50IG5hcmdzLCBjaGFy ICoqYXJndik7CiBpbnQgZG9fYWRkX3ZvbHVtZShpbnQgbmFyZ3MsIGNoYXIgKiphcmdzKTsKZGlm ZiAtLWdpdCBhL2J0cmZzY3RsLmMgYi9idHJmc2N0bC5jCmluZGV4IDkyYmRmMzkuLmNmN2Y2OWEg MTAwNjQ0Ci0tLSBhL2J0cmZzY3RsLmMKKysrIGIvYnRyZnNjdGwuYwpAQCAtMzQsNiArMzQsNyBA QAogI2luY2x1ZGUgImN0cmVlLmgiCiAjaW5jbHVkZSAidHJhbnNhY3Rpb24uaCIKICNpbmNsdWRl ICJ1dGlscy5oIgorI2luY2x1ZGUgImlzbzg2MDF0b21zLmgiCiAjaW5jbHVkZSAidmVyc2lvbi5o IgogCiAjaWZkZWYgX19DSEVDS0VSX18KQEAgLTU3LDYgKzU4LDcgQEAgc3RhdGljIHZvaWQgcHJp bnRfdXNhZ2Uodm9pZCkKIAlwcmludGYoIlx0LWE6IHNjYW5zIGFsbCBkZXZpY2VzIGZvciBCdHJm cyBmaWxlc3lzdGVtc1xuIik7CiAJcHJpbnRmKCJcdC1jOiBmb3JjZXMgYSBzaW5nbGUgRlMgc3lu Y1xuIik7CiAJcHJpbnRmKCJcdC1EOiBkZWxldGUgc25hcHNob3RcbiIpOworCXByaW50ZigiXHQt QyBbdGltZW91dCBbZGlyZWN0b3J5XV06IHdhaXQgZm9yIHNuYXBzaG90IHNwYWNlIHJlY292ZXJ5 XG4iKTsKIAlwcmludGYoIlx0LW0gW3RyZWUgaWRdIGRpcmVjdG9yeTogc2V0IHRoZSBkZWZhdWx0 IG1vdW50ZWQgc3Vidm9sdW1lIgogCSAgICAgICAiIHRvIHRoZSBbdHJlZSBpZF0gb3IgdGhlIGRp cmVjdG9yeVxuIik7CiAJcHJpbnRmKCIlc1xuIiwgQlRSRlNfQlVJTERfVkVSU0lPTik7CkBAIC05 Niw3ICs5OCw3IEBAIGludCBtYWluKGludCBhYywgY2hhciAqKmF2KQogCWNoYXIgKmZuYW1lID0g TlVMTDsKIAljaGFyICpzbmFwX2xvY2F0aW9uID0gTlVMTDsKIAlpbnQgc25hcF9mZCA9IDA7Ci0J aW50IGZkOworCWludCBmZCA9IC05OTk7IC8qIHNpbGVuY2UgYSB3YXJuaW5nICovCiAJaW50IHJl dDsKIAlzdHJ1Y3QgYnRyZnNfaW9jdGxfdm9sX2FyZ3MgYXJnczsKIAljaGFyICpuYW1lID0gTlVM TDsKQEAgLTEwNiw2ICsxMDgsNyBAQCBpbnQgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKIAljaGFy ICpwb3M7CiAJY2hhciAqZnVsbHBhdGg7CiAJdTY0IG9iamVjdGlkID0gMDsKKyAgICAgICAgc3Ry dWN0IGJ0cmZzX2lvY3RsX2NsZWFuZXJfd2FpdF9hcmdzIENXYXJnczsKIAogCWlmIChhYyA9PSAy ICYmIHN0cmNtcChhdlsxXSwgIi1hIikgPT0gMCkgewogCQlmcHJpbnRmKHN0ZGVyciwgIlNjYW5u aW5nIGZvciBCdHJmcyBmaWxlc3lzdGVtc1xuIik7CkBAIC0xODYsNiArMTg5LDExIEBAIGludCBt YWluKGludCBhYywgY2hhciAqKmF2KQogCQkJCWZwcmludGYoc3RkZXJyLCAiLUQgc2l6ZSB0b28g bG9uZ1xuIik7CiAJCQkJZXhpdCgxKTsKIAkJCX0KKwkJfSBlbHNlIGlmIChzdHJjbXAoYXZbaV0s ICItQyIpID09IDApIHsKKwkJCWNvbW1hbmQgPSBCVFJGU19JT0NfQ0xFQU5FUl9XQUlUOworICAg ICAgICAgICAgICAgICAgICAgICAgQ1dhcmdzLm1zID0gKCBhYyA+IChpKzEpID8gaXNvODYwMXRv bXMoYXZbaSsxXSkgOiAweDAwMDAwMDAwICk7CisgICAgICAgICAgICAgICAgICAgICAgICBDV2Fy Z3MuZmxhZ3MgPSAweDAwMDAwMDAwOworCQkJbmFtZSA9ICggYWMgPiAoIGkrMiApID8gYXZbaSAr IDJdIDogIi4iICk7CiAJCX0gZWxzZSBpZiAoc3RyY21wKGF2W2ldLCAiLUEiKSA9PSAwKSB7CiAJ CQlpZiAoaSA+PSBhYyAtIDEpIHsKIAkJCQlmcHJpbnRmKHN0ZGVyciwgIi1BIHJlcXVpcmVzIGFu IGFyZ1xuIik7CkBAIC0yMzIsNyArMjQwLDcgQEAgaW50IG1haW4oaW50IGFjLCBjaGFyICoqYXYp CiAJCQlleGl0KDEpOwogCQl9CiAJCW5hbWUgPSBmbmFtZTsKLQkgfSBlbHNlIHsKKwl9IGVsc2Ug aWYgKGNvbW1hbmQgIT0gQlRSRlNfSU9DX0NMRUFORVJfV0FJVCkgewogCQlmZCA9IG9wZW5fZmls ZV9vcl9kaXIoZm5hbWUpOwogCSB9CiAKQEAgLTI0Nyw2ICsyNTUsOSBAQCBpbnQgbWFpbihpbnQg YWMsIGNoYXIgKiphdikKIAl9IGVsc2UgaWYgKGNvbW1hbmQgPT0gQlRSRlNfSU9DX0RFRkFVTFRf U1VCVk9MKSB7CiAJCXByaW50Zigib2JqZWN0aWQgaXMgJWxsdVxuIiwgb2JqZWN0aWQpOwogCQly ZXQgPSBpb2N0bChmZCwgY29tbWFuZCwgJm9iamVjdGlkKTsKKwl9IGVsc2UgaWYgKGNvbW1hbmQg PT0gQlRSRlNfSU9DX0NMRUFORVJfV0FJVCkgeworCQlmZCA9IG9wZW5fZmlsZV9vcl9kaXIobmFt ZSk7CisJCXJldCA9IGlvY3RsKGZkLCBjb21tYW5kLCAmQ1dhcmdzKTsKIAl9IGVsc2UKIAkJcmV0 ID0gaW9jdGwoZmQsIGNvbW1hbmQsICZhcmdzKTsKIAlpZiAocmV0IDwgMCkgewpkaWZmIC0tZ2l0 IGEvaW9jdGwuaCBiL2lvY3RsLmgKaW5kZXggNzc2ZDdhOS4uZGMzZjJmYiAxMDA2NDQKLS0tIGEv aW9jdGwuaAorKysgYi9pb2N0bC5oCkBAIC0xNjksNCArMTY5LDExIEBAIHN0cnVjdCBidHJmc19p b2N0bF9zcGFjZV9hcmdzIHsKICNkZWZpbmUgQlRSRlNfSU9DX0RFRkFVTFRfU1VCVk9MIF9JT1co QlRSRlNfSU9DVExfTUFHSUMsIDE5LCB1NjQpCiAjZGVmaW5lIEJUUkZTX0lPQ19TUEFDRV9JTkZP IF9JT1dSKEJUUkZTX0lPQ1RMX01BR0lDLCAyMCwgXAogCQkJCSAgICBzdHJ1Y3QgYnRyZnNfaW9j dGxfc3BhY2VfYXJncykKK3N0cnVjdCBidHJmc19pb2N0bF9jbGVhbmVyX3dhaXRfYXJnc3sKKyAg ICAgICAgX191MzIgbXM7CisgICAgICAgIF9fdTMyIGZsYWdzOyAvKiBjb250cm9scyB3aGF0IHRv IHdhaXQgZm9yLCBhbmQgc3RyaWN0dXJlLiBaZXJvIHdhaXRzIGZvciBzdWJ2b2wgZGVsZXRpb25z LiAqLworfTsKKyNkZWZpbmUgQlRSRlNfSU9DX0NMRUFORVJfV0FJVCBfSU9XKEJUUkZTX0lPQ1RM X01BR0lDLCAyMSwgXAorCQkJCSAgICBzdHJ1Y3QgYnRyZnNfaW9jdGxfY2xlYW5lcl93YWl0X2Fy Z3MpCiAjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaXNvODYwMXRvbXMuYyBiL2lzbzg2MDF0b21zLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM5N2FhZQotLS0gL2Rldi9udWxs CisrKyBiL2lzbzg2MDF0b21zLmMKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExp Y2Vuc2UgdjIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisg KgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEg MDIxMTEwLTEzMDcsIFVTQS4KKyAqLworCisvKioqKioqKioqKioKKworIHRoZSBmb2xsb3dpbmcg d2lsbCBjb3JyZWN0bHkgcGFyc2UgdmFsaWQgZHVyYXRpb24gc3RyaW5ncywKKyBhbHNvIGl0IHdp bGwgYWNjZXB0IGEgbG90IG9mIGludmFsaWQgb25lcy4gCisKKyBpdCBkb2VzOgorCisgICAga25v dyBhbGwgdGhlIElTTzg2MDEgbGV0dGVycworCisgICAgYWNjZXB0IGEgbm9uLWludGVnZXIgYXMg dGhlIGxhc3QgbnVtZXJpYyBjb21wb25lbnQKKworICAgIGFsd2F5cyB0cmVhdHMgIm0iIGFzIG1p bnV0ZXMKKworIGl0IHNpbGVudGx5IGFjY2VwdHM6CisKKyAgICBvdXQgb2Ygb3JkZXIgZHVyYXRp b24gdHlwZSBsZXR0ZXJzCisKKyAgICBzdHJpbmdzIG1pc3NpbmcgdGhlIGxlYWRpbmcgUCBjaGFy YWN0ZXIKKworICAgIGxvd2VyY2FzZSBkdXJhdGlvbiB0eXBlIGxldHRlcnMKKworICAgIG5vbi1p bnRlZ2VycyBpbiBhbnkgcG9zaXRpb24KKworIGl0IGhhbHRzIGFuZCBjYXRjaGVzIGZpcmUgb246 CisKKyAgICBQIG9yIHAgYXBwZWFyaW5nIHNvbWV3aGVyZSBiZXNpZGVzIHRoZSBiZWdpbm5pbmcg b2YgdGhlIHN0cmluZworCisgICAgQXR0ZW1wdHMgdG8gdXNlIFllYXJzIG9yIE1vbnRocworCisg ICAgdW5yZWNvZ25pemVkIGNoYXJhY3RlcnMKKworCisqKioqKioqKioqKi8KKworI2luY2x1ZGUg PHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8YXNtL3R5cGVzLmg+CisK K19fdTMyIGlzbzg2MDF0b21zKGNoYXIgKlApeworICAgIHVuc2lnbmVkIGxvbmcgbXM7CisgICAg ZG91YmxlIGNvbXBvbmVudDsKKyAgICBjaGFyICpwdHI7CisgICAgY2hhciAqZW5kcHRyOworICAg IHNob3J0IE1fbWluID0gMDsKKyAgICBtcyA9IDBVTDsKKyAgICBwdHIgPSBQOworICAgIGZvcig7 Oyl7CisgICAgICAgY29tcG9uZW50PXN0cnRvZChwdHIsICZlbmRwdHIpOworICAgICAgIHN3aXRj aCAoKmVuZHB0cikKKyAgICAgICB7CisgICAgICAgICAgY2FzZSAnUCc6IC8qIGFuY2hvciAqLyBj YXNlICdwJzoKKyAgICAgICAgICAgICBpZiAocHRyID4gUCkKKwkgICAgICAgICBmcHJpbnRmKHN0 ZGVyciwgIm5vbi1pbml0aWFsIFAgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJpbiBkdXJh dGlvbiBzdHJpbmcgJXNcbiIsIFApOworICAgICAgICAgICAgICAgICBleGl0ICgtMSk7CisgICAg ICAgICAgY2FzZSAnWSc6IC8qIHllYXIgKi8gY2FzZSAneSc6CisJICAgICAgICAgZnByaW50Zihz dGRlcnIsICJZZWFycyBhcmUgbm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgICAgICAg ICAgImluIGR1cmF0aW9uIHN0cmluZyAlc1xuIiwgUCk7CisgICAgICAgICAgICAgICAgIGV4aXQg KC0xKTsKKyAgICAgICAgICBjYXNlICdUJzogLyogVGltZSAobm90IGRhdGUpIGFuY2hvciAqLyBj YXNlICd0JzoKKyAgICAgICAgICAgICBNX21pbiA9IDE7CisgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgY2FzZSAnVyc6IC8qIHdlZWsgKi8gY2FzZSAndyc6CisgICAgICAgICAgICAgY29t cG9uZW50ICo9IDc7CisgICAgICAgICAgY2FzZSAnRCc6IC8qIGRheSAqLyBjYXNlICdkJzoKKyAg ICAgICAgICAgICBjb21wb25lbnQgKj0gIDI0IDsKKyAgICAgICAgICBjYXNlICdIJzogLyogaG91 ciAqLyBjYXNlICdoJzoKKyAgICAgICAgICAgICBjb21wb25lbnQgKj0gNjA7CisgICAgICAgICAg ICAgTV9taW4gPSAxOworICAgICAgICAgIGNhc2UgJ00nOiAvKiBtb250aCwgb3IgbWludXRlICov CisgICAgICAgICAgICAgaWYgKE1fbWluID09IDAgKXsKKwkgICAgICAgICBmcHJpbnRmKHN0ZGVy ciwgIk1vbnRocyBhcmUgbm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAg ImluIGR1cmF0aW9uIHN0cmluZyAlc1xuIgorICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2Ug J20nIGluc3RlYWQgb3IgcHJlZml4IGEgJ1QnXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAg LCBQKTsKKyAgICAgICAgICAgICAgICAgZXhpdCAoLTEpOworICAgICAgICAgICAgIH07CisgICAg ICAgICAgY2FzZSAnbSc6IC8qIG1pbnV0ZSAqLworICAgICAgICAgICAgIGNvbXBvbmVudCAqPSA2 MDsKKyAgICAgICAgICBjYXNlICdTJzogLyogc2Vjb25kICovIGNhc2UgJ3MnOgorICAgICAgICAg IGNhc2UgJ1wwJzogLyogZGVmYXVsdCB0byBzZWNvbmQgKi8KKyAgICAgICAgICAgICBjb21wb25l bnQgKj0gMTAwMDsKKyAgICAgICAgICAgICBtcyArPSBjb21wb25lbnQ7CisgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgCisgICAgICAgICAgZGVmYXVsdDoKKwkgICAgIGZwcmludGYoc3Rk ZXJyLAorICAgICAgICAgICAgICAgICJ1bmV4cGVjdGVkIGNoYXIgWyVjXSBpbiBkdXJhdGlvbiBz dHJpbmcgJXNcbiIKKyAgICAgICAgICAgICAgICAidmFsaWQgZGVzaWduYXRvcnMgYXJlIFtXd0Rk SGhNbVNzXSB3aXRoIGltcGxpZWQgdHJhaWxpbmcgUy5cbiIsCisgICAgICAgICAgICAgICAgKmVu ZHB0ciwgUAorICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgZXhpdCAoLTEpOworICAgICAg IH07CisgICAgICAgaWYgKCEqZW5kcHRyKQorICAgICAgICAgIHJldHVybiAobXMpOyAKKyAgICAg ICBwdHIgPSAxK2VuZHB0cjsKKyAgICB9OworfQorCmRpZmYgLS1naXQgYS9pc284NjAxdG9tcy5o IGIvaXNvODYwMXRvbXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmM5 NTM3Ci0tLSAvZGV2L251bGwKKysrIGIvaXNvODYwMXRvbXMuaApAQCAtMCwwICsxLDMgQEAKKyNp bmNsdWRlIDxhc20vdHlwZXMuaD4KK19fdTMyIGlzbzg2MDF0b21zKGNoYXIgKlApOworCmRpZmYg LS1naXQgYS9tYW4vYnRyZnMuOC5pbiBiL21hbi9idHJmcy44LmluCmluZGV4IDI2ZWY5ODIuLjFi ZjEyNTYgMTAwNjQ0Ci0tLSBhL21hbi9idHJmcy44LmluCisrKyBiL21hbi9idHJmcy44LmluCkBA IC0xNyw3ICsxNyw5IEBAIGJ0cmZzIFwtIGNvbnRyb2wgYSBidHJmcyBmaWxlc3lzdGVtCiAuUFAK IFxmQmJ0cmZzXGZQIFxmQmZpbGVzeXN0ZW0gZGVmcmFnXGZQXGZJIDxmaWxlPnw8ZGlyPiBbPGZp bGU+fDxkaXI+Li4uXVxmUAogLlBQCi1cZkJidHJmc1xmUCBcZkJmaWxlc3lzdGVtIHN5bmNcZlBc ZkkgPHBhdGg+IFxmUAorXGZCYnRyZnNcZlAgXGZCZmlsZXN5c3RlbSBzeW5jXGZQXGZJIFstZHFd IFs8cGF0aD5dIFxmUAorLlBQCitcZkJidHJmc1xmUCBcZkJmaWxlc3lzdGVtIHJlY2xhaW1cZlBc ZkkgWzxwYXRoPiBbPHRpbWVvdXQ+XV0gXGZQCiAuUFAKIFxmQmJ0cmZzXGZQIFxmQmZpbGVzeXN0 ZW0gcmVzaXplXGZQXGZJIFsrL1wtXTxzaXplPltna21dfG1heCA8ZmlsZXN5c3RlbT5cZlAKIC5Q UApAQCAtMTExLDggKzExMywyMSBAQCBTY2FuIGRldmljZXMgZm9yIGEgYnRyZnMgZmlsZXN5c3Rl bS4gSWYgbm8gZGV2aWNlcyBhcmUgcGFzc2VkLCBcZkJidHJmc1xmUiBzY2FucwogYWxsIHRoZSBi bG9jayBkZXZpY2VzLgogLlRQCiAKLVxmQmZpbGVzeXN0ZW0gc3luY1xmUlxmSSA8cGF0aD4gXGZS Ci1Gb3JjZSBhIHN5bmMgZm9yIHRoZSBmaWxlc3lzdGVtIGlkZW50aWZpZWQgYnkgXGZJPHBhdGg+ XGZSLgorXGZCZmlsZXN5c3RlbSBzeW5jXGZSXGZJIFstZHFdIFs8cGF0aD5dIFxmUgorRm9yY2Ug YSBzeW5jIGZvciB0aGUgZmlsZXN5c3RlbSBpZGVudGlmaWVkIGJ5IFxmSTxwYXRoPlxmUiwKK3do aWNoIGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gVXNlIHRoZSAtZCBzd2l0Y2gK K3RvIHdhaXQgZm9yIHRoZSBzdWJ2b2x1bWUgY2xlYW5lciB0aHJlYWQgdG8gZmluaXNoLCB1c2Ug dGhlCistcSBzd2l0Y2ggdG8gc3VwcHJlc3MgaW5mb3JtYXRpb25hbCBvdXRwdXQuCisuVFAKKwor XGZCZmlsZXN5c3RlbSByZWNsYWltXGZSXGZJIFs8cGF0aD4gWzx0aW1lb3V0Pl1dIFxmUgorV2Fp dCBmb3IgdGhlIGJhY2tncm91bmRlZCByZWNvdmVyeSBvZiBzcGFjZSBmcm9tIGRlbGV0ZWQKK3N1 YnZvbHVtZXMsIGlmIGFueSwgdG8gY29tcGxldGUuIFRoZSBvcHRpb25hbCBwYXRoIAorZGVmYXVs dHMgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnksIGFuZCB0aGUKK3RpbWVvdXQgZGVm YXVsdHMgdG8gaW5kZWZpbmF0ZWx5LiBUaGUgdGltZW91dCBpcyBpbiAKK3NlY29uZHMsIGJ1dCBj YW4gYWxzbyB0YWtlIGEgW1dESG1TXSBzdWZmaXggbWVhbmluZword2Vla3MsIGRheXMsIGhvdXJz LCBtaW51dGVzLCBvciBleHBsaWNpdCBzZWNvbmRzLCBsb29zZWx5Citmb2xsb3dpbmcgdGhlIElT Tzg2MDEgc3RhbmRhcmQgZm9yIGR1cmF0aW9ucy4KIC5UUAogCiAuXCIKZGlmZiAtLWdpdCBhL21h bi9idHJmc2N0bC44LmluIGIvbWFuL2J0cmZzY3RsLjguaW4KaW5kZXggYzJkNDQ4OC4uZWVlZDUx NiAxMDA2NDQKLS0tIGEvbWFuL2J0cmZzY3RsLjguaW4KKysrIGIvbWFuL2J0cmZzY3RsLjguaW4K QEAgLTEwLDYgKzEwLDcgQEAgYnRyZnNjdGwgXC0gY29udHJvbCBhIGJ0cmZzIGZpbGVzeXN0ZW0K IFsgXGZCIFwtQVxmUFxmSSBkZXZpY2VcZlAgXQogWyBcZkIgXC1hXGZQIF0KIFsgXGZCIFwtY1xm UCBdCitbIFxmQiBcLUNcZlBcZkkgW3RpbWVvdXQgW2RpcmVjdG9yeV1dXGZQIF0KIC5TSCBERVND UklQVElPTgogLkIgYnRyZnNjdGwKIGlzIHVzZWQgdG8gY29udHJvbCB0aGUgZmlsZXN5c3RlbSBh bmQgdGhlIGZpbGVzIGFuZCBkaXJlY3RvcmllcyBzdG9yZWQuIEl0IGlzIHRoZSB0b29sIHRvIGNy ZWF0ZSBhIG5ldyBzbmFwc2hvdCBmb3IgdGhlIGZpbGVzeXN0ZW0uCkBAIC0zNSw2ICszNiwxMSBA QCBTY2FucyBhbGwgZGV2aWNlcyBwcmVzZW50IGluIHRoZSBzeXN0ZW0gZm9yIGJ0cmZzIGZpbGVz eXN0ZW0uCiAuVFAKIFxmQlwtY1xmUgogRm9yY2VzIGEgZmlsZXN5c3RlbSBzeW5jLgorLlRQCitc ZkIgXC1DXGZSXGZJIFt0aW1lb3V0IFtkaXJlY3RvcnldXVxmUgorV2FpdCBmb3IgYmFja2dyb3Vu ZGVkIHN1YnZvbHVtZSBkZWxldGlvbnMgdG8gY29tcGxldGUuIFRoZSBvcHRpb25hbCB0aW1lb3V0 CitwYXJhbWV0ZXIgbG9vc2VseSBmb2xsb3dzIElTTzg2MDEuIHRoZSBvcHRpb25hbCBkaXJlY3Rv cnkgZGVmYXVsdHMgdG8KK3RoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LgogLlNIIEFWQUlM QUJJTElUWQogLkIgYnRyZnNjdGwKIGlzIHBhcnQgb2YgYnRyZnMtcHJvZ3MuIEJ0cmZzIGlzIGN1 cnJlbnRseSB1bmRlciBoZWF2eSBkZXZlbG9wbWVudCwK --0003255735f2bc617604982d54cb--