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