看板 DFBSD_kernel 關於我們 聯絡資訊
--0016368332f0cd96a4049d23b052 Content-Type: multipart/alternative; boundary=0016368332f0cd969a049d23b050 --0016368332f0cd969a049d23b050 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Here is diff. I cam across the error: In function (for each function in iostat.c) multiple declaration (of the the functions) I think everything is good enough. Still if someone can figure it out and tell me. - Pratyush. On Fri, Feb 25, 2011 at 11:21 AM, Pratyush Kshirsagar < pratyush.kshirsagar@gmail.com> wrote: > Hello, > I am porting the iostat from FreeBSD. > I have problem with the function devstat_compute_statistics() > Here is how its used in FreeBSD ans I tried the compute_stats() in > dragonfly but still need this equivalent to be correct > So, please give me the correct usage of compute_stats similar to > devstat_compute_statistics in the FreeBSD, here it is: > > if (devstat_compute_statistics <http://fxr.googlebit.com/ident?i= =3Ddevstat_compute_statistics>(&cur <http://fxr.googlebit.com/ident?i=3Dcur= >.dinfo <http://fxr.googlebit.com/ident?i=3Ddinfo>->devices <http://fxr.goo= glebit.com/ident?i=3Ddevices>[di <http://fxr.googlebit.com/ident?i=3Ddi>], > &last <http://fxr.googlebit.com/ident?i=3Dlast>.dinfo <http:= //fxr.googlebit.com/ident?i=3Ddinfo>->devices <http://fxr.googlebit.com/ide= nt?i=3Ddevices>[di <http://fxr.googlebit.com/ident?i=3Ddi>], busy_seconds, > DSM_KB_PER_TRANSFER, &kb_per_transfer, > DSM_TRANSFERS_PER_SECOND, &transfers_per_second, > DSM_MB_PER_SECOND, &mb_per_second, DSM_NONE) !=3D 0) > errx <http://fxr.googlebit.com/ident?i=3Derrx>(1, *"%s"*= , devstat_errbuf <http://fxr.googlebit.com/ident?i=3Ddevstat_errbuf>); > > > Also, is it OK if we call getnumdevs() without any arguments (its similar= to freebsd devstat_getdevs()). > > The FreeBSD uses: > > switch (devstat_getdevs <http://fxr.googlebit.com/ident?i=3Ddevstat_getde= vs>(NULL <http://fxr.googlebit.com/ident?i=3DNULL>, &cur <http://fxr.google= bit.com/ident?i=3Dcur>)) { > case -1: > errx <http://fxr.googlebit.com/ident?i=3Derrx>(1, *"%s"*,= devstat_errbuf <http://fxr.googlebit.com/ident?i=3Ddevstat_errbuf>); > break; > case 1: > cmdiostat <http://fxr.googlebit.com/ident?i=3Dcmdiostat>= (*"refresh"*, NULL <http://fxr.googlebit.com/ident?i=3DNULL>); > break; > default: > break; > } > > > I am still trying to remove some warnings and error. Will mail you if nee= d more help. > > > pratyush.kshirsagar (@ gmail.com) > > > --0016368332f0cd969a049d23b050 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Here is diff. I cam across the error:=A0<div>In function (for each function= in iostat.c)</div><div>multiple declaration (of the the functions)</div><d= iv><br></div><div>I =A0think everything is good enough.</div><div>Still if = someone can figure it out and tell me.</div> <div><br></div><div>- Pratyush.<br><br><div class=3D"gmail_quote">On Fri, F= eb 25, 2011 at 11:21 AM, Pratyush Kshirsagar <span dir=3D"ltr">&lt;<a href= =3D"mailto:pratyush.kshirsagar@gmail.com">pratyush.kshirsagar@gmail.com</a>= &gt;</span> wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex;">Hello,<div>I am porting the iostat from Fre= eBSD.</div><div>I have problem with the function devstat_compute_statistics= ()</div> <div>Here is how its used in FreeBSD ans I tried the compute_stats() in dra= gonfly but still need this equivalent to be correct</div> <div>So, please give me the correct usage of compute_stats similar to devst= at_compute_statistics in=A0the FreeBSD, here it is:</div><div><span style= =3D"font-family:&#39;Times New Roman&#39;"><pre> if (<a href=3D"http= ://fxr.googlebit.com/ident?i=3Ddevstat_compute_statistics" target=3D"_blank= ">devstat_compute_statistics</a>(&amp;<a href=3D"http://fxr.googlebit.com/i= dent?i=3Dcur" target=3D"_blank">cur</a>.<a href=3D"http://fxr.googlebit.com= /ident?i=3Ddinfo" target=3D"_blank">dinfo</a>-&gt;<a href=3D"http://fxr.goo= glebit.com/ident?i=3Ddevices" target=3D"_blank">devices</a>[<a href=3D"http= ://fxr.googlebit.com/ident?i=3Ddi" target=3D"_blank">di</a>], &amp;<a href=3D"http://fxr.googlebit.com/ident?i=3Dlast" targe= t=3D"_blank">last</a>.<a href=3D"http://fxr.googlebit.com/ident?i=3Ddinfo" = target=3D"_blank">dinfo</a>-&gt;<a href=3D"http://fxr.googlebit.com/ident?i= =3Ddevices" target=3D"_blank">devices</a>[<a href=3D"http://fxr.googlebit.c= om/ident?i=3Ddi" target=3D"_blank">di</a>], busy_seconds, DSM_KB_PER_TRANSFER, &amp;kb_per_transfer, DSM_TRANSFERS_PER_SECOND, &amp;transfers_per_second, DSM_MB_PER_SECOND, &amp;mb_per_second, DSM_NONE) !=3D 0) <a href=3D"http://fxr.googlebit.com/ident?i=3Derrx" target= =3D"_blank">errx</a>(1, <i>&quot;%s&quot;</i>, <a href=3D"http://fxr.google= bit.com/ident?i=3Ddevstat_errbuf" target=3D"_blank">devstat_errbuf</a>);</p= re><pre> <br></pre><pre>Also, is it OK if we call getnumdevs() without any arguments= (its similar to freebsd devstat_getdevs()).</pre> <pre>The FreeBSD uses:</pre><pre><span style=3D"font-family:&#39;Times New = Roman&#39;;white-space:normal"><pre>switch (<a href=3D"http://fxr.googlebit= ..com/ident?i=3Ddevstat_getdevs" target=3D"_blank">devstat_getdevs</a>(<a hr= ef=3D"http://fxr.googlebit.com/ident?i=3DNULL" target=3D"_blank">NULL</a>, = &amp;<a href=3D"http://fxr.googlebit.com/ident?i=3Dcur" target=3D"_blank">c= ur</a>)) { case -1: <a href=3D"http://fxr.googlebit.com/ident?i=3Derrx" target= =3D"_blank">errx</a>(1, <i>&quot;%s&quot;</i>, <a href=3D"http://fxr.google= bit.com/ident?i=3Ddevstat_errbuf" target=3D"_blank">devstat_errbuf</a>); break; case 1: <a href=3D"http://fxr.googlebit.com/ident?i=3Dcmdiostat" t= arget=3D"_blank">cmdiostat</a>(<i>&quot;refresh&quot;</i>, <a href=3D"http:= //fxr.googlebit.com/ident?i=3DNULL" target=3D"_blank">NULL</a>); break; default: break; }</pre><pre><br></pre><pre>I am still trying to remove some warnings and e= rror. Will mail you if need more help.</pre><pre><br></pre><pre>pratyush.ks= hirsagar (@ <a href=3D"http://gmail.com" target=3D"_blank">gmail.com</a>)</= pre> <pre><br></pre> </span></pre></span></div> </blockquote></div><br></div> --0016368332f0cd969a049d23b050-- --0016368332f0cd96a4049d23b052 Content-Type: application/octet-stream; name=iostat_diff Content-Disposition: attachment; filename=iostat_diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_gklqggtc0 ZGlmZiAtLWdpdCBhL2xpYi9saWJkZXZzdGF0L2RldnN0YXQuaCBiL2xpYi9saWJkZXZzdGF0L2Rl dnN0YXQuaAppbmRleCA0NDQ3NTk3Li4yZmZmMDQ4IDEwMDY0NAotLS0gYS9saWIvbGliZGV2c3Rh dC9kZXZzdGF0LmgKKysrIGIvbGliL2xpYmRldnN0YXQvZGV2c3RhdC5oCkBAIC0zMyw3ICszMyw3 IEBACiAjZGVmaW5lIF9ERVZTVEFUX0gKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KICNpbmNsdWRl IDxzeXMvZGV2aWNlc3RhdC5oPgotCisjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CiAjZGVmaW5l IERFVlNUQVRfRVJSQlVGX1NJWkUgIDIwNDggLyogc2l6ZSBvZiB0aGUgZGV2c3RhdCBsaWJyYXJ5 IGVycm9yIHN0cmluZyAqLwogCiBleHRlcm4gY2hhciBkZXZzdGF0X2VycmJ1ZltdOwpAQCAtNzQs NyArNzQsMTEgQEAgc3RydWN0IGRldmluZm8gewogfTsKIAogc3RydWN0IHN0YXRpbmZvIHsKKwls b25nIGNwX3RpbWVbQ1BVU1RBVEVTXTsKKwlsb25nIHRrX25pbjsKKwlsb25nIHRrX25vdXQ7CiAJ c3RydWN0IGRldmluZm8JKmRpbmZvOworCWxvbmcgZG91YmxlIHNuYXBfdGltZTsKIAlzdHJ1Y3Qg dGltZXZhbAlidXN5X3RpbWU7CiB9OwogCmRpZmYgLS1naXQgYS9zeXMvY29uZmlnL0dFTkVSSUMg Yi9zeXMvY29uZmlnL0dFTkVSSUMKaW5kZXggZTExNzc0MS4uNmJhZmZmMCAxMDA2NDQKLS0tIGEv c3lzL2NvbmZpZy9HRU5FUklDCisrKyBiL3N5cy9jb25maWcvR0VORVJJQwpAQCAtNTQsNiArNTQs OCBAQCBvcHRpb25zIAlBSERfUkVHX1BSRVRUWV9QUklOVAkjIFByaW50IHJlZ2lzdGVyIGJpdGZp ZWxkcyBpbiBkZWJ1ZwogCQkJCQkjIG91dHB1dC4gIEFkZHMgfjIxNWsgdG8gZHJpdmVyLgogb3B0 aW9ucwkJRFNDSEVEX0ZRICAgICAgICAgICAgICAgIyBGYWlyLXF1ZXVpbmcgZGlzayBzY2hlZHVs ZXIKIAorb3B0aW9ucwkJVkVTQQorb3B0aW9ucwkJU0NfUElYRUxfTU9ERQogIyBBTFRRCiBvcHRp b25zICAgICAgICAgQUxUUSAgICAgICAgICAgICNhbHRlcm5hdGUgcXVldWVpbmcKIG9wdGlvbnMg ICAgICAgICBBTFRRX0NCUSAgICAgICAgI2NsYXNzIGJhc2VkIHF1ZXVlaW5nCmRpZmYgLS1naXQg YS9zeXMvc3lzL3Jlc291cmNlLmggYi9zeXMvc3lzL3Jlc291cmNlLmgKaW5kZXggZjFiYzQ2Yy4u YmIxMzUzNiAxMDA2NDQKLS0tIGEvc3lzL3N5cy9yZXNvdXJjZS5oCisrKyBiL3N5cy9zeXMvcmVz b3VyY2UuaApAQCAtMTQyLDYgKzE0MiwxMyBAQCBzdHJ1Y3QgbG9hZGF2ZyB7CiAJbG9uZwlmc2Nh bGU7CiB9OwogCisjZGVmaW5lIENQX1VTRVIgMAorI2RlZmluZSBDUF9OSUNFIDEKKyNkZWZpbmUg Q1BfU1lTIDIKKyNkZWZpbmUgQ1BfSU5UUiAzCisjZGVmaW5lIENQX0lETEUgNAorI2RlZmluZSBD UFVTVEFURVMgNQorCiAjaWZkZWYgX0tFUk5FTAogZXh0ZXJuIHN0cnVjdCBsb2FkYXZnIGF2ZXJ1 bm5hYmxlOwogCmRpZmYgLS1naXQgYS91c3IuYmluL3N5c3RhdC9NYWtlZmlsZSBiL3Vzci5iaW4v c3lzdGF0L01ha2VmaWxlCmluZGV4IDJkOGQxZjcuLjgyMmUzZDYgMTAwNjQ0Ci0tLSBhL3Vzci5i aW4vc3lzdGF0L01ha2VmaWxlCisrKyBiL3Vzci5iaW4vc3lzdGF0L01ha2VmaWxlCkBAIC04LDcg KzgsNyBAQCBDRkxBR1MrPS1ESU5FVDYgLUkkey5DVVJESVJ9Ly4uLy4uL3N5cwogU1JDUz0JY21k cy5jIGNtZHRhYi5jIGNvbnZ0YmwuYyBkZXZzLmMgZmV0Y2guYyBpZmNtZHMuYyBpZnN0YXQuYyBp b3N0YXQuYyBcCiAJa2V5Ym9hcmQuYyBtYWluLmMgbWJ1ZnMuYyBuZXRjbWRzLmMgbmV0c3RhdC5j IHBpZ3MuYyBzZW5zb3JzLmMgc3dhcC5jIFwKIAlpY21wLmMgbW9kZS5jIGlwLmMgdGNwLmMgdm1z dGF0LmMgaXA2LmMgaWNtcDYuYyB2bW1ldGVyLmMgc3ltYm9scy5jIFwKLQl1dG1wZW50cnkuYwor CXV0bXBlbnRyeS5jIGlvc3RhdC5jCiBEUEFERD0JJHtMSUJDVVJTRVN9ICR7TElCVEVSTUNBUH0g JHtMSUJNfSAke0xJQktWTX0gJHtMSUJERVZTVEFUfSAke0xJQktJTkZPfQogTERBREQ9CS1sY3Vy c2VzIC1sdGVybWNhcCAtbG0gLWxrdm0gLWxkZXZzdGF0IC1sa2luZm8KIEJJTkdSUD0Ja21lbQpk aWZmIC0tZ2l0IGEvdXNyLmJpbi9zeXN0YXQvaW9zdGF0LmMgYi91c3IuYmluL3N5c3RhdC9pb3N0 YXQuYwppbmRleCAxY2RmNmVmLi5lZDZlZGMzIDEwMDY0NAotLS0gYS91c3IuYmluL3N5c3RhdC9p b3N0YXQuYworKysgYi91c3IuYmluL3N5c3RhdC9pb3N0YXQuYwpAQCAtMjQsMTEgKzI0LDYgQEAK ICAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF KSBBUklTSU5HIElOIEFOWSBXQVkKICAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKICAqIFNVQ0ggREFNQUdFLgot ICoKLSAqICRGcmVlQlNEOiBzcmMvdXNyLmJpbi9zeXN0YXQvaW9zdGF0LmMsdiAxLjkuMi4xIDIw MDAvMDcvMDIgMTA6MDM6MTcgcHMgRXhwICQKLSAqICREcmFnb25GbHk6IHNyYy91c3IuYmluL3N5 c3RhdC9pb3N0YXQuYyx2IDEuNyAyMDA4LzExLzEwIDA0OjU5OjQ1IHN3aWxkbmVyIEV4cCAkCi0g KgotICogQCgjKWlvc3RhdC5jCTguMSAoQmVya2VsZXkpIDYvNi85MwogICovCiAvKgogICogQ29w eXJpZ2h0IChjKSAxOTgwLCAxOTkyLCAxOTkzCkBAIC02MywyMiArNTgsMzUgQEAKICAqIFNVQ0gg REFNQUdFLgogICovCiAKLSNpbmNsdWRlIDxzeXMvdXNlci5oPgorI2luY2x1ZGUgPHN5cy9jZGVm cy5oPgorLyoKKyBfX0ZCU0RJRCgiJEZyZWVCU0Q6IHNyYy91c3IuYmluL3N5c3RhdC9pb3N0YXQu Yyx2IDEuMjUuMi4xLjYuMSAyMDEwLzEyLzIxIDE3OjA5OjI1IGtlbnNtaXRoIEV4cCAkIik7CisK KyovCisKKyNpZmRlZiBsaW50CitzdGF0aWMgY29uc3QgY2hhciBzY2NzaWRbXSA9ICJAKCMpaW9z dGF0LmMJOC4xIChCZXJrZWxleSkgNi82LzkzIjsKKyNlbmRpZgorCisjaW5jbHVkZSA8c3lzL3Bh cmFtLmg+CisjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5o PgogCi0jaW5jbHVkZSA8ZXJyLmg+CiAjaW5jbHVkZSA8ZGV2c3RhdC5oPgotI2luY2x1ZGUgPGtp bmZvLmg+CisjaW5jbHVkZSA8ZXJyLmg+CisjaW5jbHVkZSA8bmxpc3QuaD4KICNpbmNsdWRlIDxw YXRocy5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgorCiAjaW5j bHVkZSAic3lzdGF0LmgiCiAjaW5jbHVkZSAiZXh0ZXJuLmgiCiAjaW5jbHVkZSAiZGV2cy5oIgog CiBzdHJ1Y3Qgc3RhdGluZm8gY3VyLCBsYXN0Owotc3RhdGljIHN0cnVjdCBraW5mb19jcHV0aW1l IGNwX3RpbWUsIG9sZF9jcF90aW1lOwogCiBzdGF0aWMgIGludCBsaW5lc3BlcnJlZ2lvbjsKK3N0 YXRpYyAgZG91YmxlIGV0aW1lOwogc3RhdGljICBpbnQgbnVtYmVycyA9IDA7CQkvKiBkZWZhdWx0 IGRpc3BsYXkgYmFyIGdyYXBocyAqLwogc3RhdGljICBpbnQga2JwdCA9IDA7CQkJLyogZGVmYXVs dCBtcy9zZWVrIHNob3duICovCiAKQEAgLTg2LDEyICs5NCwxMiBAQCBzdGF0aWMgaW50IGJhcmxh YmVscyhpbnQpOwogc3RhdGljIHZvaWQgaGlzdG9ncmFtKGxvbmcgZG91YmxlLCBpbnQsIGRvdWJs ZSk7CiBzdGF0aWMgaW50IG51bWxhYmVscyhpbnQpOwogc3RhdGljIGludCBkZXZzdGF0cyhpbnQs IGludCwgaW50KTsKLXN0YXRpYyB2b2lkIHN0YXQxKGludCwgdWludDY0X3QsIHVpbnQ2NF90KTsK K3N0YXRpYyB2b2lkIHN0YXQxKGludCwgaW50KTsKIAogV0lORE9XICoKIG9wZW5pb3N0YXQodm9p ZCkKIHsKLQlyZXR1cm4gKHN1YndpbihzdGRzY3IsIExJTkVTLTEtNSwgMCwgNSwgMCkpOworCXJl dHVybiAoc3Vid2luKHN0ZHNjciwgTElORVMtMy0xLCAwLCBNQUlOV0lOX1JPVywgMCkpOwogfQog CiB2b2lkCkBAIC0xMTQsNyArMTIyLDcgQEAgaW5pdGlvc3RhdCh2b2lkKQogCWxhc3QuZGluZm8g PSAoc3RydWN0IGRldmluZm8gKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBkZXZpbmZvKSk7CiAJYnpl cm8oY3VyLmRpbmZvLCBzaXplb2Yoc3RydWN0IGRldmluZm8pKTsKIAliemVybyhsYXN0LmRpbmZv LCBzaXplb2Yoc3RydWN0IGRldmluZm8pKTsKLQkKKwogCS8qCiAJICogVGhpcyB2YWx1ZSBmb3Ig bWF4c2hvd2RldnMgKDEwMCkgaXMgYm9ndXMuICBJJ20gbm90IHN1cmUgZXhhY3RseQogCSAqIGhv dyB0byBjYWxjdWxhdGUgaXQsIHRob3VnaC4KQEAgLTEyOSwxNCArMTM3LDE5IEBAIHZvaWQKIGZl dGNoaW9zdGF0KHZvaWQpCiB7CiAJc3RydWN0IGRldmluZm8gKnRtcF9kaW5mbzsKKwlzaXplX3Qg bGVuOwogCi0JaWYgKGtpbmZvX2dldF9zY2hlZF9jcHV0aW1lKCZjcF90aW1lKSkKLQkJZXJyKDEs ICJraW5mb19nZXRfc2NoZWRfY3B1dGltZSIpOworCWxlbiA9IHNpemVvZihjdXIuY3BfdGltZSk7 CisJaWYgKHN5c2N0bGJ5bmFtZSgia2Vybi5jcF90aW1lIiwgJmN1ci5jcF90aW1lLCAmbGVuLCBO VUxMLCAwKQorCSAgICB8fCBsZW4gIT0gc2l6ZW9mKGN1ci5jcF90aW1lKSkgeworCQlwZXJyb3Io Imtlcm4uY3BfdGltZSIpOworCQlleGl0ICgxKTsKKwl9CiAJdG1wX2RpbmZvID0gbGFzdC5kaW5m bzsKIAlsYXN0LmRpbmZvID0gY3VyLmRpbmZvOwogCWN1ci5kaW5mbyA9IHRtcF9kaW5mbzsKLSAg ICAgICAgIAotCWxhc3QuYnVzeV90aW1lID0gY3VyLmJ1c3lfdGltZTsKKworCWxhc3Quc25hcF90 aW1lID0gY3VyLnNuYXBfdGltZTsKIAogCS8qCiAJICogSGVyZSB3aGF0IHdlIHdhbnQgdG8gZG8g aXMgcmVmcmVzaCBvdXIgZGV2aWNlIHN0YXRzLgpAQCAtMTQ1LDcgKzE1OCw3IEBAIGZldGNoaW9z dGF0KHZvaWQpCiAJICogdGhlIHNlbGVjdGlvbiBwcm9jZXNzIGFnYWluLCBpbiBjYXNlIGEgZGV2 aWNlIHRoYXQgd2UKIAkgKiB3ZXJlIHByZXZpb3VzbHkgZGlzcGxheWluZyBoYXMgZ29uZSBhd2F5 LgogCSAqLwotCXN3aXRjaCAoZ2V0ZGV2cygmY3VyKSkgeworCXN3aXRjaCAoZ2V0bnVtZGV2cygp KSB7CiAJY2FzZSAtMToKIAkJZXJyeCgxLCAiJXMiLCBkZXZzdGF0X2VycmJ1Zik7CiAJCWJyZWFr OwpAQCAtMTcwLDcgKzE4Myw3IEBAIGxhYmVsaW9zdGF0KHZvaWQpCiAJcm93ID0gMDsKIAl3bW92 ZSh3bmQsIHJvdywgMCk7IHdjbHJ0b2JvdCh3bmQpOwogCW12d2FkZHN0cih3bmQsIHJvdysrLCBJ TlNFVCwKLQkgICAgIi8wICAgLzEwICAvMjAgIC8zMCAgLzQwICAvNTAgIC82MCAgLzcwICAvODAg IC85MCAgLzEwMCIpOworCSAgICAiLzAlICAvMTAgIC8yMCAgLzMwICAvNDAgIC81MCAgLzYwICAv NzAgIC84MCAgLzkwICAvMTAwIik7CiAJbXZ3YWRkc3RyKHduZCwgcm93KyssIDAsICJjcHUgIHVz ZXJ8Iik7CiAJbXZ3YWRkc3RyKHduZCwgcm93KyssIDAsICIgICAgIG5pY2V8Iik7CiAJbXZ3YWRk c3RyKHduZCwgcm93KyssIDAsICIgICBzeXN0ZW18Iik7CkBAIC0yMzAsNyArMjQzLDcgQEAgYmFy bGFiZWxzKGludCByb3cpCiAJY2hhciB0bXBzdHJbMTBdOwogCiAJbXZ3YWRkc3RyKHduZCwgcm93 KyssIElOU0VULAotCSAgICAiLzAgICAvMTAgIC8yMCAgLzMwICAvNDAgIC81MCAgLzYwICAvNzAg IC84MCAgLzkwICAvMTAwIik7CisJICAgICIvMCUgIC8xMCAgLzIwICAvMzAgIC80MCAgLzUwICAv NjAgIC83MCAgLzgwICAvOTAgIC8xMDAiKTsKIAlsaW5lc3BlcnJlZ2lvbiA9IDIgKyBrYnB0Owog CWZvciAoaSA9IDA7IGkgPCBudW1fZGV2aWNlczsgaSsrKQogCQlpZiAoZGV2X3NlbGVjdFtpXS5z ZWxlY3RlZCkgewpAQCAtMjM4LDcgKzI1MSw3IEBAIGJhcmxhYmVscyhpbnQgcm93KQogCQkJCWJy ZWFrOwogCQkJc3ByaW50Zih0bXBzdHIsICIlcyVkIiwgZGV2X3NlbGVjdFtpXS5kZXZpY2VfbmFt ZSwKIAkJCQlkZXZfc2VsZWN0W2ldLnVuaXRfbnVtYmVyKTsKLQkJCW12d3ByaW50dyh3bmQsIHJv dysrLCAwLCAiJS01LjVzIE1CL3N8IiwgCisJCQltdndwcmludHcod25kLCByb3crKywgMCwgIiUt NS41cyBNQi9zfCIsCiAJCQkJICB0bXBzdHIpOwogCQkJbXZ3YWRkc3RyKHduZCwgcm93KyssIDAs ICIgICAgICB0cHN8Iik7CiAJCQlpZiAoa2JwdCkKQEAgLTI1MSwyNSArMjY0LDIxIEBAIGJhcmxh YmVscyhpbnQgcm93KQogdm9pZAogc2hvd2lvc3RhdCh2b2lkKQogeworCWxvbmcgdDsKIAlpbnQg aSwgcm93LCBfY29sOwotCXN0cnVjdCBraW5mb19jcHV0aW1lIGRpZmZfY3BfdGltZTsKLQl1aW50 NjRfdCBjcF90b3RhbDsKLQotCWRpZmZfY3BfdGltZS5jcF91c2VyID0gY3BfdGltZS5jcF91c2Vy IC0gb2xkX2NwX3RpbWUuY3BfdXNlcjsKLQlkaWZmX2NwX3RpbWUuY3BfbmljZSA9IGNwX3RpbWUu Y3BfbmljZSAtIG9sZF9jcF90aW1lLmNwX25pY2U7Ci0JZGlmZl9jcF90aW1lLmNwX3N5cyA9IGNw X3RpbWUuY3Bfc3lzIC0gb2xkX2NwX3RpbWUuY3Bfc3lzOwotCWRpZmZfY3BfdGltZS5jcF9pbnRy ID0gY3BfdGltZS5jcF9pbnRyIC0gb2xkX2NwX3RpbWUuY3BfaW50cjsKLQlkaWZmX2NwX3RpbWUu Y3BfaWRsZSA9IGNwX3RpbWUuY3BfaWRsZSAtIG9sZF9jcF90aW1lLmNwX2lkbGU7Ci0Jb2xkX2Nw X3RpbWUgPSBjcF90aW1lOwogCisjZGVmaW5lIFgoZmxkKQl0ID0gY3VyLmZsZFtpXTsgY3VyLmZs ZFtpXSAtPSBsYXN0LmZsZFtpXTsgbGFzdC5mbGRbaV0gPSB0CisJZXRpbWUgPSAwOworCWZvcihp ID0gMDsgaSA8IENQVVNUQVRFUzsgaSsrKSB7CisJCVgoY3BfdGltZSk7CisJCWV0aW1lICs9IGN1 ci5jcF90aW1lW2ldOworCX0KKwlpZiAoZXRpbWUgPT0gMC4wKQorCQlldGltZSA9IDEuMDsKKwll dGltZSAvPSBoZXJ0ejsKIAlyb3cgPSAxOwotCWNwX3RvdGFsID0gZGlmZl9jcF90aW1lLmNwX3Vz ZXIgKyBkaWZmX2NwX3RpbWUuY3BfbmljZSArCi0JICAgIGRpZmZfY3BfdGltZS5jcF9zeXMgKyBk aWZmX2NwX3RpbWUuY3BfaW50ciArIGRpZmZfY3BfdGltZS5jcF9pZGxlOwotCXN0YXQxKHJvdysr LCBkaWZmX2NwX3RpbWUuY3BfdXNlciwgY3BfdG90YWwpOwotCXN0YXQxKHJvdysrLCBkaWZmX2Nw X3RpbWUuY3BfbmljZSwgY3BfdG90YWwpOwotCXN0YXQxKHJvdysrLCBkaWZmX2NwX3RpbWUuY3Bf c3lzLCAgY3BfdG90YWwpOwotCXN0YXQxKHJvdysrLCBkaWZmX2NwX3RpbWUuY3BfaW50ciwgY3Bf dG90YWwpOwotCXN0YXQxKHJvdysrLCBkaWZmX2NwX3RpbWUuY3BfaWRsZSwgY3BfdG90YWwpOwor CWZvciAoaSA9IDA7IGkgPCBDUFVTVEFURVM7IGkrKykKKwkJc3RhdDEocm93KyssIGkpOwogCWlm ICghbnVtYmVycykgewogCQlyb3cgKz0gMjsKIAkJZm9yIChpID0gMDsgaSA8IG51bV9kZXZpY2Vz OyBpKyspCkBAIC0zMDgsMTUgKzMxNywxOCBAQCBkZXZzdGF0cyhpbnQgcm93LCBpbnQgX2NvbCwg aW50IGRuKQogCWxvbmcgZG91YmxlIGtiX3Blcl90cmFuc2ZlciwgbWJfcGVyX3NlY29uZDsKIAls b25nIGRvdWJsZSBidXN5X3NlY29uZHM7CiAJaW50IGRpOwotCQorCiAJZGkgPSBkZXZfc2VsZWN0 W2RuXS5wb3NpdGlvbjsKIAotCWJ1c3lfc2Vjb25kcyA9IGNvbXB1dGVfZXRpbWUoY3VyLmJ1c3lf dGltZSwgbGFzdC5idXN5X3RpbWUpOworCWJ1c3lfc2Vjb25kcyA9IGN1ci5zbmFwX3RpbWUgLSBs YXN0LnNuYXBfdGltZTsKIAotCWlmIChjb21wdXRlX3N0YXRzKCZjdXIuZGluZm8tPmRldmljZXNb ZGldLCAmbGFzdC5kaW5mby0+ZGV2aWNlc1tkaV0sCi0JCQkgIGJ1c3lfc2Vjb25kcywgTlVMTCwg TlVMTCwgTlVMTCwKLQkJCSAgJmtiX3Blcl90cmFuc2ZlciwgJnRyYW5zZmVyc19wZXJfc2Vjb25k LAotCQkJICAmbWJfcGVyX3NlY29uZCwgTlVMTCwgTlVMTCkgIT0gMCkKKwlpZiAoY29tcHV0ZV9z dGF0cygmY3VyLmRpbmZvLT5kZXZpY2VzW2RpXSwKKwkgICAgJmxhc3QuZGluZm8tPmRldmljZXNb ZGldLCBidXN5X3NlY29uZHMsCisJICAgIE5VTEwsIE5VTEwsCisJICAgIE5VTEwsIE5VTEwsIAor CSAgICAma2JfcGVyX3RyYW5zZmVyLAorCSAgICAmdHJhbnNmZXJzX3Blcl9zZWNvbmQsCisJICAg ICZtYl9wZXJfc2Vjb25kLCBOVUxMKSAhPSAwKQogCQllcnJ4KDEsICIlcyIsIGRldnN0YXRfZXJy YnVmKTsKIAogCWlmIChudW1iZXJzKSB7CkBAIC0zMzksMTcgKzM1MSwxOSBAQCBkZXZzdGF0cyhp bnQgcm93LCBpbnQgX2NvbCwgaW50IGRuKQogfQogCiBzdGF0aWMgdm9pZAotc3RhdDEoaW50IHJv dywgdWludDY0X3QgZGlmZmVyZW5jZSwgdWludDY0X3QgdG90YWwpCitzdGF0MShpbnQgcm93LCBp bnQgbykKIHsKKwlpbnQgaTsKIAlkb3VibGUgZHRpbWU7CiAKLQlpZiAodG90YWwgPiAwKQotCQlk dGltZSA9IDEwMC4wICogZGlmZmVyZW5jZSAvIHRvdGFsOwotCWVsc2UKLQkJZHRpbWUgPSAwOwor CWR0aW1lID0gMC4wOworCWZvciAoaSA9IDA7IGkgPCBDUFVTVEFURVM7IGkrKykKKwkJZHRpbWUg Kz0gY3VyLmNwX3RpbWVbaV07CisJaWYgKGR0aW1lID09IDAuMCkKKwkJZHRpbWUgPSAxLjA7CiAJ d21vdmUod25kLCByb3csIElOU0VUKTsKICNkZWZpbmUgQ1BVU0NBTEUJMC41Ci0JaGlzdG9ncmFt KGR0aW1lLCA1MCwgQ1BVU0NBTEUpOworCWhpc3RvZ3JhbSgxMDAuMCAqIGN1ci5jcF90aW1lW29d IC8gZHRpbWUsIDUwLCBDUFVTQ0FMRSk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0zNTksOCArMzcz LDYgQEAgaGlzdG9ncmFtKGxvbmcgZG91YmxlIHZhbCwgaW50IGNvbHdpZHRoLCBkb3VibGUgc2Nh bGUpCiAJaW50IGs7CiAJaW50IHYgPSAoaW50KSh2YWwgKiBzY2FsZSkgKyAwLjU7CiAKLQlpZiAo dmFsIDw9IDApCi0JCXYgPSAwOwogCWsgPSBNSU4odiwgY29sd2lkdGgpOwogCWlmICh2ID4gY29s d2lkdGgpIHsKIAkJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiU1LjJMZiIsIHZhbCk7CmRp ZmYgLS1naXQgYS91c3IuYmluL3N5c3RhdC9zeXN0YXQuaCBiL3Vzci5iaW4vc3lzdGF0L3N5c3Rh dC5oCmluZGV4IDk2NWNhMzkuLjc0NGM4NTEgMTAwNjQ0Ci0tLSBhL3Vzci5iaW4vc3lzdGF0L3N5 c3RhdC5oCisrKyBiL3Vzci5iaW4vc3lzdGF0L3N5c3RhdC5oCkBAIC01Niw2ICs1Niw4IEBAIHN0 cnVjdCAgY21kdGFiIHsKICNkZWZpbmUJVENQCTB4MQogI2RlZmluZQlVRFAJMHgyCiAKKyNkZWZp bmUgTUFJTldJTl9ST1cgMworCiAjZGVmaW5lIEtSRUFEKGFkZHIsIGJ1ZiwgbGVuKSAga3ZtX2Nr cmVhZCgoYWRkciksIChidWYpLCAobGVuKSkKICNkZWZpbmUgTlZBTChpbmR4KSAgbmFtZWxpc3Rb KGluZHgpXS5uX3ZhbHVlCiAjZGVmaW5lIE5QVFIoaW5keCkgICh2b2lkICopTlZBTCgoaW5keCkp Cg== --0016368332f0cd96a4049d23b052--