From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10378 invoked by alias); 25 Jul 2011 20:49:55 -0000 Received: (qmail 10368 invoked by uid 22791); 25 Jul 2011 20:49:52 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RP_MATCHES_RCVD,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.44.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 25 Jul 2011 20:49:36 +0000 Received: from hpaq11.eem.corp.google.com (hpaq11.eem.corp.google.com [172.25.149.11]) by smtp-out.google.com with ESMTP id p6PKnYww028751 for ; Mon, 25 Jul 2011 13:49:35 -0700 Received: from gxk10 (gxk10.prod.google.com [10.202.11.10]) by hpaq11.eem.corp.google.com with ESMTP id p6PKnWPh031954 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Mon, 25 Jul 2011 13:49:33 -0700 Received: by gxk10 with SMTP id 10so3578090gxk.25 for ; Mon, 25 Jul 2011 13:49:32 -0700 (PDT) Received: by 10.150.142.5 with SMTP id p5mr4870026ybd.145.1311626972199; Mon, 25 Jul 2011 13:49:32 -0700 (PDT) MIME-Version: 1.0 Received: by 10.151.48.15 with HTTP; Mon, 25 Jul 2011 13:49:02 -0700 (PDT) In-Reply-To: <83bowif96z.fsf@gnu.org> References: <20110722222025.ED9B6190B14@elbrus2.mtv.corp.google.com> <83bowif96z.fsf@gnu.org> From: Paul Pluzhnikov Date: Mon, 25 Jul 2011 21:04:00 -0000 Message-ID: Subject: Re: [RFC][patch] Make DCACHE_LINE runtime-settable To: Eli Zaretskii Cc: tromey@redhat.com, gdb-patches@sourceware.org, Pedro Alves Content-Type: multipart/mixed; boundary=000e0cdf1692c17aaf04a8eaf314 X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-07/txt/msg00710.txt.bz2 --000e0cdf1692c17aaf04a8eaf314 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1115 On Mon, Jul 25, 2011 at 12:32 PM, Eli Zaretskii wrote: >> +* Dcache size (number of lines) and line-size are now runtime-configurable. > > Please mention the names of the new commands. Revised patch to address documentation and code comments attached. Thanks, -- Paul Pluzhnikov 2011-07-25 Paul Pluzhnikov * NEWS: Mention dcache configuration. * dcache.c (dcache_set_list, dcache_show_list): New variables. (dcache_size, dcache_line_size): New variables. (LINE_SIZE_MASK, XFORM, MASK): Adjust. (struct dcache_block): Make it expandable. (struct dcache_struct): New field. (dcache_invalidate): Discard freelist upon dcache_line_size changes. (dcache_hit, dcache_alloc, dcache_peek_byte): Adjust. (dcache_poke_byte, dcache_print_line): Adjust. (set_dcache_size, set_dcache_line_size): New functions. (set_dcache_command, show_dcache_command): New functions. (_initialize_dcache): Add new commands. doc/ChangeLog: 2011-07-25 Paul Pluzhnikov * gdb.texinfo (Caching Remote Data): Document {set,show} dcache size and line-size. --000e0cdf1692c17aaf04a8eaf314 Content-Type: text/plain; charset=US-ASCII; name="gdb-dcache-line-size-20110725-2.txt" Content-Disposition: attachment; filename="gdb-dcache-line-size-20110725-2.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gqjws9l70 Content-length: 14974 SW5kZXg6IE5FV1MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2N2cy9zcmMvc3JjL2dkYi9ORVdTLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjQ0NApkaWZmIC11IC1wIC1yMS40NDQgTkVXUwotLS0gTkVXUwkyMSBKdWwg MjAxMSAxNzoyMzo1NSAtMDAwMAkxLjQ0NAorKysgTkVXUwkyNSBKdWwgMjAx MSAyMDo0MzozOCAtMDAwMApAQCAtNzQsNiArNzQsOSBAQCBRVERpc2FibGUK IAogICBEeW5hbWljYWxseSBkaXNhYmxlIGEgdHJhY2Vwb2ludCBpbiBhIHN0 YXJ0ZWQgdHJhY2UgZXhwZXJpbWVudC4KIAorKiBEY2FjaGUgc2l6ZSAobnVt YmVyIG9mIGxpbmVzKSBhbmQgbGluZS1zaXplIGFyZSBub3cgcnVudGltZS1j b25maWd1cmFibGUKKyAgdmlhICJzZXQgZGNhY2hlIGxpbmUiIGFuZCAic2V0 IGRjYWNoZSBsaW5lLXNpemUiIGNvbW1hbmRzLgorCiAqKiogQ2hhbmdlcyBp biBHREIgNy4zCiAKICogR0RCIGhhcyBhIG5ldyBjb21tYW5kOiAidGhyZWFk IGZpbmQgW1JFR0VYUF0iLgpJbmRleDogZGNhY2hlLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9kY2FjaGUu Yyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40NQpkaWZmIC11IC1wIC1yMS40 NSBkY2FjaGUuYwotLS0gZGNhY2hlLmMJNyBKYW4gMjAxMSAxOTozNjoxNSAt MDAwMAkxLjQ1CisrKyBkY2FjaGUuYwkyNSBKdWwgMjAxMSAyMDo0MzozOCAt MDAwMApAQCAtMjcsNiArMjcsMTAgQEAKICNpbmNsdWRlICJpbmZlcmlvci5o IgogI2luY2x1ZGUgInNwbGF5LXRyZWUuaCIKIAorLyogQ29tbWFuZHMgd2l0 aCBhIHByZWZpeCBvZiBge3NldCxzaG93fSBkY2FjaGUnLiAgKi8KK3N0YXRp YyBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqZGNhY2hlX3NldF9saXN0ID0g TlVMTDsKK3N0YXRpYyBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqZGNhY2hl X3Nob3dfbGlzdCA9IE5VTEw7CisKIC8qIFRoZSBkYXRhIGNhY2hlIGNvdWxk IGxlYWQgdG8gaW5jb3JyZWN0IHJlc3VsdHMgYmVjYXVzZSBpdCBkb2Vzbid0 CiAgICBrbm93IGFib3V0IHZvbGF0aWxlIHZhcmlhYmxlcywgdGh1cyBtYWtp bmcgaXQgaW1wb3NzaWJsZSB0byBkZWJ1ZwogICAgZnVuY3Rpb25zIHdoaWNo IHVzZSBtZW1vcnkgbWFwcGVkIEkvTyBkZXZpY2VzLiAgU2V0IHRoZSBub2Nh Y2hlCkBAIC03MSwyMCArNzUsMjEgQEAKIAogLyogVGhlIG1heGltdW0gbnVt YmVyIG9mIGxpbmVzIHN0b3JlZC4gIFRoZSB0b3RhbCBzaXplIG9mIHRoZSBj YWNoZSBpcwogICAgZXF1YWwgdG8gRENBQ0hFX1NJWkUgdGltZXMgTElORV9T SVpFLiAgKi8KLSNkZWZpbmUgRENBQ0hFX1NJWkUgNDA5NgorI2RlZmluZSBE Q0FDSEVfREVGQVVMVF9TSVpFIDQwOTYKK3N0YXRpYyB1bnNpZ25lZCBkY2Fj aGVfc2l6ZSA9IERDQUNIRV9ERUZBVUxUX1NJWkU7CiAKLS8qIFRoZSBzaXpl IG9mIGEgY2FjaGUgbGluZS4gIFNtYWxsZXIgdmFsdWVzIHJlZHVjZSB0aGUg dGltZSB0YWtlbiB0bworLyogVGhlIGRlZmF1bHQgc2l6ZSBvZiBhIGNhY2hl IGxpbmUuICBTbWFsbGVyIHZhbHVlcyByZWR1Y2UgdGhlIHRpbWUgdGFrZW4g dG8KICAgIHJlYWQgYSBzaW5nbGUgYnl0ZSBhbmQgbWFrZSB0aGUgY2FjaGUg bW9yZSBncmFudWxhciwgYnV0IGluY3JlYXNlCiAgICBvdmVyaGVhZCBhbmQg cmVkdWNlIHRoZSBlZmZlY3RpdmVuZXNzIG9mIHRoZSBjYWNoZSBhcyBhIHBy ZWZldGNoZXIuICAqLwotI2RlZmluZSBMSU5FX1NJWkVfUE9XRVIgNgotI2Rl ZmluZSBMSU5FX1NJWkUgKDEgPDwgTElORV9TSVpFX1BPV0VSKQorI2RlZmlu ZSBEQ0FDSEVfREVGQVVMVF9MSU5FX1NJWkUgNjQKK3N0YXRpYyB1bnNpZ25l ZCBkY2FjaGVfbGluZV9zaXplID0gRENBQ0hFX0RFRkFVTFRfTElORV9TSVpF OwogCiAvKiBFYWNoIGNhY2hlIGJsb2NrIGhvbGRzIExJTkVfU0laRSBieXRl cyBvZiBkYXRhCiAgICBzdGFydGluZyBhdCBhIG11bHRpcGxlLW9mLUxJTkVf U0laRSBhZGRyZXNzLiAgKi8KIAotI2RlZmluZSBMSU5FX1NJWkVfTUFTSyAg KChMSU5FX1NJWkUgLSAxKSkKLSNkZWZpbmUgWEZPUk0oeCkgCSgoeCkgJiBM SU5FX1NJWkVfTUFTSykKLSNkZWZpbmUgTUFTSyh4KSAgICAgICAgICgoeCkg JiB+TElORV9TSVpFX01BU0spCisjZGVmaW5lIExJTkVfU0laRV9NQVNLKGRj YWNoZSkgICgoZGNhY2hlLT5saW5lX3NpemUgLSAxKSkKKyNkZWZpbmUgWEZP Uk0oZGNhY2hlLCB4KSAJKCh4KSAmIExJTkVfU0laRV9NQVNLIChkY2FjaGUp KQorI2RlZmluZSBNQVNLKGRjYWNoZSwgeCkgICAgICAgICAoKHgpICYgfkxJ TkVfU0laRV9NQVNLIChkY2FjaGUpKQogCiBzdHJ1Y3QgZGNhY2hlX2Jsb2Nr CiB7CkBAIC05Myw4ICs5OCw4IEBAIHN0cnVjdCBkY2FjaGVfYmxvY2sKICAg c3RydWN0IGRjYWNoZV9ibG9jayAqbmV4dDsKIAogICBDT1JFX0FERFIgYWRk cjsJCS8qIGFkZHJlc3Mgb2YgZGF0YSAqLwotICBnZGJfYnl0ZSBkYXRhW0xJ TkVfU0laRV07CS8qIGJ5dGVzIGF0IGdpdmVuIGFkZHJlc3MgKi8KICAgaW50 IHJlZnM7CQkJLyogIyBoaXRzICovCisgIGdkYl9ieXRlIGRhdGFbMV07CQkv KiBsaW5lX3NpemUgYnl0ZXMgYXQgZ2l2ZW4gYWRkcmVzcyAqLwogfTsKIAog c3RydWN0IGRjYWNoZV9zdHJ1Y3QKQEAgLTEwOCw2ICsxMTMsNyBAQCBzdHJ1 Y3QgZGNhY2hlX3N0cnVjdAogCiAgIC8qIFRoZSBudW1iZXIgb2YgaW4tdXNl IGxpbmVzIGluIHRoZSBjYWNoZS4gICovCiAgIGludCBzaXplOworICBDT1JF X0FERFIgbGluZV9zaXplOyAgLyogY3VycmVudCBsaW5lX3NpemUuICAqLwog CiAgIC8qIFRoZSBwdGlkIG9mIGxhc3QgaW5mZXJpb3IgdG8gdXNlIGNhY2hl IG9yIG51bGxfcHRpZC4gICovCiAgIHB0aWRfdCBwdGlkOwpAQCAtMjA3LDYg KzIxMywyOSBAQCBmb3JfZWFjaF9ibG9jayAoc3RydWN0IGRjYWNoZV9ibG9j ayAqKmJsCiAgIHdoaWxlICgqYmxpc3QgJiYgZGIgIT0gKmJsaXN0KTsKIH0K IAorLyogQkxPQ0tfRlVOQyByb3V0aW5lIGZvciBkY2FjaGVfZnJlZS4gICov CisKK3N0YXRpYyB2b2lkCitmcmVlX2Jsb2NrIChzdHJ1Y3QgZGNhY2hlX2Js b2NrICpibG9jaywgdm9pZCAqcGFyYW0pCit7CisgIHhmcmVlIChibG9jayk7 Cit9CisKKy8qIEZyZWUgYSBkYXRhIGNhY2hlLiAgKi8KKwordm9pZAorZGNh Y2hlX2ZyZWUgKERDQUNIRSAqZGNhY2hlKQoreworICBpZiAobGFzdF9jYWNo ZSA9PSBkY2FjaGUpCisgICAgbGFzdF9jYWNoZSA9IE5VTEw7CisKKyAgc3Bs YXlfdHJlZV9kZWxldGUgKGRjYWNoZS0+dHJlZSk7CisgIGZvcl9lYWNoX2Js b2NrICgmZGNhY2hlLT5vbGRlc3QsIGZyZWVfYmxvY2ssIE5VTEwpOworICBm b3JfZWFjaF9ibG9jayAoJmRjYWNoZS0+ZnJlZWxpc3QsIGZyZWVfYmxvY2ss IE5VTEwpOworICB4ZnJlZSAoZGNhY2hlKTsKK30KKworCiAvKiBCTE9DS19G VU5DIGZ1bmN0aW9uIGZvciBkY2FjaGVfaW52YWxpZGF0ZS4KICAgIFRoaXMg ZG9lc24ndCByZW1vdmUgdGhlIGJsb2NrIGZyb20gdGhlIG9sZGVzdCBsaXN0 IG9uIHB1cnBvc2UuCiAgICBkY2FjaGVfaW52YWxpZGF0ZSB3aWxsIGRvIGl0 IGxhdGVyLiAgKi8KQEAgLTIzMCw2ICsyNTksMTYgQEAgZGNhY2hlX2ludmFs aWRhdGUgKERDQUNIRSAqZGNhY2hlKQogICBkY2FjaGUtPm9sZGVzdCA9IE5V TEw7CiAgIGRjYWNoZS0+c2l6ZSA9IDA7CiAgIGRjYWNoZS0+cHRpZCA9IG51 bGxfcHRpZDsKKworICBpZiAoZGNhY2hlLT5saW5lX3NpemUgIT0gZGNhY2hl X2xpbmVfc2l6ZSkKKyAgICB7CisgICAgICAvKiBXZSd2ZSBiZWVuIGFza2Vk IHRvIHVzZSBhIGRpZmZlcmVudCBsaW5lIHNpemUuCisJIEFsbCBvZiBvdXIg ZnJlZWxpc3QgYmxvY2tzIGFyZSBub3cgdGhlIHdyb25nIHNpemUsIHNvIGZy ZWUgdGhlbS4gICovCisKKyAgICAgIGZvcl9lYWNoX2Jsb2NrICgmZGNhY2hl LT5mcmVlbGlzdCwgZnJlZV9ibG9jaywgZGNhY2hlKTsKKyAgICAgIGRjYWNo ZS0+ZnJlZWxpc3QgPSBOVUxMOworICAgICAgZGNhY2hlLT5saW5lX3NpemUg PSBkY2FjaGVfbGluZV9zaXplOworICAgIH0KIH0KIAogLyogSW52YWxpZGF0 ZSB0aGUgbGluZSBhc3NvY2lhdGVkIHdpdGggQUREUi4gICovCkBAIC0yNTcs NyArMjk2LDcgQEAgZGNhY2hlX2hpdCAoRENBQ0hFICpkY2FjaGUsIENPUkVf QUREUiBhZAogICBzdHJ1Y3QgZGNhY2hlX2Jsb2NrICpkYjsKIAogICBzcGxh eV90cmVlX25vZGUgbm9kZSA9IHNwbGF5X3RyZWVfbG9va3VwIChkY2FjaGUt PnRyZWUsCi0JCQkJCSAgICAoc3BsYXlfdHJlZV9rZXkpIE1BU0sgKGFkZHIp KTsKKwkJCQkJICAgIChzcGxheV90cmVlX2tleSkgTUFTSyAoZGNhY2hlLCBh ZGRyKSk7CiAKICAgaWYgKCFub2RlKQogICAgIHJldHVybiBOVUxMOwpAQCAt MjgxLDcgKzMyMCw3IEBAIGRjYWNoZV9yZWFkX2xpbmUgKERDQUNIRSAqZGNh Y2hlLCBzdHJ1Y3QKICAgaW50IHJlZ19sZW47CiAgIHN0cnVjdCBtZW1fcmVn aW9uICpyZWdpb247CiAKLSAgbGVuID0gTElORV9TSVpFOworICBsZW4gPSBk Y2FjaGUtPmxpbmVfc2l6ZTsKICAgbWVtYWRkciA9IGRiLT5hZGRyOwogICBt eWFkZHIgID0gZGItPmRhdGE7CiAKQEAgLTMyNSw3ICszNjQsNyBAQCBkY2Fj aGVfYWxsb2MgKERDQUNIRSAqZGNhY2hlLCBDT1JFX0FERFIgCiB7CiAgIHN0 cnVjdCBkY2FjaGVfYmxvY2sgKmRiOwogCi0gIGlmIChkY2FjaGUtPnNpemUg Pj0gRENBQ0hFX1NJWkUpCisgIGlmIChkY2FjaGUtPnNpemUgPj0gZGNhY2hl X3NpemUpCiAgICAgewogICAgICAgLyogRXZpY3QgdGhlIGxlYXN0IHJlY2Vu dGx5IGFsbG9jYXRlZCBsaW5lLiAgKi8KICAgICAgIGRiID0gZGNhY2hlLT5v bGRlc3Q7CkBAIC0zMzksMTIgKzM3OCwxMyBAQCBkY2FjaGVfYWxsb2MgKERD QUNIRSAqZGNhY2hlLCBDT1JFX0FERFIgCiAgICAgICBpZiAoZGIpCiAJcmVt b3ZlX2Jsb2NrICgmZGNhY2hlLT5mcmVlbGlzdCwgZGIpOwogICAgICAgZWxz ZQotCWRiID0geG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgZGNhY2hlX2Jsb2Nr KSk7CisJZGIgPSB4bWFsbG9jIChvZmZzZXRvZiAoc3RydWN0IGRjYWNoZV9i bG9jaywgZGF0YSkgKworCQkgICAgICBkY2FjaGUtPmxpbmVfc2l6ZSk7CiAK ICAgICAgIGRjYWNoZS0+c2l6ZSsrOwogICAgIH0KIAotICBkYi0+YWRkciA9 IE1BU0sgKGFkZHIpOworICBkYi0+YWRkciA9IE1BU0sgKGRjYWNoZSwgYWRk cik7CiAgIGRiLT5yZWZzID0gMDsKIAogICAvKiBQdXQgREIgYXQgdGhlIGVu ZCBvZiB0aGUgbGlzdCwgaXQncyB0aGUgbmV3ZXN0LiAgKi8KQEAgLTM3NCw3 ICs0MTQsNyBAQCBkY2FjaGVfcGVla19ieXRlIChEQ0FDSEUgKmRjYWNoZSwg Q09SRV9BCiAgICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgKnB0ciA9 IGRiLT5kYXRhW1hGT1JNIChhZGRyKV07CisgICpwdHIgPSBkYi0+ZGF0YVtY Rk9STSAoZGNhY2hlLCBhZGRyKV07CiAgIHJldHVybiAxOwogfQogCkBAIC0z OTUsNyArNDM1LDcgQEAgZGNhY2hlX3Bva2VfYnl0ZSAoRENBQ0hFICpkY2Fj aGUsIENPUkVfQQogICBzdHJ1Y3QgZGNhY2hlX2Jsb2NrICpkYiA9IGRjYWNo ZV9oaXQgKGRjYWNoZSwgYWRkcik7CiAKICAgaWYgKGRiKQotICAgIGRiLT5k YXRhW1hGT1JNIChhZGRyKV0gPSAqcHRyOworICAgIGRiLT5kYXRhW1hGT1JN IChkY2FjaGUsIGFkZHIpXSA9ICpwdHI7CiAKICAgcmV0dXJuIDE7CiB9CkBA IC00MjcsMzMgKzQ2NywxMyBAQCBkY2FjaGVfaW5pdCAodm9pZCkKICAgZGNh Y2hlLT5vbGRlc3QgPSBOVUxMOwogICBkY2FjaGUtPmZyZWVsaXN0ID0gTlVM TDsKICAgZGNhY2hlLT5zaXplID0gMDsKKyAgZGNhY2hlLT5saW5lX3NpemUg PSBkY2FjaGVfbGluZV9zaXplOwogICBkY2FjaGUtPnB0aWQgPSBudWxsX3B0 aWQ7CiAgIGxhc3RfY2FjaGUgPSBkY2FjaGU7CiAKICAgcmV0dXJuIGRjYWNo ZTsKIH0KIAotLyogQkxPQ0tfRlVOQyByb3V0aW5lIGZvciBkY2FjaGVfZnJl ZS4gICovCi0KLXN0YXRpYyB2b2lkCi1mcmVlX2Jsb2NrIChzdHJ1Y3QgZGNh Y2hlX2Jsb2NrICpibG9jaywgdm9pZCAqcGFyYW0pCi17Ci0gIGZyZWUgKGJs b2NrKTsKLX0KLQotLyogRnJlZSBhIGRhdGEgY2FjaGUuICAqLwotCi12b2lk Ci1kY2FjaGVfZnJlZSAoRENBQ0hFICpkY2FjaGUpCi17Ci0gIGlmIChsYXN0 X2NhY2hlID09IGRjYWNoZSkKLSAgICBsYXN0X2NhY2hlID0gTlVMTDsKLQot ICBzcGxheV90cmVlX2RlbGV0ZSAoZGNhY2hlLT50cmVlKTsKLSAgZm9yX2Vh Y2hfYmxvY2sgKCZkY2FjaGUtPm9sZGVzdCwgZnJlZV9ibG9jaywgTlVMTCk7 Ci0gIGZvcl9lYWNoX2Jsb2NrICgmZGNhY2hlLT5mcmVlbGlzdCwgZnJlZV9i bG9jaywgTlVMTCk7Ci0gIHhmcmVlIChkY2FjaGUpOwotfQogCiAvKiBSZWFk IG9yIHdyaXRlIExFTiBieXRlcyBmcm9tIGluZmVyaW9yIG1lbW9yeSBhdCBN RU1BRERSLCB0cmFuc2ZlcnJpbmcKICAgIHRvIG9yIGZyb20gZGVidWdnZXIg YWRkcmVzcyBNWUFERFIuICBXcml0ZSB0byBpbmZlcmlvciBpZiBTSE9VTERf V1JJVEUgaXMKQEAgLTU3MSwxMiArNTkxLDEyIEBAIGRjYWNoZV9wcmludF9s aW5lIChpbnQgaW5kZXgpCiAgIHByaW50Zl9maWx0ZXJlZCAoXygiTGluZSAl ZDogYWRkcmVzcyAlcyBbJWQgaGl0c11cbiIpLAogCQkgICBpbmRleCwgcGFk ZHJlc3MgKHRhcmdldF9nZGJhcmNoLCBkYi0+YWRkciksIGRiLT5yZWZzKTsK IAotICBmb3IgKGogPSAwOyBqIDwgTElORV9TSVpFOyBqKyspCisgIGZvciAo aiA9IDA7IGogPCBsYXN0X2NhY2hlLT5saW5lX3NpemU7IGorKykKICAgICB7 CiAgICAgICBwcmludGZfZmlsdGVyZWQgKCIlMDJ4ICIsIGRiLT5kYXRhW2pd KTsKIAogICAgICAgLyogUHJpbnQgYSBuZXdsaW5lIGV2ZXJ5IDE2IGJ5dGVz ICg0OCBjaGFyYWN0ZXJzKS4gICovCi0gICAgICBpZiAoKGogJSAxNiA9PSAx NSkgJiYgKGogIT0gTElORV9TSVpFIC0gMSkpCisgICAgICBpZiAoKGogJSAx NiA9PSAxNSkgJiYgKGogIT0gbGFzdF9jYWNoZS0+bGluZV9zaXplIC0gMSkp CiAJcHJpbnRmX2ZpbHRlcmVkICgiXG4iKTsKICAgICB9CiAgIHByaW50Zl9m aWx0ZXJlZCAoIlxuIik7CkBAIC02MDMsOCArNjIzLDEwIEBAIGRjYWNoZV9p bmZvIChjaGFyICpleHAsIGludCB0dHkpCiAgICAgICByZXR1cm47CiAgICAg fQogCi0gIHByaW50Zl9maWx0ZXJlZCAoXygiRGNhY2hlIGxpbmUgd2lkdGgg JWQsIG1heGltdW0gc2l6ZSAlZFxuIiksCi0JCSAgIExJTkVfU0laRSwgRENB Q0hFX1NJWkUpOworICBwcmludGZfZmlsdGVyZWQgKF8oIkRjYWNoZSAldSBs aW5lcyBvZiAldSBieXRlcyBlYWNoLlxuIiksCisJCSAgIGRjYWNoZV9zaXpl LAorCQkgICBsYXN0X2NhY2hlID8gKHVuc2lnbmVkKSBsYXN0X2NhY2hlLT5s aW5lX3NpemUKKwkJICAgOiBkY2FjaGVfbGluZV9zaXplKTsKIAogICBpZiAo IWxhc3RfY2FjaGUgfHwgcHRpZF9lcXVhbCAobGFzdF9jYWNoZS0+cHRpZCwg bnVsbF9wdGlkKSkKICAgICB7CkBAIC02MzUsNiArNjU3LDQ5IEBAIGRjYWNo ZV9pbmZvIChjaGFyICpleHAsIGludCB0dHkpCiAgIHByaW50Zl9maWx0ZXJl ZCAoXygiQ2FjaGUgc3RhdGU6ICVkIGFjdGl2ZSBsaW5lcywgJWQgaGl0c1xu IiksIGksIHJlZmNvdW50KTsKIH0KIAorc3RhdGljIHZvaWQKK3NldF9kY2Fj aGVfc2l6ZSAoY2hhciAqYXJncywgaW50IGZyb21fdHR5LAorCQkgc3RydWN0 IGNtZF9saXN0X2VsZW1lbnQgKmMpCit7CisgIGlmIChkY2FjaGVfc2l6ZSA9 PSAwKQorICAgIHsKKyAgICAgIHVuc2lnbmVkIGQgPSBkY2FjaGVfc2l6ZTsK KyAgICAgIGRjYWNoZV9zaXplID0gRENBQ0hFX0RFRkFVTFRfU0laRTsKKyAg ICAgIGVycm9yIChfKCJEY2FjaGUgc2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhh biAwLiIpKTsKKyAgICB9CisgIGlmIChsYXN0X2NhY2hlKQorICAgIGRjYWNo ZV9pbnZhbGlkYXRlIChsYXN0X2NhY2hlKTsKK30KKworc3RhdGljIHZvaWQK K3NldF9kY2FjaGVfbGluZV9zaXplIChjaGFyICphcmdzLCBpbnQgZnJvbV90 dHksCisJCSAgICAgIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjKQorewor ICBpZiAoZGNhY2hlX2xpbmVfc2l6ZSA8IDIKKyAgICAgIHx8IChkY2FjaGVf bGluZV9zaXplICYgKGRjYWNoZV9saW5lX3NpemUgLSAxKSkgIT0gMCkKKyAg ICB7CisgICAgICB1bnNpZ25lZCBkID0gZGNhY2hlX2xpbmVfc2l6ZTsKKyAg ICAgIGRjYWNoZV9saW5lX3NpemUgPSBEQ0FDSEVfREVGQVVMVF9MSU5FX1NJ WkU7CisgICAgICBlcnJvciAoXygiSW52YWxpZCBkY2FjaGUgbGluZSBzaXpl OiAldSAobXVzdCBiZSBwb3dlciBvZiAyKS4iKSwgZCk7CisgICAgfQorICBp ZiAobGFzdF9jYWNoZSkKKyAgICBkY2FjaGVfaW52YWxpZGF0ZSAobGFzdF9j YWNoZSk7Cit9CisKK3N0YXRpYyB2b2lkCitzZXRfZGNhY2hlX2NvbW1hbmQg KGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQoreworICBwcmludGZfdW5maWx0 ZXJlZCAoCisgICAgICJcInNldCBkY2FjaGVcIiBtdXN0IGJlIGZvbGxvd2Vk IGJ5IHRoZSBuYW1lIG9mIGEgc3ViY29tbWFuZC5cbiIpOworICBoZWxwX2xp c3QgKGRjYWNoZV9zZXRfbGlzdCwgInNldCBkY2FjaGUgIiwgLTEsIGdkYl9z dGRvdXQpOworfQorCitzdGF0aWMgdm9pZAorc2hvd19kY2FjaGVfY29tbWFu ZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQoreworICBjbWRfc2hvd19s aXN0IChkY2FjaGVfc2hvd19saXN0LCBmcm9tX3R0eSwgIiIpOworfQorCiB2 b2lkCiBfaW5pdGlhbGl6ZV9kY2FjaGUgKHZvaWQpCiB7CkBAIC02NTYsNCAr NzIxLDI4IEBAIFByaW50IGluZm9ybWF0aW9uIG9uIHRoZSBkY2FjaGUgcGVy Zm9ybWEKIFdpdGggbm8gYXJndW1lbnRzLCB0aGlzIGNvbW1hbmQgcHJpbnRz IHRoZSBjYWNoZSBjb25maWd1cmF0aW9uIGFuZCBhXG5cCiBzdW1tYXJ5IG9m IGVhY2ggbGluZSBpbiB0aGUgY2FjaGUuICBVc2UgXCJpbmZvIGRjYWNoZSA8 bGluZW5vPiB0byBkdW1wXCJcblwKIHRoZSBjb250ZW50cyBvZiBhIGdpdmVu IGxpbmUuIikpOworCisgIGFkZF9wcmVmaXhfY21kICgiZGNhY2hlIiwgY2xh c3Nfb2JzY3VyZSwgc2V0X2RjYWNoZV9jb21tYW5kLCBfKCJcCitVc2UgdGhp cyBjb21tYW5kIHRvIHNldCBudW1iZXIgb2YgbGluZXMgaW4gZGNhY2hlIGFu ZCBsaW5lLXNpemUuIiksCisJCSAgJmRjYWNoZV9zZXRfbGlzdCwgInNldCBk Y2FjaGUgIiwgLyphbGxvd191bmtub3duKi8wLCAmc2V0bGlzdCk7CisgIGFk ZF9wcmVmaXhfY21kICgiZGNhY2hlIiwgY2xhc3Nfb2JzY3VyZSwgc2hvd19k Y2FjaGVfY29tbWFuZCwgXygiXAorU2hvdyBkY2FjaGVzZXR0aW5ncy4iKSwK KwkJICAmZGNhY2hlX3Nob3dfbGlzdCwgInNob3cgZGNhY2hlICIsIC8qYWxs b3dfdW5rbm93biovMCwgJnNob3dsaXN0KTsKKworICBhZGRfc2V0c2hvd191 aW50ZWdlcl9jbWQgKCJsaW5lLXNpemUiLCBjbGFzc19vYnNjdXJlLAorCQkJ ICAgICZkY2FjaGVfbGluZV9zaXplLCBfKCJcCitTZXQgZGNhY2hlIGxpbmUg c2l6ZSBpbiBieXRlcyAobXVzdCBiZSBwb3dlciBvZiAyKS4iKSwgXygiXAor U2hvdyBkY2FjaGUgbGluZSBzaXplLiIpLAorCQkJICAgIE5VTEwsCisJCQkg ICAgc2V0X2RjYWNoZV9saW5lX3NpemUsCisJCQkgICAgTlVMTCwKKwkJCSAg ICAmZGNhY2hlX3NldF9saXN0LCAmZGNhY2hlX3Nob3dfbGlzdCk7CisgIGFk ZF9zZXRzaG93X3VpbnRlZ2VyX2NtZCAoInNpemUiLCBjbGFzc19vYnNjdXJl LAorCQkJICAgICZkY2FjaGVfc2l6ZSwgXygiXAorU2V0IG51bWJlciBvZiBk Y2FjaGUgbGluZXMuIiksIF8oIlwKK1Nob3cgbnVtYmVyIG9mIGRjYWNoZSBs aW5lcy4iKSwKKwkJCSAgICBOVUxMLAorCQkJICAgIHNldF9kY2FjaGVfc2l6 ZSwKKwkJCSAgICBOVUxMLAorCQkJICAgICZkY2FjaGVfc2V0X2xpc3QsICZk Y2FjaGVfc2hvd19saXN0KTsKIH0KSW5kZXg6IGRvYy9nZGIudGV4aW5mbwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMv Z2RiL2RvYy9nZGIudGV4aW5mbyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44 NDgKZGlmZiAtdSAtcCAtcjEuODQ4IGdkYi50ZXhpbmZvCi0tLSBkb2MvZ2Ri LnRleGluZm8JMjEgSnVsIDIwMTEgMTU6MTM6MjkgLTAwMDAJMS44NDgKKysr IGRvYy9nZGIudGV4aW5mbwkyNSBKdWwgMjAxMSAyMDo0MzozOSAtMDAwMApA QCAtOTMzMiw2ICs5MzMyLDI2IEBAIG9wZXJhdGlvbi4KIAogSWYgYSBsaW5l IG51bWJlciBpcyBzcGVjaWZpZWQsIHRoZSBjb250ZW50cyBvZiB0aGF0IGxp bmUgd2lsbCBiZQogcHJpbnRlZCBpbiBoZXguCisKK0BpdGVtIHNldCBkY2Fj aGUgc2l6ZSBAdmFye3NpemV9CitAY2luZGV4IGRjYWNoZSBzaXplCitAa2lu ZGV4IHNldCBkY2FjaGUgc2l6ZQorU2V0IG1heGltdW0gbnVtYmVyIG9mIGVu dHJpZXMgaW4gZGNhY2hlIChkY2FjaGUgZGVwdGggYWJvdmUpLgorCitAaXRl bSBzZXQgZGNhY2hlIGxpbmUtc2l6ZSBAdmFye2xpbmUtc2l6ZX0KK0BjaW5k ZXggZGNhY2hlIGxpbmUtc2l6ZQorQGtpbmRleCBzZXQgZGNhY2hlIGxpbmUt c2l6ZQorU2V0IG51bWJlciBvZiBieXRlcyBlYWNoIGRjYWNoZSBlbnRyeSBj YWNoZXMgKGRjYWNoZSB3aWR0aCBhYm92ZSkuCitNdXN0IGJlIGEgcG93ZXIg b2YgMi4KKworQGl0ZW0gc2hvdyBkY2FjaGUgc2l6ZQorQGtpbmRleCBzaG93 IGRjYWNoZSBzaXplCitTaG93IG1heGltdW0gbnVtYmVyIG9mIGRjYWNoZSBl bnRyaWVzLiAgU2VlIGFsc28gQHJlZntDYWNoaW5nIFJlbW90ZSBEYXRhLCBp bmZvIGRjYWNoZX0uCisKK0BpdGVtIHNob3cgZGNhY2hlIGxpbmUtc2l6ZQor QGtpbmRleCBzaG93IGRjYWNoZSBsaW5lLXNpemUKK1Nob3cgZGVmYXVsdCBz aXplIG9mIGRjYWNoZSBsaW5lcy4gIFNlZSBhbHNvIEByZWZ7Q2FjaGluZyBS ZW1vdGUgRGF0YSwgaW5mbyBkY2FjaGV9LgorCiBAZW5kIHRhYmxlCiAKIEBu b2RlIFNlYXJjaGluZyBNZW1vcnkK --000e0cdf1692c17aaf04a8eaf314--