typedef struct { unsigned char *data; int len; } barray; typedef int INT; typedef char * CHARS; #define IT_cs_CODE 0x0 struct IT_cs; extern void sysroff_swap_cs_in (struct IT_cs *); extern void sysroff_swap_cs_out (FILE *, struct IT_cs *); extern void sysroff_print_cs_out (struct IT_cs *); struct IT_cs { int size; /* size */ int hd; /* hd */ int hs; /* hs */ int un; /* un */ int us; /* us */ int sc; /* sc */ int ss; /* ss */ int er; /* er */ int ed; /* ed */ int sh; /* sh */ int ob; /* ob */ int rl; /* rl */ int du; /* du */ int dps; /* dps */ int dsy; /* dsy */ int dty; /* dty */ int dln; /* dln */ int dso; /* dso */ int dus; /* dus */ int dss; /* dss */ int dbt; /* dbt */ int dpp; /* dpp */ int dfp; /* dfp */ int den; /* den */ int dds; /* dds */ int dar; /* dar */ int dpt; /* dpt */ int dul; /* dul */ int dse; /* dse */ int dot; /* dot */ }; #define IT_hd_CODE 0x4 struct IT_hd; extern void sysroff_swap_hd_in (struct IT_hd *); extern void sysroff_swap_hd_out (FILE *, struct IT_hd *); extern void sysroff_print_hd_out (struct IT_hd *); struct IT_hd { #define MTYPE_ABS_LM 0 #define MTYPE_REL_LM 1 #define MTYPE_OMS_OR_LMS 2 #define MTYPE_UNSPEC 0xf int mt; /* module type */ int spare1; /* spare */ char *cd; /* creation date */ int nu; /* number of units */ int code; /* code */ char *ver; /* version */ int au; /* address update */ int si; /* segment identifier */ int afl; /* address field length */ int spare2; /* spare */ int spcsz; /* space size within segment */ int segsz; /* segment size */ int segsh; /* segment shift */ int ep; /* entry point */ int uan; /* unit appearance number */ int sa; /* section appearance number */ int sad; /* segment address */ int address; /* address */ char *os; /* os name */ char *sys; /* sys name */ char *mn; /* module name */ char *cpu; /* cpu */ }; #define IT_hs_CODE 0x5 struct IT_hs; extern void sysroff_swap_hs_in (struct IT_hs *); extern void sysroff_swap_hs_out (FILE *, struct IT_hs *); extern void sysroff_print_hs_out (struct IT_hs *); struct IT_hs { int neg; /* neg number */ }; #define IT_un_CODE 0x6 struct IT_un; extern void sysroff_swap_un_in (struct IT_un *); extern void sysroff_swap_un_out (FILE *, struct IT_un *); extern void sysroff_print_un_out (struct IT_un *); struct IT_un { #define FORMAT_LM 0 #define FORMAT_OM 1 #define FORMAT_OMS_OR_LMS 2 int format; /* format */ int spare1; /* spare */ int nsections; /* number of sections */ int nextrefs; /* number of external refs */ int nextdefs; /* number of external defs */ char *name; /* unit name */ char *tool; /* tool name */ char *tcd; /* creation date */ char *linker; /* linker name */ char *lcd; /* creation date */ }; #define IT_us_CODE 0x7 struct IT_us; extern void sysroff_swap_us_in (struct IT_us *); extern void sysroff_swap_us_out (FILE *, struct IT_us *); extern void sysroff_print_us_out (struct IT_us *); struct IT_us { int neg; /* negotiation number */ }; #define IT_sc_CODE 0x8 struct IT_sc; extern void sysroff_swap_sc_in (struct IT_sc *); extern void sysroff_swap_sc_out (FILE *, struct IT_sc *); extern void sysroff_print_sc_out (struct IT_sc *); struct IT_sc { int format; /* format */ int spare; /* spare */ int segadd; /* segment address */ int addr; /* address */ int length; /* length */ int align; /* alignment */ #define CONTENTS_CODE 0 #define CONTENTS_DATA 1 #define CONTENTS_STACK 2 #define CONTENTS_DUMMY 3 #define CONTENTS_SPECIAL 4 #define CONTENTS_NONSPEC 0xf int contents; /* contents */ #define CONCAT_SIMPLE 0 #define CONCAT_SHAREDC 1 #define CONCAT_DUMMY 2 #define CONCAT_GROUP 3 #define CONCAT_SHARED 4 #define CONCAT_PRIVATE 5 #define CONCAT_UNSPEC 0xf int concat; /* concat */ int read; /* read */ int write; /* write */ int exec; /* exec */ int init; /* initialized */ int mode; /* mode */ int spare1; /* spare */ char *name; /* name */ }; #define IT_ss_CODE 0x9 struct IT_ss; extern void sysroff_swap_ss_in (struct IT_ss *); extern void sysroff_swap_ss_out (FILE *, struct IT_ss *); extern void sysroff_print_ss_out (struct IT_ss *); struct IT_ss { int neg; /* neg number */ }; #define IT_er_CODE 0xc struct IT_er; extern void sysroff_swap_er_in (struct IT_er *); extern void sysroff_swap_er_out (FILE *, struct IT_er *); extern void sysroff_print_er_out (struct IT_er *); struct IT_er { #define ER_ENTRY 0 #define ER_DATA 1 #define ER_NOTDEF 2 #define ER_NOTSPEC 3 int type; /* symbol type */ int spare; /* spare */ char *name; /* symbol name */ }; #define IT_ed_CODE 0x14 struct IT_ed; extern void sysroff_swap_ed_in (struct IT_ed *); extern void sysroff_swap_ed_out (FILE *, struct IT_ed *); extern void sysroff_print_ed_out (struct IT_ed *); struct IT_ed { int section; /* section appearance number */ #define ED_TYPE_ENTRY 0 #define ED_TYPE_DATA 1 #define ED_TYPE_CONST 2 #define ED_TYPE_NOTSPEC 7 int type; /* symbol type */ int spare; /* spare */ int address; /* symbol address */ int constant; /* constant value */ char *name; /* symbol name */ }; #define IT_sh_CODE 0x1a struct IT_sh; extern void sysroff_swap_sh_in (struct IT_sh *); extern void sysroff_swap_sh_out (FILE *, struct IT_sh *); extern void sysroff_print_sh_out (struct IT_sh *); struct IT_sh { int unit; /* unit appearance number */ int section; /* section appearance number */ }; #define IT_ob_CODE 0x1c struct IT_ob; extern void sysroff_swap_ob_in (struct IT_ob *); extern void sysroff_swap_ob_out (FILE *, struct IT_ob *); extern void sysroff_print_ob_out (struct IT_ob *); struct IT_ob { int saf; /* starting address flag */ int cpf; /* compression flag */ int spare; /* spare */ int address; /* starting address */ int compreps; /* comp reps */ barray data; /* data */ }; #define IT_rl_CODE 0x20 struct IT_rl; extern void sysroff_swap_rl_in (struct IT_rl *); extern void sysroff_swap_rl_out (FILE *, struct IT_rl *); extern void sysroff_print_rl_out (struct IT_rl *); struct IT_rl { int boundary; /* boundary of relocatable area */ int apol; /* address polarity */ int segment; /* segment number */ int sign; /* sign of relocation */ int check; /* check range */ int addr; /* reloc address */ int bitloc; /* bit loc */ int flen; /* field length */ int bcount; /* bcount */ #define OP_RELOC_ADDR 1 #define OP_SEC_REF 0 #define OP_EXT_REF 2 int op; /* operator */ int symn; /* symbol number */ int secn; /* section number */ int copcode_is_3; /* const opcode */ int alength_is_4; /* addend length */ int addend; /* addend */ int aopcode_is_0x20; /* plus opcode */ int dunno; /* dunno */ int end; /* end */ }; #define IT_du_CODE 0x30 struct IT_du; extern void sysroff_swap_du_in (struct IT_du *); extern void sysroff_swap_du_out (FILE *, struct IT_du *); extern void sysroff_print_du_out (struct IT_du *); struct IT_du { int format; /* format */ int optimized; /* optimized */ int stackfrmt; /* stackfrmt */ int spare; /* spare */ int unit; /* unit number */ int sections; /* sections */ /* repeat ptr->sections */ int *san; /* section appearance number */ /* repeat ptr->sections */ int *address; /* address */ /* repeat ptr->sections */ int *length; /* section length */ char *tool; /* tool name */ char *date; /* creation date */ }; #define IT_dsy_CODE 0x34 struct IT_dsy; extern void sysroff_swap_dsy_in (struct IT_dsy *); extern void sysroff_swap_dsy_out (FILE *, struct IT_dsy *); extern void sysroff_print_dsy_out (struct IT_dsy *); struct IT_dsy { #define STYPE_VAR 0 #define STYPE_LAB 1 #define STYPE_PROC 2 #define STYPE_FUNC 3 #define STYPE_TYPE 4 #define STYPE_CONST 5 #define STYPE_ENTRY 6 #define STYPE_MEMBER 7 #define STYPE_ENUM 8 #define STYPE_TAG 9 #define STYPE_PACKAGE 10 #define STYPE_GENERIC 11 #define STYPE_TASK 12 #define STYPE_EXCEPTION 13 #define STYPE_PARAMETER 14 #define STYPE_EQUATE 15 #define STYPE_UNSPEC 0x7f int type; /* symbol type */ int assign; /* assignment info */ int snumber; /* symbol id */ char *sname; /* symbol name */ int nesting; /* nesting level */ #define AINFO_REG 1 #define AINFO_STATIC_EXT_DEF 2 #define AINFO_STATIC_EXT_REF 3 #define AINFO_STATIC_INT 4 #define AINFO_STATIC_COM 5 #define AINFO_AUTO 6 #define AINFO_CONST 7 #define AINFO_UNSPEC 0xff int ainfo; /* assignment type */ int dlength; /* data length */ int section; /* section number */ int address; /* address */ char *reg; /* register name */ char *ename; /* external name */ char *constant; /* constant */ int bitunit; /* assignment unit */ int spare2; /* spare */ int field_len; /* field length */ int field_off; /* field offset */ int field_bitoff; /* bit offset */ int evallen; /* value length */ int evalue; /* value */ char *cvalue; /* value */ int qvallen; /* value length */ int qvalue; /* value */ int btype; /* basic type */ int sizeinfo; /* size information */ int sign; /* sign */ int flt_type; /* floating point type */ int sfn; /* source file number */ int sln; /* source line number */ int neg; /* negotiation number */ int magic; /* magic */ }; #define IT_dul_CODE 0x52 struct IT_dul; extern void sysroff_swap_dul_in (struct IT_dul *); extern void sysroff_swap_dul_out (FILE *, struct IT_dul *); extern void sysroff_print_dul_out (struct IT_dul *); struct IT_dul { int max_variable; /* max declaration type flag */ int maxspare; /* max spare */ int max; /* maximum */ char *maxmode; /* max mode */ int min_variable; /* min declaration type flag */ int minspare; /* min spare */ int min; /* minimum */ char *minmode; /* min mode */ }; #define IT_dty_CODE 0x36 struct IT_dty; extern void sysroff_swap_dty_in (struct IT_dty *); extern void sysroff_swap_dty_out (FILE *, struct IT_dty *); extern void sysroff_print_dty_out (struct IT_dty *); struct IT_dty { int end; /* end flag */ int spare; /* spare */ int neg; /* negotiation */ }; #define IT_dbt_CODE 0x44 struct IT_dbt; extern void sysroff_swap_dbt_in (struct IT_dbt *); extern void sysroff_swap_dbt_out (FILE *, struct IT_dbt *); extern void sysroff_print_dbt_out (struct IT_dbt *); struct IT_dbt { #define BTYPE_VOID 0 #define BTYPE_UNDEF 1 #define BTYPE_CHAR 2 #define BTYPE_INT 3 #define BTYPE_FLOAT 4 #define BTYPE_BIT 5 #define BTYPE_STRING 6 #define BTYPE_DECIMAL 7 #define BTYPE_ENUM 8 #define BTYPE_STRUCT 9 #define BTYPE_TYPE 10 #define BTYPE_TAG 11 #define BTYPE_UNSPEC 0xff int btype; /* basic type */ int bitsize; /* size info */ #define SIGN_SIGNED 0 #define SIGN_UNSIGNED 1 #define SIGN_UNSPEC 3 int sign; /* sign */ #define FPTYPE_SINGLE 0 #define FPTYPE_DOUBLE 1 #define FPTYPE_EXTENDED 2 #define FPTYPE_NOTSPEC 0x3f int fptype; /* floating point type */ int sid; /* symbol id */ int neg; /* negotiation */ }; #define IT_dar_CODE 0x4e struct IT_dar; extern void sysroff_swap_dar_in (struct IT_dar *); extern void sysroff_swap_dar_out (FILE *, struct IT_dar *); extern void sysroff_print_dar_out (struct IT_dar *); struct IT_dar { int length; /* element length */ int dims; /* dims */ #define VARIABLE_FIXED 0 #define VARIABLE_VARIABLE 1 /* repeat ptr->dims */ int *variable; /* variable flag */ #define SUB_INTEGER 0 #define SUB_TYPE 1 /* repeat ptr->dims */ int *subtype; /* subscript type */ /* repeat ptr->dims */ int *spare; /* spare */ /* repeat ptr->dims */ int *sid; /* sub symbol id */ /* repeat ptr->dims */ int *max_variable; /* max declaration type flag */ /* repeat ptr->dims */ int *maxspare; /* max spare */ /* repeat ptr->dims */ int *max; /* maximum */ /* repeat ptr->dims */ int *min_variable; /* min declaration type flag */ /* repeat ptr->dims */ int *minspare; /* min spare */ /* repeat ptr->dims */ int *min; /* minimum */ int neg; /* negotiation */ }; #define IT_dso_CODE 0x3a struct IT_dso; extern void sysroff_swap_dso_in (struct IT_dso *); extern void sysroff_swap_dso_out (FILE *, struct IT_dso *); extern void sysroff_print_dso_out (struct IT_dso *); struct IT_dso { int sid; /* function name */ int spupdates; /* sp update count */ /* repeat ptr->spupdates */ int *address; /* update address */ /* repeat ptr->spupdates */ int *offset; /* offset */ }; #define IT_dln_CODE 0x38 struct IT_dln; extern void sysroff_swap_dln_in (struct IT_dln *); extern void sysroff_swap_dln_out (FILE *, struct IT_dln *); extern void sysroff_print_dln_out (struct IT_dln *); struct IT_dln { int nln; /* number of lines */ /* repeat ptr->nln */ int *sfn; /* source file number */ /* repeat ptr->nln */ int *sln; /* source line number */ /* repeat ptr->nln */ int *section; /* section number */ /* repeat ptr->nln */ int *from_address; /* from address */ /* repeat ptr->nln */ int *to_address; /* to address */ /* repeat ptr->nln */ int *cc; /* call count */ int neg; /* neg */ }; #define IT_dpp_CODE 0x46 struct IT_dpp; extern void sysroff_swap_dpp_in (struct IT_dpp *); extern void sysroff_swap_dpp_out (FILE *, struct IT_dpp *); extern void sysroff_print_dpp_out (struct IT_dpp *); struct IT_dpp { int end; /* start/end */ int spare; /* spare */ int params; /* params */ int neg; /* neg number */ }; #define IT_den_CODE 0x4a struct IT_den; extern void sysroff_swap_den_in (struct IT_den *); extern void sysroff_swap_den_out (FILE *, struct IT_den *); extern void sysroff_print_den_out (struct IT_den *); struct IT_den { int end; /* start/end */ int spare; /* spare */ int neg; /* neg number */ }; #define IT_dfp_CODE 0x48 struct IT_dfp; extern void sysroff_swap_dfp_in (struct IT_dfp *); extern void sysroff_swap_dfp_out (FILE *, struct IT_dfp *); extern void sysroff_print_dfp_out (struct IT_dfp *); struct IT_dfp { int end; /* start/end flag */ int spare; /* spare */ int nparams; /* number of parameters */ int neg; /* neg number */ }; #define IT_dds_CODE 0x4c struct IT_dds; extern void sysroff_swap_dds_in (struct IT_dds *); extern void sysroff_swap_dds_out (FILE *, struct IT_dds *); extern void sysroff_print_dds_out (struct IT_dds *); struct IT_dds { int end; /* start/end */ int spare; /* spare */ int neg; /* neg number */ }; #define IT_dpt_CODE 0x50 struct IT_dpt; extern void sysroff_swap_dpt_in (struct IT_dpt *); extern void sysroff_swap_dpt_out (FILE *, struct IT_dpt *); extern void sysroff_print_dpt_out (struct IT_dpt *); struct IT_dpt { int neg; /* neg number */ int dunno; /* dunno */ }; #define IT_dse_CODE 0x54 struct IT_dse; extern void sysroff_swap_dse_in (struct IT_dse *); extern void sysroff_swap_dse_out (FILE *, struct IT_dse *); extern void sysroff_print_dse_out (struct IT_dse *); struct IT_dse { int neg; /* neg number */ int dunno; /* dunno */ }; #define IT_dot_CODE 0x56 struct IT_dot; extern void sysroff_swap_dot_in (struct IT_dot *); extern void sysroff_swap_dot_out (FILE *, struct IT_dot *); extern void sysroff_print_dot_out (struct IT_dot *); struct IT_dot { int unknown; /* unknown */ }; #define IT_dss_CODE 0x42 struct IT_dss; extern void sysroff_swap_dss_in (struct IT_dss *); extern void sysroff_swap_dss_out (FILE *, struct IT_dss *); extern void sysroff_print_dss_out (struct IT_dss *); struct IT_dss { int type; /* type */ int internal; /* external/internal */ int spare; /* spare */ char *package; /* package name */ int id; /* symbol id */ int record; /* record type */ char *rules; /* rules */ int nsymbols; /* number of symbols */ int fixme; /* unknown */ }; #define IT_pss_CODE 0x40 struct IT_pss; extern void sysroff_swap_pss_in (struct IT_pss *); extern void sysroff_swap_pss_out (FILE *, struct IT_pss *); extern void sysroff_print_pss_out (struct IT_pss *); struct IT_pss { int efn; /* negotiation number */ int ns; /* number of source files */ /* repeat ptr->ns */ int *drb; /* directory reference bit */ /* repeat ptr->ns */ int *spare; /* spare */ /* repeat ptr->ns */ char **fname; /* completed file name */ /* repeat ptr->ns */ int *dan; /* directory apperance number */ int ndir; /* number of directories */ /* repeat ptr->ndir */ char **dname; /* directory name */ }; #define IT_dus_CODE 0x40 struct IT_dus; extern void sysroff_swap_dus_in (struct IT_dus *); extern void sysroff_swap_dus_out (FILE *, struct IT_dus *); extern void sysroff_print_dus_out (struct IT_dus *); struct IT_dus { int efn; /* negotiation number */ int ns; /* number of source files */ /* repeat ptr->ns */ int *drb; /* directory reference bit */ /* repeat ptr->ns */ int *spare; /* spare */ /* repeat ptr->ns */ char **fname; /* completed file name */ /* repeat ptr->ns */ int *dan; /* directory apperance number */ int ndir; /* number of directories */ /* repeat ptr->ndir */ char **dname; /* directory name */ }; #define IT_dps_CODE 0x32 struct IT_dps; extern void sysroff_swap_dps_in (struct IT_dps *); extern void sysroff_swap_dps_out (FILE *, struct IT_dps *); extern void sysroff_print_dps_out (struct IT_dps *); struct IT_dps { int end; /* start/end flag */ #define BLOCK_TYPE_COMPUNIT 0 #define BLOCK_TYPE_PROCEDURE 2 #define BLOCK_TYPE_FUNCTION 3 #define BLOCK_TYPE_BLOCK 4 #define BLOCK_TYPE_BASIC 9 int type; /* block type */ int opt; /* optimization */ int san; /* section number */ int address; /* address */ int block_size; /* block size */ int nesting; /* nesting */ int retaddr; /* return address */ int intrflag; /* interrupt function flag */ int stackflag; /* stack update flag */ int intrpagejmp; /* intra page JMP */ int spare; /* spare */ int neg; /* neg number */ };