/* addr-hash.h
*
* COPYRIGHT (c) 1993 by AT&T Bell Laboratories.
*
* Hash tables for mapping addresses to objects.
*/
#ifndef _ADDR_HASH_
#define _ADDR_HASH_
typedef struct addr_tbl addr_tbl_t;
/* Allocate an address hash table.
*/
extern addr_tbl_t *MakeAddrTbl (int ignoreBits, int size);
/* Insert an object into a address hash table.
*/
extern void AddrTblInsert (addr_tbl_t *tbl, Addr_t addr, void *obj);
/* Return the object associated with the given address; return NIL, if not
* found.
*/
extern void *AddrTblLookup (addr_tbl_t *tbl, Addr_t addr);
/* Apply the given function to the elements of the table. The second
* argument to the function is the function's "closure," and the third is
* the associated info.
*/
extern void AddrTblApply (addr_tbl_t *tbl, void *clos, void (*f) (Addr_t, void *, void *));
/* Deallocate the space for an address table; if freeObjs is true, also deallocate
* the objects.
*/
extern void FreeAddrTbl (addr_tbl_t *tbl, bool_t freeObjs);
#endif /* !_ADDR_HASH_ */
syntax highlighted by Code2HTML, v. 0.9.1