|  | /* Copyright (C) 1995-2016 Free Software Foundation, Inc. | 
|  | This file is part of the GNU C Library. | 
|  | Contributed by Ulrich Drepper <drepper@gnu.org>, 1995. | 
|  |  | 
|  | This program 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; version 2 of the License, or | 
|  | (at your option) any later version. | 
|  |  | 
|  | This program is distributed in the hope that it will be useful, | 
|  | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | GNU General Public License for more details. | 
|  |  | 
|  | You should have received a copy of the GNU General Public License | 
|  | along with this program; if not, see <http://www.gnu.org/licenses/>.  */ | 
|  |  | 
|  | #ifndef _SIMPLE_HASH_H | 
|  | #define _SIMPLE_HASH_H | 
|  |  | 
|  | #include <inttypes.h> | 
|  | #include <obstack.h> | 
|  | #include <stdint.h> | 
|  |  | 
|  | typedef struct hash_table | 
|  | { | 
|  | unsigned long int size; | 
|  | unsigned long int filled; | 
|  | void *first; | 
|  | void *table; | 
|  | struct obstack mem_pool; | 
|  | } | 
|  | hash_table; | 
|  |  | 
|  |  | 
|  | extern int init_hash (hash_table *htab, unsigned long int init_size) __THROW; | 
|  | extern int delete_hash (hash_table *htab) __THROW; | 
|  | extern int insert_entry (hash_table *htab, const void *key, size_t keylen, | 
|  | void *data) __THROW; | 
|  | extern int find_entry (const hash_table *htab, const void *key, size_t keylen, | 
|  | void **result) __THROW; | 
|  | extern int set_entry (hash_table *htab, const void *key, size_t keylen, | 
|  | void *newval) __THROW; | 
|  |  | 
|  | extern int iterate_table (const hash_table *htab, void **ptr, | 
|  | const void **key, size_t *keylen, void **data) | 
|  | __THROW; | 
|  |  | 
|  | extern uint32_t compute_hashval (const void *key, size_t keylen) | 
|  | __THROW; | 
|  | extern unsigned long int next_prime (unsigned long int seed) __THROW; | 
|  |  | 
|  | #endif /* simple-hash.h */ |