You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

685 lines
17 KiB
C

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 */
};