This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb/752: DWARF multiple comp unit header support - Revision - Part 1


>Number:         752
>Category:       gdb
>Synopsis:       DWARF multiple comp unit header support - Revision - Part 1
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Sep 27 15:28:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     ac131313@redhat.com
>Release:        unknown-1.0
>Organization:
>Environment:

>Description:
Petr Sorfa writes:

Hi,

Following Jim's suggestion I have split my original rather large
multiple comp unit header patch into several parts. Here is the first
one which moves the DWARF abbreviation table into the comp unit header
structure with several relevant changes. Note that some changes may seem
overkill, but they are place makers for the subsequent parts.

2002-07-12 Petr Sorfa (petrs@caldera.com)

        *  dwarf2read.c (ABBREV_HASH_SIZE): moved definition
           forward in the code to be defined before
           struct comp_unit_head.
           (comp_unit_head): Added several new members,
           some are being used with this patch, some not.
           offset - Offset of the cu_header in .debug_info
           begin_offset - Base offset of cu_header into program
           next - Next comp unit head in program
           dwarf2_abbrevs - abbreviation tables associated with
           comp unit header.
           (dwarf2_abbrevs): Removed from global var space to
           comp unit header struct.
           (dwarf2_read_abbrevs): Now accepts a cu_header
           parameter and to handle the dwarf2_abbrevs inside
           the cu_header.
           (dwarf2_lookup_abbrev): Now accepts a cu_header
           parameter and handling of dwarf2_abbrevs inside
           the cu_header.
           (dwarf2_build_psymtabs_hard): Changed to support
           the new comp unit header.
           (psymtab_to_symtab_1): Changed to support the
           new comp unit header.
           (dwarf2_empty_abbrev_table): Now expects a ptr
           to a dwarf2_abbrev table to clean up.
           (read_partial_die): Now supports the call to the
            new dwarf2_lookup_abbrev.
           (read_full_die): Now supports the call to the
            new dwarf2_lookup_abbrev.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="cu_header_rev_part_1.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="cu_header_rev_part_1.patch"

SW5kZXg6IGR3YXJmMnJlYWQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2Ri
L2R3YXJmMnJlYWQuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42MQpkaWZmIC1jIC1wIC1yMS42
MSBkd2FyZjJyZWFkLmMKKioqIGR3YXJmMnJlYWQuYwkxMiBKdWwgMjAwMiAxNToyMzoxMCAtMDAw
MAkxLjYxCi0tLSBkd2FyZjJyZWFkLmMJMTIgSnVsIDIwMDIgMTY6MzI6MzQgLTAwMDAKKioqKioq
KioqKioqKioqIHVuc2lnbmVkIGludCBkd2FyZl9laF9mcmFtZV9zaXplOwoqKiogMTYyLDE2NyAq
KioqCi0tLSAxNjIsMTcyIC0tLS0KICAKICAvKiBsb2NhbCBkYXRhIHR5cGVzICovCiAgCisgLyog
V2UgaG9sZCBzZXZlcmFsIGFiYnJldmlhdGlvbiB0YWJsZXMgYXQgdGhlIHNhbWUgdGltZSBpbiBt
ZW1vcnkgKi8KKyAjaWZuZGVmIEFCQlJFVl9IQVNIX1NJWkUKKyAjZGVmaW5lIEFCQlJFVl9IQVNI
X1NJWkUgMTIxCisgI2VuZGlmCisgCiAgLyogVGhlIGRhdGEgaW4gYSBjb21waWxhdGlvbiB1bml0
IGhlYWRlciwgYWZ0ZXIgdGFyZ2V0Mmhvc3QKICAgICB0cmFuc2xhdGlvbiwgbG9va3MgbGlrZSB0
aGlzLiAgKi8KICBzdHJ1Y3QgY29tcF91bml0X2hlYWQKKioqKioqKioqKioqKioqIHN0cnVjdCBj
b21wX3VuaXRfaGVhZAoqKiogMTc0LDE3OSAqKioqCi0tLSAxNzksMTk0IC0tLS0KICAgICAgdW5z
aWduZWQgaW50IG9mZnNldF9zaXplOwkvKiBzaXplIG9mIGZpbGUgb2Zmc2V0czsgZWl0aGVyIDQg
b3IgOCAqLwogICAgICB1bnNpZ25lZCBpbnQgaW5pdGlhbF9sZW5ndGhfc2l6ZTsgLyogc2l6ZSBv
ZiB0aGUgbGVuZ3RoIGZpZWxkOyBlaXRoZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQgb3IgMTIgKi8KKyAKKyAgICAgLyogTmV3IGluZm9ybWF0aW9uIGZvciB0
aGUgY29tcCB1bml0IGhlYWQgc28gYXMgdG8ga2VlcCBhIGxpc3QKKyAgICAgICAgb2YgYXZhaWxh
YmxlIG9uZXMgZm9yIGEgcHJvZ3JhbS4gKi8KKyAgICAgdW5zaWduZWQgaW50IG9mZnNldDsgLyog
T2Zmc2V0IG9mIHRoZSBjdV9oZWFkZXIgaW4gLmRlYnVnX2luZm8gKi8KKyAgICAgY2hhciAqYmFz
ZV9vZmZzZXQ7IC8qIEJhc2Ugb2Zmc2V0IGFmdGVyIGN1X2hlYWRlciBpbnRvIHByb2dyYW0gKi8K
KyAgICAgY2hhciAqYmVnaW5fb2Zmc2V0OyAvKiBCYXNlIG9mZnNldCBvZiBjdV9oZWFkZXIgaW50
byBwcm9ncmFtICovCisgICAgIHN0cnVjdCBjb21wX3VuaXRfaGVhZCAqbmV4dDsgLyogTmV4dCBj
b21wIHVuaXQgaGVhZCBpbiBwcm9ncmFtICovCisgCisgICAgIHN0cnVjdCBhYmJyZXZfaW5mbyAq
ZHdhcmYyX2FiYnJldnNbQUJCUkVWX0hBU0hfU0laRV07IC8qIERXQVJGIGFiYnJldgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
YWJsZSAqLwogICAgfTsKICAKICAvKiBUaGUgbGluZSBudW1iZXIgaW5mb3JtYXRpb24gZm9yIGEg
Y29tcGlsYXRpb24gdW5pdCAoZm91bmQgaW4gdGhlCioqKioqKioqKioqKioqKiBzdHJ1Y3QgZHdh
cmZfYmxvY2sKKioqIDMxMiwzMjggKioqKgogICAgICBjaGFyICpkYXRhOwogICAgfTsKICAKLSAv
KiBXZSBvbmx5IGhvbGQgb25lIGNvbXBpbGF0aW9uIHVuaXQncyBhYmJyZXZzIGluCi0gICAgbWVt
b3J5IGF0IGFueSBvbmUgdGltZS4gICovCi0gI2lmbmRlZiBBQkJSRVZfSEFTSF9TSVpFCi0gI2Rl
ZmluZSBBQkJSRVZfSEFTSF9TSVpFIDEyMQotICNlbmRpZgogICNpZm5kZWYgQVRUUl9BTExPQ19D
SFVOSwogICNkZWZpbmUgQVRUUl9BTExPQ19DSFVOSyA0CiAgI2VuZGlmCiAgCi0gc3RhdGljIHN0
cnVjdCBhYmJyZXZfaW5mbyAqZHdhcmYyX2FiYnJldnNbQUJCUkVWX0hBU0hfU0laRV07Ci0gCiAg
LyogQSBoYXNoIHRhYmxlIG9mIGRpZSBvZmZzZXRzIGZvciBmb2xsb3dpbmcgcmVmZXJlbmNlcy4g
ICovCiAgI2lmbmRlZiBSRUZfSEFTSF9TSVpFCiAgI2RlZmluZSBSRUZfSEFTSF9TSVpFIDEwMjEK
LS0tIDMyNywzMzYgLS0tLQoqKioqKioqKioqKioqKiogc3RhdGljIHZvaWQgcHN5bXRhYl90b19z
eW10YWJfMSAoc3RydWN0IAoqKiogNjgyLDY5MiAqKioqCiAgCiAgY2hhciAqZHdhcmYyX3JlYWRf
c2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKiwgZmlsZV9wdHIsIHVuc2lnbmVkIGludCk7CiAgCiEg
c3RhdGljIHZvaWQgZHdhcmYyX3JlYWRfYWJicmV2cyAoYmZkICosIHVuc2lnbmVkIGludCk7CiAg
CiAgc3RhdGljIHZvaWQgZHdhcmYyX2VtcHR5X2FiYnJldl90YWJsZSAoUFRSKTsKICAKISBzdGF0
aWMgc3RydWN0IGFiYnJldl9pbmZvICpkd2FyZjJfbG9va3VwX2FiYnJldiAodW5zaWduZWQgaW50
KTsKICAKICBzdGF0aWMgY2hhciAqcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGll
X2luZm8gKiwKICAJCQkgICAgICAgYmZkICosIGNoYXIgKiwKLS0tIDY5MCw3MDEgLS0tLQogIAog
IGNoYXIgKmR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICosIGZpbGVfcHRyLCB1
bnNpZ25lZCBpbnQpOwogIAohIHN0YXRpYyB2b2lkIGR3YXJmMl9yZWFkX2FiYnJldnMgKGJmZCAq
YWJmZCwgc3RydWN0IGNvbXBfdW5pdF9oZWFkICpjdV9oZWFkZXIpOwogIAogIHN0YXRpYyB2b2lk
IGR3YXJmMl9lbXB0eV9hYmJyZXZfdGFibGUgKFBUUik7CiAgCiEgc3RhdGljIHN0cnVjdCBhYmJy
ZXZfaW5mbyAqZHdhcmYyX2xvb2t1cF9hYmJyZXYgKHVuc2lnbmVkIGludCwKISAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBjb21wX3VuaXRfaGVh
ZCAqY3VfaGVhZGVyKTsKICAKICBzdGF0aWMgY2hhciAqcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0
IHBhcnRpYWxfZGllX2luZm8gKiwKICAJCQkgICAgICAgYmZkICosIGNoYXIgKiwKKioqKioqKioq
KioqKioqIGR3YXJmMl9idWlsZF9wc3ltdGFic19oYXJkIChzdHJ1Y3Qgb2JqZmkKKioqIDEyMDEs
MTIwOCAqKioqCiAgCSAgcmV0dXJuOwogIAl9CiAgICAgICAgLyogUmVhZCB0aGUgYWJicmV2cyBm
b3IgdGhpcyBjb21waWxhdGlvbiB1bml0IGludG8gYSB0YWJsZSAqLwohICAgICAgIGR3YXJmMl9y
ZWFkX2FiYnJldnMgKGFiZmQsIGN1X2hlYWRlci5hYmJyZXZfb2Zmc2V0KTsKISAgICAgICBtYWtl
X2NsZWFudXAgKGR3YXJmMl9lbXB0eV9hYmJyZXZfdGFibGUsIE5VTEwpOwogIAogICAgICAgIC8q
IFJlYWQgdGhlIGNvbXBpbGF0aW9uIHVuaXQgZGllICovCiAgICAgICAgaW5mb19wdHIgPSByZWFk
X3BhcnRpYWxfZGllICgmY29tcF91bml0X2RpZSwgYWJmZCwgaW5mb19wdHIsCi0tLSAxMjEwLDEy
MjEgLS0tLQogIAkgIHJldHVybjsKICAJfQogICAgICAgIC8qIFJlYWQgdGhlIGFiYnJldnMgZm9y
IHRoaXMgY29tcGlsYXRpb24gdW5pdCBpbnRvIGEgdGFibGUgKi8KISAgICAgICBkd2FyZjJfcmVh
ZF9hYmJyZXZzIChhYmZkLCAmY3VfaGVhZGVyKTsKISAKISAgICAgICBjdV9oZWFkZXIub2Zmc2V0
ID0gYmVnX29mX2NvbXBfdW5pdCAtIGR3YXJmX2luZm9fYnVmZmVyOwohICAgICAgIGN1X2hlYWRl
ci5iYXNlX29mZnNldCA9IGluZm9fcHRyOwohICAgICAgIGN1X2hlYWRlci5iZWdpbl9vZmZzZXQg
PSBiZWdfb2ZfY29tcF91bml0OwohICAgICAgIG1ha2VfY2xlYW51cCAoZHdhcmYyX2VtcHR5X2Fi
YnJldl90YWJsZSwgY3VfaGVhZGVyLmR3YXJmMl9hYmJyZXZzKTsKICAKICAgICAgICAvKiBSZWFk
IHRoZSBjb21waWxhdGlvbiB1bml0IGRpZSAqLwogICAgICAgIGluZm9fcHRyID0gcmVhZF9wYXJ0
aWFsX2RpZSAoJmNvbXBfdW5pdF9kaWUsIGFiZmQsIGluZm9fcHRyLAoqKioqKioqKioqKioqKiog
cHN5bXRhYl90b19zeW10YWJfMSAoc3RydWN0IHBhcnRpYWxfc3ltdAoqKiogMTU0OSwxNTU2ICoq
KioKICAgIGluZm9fcHRyID0gcmVhZF9jb21wX3VuaXRfaGVhZCAoJmN1X2hlYWRlciwgaW5mb19w
dHIsIGFiZmQpOwogIAogICAgLyogUmVhZCB0aGUgYWJicmV2cyBmb3IgdGhpcyBjb21waWxhdGlv
biB1bml0ICAqLwohICAgZHdhcmYyX3JlYWRfYWJicmV2cyAoYWJmZCwgY3VfaGVhZGVyLmFiYnJl
dl9vZmZzZXQpOwohICAgbWFrZV9jbGVhbnVwIChkd2FyZjJfZW1wdHlfYWJicmV2X3RhYmxlLCBO
VUxMKTsKICAKICAgIGRpZXMgPSByZWFkX2NvbXBfdW5pdCAoaW5mb19wdHIsIGFiZmQsICZjdV9o
ZWFkZXIpOwogIAotLS0gMTU2MiwxNTY5IC0tLS0KICAgIGluZm9fcHRyID0gcmVhZF9jb21wX3Vu
aXRfaGVhZCAoJmN1X2hlYWRlciwgaW5mb19wdHIsIGFiZmQpOwogIAogICAgLyogUmVhZCB0aGUg
YWJicmV2cyBmb3IgdGhpcyBjb21waWxhdGlvbiB1bml0ICAqLwohICAgZHdhcmYyX3JlYWRfYWJi
cmV2cyAoYWJmZCwgJmN1X2hlYWRlcik7CiEgICBtYWtlX2NsZWFudXAgKGR3YXJmMl9lbXB0eV9h
YmJyZXZfdGFibGUsIGN1X2hlYWRlci5kd2FyZjJfYWJicmV2cyk7CiAgCiAgICBkaWVzID0gcmVh
ZF9jb21wX3VuaXQgKGluZm9fcHRyLCBhYmZkLCAmY3VfaGVhZGVyKTsKICAKKioqKioqKioqKioq
KioqIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmoKKioqIDMyODcsMzMw
NiAqKioqCiAgICAgaW4gYSBoYXNoIHRhYmxlLiAgKi8KICAKICBzdGF0aWMgdm9pZAohIGR3YXJm
Ml9yZWFkX2FiYnJldnMgKGJmZCAqYWJmZCwgdW5zaWduZWQgaW50IG9mZnNldCkKICB7CiAgICBj
aGFyICphYmJyZXZfcHRyOwogICAgc3RydWN0IGFiYnJldl9pbmZvICpjdXJfYWJicmV2OwogICAg
dW5zaWduZWQgaW50IGFiYnJldl9udW1iZXIsIGJ5dGVzX3JlYWQsIGFiYnJldl9uYW1lOwogICAg
dW5zaWduZWQgaW50IGFiYnJldl9mb3JtLCBoYXNoX251bWJlcjsKICAKISAgIC8qIGVtcHR5IHRo
ZSB0YWJsZSAqLwohICAgZHdhcmYyX2VtcHR5X2FiYnJldl90YWJsZSAoTlVMTCk7CiEgCiEgICBh
YmJyZXZfcHRyID0gZHdhcmZfYWJicmV2X2J1ZmZlciArIG9mZnNldDsKICAgIGFiYnJldl9udW1i
ZXIgPSByZWFkX3Vuc2lnbmVkX2xlYjEyOCAoYWJmZCwgYWJicmV2X3B0ciwgJmJ5dGVzX3JlYWQp
OwogICAgYWJicmV2X3B0ciArPSBieXRlc19yZWFkOwogIAogICAgLyogbG9vcCB1bnRpbCB3ZSBy
ZWFjaCBhbiBhYmJyZXYgbnVtYmVyIG9mIDAgKi8KICAgIHdoaWxlIChhYmJyZXZfbnVtYmVyKQog
ICAgICB7Ci0tLSAzMzAwLDMzMjAgLS0tLQogICAgIGluIGEgaGFzaCB0YWJsZS4gICovCiAgCiAg
c3RhdGljIHZvaWQKISBkd2FyZjJfcmVhZF9hYmJyZXZzIChiZmQgKmFiZmQsIHN0cnVjdCBjb21w
X3VuaXRfaGVhZCAqY3VfaGVhZGVyKQogIHsKICAgIGNoYXIgKmFiYnJldl9wdHI7CiAgICBzdHJ1
Y3QgYWJicmV2X2luZm8gKmN1cl9hYmJyZXY7CiAgICB1bnNpZ25lZCBpbnQgYWJicmV2X251bWJl
ciwgYnl0ZXNfcmVhZCwgYWJicmV2X25hbWU7CiAgICB1bnNpZ25lZCBpbnQgYWJicmV2X2Zvcm0s
IGhhc2hfbnVtYmVyOwogIAohICAgYWJicmV2X3B0ciA9IGR3YXJmX2FiYnJldl9idWZmZXIgKyBj
dV9oZWFkZXItPmFiYnJldl9vZmZzZXQ7CiAgICBhYmJyZXZfbnVtYmVyID0gcmVhZF91bnNpZ25l
ZF9sZWIxMjggKGFiZmQsIGFiYnJldl9wdHIsICZieXRlc19yZWFkKTsKICAgIGFiYnJldl9wdHIg
Kz0gYnl0ZXNfcmVhZDsKICAKKyAgIC8qIEluaXRpYWxpemUgZHdhcmYyIGFiYnJldnMgKi8KKyAg
IG1lbXNldCAoY3VfaGVhZGVyLT5kd2FyZjJfYWJicmV2cywgMCwKKyAgICAgICAgICAgQUJCUkVW
X0hBU0hfU0laRSpzaXplb2YgKHN0cnVjdCBhYmJyZXZfaW5mbyAqKSk7CisgCiAgICAvKiBsb29w
IHVudGlsIHdlIHJlYWNoIGFuIGFiYnJldiBudW1iZXIgb2YgMCAqLwogICAgd2hpbGUgKGFiYnJl
dl9udW1iZXIpCiAgICAgIHsKKioqKioqKioqKioqKioqIGR3YXJmMl9yZWFkX2FiYnJldnMgKGJm
ZCAqYWJmZCwgdW5zaWduZWQKKioqIDMzMzYsMzM0MyAqKioqCiAgCX0KICAKICAgICAgICBoYXNo
X251bWJlciA9IGFiYnJldl9udW1iZXIgJSBBQkJSRVZfSEFTSF9TSVpFOwohICAgICAgIGN1cl9h
YmJyZXYtPm5leHQgPSBkd2FyZjJfYWJicmV2c1toYXNoX251bWJlcl07CiEgICAgICAgZHdhcmYy
X2FiYnJldnNbaGFzaF9udW1iZXJdID0gY3VyX2FiYnJldjsKICAKICAgICAgICAvKiBHZXQgbmV4
dCBhYmJyZXZpYXRpb24uCiAgICAgICAgICAgVW5kZXIgSXJpeDYgdGhlIGFiYnJldmlhdGlvbnMg
Zm9yIGEgY29tcGlsYXRpb24gdW5pdCBhcmUgbm90Ci0tLSAzMzUwLDMzNTcgLS0tLQogIAl9CiAg
CiAgICAgICAgaGFzaF9udW1iZXIgPSBhYmJyZXZfbnVtYmVyICUgQUJCUkVWX0hBU0hfU0laRTsK
ISAgICAgICBjdXJfYWJicmV2LT5uZXh0ID0gY3VfaGVhZGVyLT5kd2FyZjJfYWJicmV2c1toYXNo
X251bWJlcl07CiEgICAgICAgY3VfaGVhZGVyLT5kd2FyZjJfYWJicmV2c1toYXNoX251bWJlcl0g
PSBjdXJfYWJicmV2OwogIAogICAgICAgIC8qIEdldCBuZXh0IGFiYnJldmlhdGlvbi4KICAgICAg
ICAgICBVbmRlciBJcml4NiB0aGUgYWJicmV2aWF0aW9ucyBmb3IgYSBjb21waWxhdGlvbiB1bml0
IGFyZSBub3QKKioqKioqKioqKioqKioqIGR3YXJmMl9yZWFkX2FiYnJldnMgKGJmZCAqYWJmZCwg
dW5zaWduZWQKKioqIDMzNTEsMzM1NyAqKioqCiAgCWJyZWFrOwogICAgICAgIGFiYnJldl9udW1i
ZXIgPSByZWFkX3Vuc2lnbmVkX2xlYjEyOCAoYWJmZCwgYWJicmV2X3B0ciwgJmJ5dGVzX3JlYWQp
OwogICAgICAgIGFiYnJldl9wdHIgKz0gYnl0ZXNfcmVhZDsKISAgICAgICBpZiAoZHdhcmYyX2xv
b2t1cF9hYmJyZXYgKGFiYnJldl9udW1iZXIpICE9IE5VTEwpCiAgCWJyZWFrOwogICAgICB9CiAg
fQotLS0gMzM2NSwzMzcxIC0tLS0KICAJYnJlYWs7CiAgICAgICAgYWJicmV2X251bWJlciA9IHJl
YWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBhYmJyZXZfcHRyLCAmYnl0ZXNfcmVhZCk7CiAgICAg
ICAgYWJicmV2X3B0ciArPSBieXRlc19yZWFkOwohICAgICAgIGlmIChkd2FyZjJfbG9va3VwX2Fi
YnJldiAoYWJicmV2X251bWJlciwgY3VfaGVhZGVyKSAhPSBOVUxMKQogIAlicmVhazsKICAgICAg
fQogIH0KKioqKioqKioqKioqKioqIGR3YXJmMl9yZWFkX2FiYnJldnMgKGJmZCAqYWJmZCwgdW5z
aWduZWQKKioqIDMzNjAsMzM3NCAqKioqCiAgCiAgLyogQVJHU1VTRUQgKi8KICBzdGF0aWMgdm9p
ZAohIGR3YXJmMl9lbXB0eV9hYmJyZXZfdGFibGUgKFBUUiBpZ25vcmUpCiAgewogICAgaW50IGk7
CiEgICBzdHJ1Y3QgYWJicmV2X2luZm8gKmFiYnJldiwgKm5leHQ7CiAgCiAgICBmb3IgKGkgPSAw
OyBpIDwgQUJCUkVWX0hBU0hfU0laRTsgKytpKQogICAgICB7CiAgICAgICAgbmV4dCA9IE5VTEw7
CiEgICAgICAgYWJicmV2ID0gZHdhcmYyX2FiYnJldnNbaV07CiAgICAgICAgd2hpbGUgKGFiYnJl
dikKICAJewogIAkgIG5leHQgPSBhYmJyZXYtPm5leHQ7Ci0tLSAzMzc0LDMzOTAgLS0tLQogIAog
IC8qIEFSR1NVU0VEICovCiAgc3RhdGljIHZvaWQKISBkd2FyZjJfZW1wdHlfYWJicmV2X3RhYmxl
IChQVFIgcHRyX3RvX2FiYnJldnNfdGFibGUpCiAgewogICAgaW50IGk7CiEgICBzdHJ1Y3QgYWJi
cmV2X2luZm8gKmFiYnJldiwgKm5leHQsICoqYWJicmV2czsKISAKISAgIGFiYnJldnMgPSAoc3Ry
dWN0IGFiYnJldl9pbmZvICoqKXB0cl90b19hYmJyZXZzX3RhYmxlOwogIAogICAgZm9yIChpID0g
MDsgaSA8IEFCQlJFVl9IQVNIX1NJWkU7ICsraSkKICAgICAgewogICAgICAgIG5leHQgPSBOVUxM
OwohICAgICAgIGFiYnJldiA9IGFiYnJldnNbaV07CiAgICAgICAgd2hpbGUgKGFiYnJldikKICAJ
ewogIAkgIG5leHQgPSBhYmJyZXYtPm5leHQ7CioqKioqKioqKioqKioqKiBkd2FyZjJfZW1wdHlf
YWJicmV2X3RhYmxlIChQVFIgaWdub3JlKQoqKiogMzM3NiwzMzk1ICoqKioKICAJICB4ZnJlZSAo
YWJicmV2KTsKICAJICBhYmJyZXYgPSBuZXh0OwogIAl9CiEgICAgICAgZHdhcmYyX2FiYnJldnNb
aV0gPSBOVUxMOwogICAgICB9CiAgfQogIAogIC8qIExvb2t1cCBhbiBhYmJyZXZfaW5mbyBzdHJ1
Y3R1cmUgaW4gdGhlIGFiYnJldiBoYXNoIHRhYmxlLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IGFi
YnJldl9pbmZvICoKISBkd2FyZjJfbG9va3VwX2FiYnJldiAodW5zaWduZWQgaW50IG51bWJlcikK
ICB7CiAgICB1bnNpZ25lZCBpbnQgaGFzaF9udW1iZXI7CiAgICBzdHJ1Y3QgYWJicmV2X2luZm8g
KmFiYnJldjsKICAKICAgIGhhc2hfbnVtYmVyID0gbnVtYmVyICUgQUJCUkVWX0hBU0hfU0laRTsK
ISAgIGFiYnJldiA9IGR3YXJmMl9hYmJyZXZzW2hhc2hfbnVtYmVyXTsKICAKICAgIHdoaWxlIChh
YmJyZXYpCiAgICAgIHsKLS0tIDMzOTIsMzQxMSAtLS0tCiAgCSAgeGZyZWUgKGFiYnJldik7CiAg
CSAgYWJicmV2ID0gbmV4dDsKICAJfQohICAgICAgIGFiYnJldnNbaV0gPSBOVUxMOwogICAgICB9
CiAgfQogIAogIC8qIExvb2t1cCBhbiBhYmJyZXZfaW5mbyBzdHJ1Y3R1cmUgaW4gdGhlIGFiYnJl
diBoYXNoIHRhYmxlLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IGFiYnJldl9pbmZvICoKISBkd2Fy
ZjJfbG9va3VwX2FiYnJldiAodW5zaWduZWQgaW50IG51bWJlciwgY29uc3Qgc3RydWN0IGNvbXBf
dW5pdF9oZWFkICpjdV9oZWFkZXIpCiAgewogICAgdW5zaWduZWQgaW50IGhhc2hfbnVtYmVyOwog
ICAgc3RydWN0IGFiYnJldl9pbmZvICphYmJyZXY7CiAgCiAgICBoYXNoX251bWJlciA9IG51bWJl
ciAlIEFCQlJFVl9IQVNIX1NJWkU7CiEgICBhYmJyZXYgPSBjdV9oZWFkZXItPmR3YXJmMl9hYmJy
ZXZzW2hhc2hfbnVtYmVyXTsKICAKICAgIHdoaWxlIChhYmJyZXYpCiAgICAgIHsKKioqKioqKioq
KioqKioqIHJlYWRfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmYKKioqIDM0MjEs
MzQyNyAqKioqCiAgICBpZiAoIWFiYnJldl9udW1iZXIpCiAgICAgIHJldHVybiBpbmZvX3B0cjsK
ICAKISAgIGFiYnJldiA9IGR3YXJmMl9sb29rdXBfYWJicmV2IChhYmJyZXZfbnVtYmVyKTsKICAg
IGlmICghYWJicmV2KQogICAgICB7CiAgICAgICAgZXJyb3IgKCJEd2FyZiBFcnJvcjogQ291bGQg
bm90IGZpbmQgYWJicmV2IG51bWJlciAlZC4iLCBhYmJyZXZfbnVtYmVyKTsKLS0tIDM0MzcsMzQ0
MyAtLS0tCiAgICBpZiAoIWFiYnJldl9udW1iZXIpCiAgICAgIHJldHVybiBpbmZvX3B0cjsKICAK
ISAgIGFiYnJldiA9IGR3YXJmMl9sb29rdXBfYWJicmV2IChhYmJyZXZfbnVtYmVyLCBjdV9oZWFk
ZXIpOwogICAgaWYgKCFhYmJyZXYpCiAgICAgIHsKICAgICAgICBlcnJvciAoIkR3YXJmIEVycm9y
OiBDb3VsZCBub3QgZmluZCBhYmJyZXYgbnVtYmVyICVkLiIsIGFiYnJldl9udW1iZXIpOwoqKioq
KioqKioqKioqKiogcmVhZF9mdWxsX2RpZSAoc3RydWN0IGRpZV9pbmZvICoqZGllcCwgYgoqKiog
MzU1MiwzNTU4ICoqKioKICAgICAgICByZXR1cm4gaW5mb19wdHI7CiAgICAgIH0KICAKISAgIGFi
YnJldiA9IGR3YXJmMl9sb29rdXBfYWJicmV2IChhYmJyZXZfbnVtYmVyKTsKICAgIGlmICghYWJi
cmV2KQogICAgICB7CiAgICAgICAgZXJyb3IgKCJEd2FyZiBFcnJvcjogY291bGQgbm90IGZpbmQg
YWJicmV2IG51bWJlciAlZC4iLCBhYmJyZXZfbnVtYmVyKTsKLS0tIDM1NjgsMzU3NCAtLS0tCiAg
ICAgICAgcmV0dXJuIGluZm9fcHRyOwogICAgICB9CiAgCiEgICBhYmJyZXYgPSBkd2FyZjJfbG9v
a3VwX2FiYnJldiAoYWJicmV2X251bWJlciwgY3VfaGVhZGVyKTsKICAgIGlmICghYWJicmV2KQog
ICAgICB7CiAgICAgICAgZXJyb3IgKCJEd2FyZiBFcnJvcjogY291bGQgbm90IGZpbmQgYWJicmV2
IG51bWJlciAlZC4iLCBhYmJyZXZfbnVtYmVyKTsK


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]