From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KmnL6-0006UD-Tr for qemu-devel@nongnu.org; Mon, 06 Oct 2008 06:29:20 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KmnL5-0006Tw-AK for qemu-devel@nongnu.org; Mon, 06 Oct 2008 06:29:20 -0400 Received: from [199.232.76.173] (port=55860 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KmnL5-0006Tt-5u for qemu-devel@nongnu.org; Mon, 06 Oct 2008 06:29:19 -0400 Received: from rv-out-0708.google.com ([209.85.198.247]:6736) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KmnL3-0005nC-3e for qemu-devel@nongnu.org; Mon, 06 Oct 2008 06:29:17 -0400 Received: by rv-out-0708.google.com with SMTP id f25so2457747rvb.22 for ; Mon, 06 Oct 2008 03:29:15 -0700 (PDT) Message-ID: <761ea48b0810060329l5d05315euea009eb97d22799b@mail.gmail.com> Date: Mon, 6 Oct 2008 12:29:10 +0200 From: "Laurent Desnogues" Subject: Hash table based symbol lookup (was: Re: [Qemu-devel] [PATCH] Fix symbol lookup for mips64* targets) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_22056_11381322.1223288950238" Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ------=_Part_22056_11381322.1223288950238 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Fri, Oct 3, 2008 at 7:14 PM, Blue Swirl wrote: >> >> I have a hash-table based implementation somewhere if someone >> wants to take a look. > > That would be interesting, please send. Here you go. Things to note: - HT building could be done by a call to syminfo_ht_build from elfload.c/machload.c - no cleanup code - use of malloc - only slightly tested So basically this is only for review purposes :) Laurent ------=_Part_22056_11381322.1223288950238 Content-Type: text/x-patch; name=disass-ht.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_flyyly060 Content-Disposition: attachment; filename=disass-ht.patch SW5kZXg6IGRpc2FzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZGlzYXMuYwkocmV2aXNpb24gNTQzMCkKKysr IGRpc2FzLmMJKHdvcmtpbmcgY29weSkKQEAgLTMwMCw5ICszMDAsMTExIEBACiAgICAgfQogfQog CisjaWYgMQorLyogc3ltYm9sIGhhc2ggdGFibGUgdG8gc3BlZWQgdXAgbG9va3VwX3N5bWJvbCAq LworI2RlZmluZSBTWU1JTkZPX0hUX1NJWkUgIDMxMjF1CisKK3R5cGVkZWYgc3RydWN0IHN5bWlu Zm9faHRfZW50cnlfcyBzeW1pbmZvX2h0X2VudHJ5X3Q7CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQg c3ltaW5mb19odF9oYXNoKHRhcmdldF91bG9uZyBhZGRyKQoreworICAgIHJldHVybiBhZGRyICUg U1lNSU5GT19IVF9TSVpFOworfQorCitzdHJ1Y3Qgc3ltaW5mb19odF9lbnRyeV9zIHsKKyAgICB0 YXJnZXRfdWxvbmcgICAgICAgIGFkZHI7CisgICAgY29uc3QgY2hhciAgICAgICAgICpzdHJ0YWI7 CisgICAgc3RydWN0IHN5bWluZm8gICAgICpzOworICAgIGNvbnN0IEVsZjMyX1N5bSAgICAqc3lt OworICAgIHN5bWluZm9faHRfZW50cnlfdCAqbmV4dDsKK307CisKK3N0YXRpYyBzeW1pbmZvX2h0 X2VudHJ5X3QgKnN5bWluZm9faHRbU1lNSU5GT19IVF9TSVpFXTsKKworc3RhdGljIGNvbnN0IHN5 bWluZm9faHRfZW50cnlfdCAqc3ltaW5mb19odF9zZWFyY2godGFyZ2V0X3Vsb25nIGFkZHIpCit7 CisgICAgY29uc3Qgc3ltaW5mb19odF9lbnRyeV90ICpzeW1pbmZvX2h0X2VudHJ5OworCisgICAg Zm9yIChzeW1pbmZvX2h0X2VudHJ5ID0gc3ltaW5mb19odFtzeW1pbmZvX2h0X2hhc2goYWRkcild OworICAgICAgICAgc3ltaW5mb19odF9lbnRyeTsKKyAgICAgICAgIHN5bWluZm9faHRfZW50cnkg PSBzeW1pbmZvX2h0X2VudHJ5LT5uZXh0KSB7CisgICAgICAgIGlmIChhZGRyID09IHN5bWluZm9f aHRfZW50cnktPmFkZHIpCisgICAgICAgICAgICByZXR1cm4gc3ltaW5mb19odF9lbnRyeTsKKyAg ICB9CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpzeW1pbmZvX2h0 X2xvb2t1cCh0YXJnZXRfdWxvbmcgYWRkcikKK3sKKyAgICBjb25zdCBzeW1pbmZvX2h0X2VudHJ5 X3QgKnN5bWluZm9faHRfZW50cnk7CisKKyAgICBzeW1pbmZvX2h0X2VudHJ5ID0gc3ltaW5mb19o dF9zZWFyY2goYWRkcik7CisgICAgaWYgKHN5bWluZm9faHRfZW50cnkpCisgICAgICAgIHJldHVy biBzeW1pbmZvX2h0X2VudHJ5LT5zdHJ0YWIgKyBzeW1pbmZvX2h0X2VudHJ5LT5zeW0tPnN0X25h bWU7CisgICAgcmV0dXJuICIiOworfQorCitzdGF0aWMgdm9pZCBzeW1pbmZvX2h0X2J1aWxkKHZv aWQpCit7CisgIHVuc2lnbmVkIGludCBpLCBrZXk7CisgICAgc3RydWN0IHN5bWluZm8gKnM7Cisg ICAgLyogSGFjaywgYmVjYXVzZSB3ZSBrbm93IHRoaXMgaXMgeDg2LiAqLworICAgIEVsZjMyX1N5 bSAqc3ltOworICAgIHRhcmdldF91bG9uZyBhZGRyLCBqOworICAgIGNvbnN0IHN5bWluZm9faHRf ZW50cnlfdCAqc3ltaW5mb19odF9lbnRyeTsKKyAgICBzeW1pbmZvX2h0X2VudHJ5X3QgKm5ld19l bnRyeTsKKworICAgIGZvciAocyA9IHN5bWluZm9zOyBzOyBzID0gcy0+bmV4dCkgeworICAgICAg ICBzeW0gPSBzLT5kaXNhc19zeW10YWI7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzLT5kaXNh c19udW1fc3ltczsgaSsrKSB7CisgICAgICAgICAgICBpZiAoc3ltW2ldLnN0X3NobmR4ID09IFNI Tl9VTkRFRgorICAgICAgICAgICAgICAgIHx8IHN5bVtpXS5zdF9zaG5keCA+PSBTSE5fTE9SRVNF UlZFKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoRUxGX1NU X1RZUEUoc3ltW2ldLnN0X2luZm8pICE9IFNUVF9GVU5DKQorICAgICAgICAgICAgICAgIGNvbnRp bnVlOworCisgICAgICAgICAgICBhZGRyID0gc3ltW2ldLnN0X3ZhbHVlOworI2lmIGRlZmluZWQo VEFSR0VUX0FSTSkgfHwgZGVmaW5lZCAoVEFSR0VUX01JUFMpCisgICAgICAgICAgICAvKiBUaGUg Ym90dG9tIGFkZHJlc3MgYml0IG1hcmtzIGEgVGh1bWIgb3IgTUlQUzE2IHN5bWJvbC4gICovCisg ICAgICAgICAgICBhZGRyICY9IH4odGFyZ2V0X3Vsb25nKTE7CisjZW5kaWYKKyAgICAgICAgICAg IC8qIEVudGVyIFthZGRyLCBhZGRyICsgc3ltW2ldLnN0X3NpemVbIGluIHRoZSBoYXNoIHRhYmxl LiAqLworICAgICAgICAgICAgZm9yIChqID0gYWRkcjsgaiA8IGFkZHIgKyBzeW1baV0uc3Rfc2l6 ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgc3ltaW5mb19odF9lbnRyeSA9IHN5bWluZm9faHRf c2VhcmNoKGopOworICAgICAgICAgICAgICAgIC8qIElmIHRoZSBhZGRyIGlzIGFscmVhZHkgaW4s IGtlZXAgdGhlIGZpcnN0LiAqLworICAgICAgICAgICAgICAgIGlmICghc3ltaW5mb19odF9lbnRy eSkgeworICAgICAgICAgICAgICAgICAgICAvKiBBZGQgdGhlIHN5bWJvbCBhdCB0aGUgZnJvbnQg b2YgdGhlIGxpc3QuICovCisgICAgICAgICAgICAgICAgICAgIGtleSA9IHN5bWluZm9faHRfaGFz aChqKTsKKyAgICAgICAgICAgICAgICAgICAgbmV3X2VudHJ5ID0gbWFsbG9jKHNpemVvZihzeW1p bmZvX2h0X2VudHJ5X3QpKTsKKyAgICAgICAgICAgICAgICAgICAgbmV3X2VudHJ5LT5hZGRyICAg PSBqOworICAgICAgICAgICAgICAgICAgICBuZXdfZW50cnktPnN0cnRhYiA9IHMtPmRpc2FzX3N0 cnRhYjsKKyAgICAgICAgICAgICAgICAgICAgbmV3X2VudHJ5LT5zeW0gICAgPSAmc3ltW2ldOwor ICAgICAgICAgICAgICAgICAgICBuZXdfZW50cnktPm5leHQgICA9IHN5bWluZm9faHRba2V5XTsK KyAgICAgICAgICAgICAgICAgICAgc3ltaW5mb19odFtrZXldID0gbmV3X2VudHJ5OworICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwogLyogTG9v ayB1cCBzeW1ib2wgZm9yIGRlYnVnZ2luZyBwdXJwb3NlLiAgUmV0dXJucyAiIiBpZiB1bmtub3du LiAqLwogY29uc3QgY2hhciAqbG9va3VwX3N5bWJvbCh0YXJnZXRfdWxvbmcgb3JpZ19hZGRyKQog eworICAgIHN0YXRpYyBpbnQgaHRfYnVpbHQgPSAwOworCisgICAgaWYgKCFodF9idWlsdCkgewor ICAgICAgICBodF9idWlsdCA9IDE7CisgICAgICAgIHN5bWluZm9faHRfYnVpbGQoKTsKKyAgICB9 CisgICAgcmV0dXJuIHN5bWluZm9faHRfbG9va3VwKG9yaWdfYWRkcik7Cit9CisKKyNlbHNlCisK Ky8qIExvb2sgdXAgc3ltYm9sIGZvciBkZWJ1Z2dpbmcgcHVycG9zZS4gIFJldHVybnMgIiIgaWYg dW5rbm93bi4gKi8KK2NvbnN0IGNoYXIgKmxvb2t1cF9zeW1ib2wodGFyZ2V0X3Vsb25nIG9yaWdf YWRkcikKK3sKICAgICB1bnNpZ25lZCBpbnQgaTsKICAgICAvKiBIYWNrLCBiZWNhdXNlIHdlIGtu b3cgdGhpcyBpcyB4ODYuICovCiAgICAgRWxmMzJfU3ltICpzeW07CkBAIC0zMzIsNiArNDM0LDgg QEAKICAgICByZXR1cm4gIiI7CiB9CiAKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoQ09ORklHX1VT RVJfT05MWSkKIAogdm9pZCB0ZXJtX3ZwcmludGYoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFw KTsK ------=_Part_22056_11381322.1223288950238--