Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

98 lines
2.9 KiB
C

/*
Copyright 1983
Alcyon Corporation
8716 Production Ave.
San Diego, CA 92121
@(#) sys/cout.h - Jul 26, 1983 REGULUS 4.1
*/
struct hdr {
#ifndef VAX11
int ch_magic; /* c.out magic number 060016 = $600E */
#else
unsigned short ch_magic;
#endif
long ch_tsize; /* text size */
long ch_dsize; /* data size */
long ch_bsize; /* bss size */
long ch_ssize; /* symbol table size */
long ch_stksize; /* stack size */
long ch_entry; /* location of entry point */
short ch_rlbflg; /* relocation bits present flag, must be signed */
};
struct hdr_cout {
#ifndef VAX11
int ftype; /* c.out magic number 060016 = $600E */
#else
unsigned short ftype;
#endif
long ftext; /* text size */
long fdata; /* data size */
long fbss; /* bss size */
long fsym; /* symbol table size */
long fssize; /* stack size */
long fentry; /* location of entry point */
short fflag; /* relocation bits present flag, must be signed */
};
struct hdr2 {
#ifndef VAX11
int ch_magic; /* c.out magic number = 601B hex */
#else
unsigned short ch_magic;
#endif
long ch_tsize; /* # bytes in program text segment */
long ch_dsize; /* # bytes in program data segment */
long ch_bsize; /* # bytes in program bss segment */
long ch_ssize; /* # bytes in symbol table */
long ch_stksize; /* initial stack size */
long ch_entry; /* entry point--address of text segment */
short ch_rlbflg; /* relocation bits suppressed flag, must be signed */
long ch_dstart; /* address of data segment */
long ch_bstart; /* address of bss segment */
};
/* HDSIZE should be 28 bytes, HDSIZ2 should be 36 bytes */
#ifndef VAX11
# define HDSIZE (sizeof (struct hdr))
# define HDSIZ2 (sizeof (struct hdr2))
#else
# define HDSIZE 28
# define HDSIZ2 36
#endif
#ifdef VAX11
# define MAGIC (unsigned short) 0x601a /* bra .+26 instruction */
# define MAGIC1 (unsigned short) 0x601b /* data & bss base defined */
# define MAGICST2 (unsigned short) 0x601c /* shared text 2K boundary */
# define MAGICID (unsigned short) 0x601d /* I & D split */
# define MAGICST (unsigned short) 0x601e /* shared test 4k boundary (-n default) */
# define EX_MAGIC (unsigned short) 0x601a
# define EX_ABMAGIC (unsigned short) 0x601b
# define EX_2KSTXT (unsigned short) 0x601c
# define EX_IDMAGIC (unsigned short) 0x601d
# define EX_4KSTXT (unsigned short) 0x601e
#else
# define MAGIC 0x601a /* bra .+26 instruction */
# define MAGIC1 0x601b /* data & bss base defined */
# define MAGICST2 0x601c /* shared text 2K boundary */
# define MAGICID 0x601d /* I & D split */
# define MAGICST 0x601e /* shared test 4k boundary (-n default) */
# define EX_MAGIC 0x601a
# define EX_ABMAGIC 0x601b
# define EX_2KSTXT 0x601c
# define EX_IDMAGIC 0x601d
# define EX_4KSTXT 0x601e
#endif
#define SHT2KBOUND 2048
#define SHT2KFIX(x) (((x+SHT2KBOUND-1)/SHT2KBOUND)*SHT2KBOUND)
#define SHT4KBOUND 4096
#define SHT4KFIX(x) (((x+SHT4KBOUND-1)/SHT4KBOUND)*SHT4KBOUND)