xref: /linux/security/selinux/ss/symtab.h (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
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