diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2000-06-15 20:47:02 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2000-06-15 20:47:02 +0000 |
commit | b8cdcddf8c919b8d2f845c09c0c881f495591d0b (patch) | |
tree | d80e6131281011ada6d64abd5085d9f5a43d18bf /include/hashtab.h | |
parent | cbfbd72afec36220d9b42f450b9154f6751869e5 (diff) | |
download | binutils-gdb-b8cdcddf8c919b8d2f845c09c0c881f495591d0b.tar.gz |
2000-06-15 H.J. Lu <hjl@gnu.org>
* sort.h: New file. Impored from gcc.
* hashtab.h: Updated from from gcc.
2000-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* demangle.h (demangling_styles): Remove trailing comma in enum.
* dyn-string.h (dyn_string_append_char): Change parameter from
char to int.
2000-06-04 Alex Samuel <samuel@codesourcery.com>
* dyn-string.h: Move here from gcc/dyn-string.h. Add new functions.
* demangle.h (DMGL_GNU_NEW_ABI): New macro.
(DMGL_STYLE_MASK): Or in DMGL_GNU_NEW_ABI.
(current_demangling_style): Add gnu_new_abi_demangling.
(GNU_NEW_ABI_DEMANGLING_STYLE_STRING): New macro.
(GNU_NEW_ABI_DEMANGLING): Likewise.
(cplus_demangle_new_abi): New declaration.
Diffstat (limited to 'include/hashtab.h')
-rw-r--r-- | include/hashtab.h | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/include/hashtab.h b/include/hashtab.h index 5fe239391ff..12f830ca5ec 100644 --- a/include/hashtab.h +++ b/include/hashtab.h @@ -1,5 +1,5 @@ /* An expandable hash tables datatype. - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2000 Free Software Foundation, Inc. Contributed by Vladimir Makarov (vmakarov@cygnus.com). This program is free software; you can redistribute it and/or modify @@ -38,10 +38,13 @@ extern "C" { #include <ansidecl.h> +/* The type for a hash code. */ +typedef unsigned int hashval_t; + /* Callback function pointer types. */ /* Calculate hash of a table entry. */ -typedef unsigned int (*htab_hash) PARAMS ((const void *)); +typedef hashval_t (*htab_hash) PARAMS ((const void *)); /* Compare a table entry with a possible entry. The entry already in the table always comes first, so the second element can be of a @@ -99,6 +102,9 @@ struct htab typedef struct htab *htab_t; +/* An enum saying whether we insert into the hash table or not. */ +enum insert_option {NO_INSERT, INSERT}; + /* The prototypes of the package functions. */ extern htab_t htab_create PARAMS ((size_t, htab_hash, @@ -107,11 +113,13 @@ extern void htab_delete PARAMS ((htab_t)); extern void htab_empty PARAMS ((htab_t)); extern void *htab_find PARAMS ((htab_t, const void *)); -extern void **htab_find_slot PARAMS ((htab_t, const void *, int)); -extern void *htab_find_with_hash PARAMS ((htab_t, const void *, - unsigned int)); -extern void **htab_find_slot_with_hash PARAMS ((htab_t, const void *, - unsigned int, int)); +extern void **htab_find_slot PARAMS ((htab_t, const void *, + enum insert_option)); +extern void *htab_find_with_hash PARAMS ((htab_t, const void *, + hashval_t)); +extern void **htab_find_slot_with_hash PARAMS ((htab_t, const void *, + hashval_t, + enum insert_option)); extern void htab_clear_slot PARAMS ((htab_t, void **)); extern void htab_remove_elt PARAMS ((htab_t, void *)); @@ -121,6 +129,12 @@ extern size_t htab_size PARAMS ((htab_t)); extern size_t htab_elements PARAMS ((htab_t)); extern double htab_collisions PARAMS ((htab_t)); +/* A hash function for pointers. */ +extern htab_hash htab_hash_pointer; + +/* An equality function for pointers. */ +extern htab_eq htab_eq_pointer; + #ifdef __cplusplus } #endif /* __cplusplus */ |