From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26496 invoked by alias); 25 Jul 2011 18:33:42 -0000 Received: (qmail 26479 invoked by uid 22791); 25 Jul 2011 18:33:40 -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) (74.125.121.67) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 25 Jul 2011 18:33:25 +0000 Received: from wpaz29.hot.corp.google.com (wpaz29.hot.corp.google.com [172.24.198.93]) by smtp-out.google.com with ESMTP id p6PIXNmU001824 for ; Mon, 25 Jul 2011 11:33:24 -0700 Received: from yie30 (yie30.prod.google.com [10.243.66.30]) by wpaz29.hot.corp.google.com with ESMTP id p6PIXM1p003739 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Mon, 25 Jul 2011 11:33:22 -0700 Received: by yie30 with SMTP id 30so3604709yie.17 for ; Mon, 25 Jul 2011 11:33:22 -0700 (PDT) Received: by 10.151.40.21 with SMTP id s21mr4699780ybj.430.1311618802186; Mon, 25 Jul 2011 11:33:22 -0700 (PDT) MIME-Version: 1.0 Received: by 10.151.48.15 with HTTP; Mon, 25 Jul 2011 11:32:51 -0700 (PDT) In-Reply-To: References: <20110722222025.ED9B6190B14@elbrus2.mtv.corp.google.com> From: Paul Pluzhnikov Date: Mon, 25 Jul 2011 18:47:00 -0000 Message-ID: Subject: Re: [RFC][patch] Make DCACHE_LINE runtime-settable To: Tom Tromey Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=00151750e398c8f90e04a8e90cbc 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/msg00701.txt.bz2 --00151750e398c8f90e04a8e90cbc Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 952 On Mon, Jul 25, 2011 at 7:52 AM, Tom Tromey wrote: > =A0set dcache size > =A0set dcache line-size Revised patch attached. Thanks. --=20 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. (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. --00151750e398c8f90e04a8e90cbc Content-Type: text/plain; charset=US-ASCII; name="gdb-dcache-line-size-20110725.txt" Content-Disposition: attachment; filename="gdb-dcache-line-size-20110725.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gqjrxjjk0 Content-length: 14917 SW5kZXg6IE5FV1MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2N2cy9zcmMvc3JjL2dkYi9ORVdTLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjQ0NApkaWZmIC11IC1wIC1yMS40NDQgTkVXUwotLS0gTkVXUwkyMSBKdWwg MjAxMSAxNzoyMzo1NSAtMDAwMAkxLjQ0NAorKysgTkVXUwkyNSBKdWwgMjAx MSAxODozMTo1NyAtMDAwMApAQCAtNzQsNiArNzQsOCBAQCBRVERpc2FibGUK IAogICBEeW5hbWljYWxseSBkaXNhYmxlIGEgdHJhY2Vwb2ludCBpbiBhIHN0 YXJ0ZWQgdHJhY2UgZXhwZXJpbWVudC4KIAorKiBEY2FjaGUgc2l6ZSAobnVt YmVyIG9mIGxpbmVzKSBhbmQgbGluZS1zaXplIGFyZSBub3cgcnVudGltZS1j b25maWd1cmFibGUuCisKICoqKiBDaGFuZ2VzIGluIEdEQiA3LjMKIAogKiBH REIgaGFzIGEgbmV3IGNvbW1hbmQ6ICJ0aHJlYWQgZmluZCBbUkVHRVhQXSIu CkluZGV4OiBkY2FjaGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm aWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2RjYWNoZS5jLHYKcmV0cmlldmluZyBy ZXZpc2lvbiAxLjQ1CmRpZmYgLXUgLXAgLXIxLjQ1IGRjYWNoZS5jCi0tLSBk Y2FjaGUuYwk3IEphbiAyMDExIDE5OjM2OjE1IC0wMDAwCTEuNDUKKysrIGRj YWNoZS5jCTI1IEp1bCAyMDExIDE4OjMxOjU3IC0wMDAwCkBAIC0yNyw2ICsy NywxMCBAQAogI2luY2x1ZGUgImluZmVyaW9yLmgiCiAjaW5jbHVkZSAic3Bs YXktdHJlZS5oIgogCisvKiBDb21tYW5kcyB3aXRoIGEgcHJlZml4IG9mIGB7 c2V0LHNob3d9IGRjYWNoZScuICAqLworc3RhdGljIHN0cnVjdCBjbWRfbGlz dF9lbGVtZW50ICpkY2FjaGVfc2V0X2xpc3QgPSBOVUxMOworc3RhdGljIHN0 cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpkY2FjaGVfc2hvd19saXN0ID0gTlVM TDsKKwogLyogVGhlIGRhdGEgY2FjaGUgY291bGQgbGVhZCB0byBpbmNvcnJl Y3QgcmVzdWx0cyBiZWNhdXNlIGl0IGRvZXNuJ3QKICAgIGtub3cgYWJvdXQg dm9sYXRpbGUgdmFyaWFibGVzLCB0aHVzIG1ha2luZyBpdCBpbXBvc3NpYmxl IHRvIGRlYnVnCiAgICBmdW5jdGlvbnMgd2hpY2ggdXNlIG1lbW9yeSBtYXBw ZWQgSS9PIGRldmljZXMuICBTZXQgdGhlIG5vY2FjaGUKQEAgLTcxLDIwICs3 NSwyMSBAQAogCiAvKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgbGluZXMgc3Rv cmVkLiAgVGhlIHRvdGFsIHNpemUgb2YgdGhlIGNhY2hlIGlzCiAgICBlcXVh bCB0byBEQ0FDSEVfU0laRSB0aW1lcyBMSU5FX1NJWkUuICAqLwotI2RlZmlu ZSBEQ0FDSEVfU0laRSA0MDk2CisjZGVmaW5lIERDQUNIRV9ERUZBVUxUX1NJ WkUgNDA5Ngorc3RhdGljIHVuc2lnbmVkIGRjYWNoZV9zaXplID0gRENBQ0hF X0RFRkFVTFRfU0laRTsKIAotLyogVGhlIHNpemUgb2YgYSBjYWNoZSBsaW5l LiAgU21hbGxlciB2YWx1ZXMgcmVkdWNlIHRoZSB0aW1lIHRha2VuIHRvCisv KiBUaGUgZGVmYXVsdCBzaXplIG9mIGEgY2FjaGUgbGluZS4gIFNtYWxsZXIg dmFsdWVzIHJlZHVjZSB0aGUgdGltZSB0YWtlbiB0bwogICAgcmVhZCBhIHNp bmdsZSBieXRlIGFuZCBtYWtlIHRoZSBjYWNoZSBtb3JlIGdyYW51bGFyLCBi dXQgaW5jcmVhc2UKICAgIG92ZXJoZWFkIGFuZCByZWR1Y2UgdGhlIGVmZmVj dGl2ZW5lc3Mgb2YgdGhlIGNhY2hlIGFzIGEgcHJlZmV0Y2hlci4gICovCi0j ZGVmaW5lIExJTkVfU0laRV9QT1dFUiA2Ci0jZGVmaW5lIExJTkVfU0laRSAo MSA8PCBMSU5FX1NJWkVfUE9XRVIpCisjZGVmaW5lIERDQUNIRV9ERUZBVUxU X0xJTkVfU0laRSA2NAorc3RhdGljIHVuc2lnbmVkIGRjYWNoZV9saW5lX3Np emUgPSBEQ0FDSEVfREVGQVVMVF9MSU5FX1NJWkU7CiAKIC8qIEVhY2ggY2Fj aGUgYmxvY2sgaG9sZHMgTElORV9TSVpFIGJ5dGVzIG9mIGRhdGEKICAgIHN0 YXJ0aW5nIGF0IGEgbXVsdGlwbGUtb2YtTElORV9TSVpFIGFkZHJlc3MuICAq LwogCi0jZGVmaW5lIExJTkVfU0laRV9NQVNLICAoKExJTkVfU0laRSAtIDEp KQotI2RlZmluZSBYRk9STSh4KSAJKCh4KSAmIExJTkVfU0laRV9NQVNLKQot I2RlZmluZSBNQVNLKHgpICAgICAgICAgKCh4KSAmIH5MSU5FX1NJWkVfTUFT SykKKyNkZWZpbmUgTElORV9TSVpFX01BU0soZGNhY2hlKSAgKChkY2FjaGUt PmxpbmVfc2l6ZSAtIDEpKQorI2RlZmluZSBYRk9STShkY2FjaGUsIHgpIAko KHgpICYgTElORV9TSVpFX01BU0soZGNhY2hlKSkKKyNkZWZpbmUgTUFTSyhk Y2FjaGUsIHgpICAgICAgICAgKCh4KSAmIH5MSU5FX1NJWkVfTUFTSyhkY2Fj aGUpKQogCiBzdHJ1Y3QgZGNhY2hlX2Jsb2NrCiB7CkBAIC05Myw4ICs5OCw4 IEBAIHN0cnVjdCBkY2FjaGVfYmxvY2sKICAgc3RydWN0IGRjYWNoZV9ibG9j ayAqbmV4dDsKIAogICBDT1JFX0FERFIgYWRkcjsJCS8qIGFkZHJlc3Mgb2Yg ZGF0YSAqLwotICBnZGJfYnl0ZSBkYXRhW0xJTkVfU0laRV07CS8qIGJ5dGVz IGF0IGdpdmVuIGFkZHJlc3MgKi8KICAgaW50IHJlZnM7CQkJLyogIyBoaXRz ICovCisgIGdkYl9ieXRlIGRhdGFbMF07CQkvKiBsaW5lX3NpemUgYnl0ZXMg YXQgZ2l2ZW4gYWRkcmVzcyAqLwogfTsKIAogc3RydWN0IGRjYWNoZV9zdHJ1 Y3QKQEAgLTEwOCw2ICsxMTMsNyBAQCBzdHJ1Y3QgZGNhY2hlX3N0cnVjdAog CiAgIC8qIFRoZSBudW1iZXIgb2YgaW4tdXNlIGxpbmVzIGluIHRoZSBjYWNo ZS4gICovCiAgIGludCBzaXplOworICBDT1JFX0FERFIgbGluZV9zaXplOyAg LyogY3VycmVudCBsaW5lX3NpemUuICAqLwogCiAgIC8qIFRoZSBwdGlkIG9m IGxhc3QgaW5mZXJpb3IgdG8gdXNlIGNhY2hlIG9yIG51bGxfcHRpZC4gICov CiAgIHB0aWRfdCBwdGlkOwpAQCAtMjA3LDYgKzIxMywyOSBAQCBmb3JfZWFj aF9ibG9jayAoc3RydWN0IGRjYWNoZV9ibG9jayAqKmJsCiAgIHdoaWxlICgq Ymxpc3QgJiYgZGIgIT0gKmJsaXN0KTsKIH0KIAorLyogQkxPQ0tfRlVOQyBy b3V0aW5lIGZvciBkY2FjaGVfZnJlZS4gICovCisKK3N0YXRpYyB2b2lkCitm cmVlX2Jsb2NrIChzdHJ1Y3QgZGNhY2hlX2Jsb2NrICpibG9jaywgdm9pZCAq cGFyYW0pCit7CisgIGZyZWUgKGJsb2NrKTsKK30KKworLyogRnJlZSBhIGRh dGEgY2FjaGUuICAqLworCit2b2lkCitkY2FjaGVfZnJlZSAoRENBQ0hFICpk Y2FjaGUpCit7CisgIGlmIChsYXN0X2NhY2hlID09IGRjYWNoZSkKKyAgICBs YXN0X2NhY2hlID0gTlVMTDsKKworICBzcGxheV90cmVlX2RlbGV0ZSAoZGNh Y2hlLT50cmVlKTsKKyAgZm9yX2VhY2hfYmxvY2sgKCZkY2FjaGUtPm9sZGVz dCwgZnJlZV9ibG9jaywgTlVMTCk7CisgIGZvcl9lYWNoX2Jsb2NrICgmZGNh Y2hlLT5mcmVlbGlzdCwgZnJlZV9ibG9jaywgTlVMTCk7CisgIHhmcmVlIChk Y2FjaGUpOworfQorCisKIC8qIEJMT0NLX0ZVTkMgZnVuY3Rpb24gZm9yIGRj YWNoZV9pbnZhbGlkYXRlLgogICAgVGhpcyBkb2Vzbid0IHJlbW92ZSB0aGUg YmxvY2sgZnJvbSB0aGUgb2xkZXN0IGxpc3Qgb24gcHVycG9zZS4KICAgIGRj YWNoZV9pbnZhbGlkYXRlIHdpbGwgZG8gaXQgbGF0ZXIuICAqLwpAQCAtMjMw LDYgKzI1OSwxNiBAQCBkY2FjaGVfaW52YWxpZGF0ZSAoRENBQ0hFICpkY2Fj aGUpCiAgIGRjYWNoZS0+b2xkZXN0ID0gTlVMTDsKICAgZGNhY2hlLT5zaXpl ID0gMDsKICAgZGNhY2hlLT5wdGlkID0gbnVsbF9wdGlkOworCisgIGlmIChk Y2FjaGUtPmxpbmVfc2l6ZSAhPSBkY2FjaGVfbGluZV9zaXplKQorICAgIHsK KyAgICAgIC8qIFdlJ3ZlIGJlZW4gYXNrZWQgdG8gdXNlIGEgZGlmZmVyZW50 IGxpbmUgc2l6ZS4KKwkgQWxsIG9mIG91ciBmcmVlbGlzdCBibG9ja3MgYXJl IG5vdyB0aGUgd3Jvbmcgc2l6ZSwgc28gZnJlZSB0aGVtLiAgKi8KKworICAg ICAgZm9yX2VhY2hfYmxvY2sgKCZkY2FjaGUtPmZyZWVsaXN0LCBmcmVlX2Js b2NrLCBkY2FjaGUpOworICAgICAgZGNhY2hlLT5mcmVlbGlzdCA9IE5VTEw7 CisgICAgICBkY2FjaGUtPmxpbmVfc2l6ZSA9IGRjYWNoZV9saW5lX3NpemU7 CisgICAgfQogfQogCiAvKiBJbnZhbGlkYXRlIHRoZSBsaW5lIGFzc29jaWF0 ZWQgd2l0aCBBRERSLiAgKi8KQEAgLTI1Nyw3ICsyOTYsNyBAQCBkY2FjaGVf aGl0IChEQ0FDSEUgKmRjYWNoZSwgQ09SRV9BRERSIGFkCiAgIHN0cnVjdCBk Y2FjaGVfYmxvY2sgKmRiOwogCiAgIHNwbGF5X3RyZWVfbm9kZSBub2RlID0g c3BsYXlfdHJlZV9sb29rdXAgKGRjYWNoZS0+dHJlZSwKLQkJCQkJICAgIChz cGxheV90cmVlX2tleSkgTUFTSyAoYWRkcikpOworCQkJCQkgICAgKHNwbGF5 X3RyZWVfa2V5KSBNQVNLIChkY2FjaGUsIGFkZHIpKTsKIAogICBpZiAoIW5v ZGUpCiAgICAgcmV0dXJuIE5VTEw7CkBAIC0yODEsNyArMzIwLDcgQEAgZGNh Y2hlX3JlYWRfbGluZSAoRENBQ0hFICpkY2FjaGUsIHN0cnVjdAogICBpbnQg cmVnX2xlbjsKICAgc3RydWN0IG1lbV9yZWdpb24gKnJlZ2lvbjsKIAotICBs ZW4gPSBMSU5FX1NJWkU7CisgIGxlbiA9IGRjYWNoZS0+bGluZV9zaXplOwog ICBtZW1hZGRyID0gZGItPmFkZHI7CiAgIG15YWRkciAgPSBkYi0+ZGF0YTsK IApAQCAtMzI1LDcgKzM2NCw3IEBAIGRjYWNoZV9hbGxvYyAoRENBQ0hFICpk Y2FjaGUsIENPUkVfQUREUiAKIHsKICAgc3RydWN0IGRjYWNoZV9ibG9jayAq ZGI7CiAKLSAgaWYgKGRjYWNoZS0+c2l6ZSA+PSBEQ0FDSEVfU0laRSkKKyAg aWYgKGRjYWNoZS0+c2l6ZSA+PSBkY2FjaGVfc2l6ZSkKICAgICB7CiAgICAg ICAvKiBFdmljdCB0aGUgbGVhc3QgcmVjZW50bHkgYWxsb2NhdGVkIGxpbmUu ICAqLwogICAgICAgZGIgPSBkY2FjaGUtPm9sZGVzdDsKQEAgLTMzOSwxMiAr Mzc4LDEyIEBAIGRjYWNoZV9hbGxvYyAoRENBQ0hFICpkY2FjaGUsIENPUkVf QUREUiAKICAgICAgIGlmIChkYikKIAlyZW1vdmVfYmxvY2sgKCZkY2FjaGUt PmZyZWVsaXN0LCBkYik7CiAgICAgICBlbHNlCi0JZGIgPSB4bWFsbG9jIChz aXplb2YgKHN0cnVjdCBkY2FjaGVfYmxvY2spKTsKKwlkYiA9IHhtYWxsb2Mg KHNpemVvZiAoc3RydWN0IGRjYWNoZV9ibG9jaykgKyBkY2FjaGUtPmxpbmVf c2l6ZSk7CiAKICAgICAgIGRjYWNoZS0+c2l6ZSsrOwogICAgIH0KIAotICBk Yi0+YWRkciA9IE1BU0sgKGFkZHIpOworICBkYi0+YWRkciA9IE1BU0sgKGRj YWNoZSwgYWRkcik7CiAgIGRiLT5yZWZzID0gMDsKIAogICAvKiBQdXQgREIg YXQgdGhlIGVuZCBvZiB0aGUgbGlzdCwgaXQncyB0aGUgbmV3ZXN0LiAgKi8K QEAgLTM3NCw3ICs0MTMsNyBAQCBkY2FjaGVfcGVla19ieXRlIChEQ0FDSEUg KmRjYWNoZSwgQ09SRV9BCiAgICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK LSAgKnB0ciA9IGRiLT5kYXRhW1hGT1JNIChhZGRyKV07CisgICpwdHIgPSBk Yi0+ZGF0YVtYRk9STSAoZGNhY2hlLCBhZGRyKV07CiAgIHJldHVybiAxOwog fQogCkBAIC0zOTUsNyArNDM0LDcgQEAgZGNhY2hlX3Bva2VfYnl0ZSAoRENB Q0hFICpkY2FjaGUsIENPUkVfQQogICBzdHJ1Y3QgZGNhY2hlX2Jsb2NrICpk YiA9IGRjYWNoZV9oaXQgKGRjYWNoZSwgYWRkcik7CiAKICAgaWYgKGRiKQot ICAgIGRiLT5kYXRhW1hGT1JNIChhZGRyKV0gPSAqcHRyOworICAgIGRiLT5k YXRhW1hGT1JNIChkY2FjaGUsIGFkZHIpXSA9ICpwdHI7CiAKICAgcmV0dXJu IDE7CiB9CkBAIC00MjcsMzMgKzQ2NiwxMyBAQCBkY2FjaGVfaW5pdCAodm9p ZCkKICAgZGNhY2hlLT5vbGRlc3QgPSBOVUxMOwogICBkY2FjaGUtPmZyZWVs aXN0ID0gTlVMTDsKICAgZGNhY2hlLT5zaXplID0gMDsKKyAgZGNhY2hlLT5s aW5lX3NpemUgPSBkY2FjaGVfbGluZV9zaXplOwogICBkY2FjaGUtPnB0aWQg PSBudWxsX3B0aWQ7CiAgIGxhc3RfY2FjaGUgPSBkY2FjaGU7CiAKICAgcmV0 dXJuIGRjYWNoZTsKIH0KIAotLyogQkxPQ0tfRlVOQyByb3V0aW5lIGZvciBk Y2FjaGVfZnJlZS4gICovCi0KLXN0YXRpYyB2b2lkCi1mcmVlX2Jsb2NrIChz dHJ1Y3QgZGNhY2hlX2Jsb2NrICpibG9jaywgdm9pZCAqcGFyYW0pCi17Ci0g IGZyZWUgKGJsb2NrKTsKLX0KLQotLyogRnJlZSBhIGRhdGEgY2FjaGUuICAq LwotCi12b2lkCi1kY2FjaGVfZnJlZSAoRENBQ0hFICpkY2FjaGUpCi17Ci0g IGlmIChsYXN0X2NhY2hlID09IGRjYWNoZSkKLSAgICBsYXN0X2NhY2hlID0g TlVMTDsKLQotICBzcGxheV90cmVlX2RlbGV0ZSAoZGNhY2hlLT50cmVlKTsK LSAgZm9yX2VhY2hfYmxvY2sgKCZkY2FjaGUtPm9sZGVzdCwgZnJlZV9ibG9j aywgTlVMTCk7Ci0gIGZvcl9lYWNoX2Jsb2NrICgmZGNhY2hlLT5mcmVlbGlz dCwgZnJlZV9ibG9jaywgTlVMTCk7Ci0gIHhmcmVlIChkY2FjaGUpOwotfQog CiAvKiBSZWFkIG9yIHdyaXRlIExFTiBieXRlcyBmcm9tIGluZmVyaW9yIG1l bW9yeSBhdCBNRU1BRERSLCB0cmFuc2ZlcnJpbmcKICAgIHRvIG9yIGZyb20g ZGVidWdnZXIgYWRkcmVzcyBNWUFERFIuICBXcml0ZSB0byBpbmZlcmlvciBp ZiBTSE9VTERfV1JJVEUgaXMKQEAgLTU3MSwxMiArNTkwLDEyIEBAIGRjYWNo ZV9wcmludF9saW5lIChpbnQgaW5kZXgpCiAgIHByaW50Zl9maWx0ZXJlZCAo XygiTGluZSAlZDogYWRkcmVzcyAlcyBbJWQgaGl0c11cbiIpLAogCQkgICBp bmRleCwgcGFkZHJlc3MgKHRhcmdldF9nZGJhcmNoLCBkYi0+YWRkciksIGRi LT5yZWZzKTsKIAotICBmb3IgKGogPSAwOyBqIDwgTElORV9TSVpFOyBqKysp CisgIGZvciAoaiA9IDA7IGogPCBsYXN0X2NhY2hlLT5saW5lX3NpemU7IGor KykKICAgICB7CiAgICAgICBwcmludGZfZmlsdGVyZWQgKCIlMDJ4ICIsIGRi LT5kYXRhW2pdKTsKIAogICAgICAgLyogUHJpbnQgYSBuZXdsaW5lIGV2ZXJ5 IDE2IGJ5dGVzICg0OCBjaGFyYWN0ZXJzKS4gICovCi0gICAgICBpZiAoKGog JSAxNiA9PSAxNSkgJiYgKGogIT0gTElORV9TSVpFIC0gMSkpCisgICAgICBp ZiAoKGogJSAxNiA9PSAxNSkgJiYgKGogIT0gbGFzdF9jYWNoZS0+bGluZV9z aXplIC0gMSkpCiAJcHJpbnRmX2ZpbHRlcmVkICgiXG4iKTsKICAgICB9CiAg IHByaW50Zl9maWx0ZXJlZCAoIlxuIik7CkBAIC02MDMsOCArNjIyLDEwIEBA IGRjYWNoZV9pbmZvIChjaGFyICpleHAsIGludCB0dHkpCiAgICAgICByZXR1 cm47CiAgICAgfQogCi0gIHByaW50Zl9maWx0ZXJlZCAoXygiRGNhY2hlIGxp bmUgd2lkdGggJWQsIG1heGltdW0gc2l6ZSAlZFxuIiksCi0JCSAgIExJTkVf U0laRSwgRENBQ0hFX1NJWkUpOworICBwcmludGZfZmlsdGVyZWQgKF8oIkRj YWNoZSAldSBsaW5lcyBvZiAldSBieXRlcyBlYWNoLlxuIiksCisJCSAgIGRj YWNoZV9zaXplLAorCQkgICBsYXN0X2NhY2hlID8gKHVuc2lnbmVkKSBsYXN0 X2NhY2hlLT5saW5lX3NpemUKKwkJICAgOiBkY2FjaGVfbGluZV9zaXplKTsK IAogICBpZiAoIWxhc3RfY2FjaGUgfHwgcHRpZF9lcXVhbCAobGFzdF9jYWNo ZS0+cHRpZCwgbnVsbF9wdGlkKSkKICAgICB7CkBAIC02MzUsNiArNjU2LDQ5 IEBAIGRjYWNoZV9pbmZvIChjaGFyICpleHAsIGludCB0dHkpCiAgIHByaW50 Zl9maWx0ZXJlZCAoXygiQ2FjaGUgc3RhdGU6ICVkIGFjdGl2ZSBsaW5lcywg JWQgaGl0c1xuIiksIGksIHJlZmNvdW50KTsKIH0KIAorc3RhdGljIHZvaWQK K3NldF9kY2FjaGVfc2l6ZSAoY2hhciAqYXJncywgaW50IGZyb21fdHR5LAor CQkgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmMpCit7CisgIGlmIChkY2Fj aGVfc2l6ZSA8PSAwKQorICAgIHsKKyAgICAgIHVuc2lnbmVkIGQgPSBkY2Fj aGVfc2l6ZTsKKyAgICAgIGRjYWNoZV9zaXplID0gRENBQ0hFX0RFRkFVTFRf U0laRTsKKyAgICAgIGVycm9yIChfKCJJbnZhbGlkIGRjYWNoZSBzaXplOiAl dSAobXVzdCBiZSBwb3NpdGl2ZSkuIiksIGQpOworICAgIH0KKyAgaWYgKGxh c3RfY2FjaGUpCisgICAgZGNhY2hlX2ludmFsaWRhdGUgKGxhc3RfY2FjaGUp OworfQorCitzdGF0aWMgdm9pZAorc2V0X2RjYWNoZV9saW5lX3NpemUgKGNo YXIgKmFyZ3MsIGludCBmcm9tX3R0eSwKKwkJICAgICAgc3RydWN0IGNtZF9s aXN0X2VsZW1lbnQgKmMpCit7CisgIGlmIChkY2FjaGVfbGluZV9zaXplIDwg MgorICAgICAgfHwgKGRjYWNoZV9saW5lX3NpemUgJiAoZGNhY2hlX2xpbmVf c2l6ZSAtIDEpKSAhPSAwKQorICAgIHsKKyAgICAgIHVuc2lnbmVkIGQgPSBk Y2FjaGVfbGluZV9zaXplOworICAgICAgZGNhY2hlX2xpbmVfc2l6ZSA9IERD QUNIRV9ERUZBVUxUX0xJTkVfU0laRTsKKyAgICAgIGVycm9yIChfKCJJbnZh bGlkIGRjYWNoZSBsaW5lIHNpemU6ICV1IChtdXN0IGJlIHBvd2VyIG9mIDIp LiIpLCBkKTsKKyAgICB9CisgIGlmIChsYXN0X2NhY2hlKQorICAgIGRjYWNo ZV9pbnZhbGlkYXRlIChsYXN0X2NhY2hlKTsKK30KKworc3RhdGljIHZvaWQK K3NldF9kY2FjaGVfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkp Cit7CisgIHByaW50Zl91bmZpbHRlcmVkICgKKyAgICAgIlwic2V0IGRjYWNo ZVwiIG11c3QgYmUgZm9sbG93ZWQgYnkgdGhlIG5hbWUgb2YgYSBzdWJjb21t YW5kLlxuIik7CisgIGhlbHBfbGlzdCAoZGNhY2hlX3NldF9saXN0LCAic2V0 IGRjYWNoZSAiLCAtMSwgZ2RiX3N0ZG91dCk7Cit9CisKK3N0YXRpYyB2b2lk CitzaG93X2RjYWNoZV9jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90 dHkpCit7CisgIGNtZF9zaG93X2xpc3QgKGRjYWNoZV9zaG93X2xpc3QsIGZy b21fdHR5LCAiIik7Cit9CisKIHZvaWQKIF9pbml0aWFsaXplX2RjYWNoZSAo dm9pZCkKIHsKQEAgLTY1Niw0ICs3MjAsMjggQEAgUHJpbnQgaW5mb3JtYXRp b24gb24gdGhlIGRjYWNoZSBwZXJmb3JtYQogV2l0aCBubyBhcmd1bWVudHMs IHRoaXMgY29tbWFuZCBwcmludHMgdGhlIGNhY2hlIGNvbmZpZ3VyYXRpb24g YW5kIGFcblwKIHN1bW1hcnkgb2YgZWFjaCBsaW5lIGluIHRoZSBjYWNoZS4g IFVzZSBcImluZm8gZGNhY2hlIDxsaW5lbm8+IHRvIGR1bXBcIlxuXAogdGhl IGNvbnRlbnRzIG9mIGEgZ2l2ZW4gbGluZS4iKSk7CisKKyAgYWRkX3ByZWZp eF9jbWQgKCJkY2FjaGUiLCBjbGFzc19vYnNjdXJlLCBzZXRfZGNhY2hlX2Nv bW1hbmQsIF8oIlwKK1VzZSB0aGlzIGNvbW1hbmQgdG8gc2V0IG51bWJlciBv ZiBsaW5lcyBpbiBkY2FjaGUgYW5kIGxpbmUtc2l6ZS4iKSwKKwkJICAmZGNh Y2hlX3NldF9saXN0LCAic2V0IGRjYWNoZSAiLCAvKmFsbG93X3Vua25vd24q LzAsICZzZXRsaXN0KTsKKyAgYWRkX3ByZWZpeF9jbWQgKCJkY2FjaGUiLCBj bGFzc19vYnNjdXJlLCBzaG93X2RjYWNoZV9jb21tYW5kLCBfKCJcCitTaG93 IGRjYWNoZXNldHRpbmdzLiIpLAorCQkgICZkY2FjaGVfc2hvd19saXN0LCAi c2hvdyBkY2FjaGUgIiwgLyphbGxvd191bmtub3duKi8wLCAmc2hvd2xpc3Qp OworCisgIGFkZF9zZXRzaG93X3VpbnRlZ2VyX2NtZCAoImxpbmUtc2l6ZSIs IGNsYXNzX29ic2N1cmUsCisJCQkgICAgJmRjYWNoZV9saW5lX3NpemUsIF8o IlwKK1NldCBkY2FjaGUgbGluZSBzaXplIGluIGJ5dGVzIChtdXN0IGJlIHBv d2VyIG9mIDIpLiIpLCBfKCJcCitTaG93IGRjYWNoZSBsaW5lIHNpemUuIiks CisJCQkgICAgTlVMTCwKKwkJCSAgICBzZXRfZGNhY2hlX2xpbmVfc2l6ZSwK KwkJCSAgICBOVUxMLAorCQkJICAgICZkY2FjaGVfc2V0X2xpc3QsICZkY2Fj aGVfc2hvd19saXN0KTsKKyAgYWRkX3NldHNob3dfdWludGVnZXJfY21kICgi c2l6ZSIsIGNsYXNzX29ic2N1cmUsCisJCQkgICAgJmRjYWNoZV9zaXplLCBf KCJcCitTZXQgbnVtYmVyIG9mIGRjYWNoZSBsaW5lcy4iKSwgXygiXAorU2hv dyBudW1iZXIgb2YgZGNhY2hlIGxpbmVzLiIpLAorCQkJICAgIE5VTEwsCisJ CQkgICAgc2V0X2RjYWNoZV9zaXplLAorCQkJICAgIE5VTEwsCisJCQkgICAg JmRjYWNoZV9zZXRfbGlzdCwgJmRjYWNoZV9zaG93X2xpc3QpOwogfQpJbmRl eDogZG9jL2dkYi50ZXhpbmZvCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZG9jL2dkYi50ZXhpbmZvLHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjg0OApkaWZmIC11IC1wIC1yMS44NDggZ2Ri LnRleGluZm8KLS0tIGRvYy9nZGIudGV4aW5mbwkyMSBKdWwgMjAxMSAxNTox MzoyOSAtMDAwMAkxLjg0OAorKysgZG9jL2dkYi50ZXhpbmZvCTI1IEp1bCAy MDExIDE4OjMxOjU3IC0wMDAwCkBAIC05MzMyLDYgKzkzMzIsMjggQEAgb3Bl cmF0aW9uLgogCiBJZiBhIGxpbmUgbnVtYmVyIGlzIHNwZWNpZmllZCwgdGhl IGNvbnRlbnRzIG9mIHRoYXQgbGluZSB3aWxsIGJlCiBwcmludGVkIGluIGhl eC4KKworQGl0ZW0gc2V0IGRjYWNoZSBzaXplIEB2YXJ7c2l6ZX0KK0BjaW5k ZXggZGNhY2hlIHNpemUKK0BraW5kZXggZGNhY2hlIHNpemUKK1NldCBtYXhp bXVtIG51bWJlciBvZiBlbnRyaWVzIGluIGRjYWNoZSAoZGNhY2hlIGRlcHRo IGFib3ZlKS4KKworQGl0ZW0gc2V0IGRjYWNoZSBsaW5lLXNpemUgQHZhcnts aW5lLXNpemV9CitAY2luZGV4IGRjYWNoZSBsaW5lLXNpemUKK0BraW5kZXgg ZGNhY2hlIGxpbmUtc2l6ZQorU2V0IG51bWJlciBvZiBieXRlcyBlYWNoIGRj YWNoZSBlbnRyeSBjYWNoZXMgKGRjYWNoZSB3aWR0aCBhYm92ZSkuCitNdXN0 IGJlIGEgcG93ZXIgb2YgMi4KKworQGl0ZW0gc2hvdyBkY2FjaGUgc2l6ZQor QGNpbmRleCBkY2FjaGUgc2l6ZQorQGtpbmRleCBkY2FjaGUgc2l6ZQorU2hv dyBtYXhpbXVtIG51bWJlciBvZiBkY2FjaGUgZW50cmllcy4gU2VlIGFsc28g QHJlZntDYWNoaW5nIFJlbW90ZSBEYXRhLCBpbmZvIGRjYWNoZX0uCisKK0Bp dGVtIHNob3cgZGNhY2hlIGxpbmUtc2l6ZQorQGNpbmRleCBkY2FjaGUgbGlu ZS1zaXplCitAa2luZGV4IGRjYWNoZSBsaW5lLXNpemUKK1Nob3cgZGVmYXVs dCBzaXplIG9mIGRjYWNoZSBsaW5lcy4gU2VlIGFsc28gQHJlZntDYWNoaW5n IFJlbW90ZSBEYXRhLCBpbmZvIGRjYWNoZX0uCisKIEBlbmQgdGFibGUKIAog QG5vZGUgU2VhcmNoaW5nIE1lbW9yeQo= --00151750e398c8f90e04a8e90cbc--