1#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
2type ENTRY
3type {struct entry}
4element {struct entry} {char*} key
5element {struct entry} {void*} data
6
7type ACTION
8constant FIND
9constant ENTER
10
11type VISIT
12constant preorder
13constant postorder
14constant endorder
15constant leaf
16
17function int hcreate (size_t)
18function void hdestroy (void)
19function {ENTRY*} hsearch (ENTRY, ACTION)
20#ifndef XPG4
21function void insque (void*, void*)
22#endif
23function {void*} lfind (const void*, const void*, size_t*, size_t, int (*)(const void*, const void*))
24function {void*} lsearch (const void*, void*, size_t*, size_t, int (*)(const void*, const void*))
25#ifndef XPG4
26function void remque (void*)
27#endif
28function {void*} tdelete (const void*, void**, int(*)(const void*, const void*))
29function {void*} tfind (const void*, void*const*, int(*)(const void*, const void*))
30function {void*} tsearch (const void*, void**, int(*)(const void*, const void*))
31function void twalk (const void*, void (*) (const void*, VISIT, int))
32
33allow *_t
34#endif
35