OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [gas/] [hash.h] - Diff between revs 156 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 156 Rev 816
/* 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, 2007
   Copyright 1987, 1992, 1993, 1995, 1999, 2003, 2007
   Free Software Foundation, Inc.
   Free Software Foundation, Inc.
 
 
   This file is part of GAS, the GNU Assembler.
   This file is part of GAS, the GNU Assembler.
 
 
   GAS is free software; you can redistribute it and/or modify
   GAS is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3, or (at your option)
   the Free Software Foundation; either version 3, or (at your option)
   any later version.
   any later version.
 
 
   GAS is distributed in the hope that it will be useful,
   GAS is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   GNU General Public License for more details.
 
 
   You should have received a copy of the GNU General Public License
   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
   along with GAS; see the file COPYING.  If not, write to the Free
   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
   02110-1301, USA.  */
   02110-1301, USA.  */
 
 
#ifndef HASH_H
#ifndef HASH_H
#define HASH_H
#define HASH_H
 
 
struct hash_control;
struct hash_control;
 
 
/* Set the size of the hash table used.  */
/* Set the size of the hash table used.  */
 
 
void set_gas_hash_table_size (unsigned long);
void set_gas_hash_table_size (unsigned long);
 
 
/* Create a hash table.  This return a control block.  */
/* Create a hash table.  This return a control block.  */
 
 
extern struct hash_control *hash_new (void);
extern struct hash_control *hash_new (void);
 
 
/* Delete a hash table, freeing all allocated memory.  */
/* Delete a hash table, freeing all allocated memory.  */
 
 
extern void hash_die (struct hash_control *);
extern void hash_die (struct hash_control *);
 
 
/* Insert an entry into a hash table.  This returns NULL on success.
/* Insert an entry into a hash table.  This returns NULL on success.
   On error, it returns a printable string indicating the error.  It
   On error, it returns a printable string indicating the error.  It
   is considered to be an error if the entry already exists in the
   is considered to be an error if the entry already exists in the
   hash table.  */
   hash table.  */
 
 
extern const char *hash_insert (struct hash_control *,
extern const char *hash_insert (struct hash_control *,
                                const char *key, PTR value);
                                const char *key, PTR value);
 
 
/* Insert or replace an entry in a hash table.  This returns NULL on
/* Insert or replace an entry in a hash table.  This returns NULL on
   success.  On error, it returns a printable string indicating the
   success.  On error, it returns a printable string indicating the
   error.  If an entry already exists, its value is replaced.  */
   error.  If an entry already exists, its value is replaced.  */
 
 
extern const char *hash_jam (struct hash_control *,
extern const char *hash_jam (struct hash_control *,
                             const char *key, PTR value);
                             const char *key, PTR value);
 
 
/* Replace an existing entry in a hash table.  This returns the old
/* 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
   value stored for the entry.  If the entry is not found in the hash
   table, this does nothing and returns NULL.  */
   table, this does nothing and returns NULL.  */
 
 
extern PTR hash_replace (struct hash_control *, const char *key,
extern PTR hash_replace (struct hash_control *, const char *key,
                         PTR value);
                         PTR value);
 
 
/* Find an entry in a hash table, returning its value.  Returns NULL
/* Find an entry in a hash table, returning its value.  Returns NULL
   if the entry is not found.  */
   if the entry is not found.  */
 
 
extern PTR hash_find (struct hash_control *, const char *key);
extern PTR hash_find (struct hash_control *, const char *key);
 
 
/* As hash_find, but KEY is of length LEN and is not guaranteed to be
/* As hash_find, but KEY is of length LEN and is not guaranteed to be
   NUL-terminated.  */
   NUL-terminated.  */
 
 
extern PTR hash_find_n (struct hash_control *, const char *key, size_t len);
extern PTR hash_find_n (struct hash_control *, const char *key, size_t len);
 
 
/* Delete an entry from a hash table.  This returns the value stored
/* Delete an entry from a hash table.  This returns the value stored
   for that entry, or NULL if there is no such entry.  */
   for that entry, or NULL if there is no such entry.  */
 
 
extern PTR hash_delete (struct hash_control *, const char *key);
extern PTR hash_delete (struct hash_control *, const char *key);
 
 
/* Traverse a hash table.  Call the function on every entry in the
/* Traverse a hash table.  Call the function on every entry in the
   hash table.  */
   hash table.  */
 
 
extern void hash_traverse (struct hash_control *,
extern void hash_traverse (struct hash_control *,
                           void (*pfn) (const char *key, PTR value));
                           void (*pfn) (const char *key, PTR value));
 
 
/* Print hash table statistics on the specified file.  NAME is the
/* Print hash table statistics on the specified file.  NAME is the
   name of the hash table, used for printing a header.  */
   name of the hash table, used for printing a header.  */
 
 
extern void hash_print_statistics (FILE *, const char *name,
extern void hash_print_statistics (FILE *, const char *name,
                                   struct hash_control *);
                                   struct hash_control *);
 
 
#endif /* HASH_H */
#endif /* HASH_H */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.