xref: /netbsd-src/external/gpl3/binutils.old/dist/binutils/sysroff.info (revision 75fd0b742a7e4a64301bc6c44e9bc5240c58bb92)
1*75fd0b74Schristos("cs" 0x0
2*75fd0b74Schristos (("size") (1 byte) ("size"))
3*75fd0b74Schristos
4*75fd0b74Schristos (("hd") (1 byte) ("hd"))
5*75fd0b74Schristos (("hs") (1 byte) ("hs"))
6*75fd0b74Schristos (("un") (1 byte) ("un"))
7*75fd0b74Schristos (("us") (1 byte) ("us"))
8*75fd0b74Schristos
9*75fd0b74Schristos (("sc") (1 byte) ("sc"))
10*75fd0b74Schristos (("ss") (1 byte) ("ss"))
11*75fd0b74Schristos (("er") (1 byte) ("er"))
12*75fd0b74Schristos (("ed") (1 byte) ("ed"))
13*75fd0b74Schristos
14*75fd0b74Schristos (("sh") (1 byte) ("sh"))
15*75fd0b74Schristos (("ob") (1 byte) ("ob"))
16*75fd0b74Schristos (("rl") (1 byte) ("rl"))
17*75fd0b74Schristos (("du") (1 byte) ("du"))
18*75fd0b74Schristos
19*75fd0b74Schristos (("dps") (1 byte) ("dps"))
20*75fd0b74Schristos (("dsy") (1 byte) ("dsy"))
21*75fd0b74Schristos (("dty") (1 byte) ("dty"))
22*75fd0b74Schristos (("dln") (1 byte) ("dln"))
23*75fd0b74Schristos
24*75fd0b74Schristos (("dso") (1 byte) ("dso"))
25*75fd0b74Schristos (("dus") (1 byte) ("dus"))
26*75fd0b74Schristos (("dss") (1 byte) ("dss"))
27*75fd0b74Schristos (("dbt") (1 byte) ("dbt"))
28*75fd0b74Schristos
29*75fd0b74Schristos (("dpp") (1 byte) ("dpp"))
30*75fd0b74Schristos (("dfp") (1 byte) ("dfp"))
31*75fd0b74Schristos (("den") (1 byte) ("den"))
32*75fd0b74Schristos (("dds") (1 byte) ("dds"))
33*75fd0b74Schristos
34*75fd0b74Schristos (("dar") (1 byte) ("dar"))
35*75fd0b74Schristos (("dpt") (1 byte) ("dpt"))
36*75fd0b74Schristos (("dul") (1 byte) ("dul"))
37*75fd0b74Schristos (("dse") (1 byte) ("dse"))
38*75fd0b74Schristos
39*75fd0b74Schristos (("dot") (1 byte) ("dot")))
40*75fd0b74Schristos
41*75fd0b74Schristos
42*75fd0b74Schristos("hd" 0x04
43*75fd0b74Schristos (("module type") (4 bits) ("mt")
44*75fd0b74Schristos  (("MTYPE_ABS_LM" 	"0")
45*75fd0b74Schristos   ("MTYPE_REL_LM" 	"1")
46*75fd0b74Schristos   ("MTYPE_OMS_OR_LMS" 	"2")
47*75fd0b74Schristos   ("MTYPE_UNSPEC" 	"0xf")))
48*75fd0b74Schristos (("spare")(4 bits) ("spare1"))
49*75fd0b74Schristos (("creation date")( chars 12 bytes)( "cd"))
50*75fd0b74Schristos (("number of units") (2 bytes) ("nu"))
51*75fd0b74Schristos (("code") (1 byte) ("code"))
52*75fd0b74Schristos (("version") (chars 4 bytes) ("ver"))
53*75fd0b74Schristos (("address update") (1 byte) ("au"))
54*75fd0b74Schristos (("segment identifier") (1 bit) ("si"))
55*75fd0b74Schristos (("address field length") (4 bits) ("afl"))
56*75fd0b74Schristos (("spare")(3 bits) ("spare2"))
57*75fd0b74Schristos (("space size within segment") (1 byte) ("spcsz"))
58*75fd0b74Schristos (("segment size")  	(1 byte) ("segsz"))
59*75fd0b74Schristos (("segment shift") 	(1 byte) ("segsh"))
60*75fd0b74Schristos (("entry point") 	(1 byte) ("ep"))
61*75fd0b74Schristos (cond "ptr->ep"
62*75fd0b74Schristos       (cond "ptr->mt != MTYPE_ABS_LM"
63*75fd0b74Schristos	     (("unit appearance number") (2 bytes) ("uan"))
64*75fd0b74Schristos	     (("section appearance number") (2 bytes) ("sa")))
65*75fd0b74Schristos       (cond "segmented_p"
66*75fd0b74Schristos	     (("segment address") (segsize bytes) ("sad")))
67*75fd0b74Schristos       (("address") (addrsize bytes) ("address")))
68*75fd0b74Schristos (("os name") (chars variable bytes) ("os"))
69*75fd0b74Schristos (("sys name") (chars variable bytes) ("sys"))
70*75fd0b74Schristos (("module name") (chars variable bytes) ("mn"))
71*75fd0b74Schristos (("cpu") (chars variable bytes) ("cpu")))
72*75fd0b74Schristos
73*75fd0b74Schristos
74*75fd0b74Schristos("hs" 0x05
75*75fd0b74Schristos (("neg number") (2 bytes) ("neg")))
76*75fd0b74Schristos
77*75fd0b74Schristos
78*75fd0b74Schristos("un" 0x06
79*75fd0b74Schristos (("format") (2 bits) ("format")
80*75fd0b74Schristos  (("FORMAT_LM" "0")
81*75fd0b74Schristos   ("FORMAT_OM" "1")
82*75fd0b74Schristos   ("FORMAT_OMS_OR_LMS" "2")))
83*75fd0b74Schristos (("spare") (6 bits) ("spare1"))
84*75fd0b74Schristos (("number of sections") (2 bytes) ("nsections"))
85*75fd0b74Schristos (("number of external refs") (2 bytes) ("nextrefs"))
86*75fd0b74Schristos (("number of external defs") (2 bytes) ("nextdefs"))
87*75fd0b74Schristos (("unit name") (chars variable byte) ("name"))
88*75fd0b74Schristos (("tool name") (chars variable byte) ("tool"))
89*75fd0b74Schristos (("creation date") (chars 12 bytes) ("tcd"))
90*75fd0b74Schristos (("linker name") (chars variable byte) ("linker"))
91*75fd0b74Schristos (("creation date") (chars 12 bytes) ("lcd")))
92*75fd0b74Schristos
93*75fd0b74Schristos
94*75fd0b74Schristos("us" 0x07
95*75fd0b74Schristos (("negotiation number") (2 bytes) ("neg")))
96*75fd0b74Schristos
97*75fd0b74Schristos
98*75fd0b74Schristos("sc" 0x08
99*75fd0b74Schristos (("format") (2 bits) ("format"))
100*75fd0b74Schristos (("spare") (6 bits) ("spare"))
101*75fd0b74Schristos (("segment address") (segsize bytes) ("segadd"))
102*75fd0b74Schristos (("address") (addrsize bytes) ("addr"))
103*75fd0b74Schristos (("length") (addrsize bytes) ("length"))
104*75fd0b74Schristos (("alignment") (addrsize bytes) ("align"))
105*75fd0b74Schristos (("contents") (4 bits) ("contents")
106*75fd0b74Schristos  (("CONTENTS_CODE" "0")
107*75fd0b74Schristos   ("CONTENTS_DATA" "1")
108*75fd0b74Schristos   ("CONTENTS_STACK" "2")
109*75fd0b74Schristos   ("CONTENTS_DUMMY" "3")
110*75fd0b74Schristos   ("CONTENTS_SPECIAL" "4")
111*75fd0b74Schristos   ("CONTENTS_NONSPEC" "0xf")))
112*75fd0b74Schristos (("concat") (4 bits) ("concat")
113*75fd0b74Schristos  (("CONCAT_SIMPLE" "0")
114*75fd0b74Schristos   ("CONCAT_SHAREDC" "1")
115*75fd0b74Schristos   ("CONCAT_DUMMY" "2")
116*75fd0b74Schristos   ("CONCAT_GROUP" "3")
117*75fd0b74Schristos   ("CONCAT_SHARED" "4")
118*75fd0b74Schristos   ("CONCAT_PRIVATE" "5")
119*75fd0b74Schristos   ("CONCAT_UNSPEC" "0xf")))
120*75fd0b74Schristos (("read") (2 bits) ("read"))
121*75fd0b74Schristos (("write") (2 bits) ("write"))
122*75fd0b74Schristos (("exec") (2 bits) ("exec"))
123*75fd0b74Schristos (("initialized") (2 bits) ("init"))
124*75fd0b74Schristos (("mode") (2 bits) ("mode"))
125*75fd0b74Schristos (("spare") (6 bits) ("spare1"))
126*75fd0b74Schristos (("name") (chars variable byte) ("name")))
127*75fd0b74Schristos
128*75fd0b74Schristos
129*75fd0b74Schristos("ss" 0x09
130*75fd0b74Schristos (("neg number") (2 bytes) ("neg")))
131*75fd0b74Schristos
132*75fd0b74Schristos
133*75fd0b74Schristos("er" 0x0c
134*75fd0b74Schristos (("symbol type") (2 bits) ("type")
135*75fd0b74Schristos  (("ER_ENTRY" "0")
136*75fd0b74Schristos   ("ER_DATA" "1")
137*75fd0b74Schristos   ("ER_NOTDEF" "2")
138*75fd0b74Schristos   ("ER_NOTSPEC" "3")))
139*75fd0b74Schristos (("spare") (6 bits) ("spare"))
140*75fd0b74Schristos (("symbol name") (chars variable byte) ("name")))
141*75fd0b74Schristos
142*75fd0b74Schristos
143*75fd0b74Schristos("ed" 0x14
144*75fd0b74Schristos (("section appearance number") (2 bytes) ("section"))
145*75fd0b74Schristos (("symbol type") (3 bits) ("type")
146*75fd0b74Schristos  (("ED_TYPE_ENTRY" "0")
147*75fd0b74Schristos   ("ED_TYPE_DATA" "1")
148*75fd0b74Schristos   ("ED_TYPE_CONST" "2")
149*75fd0b74Schristos   ("ED_TYPE_NOTSPEC" "7")))
150*75fd0b74Schristos (("spare") (5 bits) ("spare"))
151*75fd0b74Schristos (cond "ptr->type==ED_TYPE_ENTRY || ptr->type==ED_TYPE_DATA"
152*75fd0b74Schristos       (("symbol address") (addrsize bytes) ("address")))
153*75fd0b74Schristos (cond "ptr->type==ED_TYPE_CONST"
154*75fd0b74Schristos       (("constant value") (addrsize bytes) ("constant")))
155*75fd0b74Schristos (("symbol name") (chars variable byte) ("name")))
156*75fd0b74Schristos
157*75fd0b74Schristos
158*75fd0b74Schristos("sh" 0x1a
159*75fd0b74Schristos (("unit appearance number") (2 bytes) ("unit"))
160*75fd0b74Schristos (("section appearance number") (2 bytes) ("section")))
161*75fd0b74Schristos
162*75fd0b74Schristos
163*75fd0b74Schristos("ob" 0x1c
164*75fd0b74Schristos (("starting address flag") (1 bit) ("saf"))
165*75fd0b74Schristos (("compression flag") (1 bit) ("cpf"))
166*75fd0b74Schristos (("spare") (6 bits) ("spare"))
167*75fd0b74Schristos (cond "ptr->saf"
168*75fd0b74Schristos       ( ("starting address") (addrsize bytes) ("address")))
169*75fd0b74Schristos (cond "ptr->cpf"
170*75fd0b74Schristos       (("comp reps") (addrsize bytes) ("compreps")))
171*75fd0b74Schristos (("data") (barray counted byte) ("data")))
172*75fd0b74Schristos
173*75fd0b74Schristos
174*75fd0b74Schristos("rl" 0x20
175*75fd0b74Schristos (("boundary of relocatable area") (4 bits) ("boundary"))
176*75fd0b74Schristos (("address polarity") (1 bit) ("apol"))
177*75fd0b74Schristos (("segment number") (1 bit) ("segment"))
178*75fd0b74Schristos (("sign of relocation") (1 bit) ("sign"))
179*75fd0b74Schristos (("check range") (1 bit) ("check"))
180*75fd0b74Schristos (("reloc address") (addrsize bytes) ("addr"))
181*75fd0b74Schristos
182*75fd0b74Schristos (("bit loc") (1 byte) ("bitloc"))
183*75fd0b74Schristos (("field length") (1 byte) ("flen"))
184*75fd0b74Schristos (("bcount") (1 byte) ("bcount"))
185*75fd0b74Schristos (("operator") (1 byte) ("op")
186*75fd0b74Schristos  (("OP_RELOC_ADDR" "1")
187*75fd0b74Schristos   ("OP_SEC_REF" "0")
188*75fd0b74Schristos   ("OP_EXT_REF" "2")))
189*75fd0b74Schristos (cond "ptr->op == OP_EXT_REF"
190*75fd0b74Schristos       (("symbol number") (2 bytes) ("symn"))	)
191*75fd0b74Schristos
192*75fd0b74Schristos (cond "ptr->op == OP_SEC_REF"
193*75fd0b74Schristos       (("section number") (2 bytes) ("secn"))
194*75fd0b74Schristos       (("const opcode") (1 byte) ("copcode_is_3"))
195*75fd0b74Schristos       (("addend length") (1 byte) ("alength_is_4"))
196*75fd0b74Schristos       (("addend") (4 byte) ("addend"))
197*75fd0b74Schristos       (("plus opcode") (1 byte) ("aopcode_is_0x20")))
198*75fd0b74Schristos
199*75fd0b74Schristos (cond "ptr->op == OP_RELOC_ADDR"
200*75fd0b74Schristos       (("dunno") (2 bytes) ("dunno")))
201*75fd0b74Schristos
202*75fd0b74Schristos (("end")  (1 byte) ("end")))
203*75fd0b74Schristos
204*75fd0b74Schristos
205*75fd0b74Schristos("du" 0x30
206*75fd0b74Schristos (("format") (2 bits) ("format"))
207*75fd0b74Schristos (("optimized") (1 bit) ("optimized"))
208*75fd0b74Schristos (("stackfrmt") (2 bits) ("stackfrmt"))
209*75fd0b74Schristos (("spare") (3 bits) ("spare"))
210*75fd0b74Schristos (("unit number") (2 bytes) ("unit"))
211*75fd0b74Schristos (("sections") (2 bytes) ("sections"))
212*75fd0b74Schristos (repeat "ptr->sections"
213*75fd0b74Schristos	 (("section appearance number") (2 bytes) ("san"))
214*75fd0b74Schristos	 (("address") (addrsize bytes) ("address"))
215*75fd0b74Schristos	 (("section length") (addrsize bytes) ("length")))
216*75fd0b74Schristos (("tool name") (chars variable byte) ("tool"))
217*75fd0b74Schristos (("creation date") (chars 12 bytes) ("date")))
218*75fd0b74Schristos
219*75fd0b74Schristos
220*75fd0b74Schristos("dsy" 0x34
221*75fd0b74Schristos (("symbol type") (7 bits) ("type")
222*75fd0b74Schristos  (("STYPE_VAR" "0")
223*75fd0b74Schristos   ("STYPE_LAB" "1")
224*75fd0b74Schristos   ("STYPE_PROC" "2")
225*75fd0b74Schristos   ("STYPE_FUNC" "3")
226*75fd0b74Schristos   ("STYPE_TYPE" "4")
227*75fd0b74Schristos   ("STYPE_CONST" "5")
228*75fd0b74Schristos   ("STYPE_ENTRY" "6")
229*75fd0b74Schristos   ("STYPE_MEMBER" "7")
230*75fd0b74Schristos   ("STYPE_ENUM" "8")
231*75fd0b74Schristos   ("STYPE_TAG" "9")
232*75fd0b74Schristos   ("STYPE_PACKAGE" "10")
233*75fd0b74Schristos   ("STYPE_GENERIC" "11")
234*75fd0b74Schristos   ("STYPE_TASK" "12")
235*75fd0b74Schristos   ("STYPE_EXCEPTION" "13")
236*75fd0b74Schristos   ("STYPE_PARAMETER" "14")
237*75fd0b74Schristos   ("STYPE_EQUATE" "15")
238*75fd0b74Schristos   ("STYPE_UNSPEC" "0x7f")))
239*75fd0b74Schristos (("assignment info") (1 bit) ("assign"))
240*75fd0b74Schristos (("symbol id") (2 bytes) ("snumber"))
241*75fd0b74Schristos (("symbol name") (chars variable bytes) ("sname"))
242*75fd0b74Schristos (("nesting level") (2 bytes) ("nesting"))
243*75fd0b74Schristos (cond "ptr->assign"
244*75fd0b74Schristos       (("assignment type") (1 byte)  ("ainfo")
245*75fd0b74Schristos	(("AINFO_REG" "1")
246*75fd0b74Schristos	 ("AINFO_STATIC_EXT_DEF" "2")
247*75fd0b74Schristos	 ("AINFO_STATIC_EXT_REF" "3")
248*75fd0b74Schristos	 ("AINFO_STATIC_INT" "4")
249*75fd0b74Schristos	 ("AINFO_STATIC_COM" "5")
250*75fd0b74Schristos	 ("AINFO_AUTO" "6")
251*75fd0b74Schristos	 ("AINFO_CONST" "7")
252*75fd0b74Schristos	 ("AINFO_UNSPEC" "0xff")))
253*75fd0b74Schristos       (("data length") (addrsize bytes) ("dlength"))
254*75fd0b74Schristos       (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
255*75fd0b74Schristos            || ptr->ainfo == AINFO_STATIC_INT
256*75fd0b74Schristos            || ptr->ainfo == AINFO_STATIC_COM"
257*75fd0b74Schristos	     (("section number")  (2 bytes) ("section")))
258*75fd0b74Schristos       (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
259*75fd0b74Schristos            || ptr->ainfo == AINFO_STATIC_INT
260*75fd0b74Schristos            || ptr->ainfo == AINFO_STATIC_COM
261*75fd0b74Schristos            || ptr->ainfo == AINFO_AUTO"
262*75fd0b74Schristos	     (("address") (addrsize bytes) ("address")))
263*75fd0b74Schristos       (cond "ptr->ainfo == AINFO_REG"
264*75fd0b74Schristos	     (("register name") (chars variable bytes) ("reg")))
265*75fd0b74Schristos       (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
266*75fd0b74Schristos	    || ptr->ainfo == AINFO_STATIC_EXT_REF"
267*75fd0b74Schristos	     (("external name") (chars variable bytes) ("ename")))
268*75fd0b74Schristos       (cond "ptr->ainfo == AINFO_CONST"
269*75fd0b74Schristos	     (("constant") (chars variable bytes) ("constant"))))
270*75fd0b74Schristos (cond "ptr->type == STYPE_MEMBER"
271*75fd0b74Schristos       (("assignment unit") (1 bit) ("bitunit"))
272*75fd0b74Schristos       (("spare") (7 bits) ("spare2"))
273*75fd0b74Schristos       (("field length") (addrsize bytes) ("field_len"))
274*75fd0b74Schristos       (("field offset") (addrsize bytes) ("field_off"))
275*75fd0b74Schristos       (cond "ptr->bitunit"
276*75fd0b74Schristos	     (("bit offset") (addrsize bytes) ("field_bitoff"))))
277*75fd0b74Schristos (cond "ptr->type== STYPE_ENUM"
278*75fd0b74Schristos       (("value length") (1 byte) ("evallen"))
279*75fd0b74Schristos       (("value") (4 bytes) ("evalue")))
280*75fd0b74Schristos (cond "ptr->type == STYPE_CONST"
281*75fd0b74Schristos       (("value") (chars variable bytes) ("cvalue")))
282*75fd0b74Schristos (cond "ptr->type == STYPE_EQUATE"
283*75fd0b74Schristos       (("value length") (1 byte) ("qvallen"))
284*75fd0b74Schristos       (("value") (4 bytes) ("qvalue"))
285*75fd0b74Schristos       (("basic type") (1 byte) ("btype"))
286*75fd0b74Schristos       (("size information") (addrsize bytes) ("sizeinfo"))
287*75fd0b74Schristos       (("sign") (2 bits) ("sign"))
288*75fd0b74Schristos       (("floating point type") (6 bits) ("flt_type")))
289*75fd0b74Schristos (("source file number") (2 bytes) ("sfn"))
290*75fd0b74Schristos (("source line number") (2 bytes) ("sln"))
291*75fd0b74Schristos (("negotiation number") (2 bytes) ("neg"))
292*75fd0b74Schristos (cond "ptr->type == STYPE_TAG"
293*75fd0b74Schristos       (("magic") (1 byte) ("magic"))))
294*75fd0b74Schristos
295*75fd0b74Schristos
296*75fd0b74Schristos
297*75fd0b74Schristos("dul" 0x52
298*75fd0b74Schristos (("max declaration type flag") (1 bit) ("max_variable"))
299*75fd0b74Schristos (("max spare") (7 bits) ("maxspare"))
300*75fd0b74Schristos (cond "ptr->max_variable == 0"
301*75fd0b74Schristos       (("maximum") (addrsize bytes) ("max"))
302*75fd0b74Schristos       (("max mode") (chars variable bytes) ("maxmode")))
303*75fd0b74Schristos
304*75fd0b74Schristos (("min declaration type flag") (1 bit) ("min_variable"))
305*75fd0b74Schristos (("min spare") (7 bits) ("minspare"))
306*75fd0b74Schristos (cond "ptr->min_variable == 0"
307*75fd0b74Schristos       (("minimum") (addrsize bytes) ("min"))
308*75fd0b74Schristos       (("min mode") (chars variable bytes) ("minmode"))))
309*75fd0b74Schristos
310*75fd0b74Schristos
311*75fd0b74Schristos("dty" 0x36
312*75fd0b74Schristos (("end flag") (1 bit) ("end"))
313*75fd0b74Schristos (("spare") (7 bits) ("spare"))
314*75fd0b74Schristos (cond "!ptr->end"
315*75fd0b74Schristos       (("negotiation") (2 bytes) ("neg"))))
316*75fd0b74Schristos
317*75fd0b74Schristos
318*75fd0b74Schristos("dbt" 0x44
319*75fd0b74Schristos (("basic type") (1 byte) ("btype")
320*75fd0b74Schristos  (("BTYPE_VOID" "0")
321*75fd0b74Schristos   ("BTYPE_UNDEF" "1")
322*75fd0b74Schristos   ("BTYPE_CHAR" "2")
323*75fd0b74Schristos   ("BTYPE_INT" "3")
324*75fd0b74Schristos   ("BTYPE_FLOAT" "4")
325*75fd0b74Schristos   ("BTYPE_BIT" "5")
326*75fd0b74Schristos   ("BTYPE_STRING" "6")
327*75fd0b74Schristos   ("BTYPE_DECIMAL" "7")
328*75fd0b74Schristos   ("BTYPE_ENUM" "8")
329*75fd0b74Schristos   ("BTYPE_STRUCT" "9")
330*75fd0b74Schristos   ("BTYPE_TYPE" "10")
331*75fd0b74Schristos   ("BTYPE_TAG" "11")
332*75fd0b74Schristos   ("BTYPE_UNSPEC" "0xff")))
333*75fd0b74Schristos (("size info") (addrsize bytes) ("bitsize"))
334*75fd0b74Schristos (("sign") (2 bits) ("sign")
335*75fd0b74Schristos  (("SIGN_SIGNED" "0")
336*75fd0b74Schristos   ("SIGN_UNSIGNED" "1")
337*75fd0b74Schristos   ("SIGN_UNSPEC" "3")))
338*75fd0b74Schristos (("floating point type") (6 bits) ("fptype")
339*75fd0b74Schristos  (("FPTYPE_SINGLE" "0")
340*75fd0b74Schristos   ("FPTYPE_DOUBLE" "1")
341*75fd0b74Schristos   ("FPTYPE_EXTENDED" "2")
342*75fd0b74Schristos   ("FPTYPE_NOTSPEC" "0x3f")))
343*75fd0b74Schristos (cond "ptr->btype==BTYPE_TAG || ptr->btype == BTYPE_TYPE"
344*75fd0b74Schristos       (("symbol id") (2 bytes) ("sid")))
345*75fd0b74Schristos (("negotiation") (2 bytes) ("neg")))
346*75fd0b74Schristos
347*75fd0b74Schristos("dar" 0x4e
348*75fd0b74Schristos (("element length" ) (addrsize bytes) ("length"))
349*75fd0b74Schristos (("dims") (1 byte) ("dims"))
350*75fd0b74Schristos (repeat "ptr->dims"
351*75fd0b74Schristos	 (("variable flag") (1 bit) ("variable")
352*75fd0b74Schristos	  (("VARIABLE_FIXED" "0")
353*75fd0b74Schristos	   ("VARIABLE_VARIABLE" "1")))
354*75fd0b74Schristos
355*75fd0b74Schristos	 (("subscript type") (1 bit) ("subtype")
356*75fd0b74Schristos	  (("SUB_INTEGER" "0")
357*75fd0b74Schristos	   ("SUB_TYPE"    "1")))
358*75fd0b74Schristos
359*75fd0b74Schristos	 (("spare") (6 bits) ("spare"))
360*75fd0b74Schristos
361*75fd0b74Schristos	 (cond "ptr->subtype[n] == SUB_TYPE"
362*75fd0b74Schristos	       (("sub symbol id") (2 bytes) ("sid")))
363*75fd0b74Schristos
364*75fd0b74Schristos	 (cond "ptr->subtype[n] == SUB_INTEGER"
365*75fd0b74Schristos	       (("max declaration type flag") (1 bit) ("max_variable"))
366*75fd0b74Schristos	       (("max spare") (7 bits) ("maxspare"))
367*75fd0b74Schristos	       ;; FIXME: next field should be conditional on max_variable,
368*75fd0b74Schristos	       (("maximum") (addrsize bytes) ("max"))
369*75fd0b74Schristos
370*75fd0b74Schristos	       (("min declaration type flag") (1 bit) ("min_variable"))
371*75fd0b74Schristos	       (("min spare") (7 bits) ("minspare"))
372*75fd0b74Schristos	       ;; FIXME: next field should be conditional on min_variable
373*75fd0b74Schristos	       (("minimum") (addrsize bytes) ("min"))))
374*75fd0b74Schristos (("negotiation") (2 bytes) ("neg")))
375*75fd0b74Schristos
376*75fd0b74Schristos
377*75fd0b74Schristos("dso" 0x3a
378*75fd0b74Schristos (("function name") (2 bytes) ("sid"))
379*75fd0b74Schristos (("sp update count") (4 bytes) ("spupdates"))
380*75fd0b74Schristos (repeat "ptr->spupdates"
381*75fd0b74Schristos	 (("update address") (addrsize bytes) ("address"))
382*75fd0b74Schristos	 (("offset") (addrsize bytes) ("offset"))))
383*75fd0b74Schristos
384*75fd0b74Schristos("dln" 0x38
385*75fd0b74Schristos (("number of lines") (2 bytes) ("nln"))
386*75fd0b74Schristos (repeat "ptr->nln"
387*75fd0b74Schristos	 (("source file number") (2 bytes) ("sfn"))
388*75fd0b74Schristos	 (("source line number") (2 bytes) ("sln"))
389*75fd0b74Schristos	 (("section number") (2 bytes) ("section"))
390*75fd0b74Schristos	 (("from address") (addrsize bytes) ("from_address"))
391*75fd0b74Schristos	 (("to address") (addrsize bytes) ("to_address"))
392*75fd0b74Schristos	 (("call count") (2 bytes) ("cc"))
393*75fd0b74Schristos	 )
394*75fd0b74Schristos (("neg") (2 bytes) ("neg")))
395*75fd0b74Schristos
396*75fd0b74Schristos("dpp" 0x46
397*75fd0b74Schristos (("start/end") (1 bit) ("end"))
398*75fd0b74Schristos (("spare") (7 bits) ("spare"))
399*75fd0b74Schristos (cond "!ptr->end"
400*75fd0b74Schristos       (("params") (1 byte) ("params"))
401*75fd0b74Schristos       (("neg number") (2 bytes) ("neg"))))
402*75fd0b74Schristos
403*75fd0b74Schristos("den" 0x4a
404*75fd0b74Schristos (("start/end") (1 bit) ("end"))
405*75fd0b74Schristos (("spare") (7 bits) ("spare"))
406*75fd0b74Schristos (cond "!ptr->end"
407*75fd0b74Schristos       (("neg number") (2 bytes) ("neg"))))
408*75fd0b74Schristos
409*75fd0b74Schristos("dfp" 0x48
410*75fd0b74Schristos (("start/end flag") (1 bit) ("end"))
411*75fd0b74Schristos (("spare") (7 bits) ("spare"))
412*75fd0b74Schristos (cond "!ptr->end"
413*75fd0b74Schristos       (("number of parameters") (1 byte) ("nparams"))
414*75fd0b74Schristos       (("neg number") (2 bytes) ("neg"))))
415*75fd0b74Schristos
416*75fd0b74Schristos("dds" 0x4c
417*75fd0b74Schristos (("start/end") (1 bit) ("end"))
418*75fd0b74Schristos (("spare") (7 bits) ("spare"))
419*75fd0b74Schristos (cond "!ptr->end"
420*75fd0b74Schristos       (("neg number") (2 bytes) ("neg"))))
421*75fd0b74Schristos
422*75fd0b74Schristos("dpt" 0x50
423*75fd0b74Schristos (("neg number") (2 bytes) ("neg"))
424*75fd0b74Schristos (("dunno") (1 byte) ("dunno")))
425*75fd0b74Schristos
426*75fd0b74Schristos("dse" 0x54
427*75fd0b74Schristos (("neg number") (2 bytes) ("neg"))
428*75fd0b74Schristos (("dunno") (1 byte) ("dunno")))
429*75fd0b74Schristos
430*75fd0b74Schristos("dot" 0x56
431*75fd0b74Schristos (("unknown") (1 byte) ("unknown")))
432*75fd0b74Schristos; FIXME: unknown field should be repeated symbol number?
433*75fd0b74Schristos
434*75fd0b74Schristos
435*75fd0b74Schristos("dss" 0x42
436*75fd0b74Schristos (("type") (1 byte) ("type"))
437*75fd0b74Schristos (("external/internal") (1 bit) ("internal"))
438*75fd0b74Schristos (("spare") (7 bits) ("spare"))
439*75fd0b74Schristos (cond "!ptr->internal"
440*75fd0b74Schristos       (  ("package name") (chars variable byte) ("package")))
441*75fd0b74Schristos (cond "ptr->internal"
442*75fd0b74Schristos       (("symbol id") (2 bytes) ("id")))
443*75fd0b74Schristos (("record type") (2 bytes) ("record"))
444*75fd0b74Schristos (("rules") (chars variable byte) ("rules"))
445*75fd0b74Schristos (("number of symbols") (2 bytes) ("nsymbols"))
446*75fd0b74Schristos (("unknown" ) (2 bytes) ("fixme")))
447*75fd0b74Schristos
448*75fd0b74Schristos("pss" 0x40
449*75fd0b74Schristos (("negotiation number") (2 bytes) ("efn"))
450*75fd0b74Schristos (("number of source files") (2 bytes) ("ns"))
451*75fd0b74Schristos (repeat "ptr->ns"
452*75fd0b74Schristos	 (("directory reference bit") (1 bit) ("drb"))
453*75fd0b74Schristos	 (("spare") (7 bits) ("spare"))
454*75fd0b74Schristos	 (("completed file name") (chars variable byte) ("fname"))
455*75fd0b74Schristos	 (cond "ptr->drb[n]"
456*75fd0b74Schristos	       (("directory apperance number") (2 bytes) ("dan"))))
457*75fd0b74Schristos
458*75fd0b74Schristos (("number of directories") (2 bytes) ("ndir"))
459*75fd0b74Schristos (repeat "ptr->ndir"
460*75fd0b74Schristos	 (("directory name") (chars variable bytes) ("dname"))))
461*75fd0b74Schristos
462*75fd0b74Schristos
463*75fd0b74Schristos; FIXME: the tr block has no contents. sysinfo, etc. aren't prepared
464*75fd0b74Schristos; to deal with that.
465*75fd0b74Schristos; ("tr" 0x7f)
466*75fd0b74Schristos
467*75fd0b74Schristos
468*75fd0b74Schristos("dus" 0x40
469*75fd0b74Schristos (("negotiation number") (2 bytes) ("efn"))
470*75fd0b74Schristos (("number of source files") (2 bytes) ("ns"))
471*75fd0b74Schristos (repeat "ptr->ns"
472*75fd0b74Schristos	 (("directory reference bit") (1 bit) ("drb"))
473*75fd0b74Schristos	 (("spare") (7 bits) ("spare"))
474*75fd0b74Schristos	 (("completed file name") (chars variable byte) ("fname"))
475*75fd0b74Schristos	 (cond "ptr->drb[n]"
476*75fd0b74Schristos	       (("directory apperance number") (2 bytes) ("dan"))))
477*75fd0b74Schristos (("number of directories") (2 bytes) ("ndir"))
478*75fd0b74Schristos (repeat "ptr->ndir"
479*75fd0b74Schristos	 (("directory name") (chars variable bytes) ("dname"))))
480*75fd0b74Schristos
481*75fd0b74Schristos
482*75fd0b74Schristos("dps" 0x32
483*75fd0b74Schristos (("start/end flag") (1 bit) ("end"))
484*75fd0b74Schristos (("block type") (7 bits) ("type")
485*75fd0b74Schristos  (("BLOCK_TYPE_COMPUNIT" "0")
486*75fd0b74Schristos   ("BLOCK_TYPE_PROCEDURE" "2")
487*75fd0b74Schristos   ("BLOCK_TYPE_FUNCTION" "3")
488*75fd0b74Schristos   ("BLOCK_TYPE_BLOCK" "4")
489*75fd0b74Schristos   ("BLOCK_TYPE_BASIC" "9")))
490*75fd0b74Schristos (cond "!ptr->end"
491*75fd0b74Schristos       (("optimization") (1 byte) ("opt"))
492*75fd0b74Schristos       (("section number") (2 bytes) ("san"))
493*75fd0b74Schristos       (("address") (addrsize bytes) ("address"))
494*75fd0b74Schristos       (("block size") (addrsize bytes) ("block_size"))
495*75fd0b74Schristos       (("nesting") (1 byte) ("nesting"))
496*75fd0b74Schristos       (cond "ptr->type == BLOCK_TYPE_PROCEDURE
497*75fd0b74Schristos	    || ptr->type == BLOCK_TYPE_FUNCTION"
498*75fd0b74Schristos	     (("return address") (1 bit) ("retaddr"))
499*75fd0b74Schristos	     (("interrupt function flag") (1 bit) ("intrflag"))
500*75fd0b74Schristos	     (("stack update flag") (1 bit) ("stackflag"))
501*75fd0b74Schristos	     (("intra page JMP") (1 bit) ("intrpagejmp"))
502*75fd0b74Schristos	     (("spare") (4 bits) ("spare")))
503*75fd0b74Schristos       (("neg number") (2 bytes) ("neg"))))
504*75fd0b74Schristos
505