diff options
Diffstat (limited to 'sys/qpoe/qpoe.h')
-rw-r--r-- | sys/qpoe/qpoe.h | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/sys/qpoe/qpoe.h b/sys/qpoe/qpoe.h new file mode 100644 index 00000000..41d07059 --- /dev/null +++ b/sys/qpoe/qpoe.h @@ -0,0 +1,115 @@ +# QPOE.H -- QPOE data definitions (private to the package). + +# Size limiting definitions. +define DEF_BLOCKFACTOR 1.0 # default block factor for image matrix +define DEF_BUCKETLEN 1024 # def nevents per bucket +define DEF_FMMAXLFILES 128 # def maxlfile per datafile +define DEF_FMMAXPTPAGES 256 # def maxptpages per datafile +define DEF_FMPAGESIZE 512 # def datafile page size +define DEF_FMCACHESIZE 8 # def buffer cache size +define DEF_STINDEXLEN 100 # def symtab hash index len +define DEF_STSTABLEN 2048 # initial symbol table len +define DEF_STSBUFSIZE 2048 # initial string buf size +define DEF_MAXPUSHBACK 8192 # max pushed back chars (macros) +define DEF_OPTBUFSIZE (512*512*2) # default buffer size for IMIO/QPF/FIO +define MAX_INDIR 20 # max macro indirection +define MAX_REDEF 20 # max entries for a symbol +define MAX_FIELDS 50 # max fields in a user structure +define INC_STRLEN 32 # unit of storage for strings +define LEN_PVAL 64 # max TY_USER struct size (in doubles) +define SZ_QPDFNAME 255 # max size QPOE filename +define SZ_TEXTBUF 2048 # handy text buffer for macro expansion +define SZ_TOKBUF 256 # token buffer size + +# Magic numbers. +define LF_QPOE 1 # QPOE file header and symbol table +define LF_STATICPARS 2 # static (fixed size) params +define QPOE_MAGIC 121120B # QPOE magic code (descriptor type) +define QPOE_VERSION 101 # QPOE interface version number +define QPOE_TITLE "QPOE-V1.2" # title string, for symbol table +define QPOE_EXTN ".qp" # QPOE file extension +define QPOE_MACROEXTN ".qpm" # QPOE macro definitions file extension +define QPWCS "qpwcs" # header parameter for default WCS +define IMMEDIATE 0 # for qp_sizeof +define INSTANCEOF 1 # for qp_sizeof + +# The main QPOE descriptor. +define LEN_QPDES 160 +define QP_MAGIC Memi[$1] # descriptor type code +define QP_VERSION Memi[$1+1] # QPOE version number +define QP_ACTIVE Memi[$1+2] # descriptor fully activated +define QP_FM Memi[$1+3] # datafile handle +define QP_ST Memi[$1+4] # datafile symbol table handle +define QP_QM Memi[$1+5] # global QPOE symbol table handle +define QP_MODE Memi[$1+6] # datafile access mode +define QP_OQP Memi[$1+7] # o_qp, if new copy file +define QP_EXPBLEN Memi[$1+8] # QPEX program buffer length +define QP_EXDBLEN Memi[$1+9] # QPEX data buffer length +define QP_EXMAXFRLLEN Memi[$1+10] # QPEX max FRLUT length +define QP_EXMAXRRLLEN Memi[$1+11] # QPEX max RRLUT length +define QP_EXLMINRANGES Memi[$1+12] # QPEX min ranges before using LUT +define QP_EXLSCALE Memi[$1+13] # QPEX scale nranges to LUT bins +define QP_SZPBBUF Memi[$1+14] # size of pushback buffer for macros +define QP_BUCKETLEN Memi[$1+15] # QPIO event file bucket size +define QP_FMMAXLFILES Memi[$1+16] # FMIO maxlfiles +define QP_FMMAXPTPAGES Memi[$1+17] # FMIO maxptpages +define QP_FMPAGESIZE Memi[$1+18] # FMIO pagesize +define QP_FMCACHESIZE Memi[$1+19] # FMIO buffer cache size +define QP_STINDEXLEN Memi[$1+20] # SYMTAB hash index length +define QP_STSTABLEN Memi[$1+21] # SYMTAB stab len (start) +define QP_STSBUFSIZE Memi[$1+22] # SYMTAB sbuf size (start) +define QP_STOFFSET Memi[$1+23] # lfile offset of stored symbol table +define QP_MODIFIED Memi[$1+24] # QPOE descriptor has been modified +define QP_DEBUG Memi[$1+25] # global debug level (debug messages) +define QP_XBLOCK Memr[P2R($1+26)]# default X blocking factor for QPIO +define QP_YBLOCK Memr[P2R($1+27)]# default Y blocking factor for QPIO +define QP_OPTBUFSIZE Memi[$1+28] # optimum buffer size for IMIO/QPF/FIO +define QP_NODEFFILT Memi[$1+29] # disable use of default filter +define QP_NODEFMASK Memi[$1+30] # disable use of default mask +define QP_DFNAME Memc[P2C($1+31)] # QPOE filename (for messages) + +# Symbol descriptor. +define LEN_SYMBOL 9 +define S_FLAGS Memi[$1] # integer flag word +define S_DTYPE Memi[$1+1] # datatype code +define S_DSYM Memi[$1+2] # offset of domain symbol if TY_USER +define S_NELEM Memi[$1+3] # number of elements of dtype +define S_MAXELEM Memi[$1+4] # allocated length +define S_SZELEM Memi[$1+5] # elsize, chars (primary domains only) +define S_COMMENT Memi[$1+6] # pointer to comment string in sbuf +define S_LFILE Memi[$1+7] # lfile where value is stored +define S_OFFSET Memi[$1+8] # char offset of value in lfile + +# Symbol flags. +define SF_DELETED 0001B # symbol has been deleted +define SF_INHERIT 0002B # inherit in NEW_COPY mode +define SF_MACARGS 0004B # macro symbol has symbolic arguments + +# QPOE special datatypes. +define SPPTYPES "bcsilrdx" # index is SPP TY_xxx type code +define TY_MACRO 15 # datafile local macro define +define TY_OPAQUE 16 # opaque (typeless) binary type +define TY_USER 17 # some user defined type + +# Lexical tokens. +define TOK_IDENTIFIER (-99) +define TOK_NUMBER (-98) +define TOK_STRING (-97) +define TOK_COMMAND (-96) +define TOK_PLUSEQUALS (-95) +define TOK_COLONEQUALS (-94) + +# QPOE header as stored in datafile. +define LEN_QPH 32 +define QPH_MAGIC Memi[$1] +define QPH_VERSION Memi[$1+1] +define QPH_STOFFSET Memi[$1+2] + +# Domain descriptor structure. +define LEN_DDDES 110 +define DD_STRUCTLEN Memi[$1] # structure length, su +define DD_NFIELDS Memi[$1+1] # number of fields in user structure +define DD_XFIELD Memi[$1+2] # field assigned to coordinate "x" +define DD_YFIELD Memi[$1+3] # field assigned to coordinate "y" +define DD_FOFFSET Memi[$1+10+$2-1]# array of field offsets +define DD_FTYPE Memi[$1+60+$2-1]# array of field datatypes |