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 11 #ifndef _SS_SYMTAB_H_ 12 #define _SS_SYMTAB_H_ 13 14 #include "hashtab.h" 15 16 struct symtab { 17 struct hashtab table; /* hash table (keyed on a string) */ 18 u32 nprim; /* number of primary names in table */ 19 }; 20 21 int symtab_init(struct symtab *s, u32 size); 22 23 int symtab_insert(struct symtab *s, char *name, void *datum); 24 void *symtab_search(struct symtab *s, const char *name); 25 26 #endif /* _SS_SYMTAB_H_ */ 27