/* @(#)hashfn.h 20.10 93/06/28 SMI */ /* * hashfn.h -- external declarations */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef hashfn_h #define hashfn_h #include typedef struct he_ HashEntry; struct he_ { HashEntry *he_next; HashEntry *he_prev; caddr_t he_key; caddr_t he_payload; }; typedef struct ht_ HashTable; struct ht_ { int ht_size; /* hash func: int f(caddr_t) */ int (*ht_hash_fn)(); /* compare func: int f(caddr_t, caddr_t) returns 0 for equal */ int (*ht_cmp_fn)(); HashEntry **ht_table; }; #ifndef hashfn_c extern HashTable *hashfn_new_table(); extern void hashfn_dispose_table(); extern caddr_t /* payload pointer */ hashfn_lookup(); extern caddr_t /* payload pointer */ hashfn_install(); extern caddr_t /* payload pointer */ hashfn_delete(); extern caddr_t /* key pointer */ hashfn_first_key(); extern caddr_t /* key pointer */ hashfn_next_key(); #endif /* hashfn_c */ #endif /* hashfn_h */