shrub/include/g/h.h
2014-10-08 19:20:57 -07:00

46 lines
998 B
C

/* include/g/h.h
**
** This file is in the public domain.
*/
/** Functions.
***
*** Needs: delete and merge functions; clock reclamation function.
**/
/* u3_ch_new(): create hashtable.
*/
u3_ch_root*
u3_ch_new(void);
/* u3_ch_put(): insert in hashtable.
**
** `key` is RETAINED; `val` is transferred.
*/
void
u3_ch_put(u3_ch_root* har_u, u3_noun key, u3_noun val);
/* u3_ch_get(): read from hashtable.
**
** `key` is RETAINED.
*/
u3_weak
u3_ch_get(u3_ch_root* har_u, u3_noun key);
/* u3_ch_gut(): read from hashtable, unifying key nouns.
**
** `key` is RETAINED.
*/
u3_weak
u3_ch_gut(u3_ch_root* har_u, u3_noun key);
/* u3_ch_free(): free hashtable.
*/
void
u3_ch_free(u3_ch_root* har_u);
/* u3_ch_mark(): mark hashtable for gc.
*/
void
u3_ch_mark(u3_ch_root* har_u);