blob: 41d07059360bb5fbfea2a77b098a311541875b1c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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
|