aboutsummaryrefslogtreecommitdiff
path: root/sys/symtab/symtab.h
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /sys/symtab/symtab.h
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'sys/symtab/symtab.h')
-rw-r--r--sys/symtab/symtab.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/sys/symtab/symtab.h b/sys/symtab/symtab.h
new file mode 100644
index 00000000..25f30ace
--- /dev/null
+++ b/sys/symtab/symtab.h
@@ -0,0 +1,54 @@
+# SYMTAB definitions.
+
+define MAX_HASHCHARS 18 # max characters used in hash function
+define SZ_ASCII 128 # max possible character values
+define INC_START 0.50 # used in overflow algorithm
+define INC_GROW 2 # growing factor for increment
+define MAX_INCREMENT 32768 # max sbuf or stab increment
+define MAX_SZKEY 256 # arbitrarily large number
+
+# Symbol table descriptor.
+
+define LEN_SYMTAB 256
+define MAGIC 0123124B
+
+define ST_MAGIC Memi[$1] # for error checking
+define ST_NAME Memi[$1+1] # optional name for symbol table
+define ST_LASTSYMBOL Memi[$1+2] # last element entered
+define ST_NSYMBOLS Memi[$1+3] # number of symbols in table
+ # (extra space)
+define ST_INDEX Memi[$1+5] # pointer to buffer of thread indices
+define ST_INDEXLEN Memi[$1+6] # length of index
+ # (extra space)
+define ST_SBUFP Memi[$1+10] # string buffer
+define ST_SBUFLEN Memi[$1+11] # current size of string buffer
+define ST_SBUFOP Memi[$1+12] # next location in string buffer
+define ST_SBUFINC Memi[$1+13] # increment if overflow occurs
+define ST_SBUFNGROW Memi[$1+14] # number of reallocs of sbuf
+ # (extra space)
+define ST_STABP Memi[$1+20] # symbol table
+define ST_STABLEN Memi[$1+21] # symbol table length
+define ST_STABOP Memi[$1+22] # next location in symbol table
+define ST_STABINC Memi[$1+23] # increment if overflow occurs
+define ST_STABNGROW Memi[$1+24] # number of reallocs of stab
+ # (extra space)
+define ST_ASCII Memi[($1+30)+$2]
+
+# Symstruct. STAB contains an array of these, each of which is linked both
+# on a thread and on the global lifo list.
+
+define LEN_SYMSTRUCT 4
+
+define E_NEXTHASH Memi[$1] # next element on thread
+define E_NEXTGLOB Memi[$1+1] # next element on global list
+define E_THREAD Memi[$1+2] # index of thread in INDEX array
+define E_KEY Memi[$1+3] # index of key name
+
+define E_USERFIELDS ($1+LEN_SYMSTRUCT)
+define E_BASE ($1-LEN_SYMSTRUCT)
+
+# Magic marker structure (for mark/free).
+
+define LEN_MARKER 2
+define M_SBUFOP Memi[$1] # saved string buffer offset
+define M_NSYMBOLS Memi[$1+1] # nsymbols in table below marker