home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
zip
/
gnu
/
utlsrc33.lzh
/
UTLSRC33
/
MINIX-OU.H
< prev
next >
Wrap
C/C++ Source or Header
|
1993-07-30
|
2KB
|
75 lines
/*
* Mildly edited outmix.h for use with Gnu ld
* ++jrb
* Thanks to meulenbr@cst.prl.philips.nl for all his help
*
* further refined: Thanks to Frans and Simon Poole for the info.
* ++jrb 1/11/89
*/
/*
* output format for MINIX-PC and MINIX-ST.
* for the i8088 longs are stored with low-order byte first.
* for the 68000 longs are stored with high-order byte first.
* this is a mess!
* This MINIX format is a stripped down and mutilated version of
* the Vrije Universiteit flavor of the ACK loadfile format.
*/
struct aexec {
long a_magic; /* contains a.out magic number */
long a_versn; /* header length and version */
long a_text; /* # bytes in program text segment */
long a_data; /* # bytes in program data segment */
long a_bss; /* # bytes in program bss segment */
long a_entry; /* entry point */
long a_msize; /* # bytes allocated for program */
long a_syms; /* # bytes in symbol table */
};
#define A_MAGICD 0x04100301L /* combined I & D space */
#define A_MAGICI 0x04200301L /* separate I & D space */
#define CMAGIC A_MAGICD
#define A_VERSION 0x00000020L
/*
* Macros which take exec structures as arguments and tell whether
* the file has a reasonable magic number or offsets to text|symbols|strings.
*/
#define A_BADMAG(x) (((x).a_magic)!=CMAGIC)
#define A_TXTOFF(x) (sizeof (struct aexec))
#define A_DATOFF(x) (A_TXTOFF(x) + (x).a_text)
#define A_SYMOFF(x) (A_TXTOFF(x) + (x).a_text+(x).a_data)
#define A_STROFF(x) (A_SYMOFF(x) + (x).a_syms)
/*
* this is really called stuct nlist in a.out.h, but we
* cannot use that name as it conflicts with struct nlist of
* gnu-out.h
*
*/
struct asym
{ char a_name[8]; /* symbol name */
long a_value; /* symbol value */
char a_sclass; /* storage class */
char a_numaux; /* number of auxiliary entries */
short a_type; /* language base and derived type */
};
/* low bits of a_sclass */
#define A_UNDF 00 /* undefined */
#define A_ABS 01 /* absolute */
#define A_TEXT 02 /* text */
#define A_DATA 03 /* data */
#define A_BSS 04 /* bss */
#define A_COMMON 05 /* common */
/* high bits of a_sclass */
#define A_CLASS 0370 /* mask */
#define A_NULL
#define A_EXT 0020 /* external */
#define A_STAT 0030 /* static */