(add_to_readlist): Take locale pointer as extra parameter from which
[kopensolaris-gnu/glibc.git] / locale / programs / simple-hash.h
1 /* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Library General Public License as
7    published by the Free Software Foundation; either version 2 of the
8    License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Library General Public License for more details.
14
15    You should have received a copy of the GNU Library General Public
16    License along with the GNU C Library; see the file COPYING.LIB.  If not,
17    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18    Boston, MA 02111-1307, USA.  */
19
20 #ifndef _SIMPLE_HASH_H
21 #define _SIMPLE_HASH_H
22
23 #include <obstack.h>
24
25 typedef struct hash_table
26 {
27   unsigned long int size;
28   unsigned long int filled;
29   void *first;
30   void *table;
31   struct obstack mem_pool;
32 }
33 hash_table;
34
35
36 extern int init_hash (hash_table *htab, unsigned long int init_size) __THROW;
37 extern int delete_hash (hash_table *htab) __THROW;
38 extern int insert_entry (hash_table *htab, const void *key, size_t keylen,
39                          void *data) __THROW;
40 extern int find_entry (hash_table *htab, const void *key, size_t keylen,
41                        void **result) __THROW;
42 extern int set_entry (hash_table *htab, const void *key, size_t keylen,
43                       void *newval) __THROW;
44
45 extern int iterate_table (hash_table *htab, void **ptr,
46                           const void **key, size_t *keylen, void **data)
47      __THROW;
48
49 extern unsigned long int next_prime (unsigned long int seed) __THROW;
50
51 #endif /* simple-hash.h */