X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gas%2Fhash.h;h=0c85c05193bc4174c78a928b7af32ecda48f67f7;hb=aa989b27d0bad451455416953c0e5026e229863a;hp=df59d9fad21dc237e0ee9b771031227e87bbb305;hpb=ed288bb597072176e84fc8279707a3f2f475779b;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/hash.h b/gas/hash.h index df59d9fad2..0c85c05193 100644 --- a/gas/hash.h +++ b/gas/hash.h @@ -1,11 +1,11 @@ /* hash.h -- header file for gas hash table routines - Copyright (C) 1987, 92, 93, 95, 1999 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. GAS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GAS is distributed in the hope that it will be useful, @@ -15,64 +15,74 @@ You should have received a copy of the GNU General Public License along with GAS; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA + 02110-1301, USA. */ #ifndef HASH_H #define HASH_H struct hash_control; +/* Set the size of the hash table used. */ + +void set_gas_hash_table_size (unsigned long); + /* Create a hash table. This return a control block. */ -extern struct hash_control *hash_new PARAMS ((void)); +extern struct hash_control *hash_new (void); +extern struct hash_control *hash_new_sized (unsigned long); /* Delete a hash table, freeing all allocated memory. */ -extern void hash_die PARAMS ((struct hash_control *)); +extern void hash_die (struct hash_control *); /* Insert an entry into a hash table. This returns NULL on success. On error, it returns a printable string indicating the error. It is considered to be an error if the entry already exists in the hash table. */ -extern const char *hash_insert PARAMS ((struct hash_control *, - const char *key, PTR value)); +extern const char *hash_insert (struct hash_control *, + const char *key, void *value); /* Insert or replace an entry in a hash table. This returns NULL on success. On error, it returns a printable string indicating the error. If an entry already exists, its value is replaced. */ -extern const char *hash_jam PARAMS ((struct hash_control *, - const char *key, PTR value)); +extern const char *hash_jam (struct hash_control *, + const char *key, void *value); /* Replace an existing entry in a hash table. This returns the old value stored for the entry. If the entry is not found in the hash table, this does nothing and returns NULL. */ -extern PTR hash_replace PARAMS ((struct hash_control *, const char *key, - PTR value)); +extern void *hash_replace (struct hash_control *, const char *key, + void *value); /* Find an entry in a hash table, returning its value. Returns NULL if the entry is not found. */ -extern PTR hash_find PARAMS ((struct hash_control *, const char *key)); +extern void *hash_find (struct hash_control *, const char *key); + +/* As hash_find, but KEY is of length LEN and is not guaranteed to be + NUL-terminated. */ + +extern void *hash_find_n (struct hash_control *, const char *key, size_t len); /* Delete an entry from a hash table. This returns the value stored for that entry, or NULL if there is no such entry. */ -extern PTR hash_delete PARAMS ((struct hash_control *, const char *key)); +extern void *hash_delete (struct hash_control *, const char *key, int); /* Traverse a hash table. Call the function on every entry in the hash table. */ -extern void hash_traverse PARAMS ((struct hash_control *, - void (*pfn) (const char *key, PTR value))); +extern void hash_traverse (struct hash_control *, + void (*pfn) (const char *key, void *value)); /* Print hash table statistics on the specified file. NAME is the name of the hash table, used for printing a header. */ -extern void hash_print_statistics PARAMS ((FILE *, const char *name, - struct hash_control *)); +extern void hash_print_statistics (FILE *, const char *name, + struct hash_control *); #endif /* HASH_H */