1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * A symbol table (symtab) maintains associations between symbol 4 * strings and datum values. The type of the datum values 5 * is arbitrary. The symbol table type is implemented 6 * using the hash table type (hashtab). 7 * 8 * Author : Stephen Smalley, <stephen.smalley.work@gmail.com> 9 */ 10 #ifndef _SS_SYMTAB_H_ 11 #define _SS_SYMTAB_H_ 12 13 #include "hashtab.h" 14 15 struct symtab { 16 struct hashtab table; /* hash table (keyed on a string) */ 17 u32 nprim; /* number of primary names in table */ 18 }; 19 20 int symtab_init(struct symtab *s, u32 size); 21 22 int symtab_insert(struct symtab *s, char *name, void *datum); 23 void *symtab_search(struct symtab *s, const char *name); 24 25 #endif /* _SS_SYMTAB_H_ */ 26 27 28