From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25802 invoked by alias); 11 Sep 2009 23:23:50 -0000 Received: (qmail 25790 invoked by uid 22791); 11 Sep 2009 23:23:48 -0000 X-SWARE-Spam-Status: No, hits=-0.8 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_14,KAM_STOCKGEN,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.33.17) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 11 Sep 2009 23:23:44 +0000 Received: from wpaz21.hot.corp.google.com (wpaz21.hot.corp.google.com [172.24.198.85]) by smtp-out.google.com with ESMTP id n8BNNeeb004196 for ; Sat, 12 Sep 2009 00:23:41 +0100 Received: from yxe29 (yxe29.prod.google.com [10.190.2.29]) by wpaz21.hot.corp.google.com with ESMTP id n8BNMxV8006613 for ; Fri, 11 Sep 2009 16:23:38 -0700 Received: by yxe29 with SMTP id 29so1915164yxe.16 for ; Fri, 11 Sep 2009 16:23:38 -0700 (PDT) MIME-Version: 1.0 Received: by 10.151.29.2 with SMTP id g2mr5877150ybj.199.1252711418323; Fri, 11 Sep 2009 16:23:38 -0700 (PDT) In-Reply-To: References: <20090910231912.0733A843B9@localhost> Date: Fri, 11 Sep 2009 23:23:00 -0000 Message-ID: Subject: Re: [RFC] better dwarf checking for values on the stack From: Doug Evans To: Tom Tromey Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=000e0cd358d21865800473559b44 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: 2009-09/txt/msg00347.txt.bz2 --000e0cd358d21865800473559b44 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1814 On Fri, Sep 11, 2009 at 2:19 PM, Doug Evans wrote: >>Tom Tromey wrote: >>[...] >> It seems to me that the inferior-stack-ness of a value must be an >> attribute carried alongside the value on the dwarf stack. >>[...] > > Yeah, I was wondering about this. =A0[It's what prompted my question on I= RC.] How about this? 2009-09-11 Doug Evans * dwarf2expr.h (dwarf_value_location): Add more comments describing enum values. (struct dwarf_stack_value): New struct. (struct dwarf_expr_context): Change type of `stack' from CORE_ADDR* to structd dwarf_stack_value*. (struct dwarf_expr_piece): Move `v.value' into its own struct, v.ex= pr, all uses updated. Add v.expr.in_stack_memory. (dwarf_expr_push): Update declaration. (dwarf_expr_fetch_in_stack_memory): Declare. * dwarf2expr.c (dwarf_expr_grow_stack): Update calculation of size of stack value. (dwarf_expr_push): New arg in_stack_memory, all callers updated. (dwarf_expr_fetch_in_stack_memory): New function. (add_piece): Set in_stack_memory for non-literal values. (execute_stack_op, case DW_OP_fbreg): Call dwarf_expr_push ourselve= s, mark value as in stack memory. (execute_stack_op, case DW_OP_call_frame_cfa): Ditto. (execute_stack_op, cases DW_OP_swap, DW_OP_rot): Update type of dwarf stack value. * dwarf2loc.c (read_pieced_value): Call read_stack for values known to be on the program's stack. (dwarf2_evaluate_loc_desc, case DWARF_VALUE_MEMORY): Call set_value_stack only for objects known to be in stack memory. * dwarf2-frame.c (execute_stack_op): New arg initial_in_stack_memor= y, all callers updated. --000e0cd358d21865800473559b44 Content-Type: text/plain; charset=US-ASCII; name="gdb-090911-dwarf-stack-value-2.patch.txt" Content-Disposition: attachment; filename="gdb-090911-dwarf-stack-value-2.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fzhjzunv0 Content-length: 17166 MjAwOS0wOS0xMSAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog ZHdhcmYyZXhwci5oIChkd2FyZl92YWx1ZV9sb2NhdGlvbik6IEFkZCBtb3Jl IGNvbW1lbnRzIGRlc2NyaWJpbmcKCWVudW0gdmFsdWVzLgoJKHN0cnVjdCBk d2FyZl9zdGFja192YWx1ZSk6IE5ldyBzdHJ1Y3QuCgkoc3RydWN0IGR3YXJm X2V4cHJfY29udGV4dCk6IENoYW5nZSB0eXBlIG9mIGBzdGFjaycgZnJvbSBD T1JFX0FERFIqCgl0byBzdHJ1Y3RkIGR3YXJmX3N0YWNrX3ZhbHVlKi4KCShz dHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSk6IE1vdmUgYHYudmFsdWUnIGludG8g aXRzIG93biBzdHJ1Y3QsIHYuZXhwciwKCWFsbCB1c2VzIHVwZGF0ZWQuCglB ZGQgdi5leHByLmluX3N0YWNrX21lbW9yeS4KCShkd2FyZl9leHByX3B1c2gp OiBVcGRhdGUgZGVjbGFyYXRpb24uCgkoZHdhcmZfZXhwcl9mZXRjaF9pbl9z dGFja19tZW1vcnkpOiBEZWNsYXJlLgoJKiBkd2FyZjJleHByLmMgKGR3YXJm X2V4cHJfZ3Jvd19zdGFjayk6IFVwZGF0ZSBjYWxjdWxhdGlvbiBvZgoJc2l6 ZSBvZiBzdGFjayB2YWx1ZS4KCShkd2FyZl9leHByX3B1c2gpOiBOZXcgYXJn IGluX3N0YWNrX21lbW9yeSwgYWxsIGNhbGxlcnMgdXBkYXRlZC4KCShkd2Fy Zl9leHByX2ZldGNoX2luX3N0YWNrX21lbW9yeSk6IE5ldyBmdW5jdGlvbi4K CShhZGRfcGllY2UpOiBTZXQgaW5fc3RhY2tfbWVtb3J5IGZvciBub24tbGl0 ZXJhbCB2YWx1ZXMuCgkoZXhlY3V0ZV9zdGFja19vcCwgY2FzZSBEV19PUF9m YnJlZyk6IENhbGwgZHdhcmZfZXhwcl9wdXNoIG91cnNlbHZlcywKCW1hcmsg dmFsdWUgYXMgaW4gc3RhY2sgbWVtb3J5LgoJKGV4ZWN1dGVfc3RhY2tfb3As IGNhc2UgRFdfT1BfY2FsbF9mcmFtZV9jZmEpOiBEaXR0by4KCShleGVjdXRl X3N0YWNrX29wLCBjYXNlcyBEV19PUF9zd2FwLCBEV19PUF9yb3QpOiBVcGRh dGUgdHlwZSBvZgoJZHdhcmYgc3RhY2sgdmFsdWUuCgkqIGR3YXJmMmxvYy5j IChyZWFkX3BpZWNlZF92YWx1ZSk6IENhbGwgcmVhZF9zdGFjayBmb3IgdmFs dWVzIGtub3duCgl0byBiZSBvbiB0aGUgcHJvZ3JhbSdzIHN0YWNrLgoJKGR3 YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYywgY2FzZSBEV0FSRl9WQUxVRV9NRU1P UlkpOiBDYWxsCglzZXRfdmFsdWVfc3RhY2sgb25seSBmb3Igb2JqZWN0cyBr bm93biB0byBiZSBpbiBzdGFjayBtZW1vcnkuCgkqIGR3YXJmMi1mcmFtZS5j IChleGVjdXRlX3N0YWNrX29wKTogTmV3IGFyZyBpbml0aWFsX2luX3N0YWNr X21lbW9yeSwKCWFsbCBjYWxsZXJzIHVwZGF0ZWQuCgpJbmRleDogZHdhcmYy LWZyYW1lLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2 cy9zcmMvc3JjL2dkYi9kd2FyZjItZnJhbWUuYyx2CnJldHJpZXZpbmcgcmV2 aXNpb24gMS45OApkaWZmIC11IC1wIC1yMS45OCBkd2FyZjItZnJhbWUuYwot LS0gZHdhcmYyLWZyYW1lLmMJMTEgU2VwIDIwMDkgMTg6Mzg6MzkgLTAwMDAJ MS45OAorKysgZHdhcmYyLWZyYW1lLmMJMTEgU2VwIDIwMDkgMjI6NTY6MDYg LTAwMDAKQEAgLTM1Nyw3ICszNTcsOCBAQCByZWdpc3RlciAlcyAoIyVkKSBh dCAlcyIpLAogCiBzdGF0aWMgQ09SRV9BRERSCiBleGVjdXRlX3N0YWNrX29w IChnZGJfYnl0ZSAqZXhwLCBVTE9OR0VTVCBsZW4sIGludCBhZGRyX3NpemUs Ci0JCSAgc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUsIENPUkVfQURE UiBpbml0aWFsKQorCQkgIHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1l LCBDT1JFX0FERFIgaW5pdGlhbCwKKwkJICBpbnQgaW5pdGlhbF9pbl9zdGFj a19tZW1vcnkpCiB7CiAgIHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0 eDsKICAgQ09SRV9BRERSIHJlc3VsdDsKQEAgLTM3NSw3ICszNzYsNyBAQCBl eGVjdXRlX3N0YWNrX29wIChnZGJfYnl0ZSAqZXhwLCBVTE9OR0VTCiAgIGN0 eC0+Z2V0X2ZyYW1lX2NmYSA9IG5vX2dldF9mcmFtZV9jZmE7CiAgIGN0eC0+ Z2V0X3Rsc19hZGRyZXNzID0gbm9fZ2V0X3Rsc19hZGRyZXNzOwogCi0gIGR3 YXJmX2V4cHJfcHVzaCAoY3R4LCBpbml0aWFsKTsKKyAgZHdhcmZfZXhwcl9w dXNoIChjdHgsIGluaXRpYWwsIGluaXRpYWxfaW5fc3RhY2tfbWVtb3J5KTsK ICAgZHdhcmZfZXhwcl9ldmFsIChjdHgsIGV4cCwgbGVuKTsKICAgcmVzdWx0 ID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKIApAQCAtOTc1LDcgKzk3 Niw3IEBAIGR3YXJmMl9mcmFtZV9jYWNoZSAoc3RydWN0IGZyYW1lX2luZm8g KnQKICAgICBjYXNlIENGQV9FWFA6CiAgICAgICBjYWNoZS0+Y2ZhID0KIAll eGVjdXRlX3N0YWNrX29wIChmcy0+cmVncy5jZmFfZXhwLCBmcy0+cmVncy5j ZmFfZXhwX2xlbiwKLQkJCSAgY2FjaGUtPmFkZHJfc2l6ZSwgdGhpc19mcmFt ZSwgMCk7CisJCQkgIGNhY2hlLT5hZGRyX3NpemUsIHRoaXNfZnJhbWUsIDAs IDApOwogICAgICAgYnJlYWs7CiAKICAgICBkZWZhdWx0OgpAQCAtMTEzMSw3 ICsxMTMyLDcgQEAgZHdhcmYyX2ZyYW1lX3ByZXZfcmVnaXN0ZXIgKHN0cnVj dCBmcmFtZQogICAgIGNhc2UgRFdBUkYyX0ZSQU1FX1JFR19TQVZFRF9FWFA6 CiAgICAgICBhZGRyID0gZXhlY3V0ZV9zdGFja19vcCAoY2FjaGUtPnJlZ1ty ZWdudW1dLmxvYy5leHAsCiAJCQkgICAgICAgY2FjaGUtPnJlZ1tyZWdudW1d LmV4cF9sZW4sCi0JCQkgICAgICAgY2FjaGUtPmFkZHJfc2l6ZSwgdGhpc19m cmFtZSwgY2FjaGUtPmNmYSk7CisJCQkgICAgICAgY2FjaGUtPmFkZHJfc2l6 ZSwgdGhpc19mcmFtZSwgY2FjaGUtPmNmYSwgMSk7CiAgICAgICByZXR1cm4g ZnJhbWVfdW53aW5kX2dvdF9tZW1vcnkgKHRoaXNfZnJhbWUsIHJlZ251bSwg YWRkcik7CiAKICAgICBjYXNlIERXQVJGMl9GUkFNRV9SRUdfU0FWRURfVkFM X09GRlNFVDoKQEAgLTExNDEsNyArMTE0Miw3IEBAIGR3YXJmMl9mcmFtZV9w cmV2X3JlZ2lzdGVyIChzdHJ1Y3QgZnJhbWUKICAgICBjYXNlIERXQVJGMl9G UkFNRV9SRUdfU0FWRURfVkFMX0VYUDoKICAgICAgIGFkZHIgPSBleGVjdXRl X3N0YWNrX29wIChjYWNoZS0+cmVnW3JlZ251bV0ubG9jLmV4cCwKIAkJCSAg ICAgICBjYWNoZS0+cmVnW3JlZ251bV0uZXhwX2xlbiwKLQkJCSAgICAgICBj YWNoZS0+YWRkcl9zaXplLCB0aGlzX2ZyYW1lLCBjYWNoZS0+Y2ZhKTsKKwkJ CSAgICAgICBjYWNoZS0+YWRkcl9zaXplLCB0aGlzX2ZyYW1lLCBjYWNoZS0+ Y2ZhLCAxKTsKICAgICAgIHJldHVybiBmcmFtZV91bndpbmRfZ290X2NvbnN0 YW50ICh0aGlzX2ZyYW1lLCByZWdudW0sIGFkZHIpOwogCiAgICAgY2FzZSBE V0FSRjJfRlJBTUVfUkVHX1VOU1BFQ0lGSUVEOgpJbmRleDogZHdhcmYyZXhw ci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3Jj L3NyYy9nZGIvZHdhcmYyZXhwci5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjM2CmRpZmYgLXUgLXAgLXIxLjM2IGR3YXJmMmV4cHIuYwotLS0gZHdhcmYy ZXhwci5jCTExIFNlcCAyMDA5IDE4OjM4OjM5IC0wMDAwCTEuMzYKKysrIGR3 YXJmMmV4cHIuYwkxMSBTZXAgMjAwOSAyMjo1NjowNiAtMDAwMApAQCAtODcs NyArODcsNyBAQCBkd2FyZl9leHByX2dyb3dfc3RhY2sgKHN0cnVjdCBkd2Fy Zl9leHByCiAgICAgewogICAgICAgc2l6ZV90IG5ld2xlbiA9IGN0eC0+c3Rh Y2tfbGVuICsgbmVlZCArIDEwOwogICAgICAgY3R4LT5zdGFjayA9IHhyZWFs bG9jIChjdHgtPnN0YWNrLAotCQkJICAgICBuZXdsZW4gKiBzaXplb2YgKENP UkVfQUREUikpOworCQkJICAgICBuZXdsZW4gKiBzaXplb2YgKHN0cnVjdCBk d2FyZl9zdGFja192YWx1ZSkpOwogICAgICAgY3R4LT5zdGFja19hbGxvY2F0 ZWQgPSBuZXdsZW47CiAgICAgfQogfQpAQCAtOTUsMTAgKzk1LDE1IEBAIGR3 YXJmX2V4cHJfZ3Jvd19zdGFjayAoc3RydWN0IGR3YXJmX2V4cHIKIC8qIFB1 c2ggVkFMVUUgb250byBDVFgncyBzdGFjay4gICovCiAKIHZvaWQKLWR3YXJm X2V4cHJfcHVzaCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LCBD T1JFX0FERFIgdmFsdWUpCitkd2FyZl9leHByX3B1c2ggKHN0cnVjdCBkd2Fy Zl9leHByX2NvbnRleHQgKmN0eCwgQ09SRV9BRERSIHZhbHVlLAorCQkgaW50 IGluX3N0YWNrX21lbW9yeSkKIHsKKyAgc3RydWN0IGR3YXJmX3N0YWNrX3Zh bHVlICp2OworCiAgIGR3YXJmX2V4cHJfZ3Jvd19zdGFjayAoY3R4LCAxKTsK LSAgY3R4LT5zdGFja1tjdHgtPnN0YWNrX2xlbisrXSA9IHZhbHVlOworICB2 ID0gJmN0eC0+c3RhY2tbY3R4LT5zdGFja19sZW4rK107CisgIHYtPnZhbHVl ID0gdmFsdWU7CisgIHYtPmluX3N0YWNrX21lbW9yeSA9IGluX3N0YWNrX21l bW9yeTsKIH0KIAogLyogUG9wIHRoZSB0b3AgaXRlbSBvZmYgb2YgQ1RYJ3Mg c3RhY2suICAqLwpAQCAtMTE5LDcgKzEyNCwxOSBAQCBkd2FyZl9leHByX2Zl dGNoIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250CiAgIGlmIChjdHgtPnN0YWNr X2xlbiA8PSBuKQogICAgICBlcnJvciAoXygiQXNrZWQgZm9yIHBvc2l0aW9u ICVkIG9mIHN0YWNrLCBzdGFjayBvbmx5IGhhcyAlZCBlbGVtZW50cyBvbiBp dC4iKSwKIAkgICAgbiwgY3R4LT5zdGFja19sZW4pOwotICByZXR1cm4gY3R4 LT5zdGFja1tjdHgtPnN0YWNrX2xlbiAtICgxICsgbildOworICByZXR1cm4g Y3R4LT5zdGFja1tjdHgtPnN0YWNrX2xlbiAtICgxICsgbildLnZhbHVlOwor Cit9CisKKy8qIFJldHJpZXZlIHRoZSBpbl9zdGFja19tZW1vcnkgZmxhZyBv ZiB0aGUgTid0aCBpdGVtIG9uIENUWCdzIHN0YWNrLiAgKi8KKworaW50Citk d2FyZl9leHByX2ZldGNoX2luX3N0YWNrX21lbW9yeSAoc3RydWN0IGR3YXJm X2V4cHJfY29udGV4dCAqY3R4LCBpbnQgbikKK3sKKyAgaWYgKGN0eC0+c3Rh Y2tfbGVuIDw9IG4pCisgICAgIGVycm9yIChfKCJBc2tlZCBmb3IgcG9zaXRp b24gJWQgb2Ygc3RhY2ssIHN0YWNrIG9ubHkgaGFzICVkIGVsZW1lbnRzIG9u IGl0LiIpLAorCSAgICBuLCBjdHgtPnN0YWNrX2xlbik7CisgIHJldHVybiBj dHgtPnN0YWNrW2N0eC0+c3RhY2tfbGVuIC0gKDEgKyBuKV0uaW5fc3RhY2tf bWVtb3J5OwogCiB9CiAKQEAgLTE0OCw3ICsxNjUsMTAgQEAgYWRkX3BpZWNl IChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdAogICAgICAgcC0+di5s aXRlcmFsLmxlbmd0aCA9IGN0eC0+bGVuOwogICAgIH0KICAgZWxzZQotICAg IHAtPnYudmFsdWUgPSBkd2FyZl9leHByX2ZldGNoIChjdHgsIDApOworICAg IHsKKyAgICAgIHAtPnYuZXhwci52YWx1ZSA9IGR3YXJmX2V4cHJfZmV0Y2gg KGN0eCwgMCk7CisgICAgICBwLT52LmV4cHIuaW5fc3RhY2tfbWVtb3J5ID0g ZHdhcmZfZXhwcl9mZXRjaF9pbl9zdGFja19tZW1vcnkgKGN0eCwgMCk7Cisg ICAgfQogfQogCiAvKiBFdmFsdWF0ZSB0aGUgZXhwcmVzc2lvbiBhdCBBRERS IChMRU4gYnl0ZXMgbG9uZykgdXNpbmcgdGhlIGNvbnRleHQKQEAgLTU1OSw4 ICs1NzksMTAgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3YXJmX2V4 cHJfY29udAogCSAgICByZXN1bHQgPSByZXN1bHQgKyBvZmZzZXQ7CiAJICAg IGN0eC0+c3RhY2tfbGVuID0gYmVmb3JlX3N0YWNrX2xlbjsKIAkgICAgY3R4 LT5sb2NhdGlvbiA9IERXQVJGX1ZBTFVFX01FTU9SWTsKKwkgICAgZHdhcmZf ZXhwcl9wdXNoIChjdHgsIHJlc3VsdCwgMSk7CiAJICB9Ci0JICBicmVhazsK KwkgIGdvdG8gbm9fcHVzaDsgLyogYWxyZWFkeSBwdXNoZWQgKi8KKwogCWNh c2UgRFdfT1BfZHVwOgogCSAgcmVzdWx0ID0gZHdhcmZfZXhwcl9mZXRjaCAo Y3R4LCAwKTsKIAkgIGJyZWFrOwpAQCAtNTc2LDcgKzU5OCw3IEBAIGV4ZWN1 dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnQKIAkgIAogCWNh c2UgRFdfT1Bfc3dhcDoKIAkgIHsKLQkgICAgQ09SRV9BRERSIHQxLCB0MjsK KwkgICAgc3RydWN0IGR3YXJmX3N0YWNrX3ZhbHVlIHQxLCB0MjsKIAogCSAg ICBpZiAoY3R4LT5zdGFja19sZW4gPCAyKQogCSAgICAgICBlcnJvciAoXygi Tm90IGVub3VnaCBlbGVtZW50cyBmb3IgRFdfT1Bfc3dhcC4gTmVlZCAyLCBo YXZlICVkLiIpLApAQCAtNTk0LDcgKzYxNiw3IEBAIGV4ZWN1dGVfc3RhY2tf b3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnQKIAogCWNhc2UgRFdfT1Bfcm90 OgogCSAgewotCSAgICBDT1JFX0FERFIgdDEsIHQyLCB0MzsKKwkgICAgc3Ry dWN0IGR3YXJmX3N0YWNrX3ZhbHVlIHQxLCB0MiwgdDM7CiAKIAkgICAgaWYg KGN0eC0+c3RhY2tfbGVuIDwgMykKIAkgICAgICAgZXJyb3IgKF8oIk5vdCBl bm91Z2ggZWxlbWVudHMgZm9yIERXX09QX3JvdC4gTmVlZCAzLCBoYXZlICVk LiIpLApAQCAtNzU4LDcgKzc4Miw4IEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0 cnVjdCBkd2FyZl9leHByX2NvbnQKIAogCWNhc2UgRFdfT1BfY2FsbF9mcmFt ZV9jZmE6CiAJICByZXN1bHQgPSAoY3R4LT5nZXRfZnJhbWVfY2ZhKSAoY3R4 LT5iYXRvbik7Ci0JICBicmVhazsKKwkgIGR3YXJmX2V4cHJfcHVzaCAoY3R4 LCByZXN1bHQsIDEpOworCSAgZ290byBub19wdXNoOyAvKiBhbHJlYWR5IHB1 c2hlZCAqLwogCiAJY2FzZSBEV19PUF9HTlVfcHVzaF90bHNfYWRkcmVzczoK IAkgIC8qIFZhcmlhYmxlIGlzIGF0IGEgY29uc3RhbnQgb2Zmc2V0IGluIHRo ZSB0aHJlYWQtbG9jYWwKQEAgLTgyMCw4ICs4NDQsOSBAQCBleGVjdXRlX3N0 YWNrX29wIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250CiAJICBlcnJvciAoXygi VW5oYW5kbGVkIGR3YXJmIGV4cHJlc3Npb24gb3Bjb2RlIDB4JXgiKSwgb3Ap OwogCX0KIAotICAgICAgLyogTW9zdCB0aGluZ3MgcHVzaCBhIHJlc3VsdCB2 YWx1ZS4gICovCi0gICAgICBkd2FyZl9leHByX3B1c2ggKGN0eCwgcmVzdWx0 KTsKKyAgICAgIC8qIE1vc3QgdGhpbmdzIHB1c2ggYSByZXN1bHQgdmFsdWUg KHRoYXQgZG9lc24ndCBsaXZlIG9uIHRoZQorCSBwcm9ncmFtJ3Mgc3RhY2sp LiAgKi8JIAorICAgICAgZHdhcmZfZXhwcl9wdXNoIChjdHgsIHJlc3VsdCwg MCk7CiAgICAgbm9fcHVzaDo7CiAgICAgfQogCkluZGV4OiBkd2FyZjJleHBy LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMv c3JjL2dkYi9kd2FyZjJleHByLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu MTgKZGlmZiAtdSAtcCAtcjEuMTggZHdhcmYyZXhwci5oCi0tLSBkd2FyZjJl eHByLmgJMTEgU2VwIDIwMDkgMTg6Mzg6MzkgLTAwMDAJMS4xOAorKysgZHdh cmYyZXhwci5oCTExIFNlcCAyMDA5IDIyOjU2OjA2IC0wMDAwCkBAIC0yNiwy MiArMjYsMzggQEAKIC8qIFRoZSBsb2NhdGlvbiBvZiBhIHZhbHVlLiAgKi8K IGVudW0gZHdhcmZfdmFsdWVfbG9jYXRpb24KIHsKLSAgLyogVGhlIHBpZWNl IGlzIGluIG1lbW9yeS4gICovCisgIC8qIFRoZSBwaWVjZSBpcyBpbiBtZW1v cnkuCisgICAgIFRoZSB2YWx1ZSBvbiB0aGUgZHdhcmYgc3RhY2sgaXMgaXRz IGFkZHJlc3MuICAqLwogICBEV0FSRl9WQUxVRV9NRU1PUlksCi0gIC8qIFRo ZSBwaWVjZSBpcyBpbiBhIHJlZ2lzdGVyLiAgKi8KKworICAvKiBUaGUgcGll Y2UgaXMgaW4gYSByZWdpc3Rlci4KKyAgICAgVGhlIHZhbHVlIG9uIHRoZSBk d2FyZiBzdGFjayBpcyB0aGUgcmVnaXN0ZXIgbnVtYmVyLiAgKi8KICAgRFdB UkZfVkFMVUVfUkVHSVNURVIsCi0gIC8qIFRoZSBwaWVjZSBpcyBvbiB0aGUg c3RhY2suICAqLworCisgIC8qIFRoZSBwaWVjZSBpcyBvbiB0aGUgZHdhcmYg c3RhY2suICAqLwogICBEV0FSRl9WQUxVRV9TVEFDSywKKwogICAvKiBUaGUg cGllY2UgaXMgYSBsaXRlcmFsLiAgKi8KICAgRFdBUkZfVkFMVUVfTElURVJB TAogfTsKIAorLyogVGhlIGR3YXJmIGV4cHJlc3Npb24gc3RhY2suICAqLwor CitzdHJ1Y3QgZHdhcmZfc3RhY2tfdmFsdWUKK3sKKyAgQ09SRV9BRERSIHZh bHVlOworCisgIC8qIE5vbi16ZXJvIGlmIHRoZSBwaWVjZSBpcyBpbiBtZW1v cnkgYW5kIGlzIGtub3duIHRvIGJlCisgICAgIG9uIHRoZSBwcm9ncmFtJ3Mg c3RhY2suICAqLworICBpbnQgaW5fc3RhY2tfbWVtb3J5OworfTsKKwogLyog VGhlIGV4cHJlc3Npb24gZXZhbHVhdG9yIHdvcmtzIHdpdGggYSBkd2FyZl9l eHByX2NvbnRleHQsIGRlc2NyaWJpbmcKICAgIGl0cyBjdXJyZW50IHN0YXRl IGFuZCBpdHMgY2FsbGJhY2tzLiAgKi8KIHN0cnVjdCBkd2FyZl9leHByX2Nv bnRleHQKIHsKICAgLyogVGhlIHN0YWNrIG9mIHZhbHVlcywgYWxsb2NhdGVk IHdpdGggeG1hbGxvYy4gICovCi0gIENPUkVfQUREUiAqc3RhY2s7CisgIHN0 cnVjdCBkd2FyZl9zdGFja192YWx1ZSAqc3RhY2s7CiAKICAgLyogVGhlIG51 bWJlciBvZiB2YWx1ZXMgY3VycmVudGx5IHB1c2hlZCBvbiB0aGUgc3RhY2ss IGFuZCB0aGUKICAgICAgbnVtYmVyIG9mIGVsZW1lbnRzIGFsbG9jYXRlZCB0 byB0aGUgc3RhY2suICAqLwpAQCAtMTExLDcgKzEyNyw3IEBAIHN0cnVjdCBk d2FyZl9leHByX2NvbnRleHQKICAgICAgRWFjaCB0aW1lIERXX09QX3BpZWNl IGlzIGV4ZWN1dGVkLCB3ZSBhZGQgYSBuZXcgZWxlbWVudCB0byB0aGUKICAg ICAgZW5kIG9mIHRoaXMgYXJyYXksIHJlY29yZGluZyB0aGUgY3VycmVudCB0 b3Agb2YgdGhlIHN0YWNrLCB0aGUKICAgICAgY3VycmVudCBsb2NhdGlvbiwg YW5kIHRoZSBzaXplIGdpdmVuIGFzIHRoZSBvcGVyYW5kIHRvCi0gICAgIERX X09QX3BpZWNlLiAgV2UgdGhlbiBwb3AgdGhlIHRvcCB2YWx1ZSBmcm9tIHRo ZSBzdGFjaywgcmVzdCB0aGUKKyAgICAgRFdfT1BfcGllY2UuICBXZSB0aGVu IHBvcCB0aGUgdG9wIHZhbHVlIGZyb20gdGhlIHN0YWNrLCByZXNldCB0aGUK ICAgICAgbG9jYXRpb24sIGFuZCByZXN1bWUgZXZhbHVhdGlvbi4KIAogICAg ICBUaGUgRHdhcmYgc3BlYyBkb2Vzbid0IHNheSB3aGV0aGVyIERXX09QX3Bp ZWNlIHBvcHMgdGhlIHRvcCB2YWx1ZQpAQCAtMTQwLDggKzE1NiwxNCBAQCBz dHJ1Y3QgZHdhcmZfZXhwcl9waWVjZQogCiAgIHVuaW9uCiAgIHsKLSAgICAv KiBUaGlzIHBpZWNlJ3MgYWRkcmVzcyBvciByZWdpc3RlciBudW1iZXIuICAq LwotICAgIENPUkVfQUREUiB2YWx1ZTsKKyAgICBzdHJ1Y3QKKyAgICB7Cisg ICAgICAvKiBUaGlzIHBpZWNlJ3MgYWRkcmVzcyBvciByZWdpc3RlciBudW1i ZXIuICAqLworICAgICAgQ09SRV9BRERSIHZhbHVlOworICAgICAgLyogTm9u LXplcm8gaWYgdGhlIHBpZWNlIGlzIGtub3duIHRvIGJlIGluIG1lbW9yeSBh bmQgb24KKwkgdGhlIHByb2dyYW0ncyBzdGFjay4gICovCisgICAgICBpbnQg aW5fc3RhY2tfbWVtb3J5OworICAgIH0gZXhwcjsKIAogICAgIHN0cnVjdAog ICAgIHsKQEAgLTE2MiwxMSArMTg0LDEzIEBAIHZvaWQgZnJlZV9kd2FyZl9l eHByX2NvbnRleHQgKHN0cnVjdCBkd2EKIHN0cnVjdCBjbGVhbnVwICoKICAg ICBtYWtlX2NsZWFudXBfZnJlZV9kd2FyZl9leHByX2NvbnRleHQgKHN0cnVj dCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCk7CiAKLXZvaWQgZHdhcmZfZXhw cl9wdXNoIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgsIENPUkVf QUREUiB2YWx1ZSk7Cit2b2lkIGR3YXJmX2V4cHJfcHVzaCAoc3RydWN0IGR3 YXJmX2V4cHJfY29udGV4dCAqY3R4LCBDT1JFX0FERFIgdmFsdWUsCisJCSAg ICAgIGludCBpbl9zdGFja19tZW1vcnkpOwogdm9pZCBkd2FyZl9leHByX3Bv cCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4KTsKIHZvaWQgZHdh cmZfZXhwcl9ldmFsIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgs IHVuc2lnbmVkIGNoYXIgKmFkZHIsCiAJCSAgICAgIHNpemVfdCBsZW4pOwog Q09SRV9BRERSIGR3YXJmX2V4cHJfZmV0Y2ggKHN0cnVjdCBkd2FyZl9leHBy X2NvbnRleHQgKmN0eCwgaW50IG4pOworaW50IGR3YXJmX2V4cHJfZmV0Y2hf aW5fc3RhY2tfbWVtb3J5IChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpj dHgsIGludCBuKTsKIAogCiBnZGJfYnl0ZSAqcmVhZF91bGViMTI4IChnZGJf Ynl0ZSAqYnVmLCBnZGJfYnl0ZSAqYnVmX2VuZCwgVUxPTkdFU1QgKiByKTsK SW5kZXg6IGR3YXJmMmxvYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZHdhcmYybG9jLmMsdgpyZXRyaWV2 aW5nIHJldmlzaW9uIDEuNjcKZGlmZiAtdSAtcCAtcjEuNjcgZHdhcmYybG9j LmMKLS0tIGR3YXJmMmxvYy5jCTExIFNlcCAyMDA5IDE4OjM4OjM5IC0wMDAw CTEuNjcKKysrIGR3YXJmMmxvYy5jCTExIFNlcCAyMDA5IDIyOjU2OjA2IC0w MDAwCkBAIC0yNjUsMTQgKzI2NSwxNyBAQCByZWFkX3BpZWNlZF92YWx1ZSAo c3RydWN0IHZhbHVlICp2KQogCSAgICBzdHJ1Y3QgZ2RiYXJjaCAqYXJjaCA9 IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CiAJICAgIGJmZF9ieXRlIHJlZ3Zh bFtNQVhfUkVHSVNURVJfU0laRV07CiAJICAgIGludCBnZGJfcmVnbnVtID0g Z2RiYXJjaF9kd2FyZjJfcmVnX3RvX3JlZ251bSAoYXJjaCwKLQkJCQkJCQkg ICBwLT52LnZhbHVlKTsKKwkJCQkJCQkgICBwLT52LmV4cHIudmFsdWUpOwog CSAgICBnZXRfZnJhbWVfcmVnaXN0ZXIgKGZyYW1lLCBnZGJfcmVnbnVtLCBy ZWd2YWwpOwogCSAgICBtZW1jcHkgKGNvbnRlbnRzICsgb2Zmc2V0LCByZWd2 YWwsIHAtPnNpemUpOwogCSAgfQogCSAgYnJlYWs7CiAKIAljYXNlIERXQVJG X1ZBTFVFX01FTU9SWToKLQkgIHJlYWRfbWVtb3J5IChwLT52LnZhbHVlLCBj b250ZW50cyArIG9mZnNldCwgcC0+c2l6ZSk7CisJICBpZiAocC0+di5leHBy LmluX3N0YWNrX21lbW9yeSkKKwkgICAgcmVhZF9zdGFjayAocC0+di5leHBy LnZhbHVlLCBjb250ZW50cyArIG9mZnNldCwgcC0+c2l6ZSk7CisJICBlbHNl CisJICAgIHJlYWRfbWVtb3J5IChwLT52LmV4cHIudmFsdWUsIGNvbnRlbnRz ICsgb2Zmc2V0LCBwLT5zaXplKTsKIAkgIGJyZWFrOwogCiAJY2FzZSBEV0FS Rl9WQUxVRV9TVEFDSzoKQEAgLTI4Miw3ICsyODUsNyBAQCByZWFkX3BpZWNl ZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQogCSAgICBpbnQgYWRkcl9zaXpl ID0gZ2RiYXJjaF9hZGRyX2JpdCAoYy0+YXJjaCkgLyA4OwogCSAgICBzdG9y ZV91bnNpZ25lZF9pbnRlZ2VyIChieXRlcywgYWRkcl9zaXplLAogCQkJCSAg ICBnZGJhcmNoX2J5dGVfb3JkZXIgKGMtPmFyY2gpLAotCQkJCSAgICBwLT52 LnZhbHVlKTsKKwkJCQkgICAgcC0+di5leHByLnZhbHVlKTsKIAkgICAgbiA9 IHAtPnNpemU7CiAJICAgIGlmIChuID4gYWRkcl9zaXplKQogCSAgICAgIG4g PSBhZGRyX3NpemU7CkBAIC0zMzAsMTIgKzMzMywxMiBAQCB3cml0ZV9waWVj ZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0CiAJY2FzZSBEV0FSRl9W QUxVRV9SRUdJU1RFUjoKIAkgIHsKIAkgICAgc3RydWN0IGdkYmFyY2ggKmFy Y2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwotCSAgICBpbnQgZ2RiX3Jl Z251bSA9IGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdudW0gKGFyY2gsIHAt PnYudmFsdWUpOworCSAgICBpbnQgZ2RiX3JlZ251bSA9IGdkYmFyY2hfZHdh cmYyX3JlZ190b19yZWdudW0gKGFyY2gsIHAtPnYuZXhwci52YWx1ZSk7CiAJ ICAgIHB1dF9mcmFtZV9yZWdpc3RlciAoZnJhbWUsIGdkYl9yZWdudW0sIGNv bnRlbnRzICsgb2Zmc2V0KTsKIAkgIH0KIAkgIGJyZWFrOwogCWNhc2UgRFdB UkZfVkFMVUVfTUVNT1JZOgotCSAgd3JpdGVfbWVtb3J5IChwLT52LnZhbHVl LCBjb250ZW50cyArIG9mZnNldCwgcC0+c2l6ZSk7CisJICB3cml0ZV9tZW1v cnkgKHAtPnYuZXhwci52YWx1ZSwgY29udGVudHMgKyBvZmZzZXQsIHAtPnNp emUpOwogCSAgYnJlYWs7CiAJZGVmYXVsdDoKIAkgIHNldF92YWx1ZV9vcHRp bWl6ZWRfb3V0ICh0bywgMSk7CkBAIC00MzQsMTEgKzQzNywxMyBAQCBkd2Fy ZjJfZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCBzeW1ib2wgCiAJY2FzZSBE V0FSRl9WQUxVRV9NRU1PUlk6CiAJICB7CiAJICAgIENPUkVfQUREUiBhZGRy ZXNzID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKKwkgICAgaW50IGlu X3N0YWNrX21lbW9yeSA9IGR3YXJmX2V4cHJfZmV0Y2hfaW5fc3RhY2tfbWVt b3J5IChjdHgsIDApOwogCiAJICAgIHJldHZhbCA9IGFsbG9jYXRlX3ZhbHVl IChTWU1CT0xfVFlQRSAodmFyKSk7CiAJICAgIFZBTFVFX0xWQUwgKHJldHZh bCkgPSBsdmFsX21lbW9yeTsKIAkgICAgc2V0X3ZhbHVlX2xhenkgKHJldHZh bCwgMSk7Ci0JICAgIHNldF92YWx1ZV9zdGFjayAocmV0dmFsLCAxKTsKKwkg ICAgaWYgKGluX3N0YWNrX21lbW9yeSkKKwkgICAgICBzZXRfdmFsdWVfc3Rh Y2sgKHJldHZhbCwgMSk7CiAJICAgIHNldF92YWx1ZV9hZGRyZXNzIChyZXR2 YWwsIGFkZHJlc3MpOwogCSAgfQogCSAgYnJlYWs7CkBAIC00ODUsMTAgKzQ5 MCw2IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJv bCAKIAogICByZXR1cm4gcmV0dmFsOwogfQotCi0KLQotCiAMCiAvKiBIZWxw ZXIgZnVuY3Rpb25zIGFuZCBiYXRvbiBmb3IgZHdhcmYyX2xvY19kZXNjX25l ZWRzX2ZyYW1lLiAgKi8KIAo= --000e0cd358d21865800473559b44--