arc/gas: default mach is arc700, initialised in md_begin
[deliverable/binutils-gdb.git] / gas / hash.h
index 4556f10a7993b976029bbc9290482d843a04c94f..54f70d12acdf8cedc8e1e472836d417f9d8e6bc1 100644 (file)
@@ -1,12 +1,11 @@
 /* hash.h -- header file for gas hash table routines
 /* hash.h -- header file for gas hash table routines
-   Copyright 1987, 1992, 1993, 1995, 1999, 2003
-   Free Software Foundation, Inc.
+   Copyright (C) 1987-2016 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
 
    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,
    any later version.
 
    GAS is distributed in the hope that it will be useful,
@@ -16,8 +15,8 @@
 
    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
 
    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
 
 #ifndef HASH_H
 #define HASH_H
@@ -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);
 /* 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.  */
 
 
 /* Delete a hash table, freeing all allocated memory.  */
 
@@ -42,25 +42,42 @@ extern void hash_die (struct hash_control *);
    hash table.  */
 
 extern const char *hash_insert (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 *,
 
 /* 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 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.  */
 
 
 /* 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 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 *,
 
 /* 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.  */
 
 /* Print hash table statistics on the specified file.  NAME is the
    name of the hash table, used for printing a header.  */
This page took 0.02387 seconds and 4 git commands to generate.