X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gas%2Fhash.h;h=0c85c05193bc4174c78a928b7af32ecda48f67f7;hb=98f9338a584c5f68595fc97e692e83f700c8da3d;hp=18d66c655cef90afd8b0592a89f5972da1efc325;hpb=4b4da1607aeed19ac399963a3aa12b0417e477ae;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/hash.h b/gas/hash.h index 18d66c655c..0c85c05193 100644 --- a/gas/hash.h +++ b/gas/hash.h @@ -1,12 +1,11 @@ /* hash.h -- header file for gas hash table routines - Copyright 1987, 1992, 1993, 1995, 1999, 2003 - 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, @@ -31,6 +30,7 @@ void set_gas_hash_table_size (unsigned long); /* Create a hash table. This return a control block. */ extern struct hash_control *hash_new (void); +extern struct hash_control *hash_new_sized (unsigned long); /* Delete a hash table, freeing all allocated memory. */ @@ -42,37 +42,42 @@ extern void hash_die (struct hash_control *); hash table. */ extern const char *hash_insert (struct hash_control *, - const char *key, PTR value); + 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 (struct hash_control *, - const char *key, PTR value); + 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 (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 (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 (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 (struct hash_control *, - void (*pfn) (const char *key, PTR value)); + 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. */