~ubuntu-branches/ubuntu/quantal/arp-scan/quantal

« back to all changes in this revision

Viewing changes to hash.h

  • Committer: Bazaar Package Importer
  • Author(s): Tim Brown
  • Date: 2007-03-27 16:56:10 UTC
  • Revision ID: james.westby@ubuntu.com-20070327165610-04vuf9kgtrlawna5
Tags: upstream-1.5
ImportĀ upstreamĀ versionĀ 1.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* hash.h -- header file for gas hash table routines
 
2
   Copyright 1987, 1992, 1993, 1995, 1999 Free Software Foundation, Inc.
 
3
 
 
4
   This file is part of GAS, the GNU Assembler.
 
5
 
 
6
   GAS is free software; you can redistribute it and/or modify
 
7
   it under the terms of the GNU General Public License as published by
 
8
   the Free Software Foundation; either version 2, or (at your option)
 
9
   any later version.
 
10
 
 
11
   GAS is distributed in the hope that it will be useful,
 
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
   GNU General Public License for more details.
 
15
 
 
16
   You should have received a copy of the GNU General Public License
 
17
   along with GAS; see the file COPYING.  If not, write to the Free
 
18
   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
19
   02111-1307, USA.  */
 
20
 
 
21
#ifndef HASH_H
 
22
#define HASH_H
 
23
 
 
24
/* rsh changes start */
 
25
#define PTR     void *
 
26
/* rsh changes end */
 
27
 
 
28
struct hash_control;
 
29
 
 
30
/* Create a hash table.  This return a control block.  */
 
31
 
 
32
extern struct hash_control *hash_new (void);
 
33
 
 
34
/* Delete a hash table, freeing all allocated memory.  */
 
35
 
 
36
extern void hash_die (struct hash_control *);
 
37
 
 
38
/* Insert an entry into a hash table.  This returns NULL on success.
 
39
   On error, it returns a printable string indicating the error.  It
 
40
   is considered to be an error if the entry already exists in the
 
41
   hash table.  */
 
42
 
 
43
extern const char *hash_insert (struct hash_control *,
 
44
                                const char *key, PTR value);
 
45
 
 
46
/* Insert or replace an entry in a hash table.  This returns NULL on
 
47
   success.  On error, it returns a printable string indicating the
 
48
   error.  If an entry already exists, its value is replaced.  */
 
49
 
 
50
extern const char *hash_jam (struct hash_control *,
 
51
                             const char *key, PTR value);
 
52
 
 
53
/* Replace an existing entry in a hash table.  This returns the old
 
54
   value stored for the entry.  If the entry is not found in the hash
 
55
   table, this does nothing and returns NULL.  */
 
56
 
 
57
extern PTR hash_replace (struct hash_control *, const char *key,
 
58
                         PTR value);
 
59
 
 
60
/* Find an entry in a hash table, returning its value.  Returns NULL
 
61
   if the entry is not found.  */
 
62
 
 
63
extern PTR hash_find (struct hash_control *, const char *key);
 
64
 
 
65
/* Delete an entry from a hash table.  This returns the value stored
 
66
   for that entry, or NULL if there is no such entry.  */
 
67
 
 
68
extern PTR hash_delete (struct hash_control *, const char *key);
 
69
 
 
70
/* Traverse a hash table.  Call the function on every entry in the
 
71
   hash table.  */
 
72
 
 
73
extern void hash_traverse (struct hash_control *,
 
74
                           void (*pfn) (const char *key, PTR value));
 
75
 
 
76
/* Print hash table statistics on the specified file.  NAME is the
 
77
   name of the hash table, used for printing a header.  */
 
78
 
 
79
extern void hash_print_statistics (FILE *, const char *name,
 
80
                                   struct hash_control *);
 
81
 
 
82
#endif /* HASH_H */