xref: /plan9-contrib/sys/include/a.out.h (revision ce95e1b3727b9cb1c223ffbed69aff21a8ced255)
13e12c5d1SDavid du Colombier typedef	struct	Exec	Exec;
23e12c5d1SDavid du Colombier struct	Exec
33e12c5d1SDavid du Colombier {
43e12c5d1SDavid du Colombier 	long	magic;		/* magic number */
53e12c5d1SDavid du Colombier 	long	text;	 	/* size of text segment */
63e12c5d1SDavid du Colombier 	long	data;	 	/* size of initialized data */
73e12c5d1SDavid du Colombier 	long	bss;	  	/* size of uninitialized data */
83e12c5d1SDavid du Colombier 	long	syms;	 	/* size of symbol table */
93e12c5d1SDavid du Colombier 	long	entry;	 	/* entry point */
103e12c5d1SDavid du Colombier 	long	spsz;		/* size of pc/sp offset table */
113e12c5d1SDavid du Colombier 	long	pcsz;		/* size of pc/line number table */
123e12c5d1SDavid du Colombier };
133e12c5d1SDavid du Colombier 
144de34a7eSDavid du Colombier #define HDR_MAGIC	0x00008000		/* header expansion */
153e12c5d1SDavid du Colombier 
164de34a7eSDavid du Colombier #define	_MAGIC(f, b)	((f)|((((4*(b))+0)*(b))+7))
17b428304bSDavid du Colombier #define	A_MAGIC		_MAGIC(0, 8)		/* 68020 (retired) */
184de34a7eSDavid du Colombier #define	I_MAGIC		_MAGIC(0, 11)		/* intel 386 */
194de34a7eSDavid du Colombier #define	J_MAGIC		_MAGIC(0, 12)		/* intel 960 (retired) */
204de34a7eSDavid du Colombier #define	K_MAGIC		_MAGIC(0, 13)		/* sparc */
214de34a7eSDavid du Colombier #define	V_MAGIC		_MAGIC(0, 16)		/* mips 3000 BE */
224de34a7eSDavid du Colombier #define	X_MAGIC		_MAGIC(0, 17)		/* att dsp 3210 (retired) */
234de34a7eSDavid du Colombier #define	M_MAGIC		_MAGIC(0, 18)		/* mips 4000 BE */
244de34a7eSDavid du Colombier #define	D_MAGIC		_MAGIC(0, 19)		/* amd 29000 (retired) */
254de34a7eSDavid du Colombier #define	E_MAGIC		_MAGIC(0, 20)		/* arm */
264de34a7eSDavid du Colombier #define	Q_MAGIC		_MAGIC(0, 21)		/* powerpc */
274de34a7eSDavid du Colombier #define	N_MAGIC		_MAGIC(0, 22)		/* mips 4000 LE */
28e4d8d697SDavid du Colombier #define	L_MAGIC		_MAGIC(0, 23)		/* dec alpha (retired) */
294de34a7eSDavid du Colombier #define	P_MAGIC		_MAGIC(0, 24)		/* mips 3000 LE */
30e4d8d697SDavid du Colombier #define	U_MAGIC		_MAGIC(0, 25)		/* sparc64 (retired) */
314de34a7eSDavid du Colombier #define	S_MAGIC		_MAGIC(HDR_MAGIC, 26)	/* amd64 */
3247ad9175SDavid du Colombier #define	T_MAGIC		_MAGIC(HDR_MAGIC, 27)	/* powerpc64 */
33e6dac696SDavid du Colombier #define	R_MAGIC		_MAGIC(HDR_MAGIC, 28)	/* arm64 */
34*ce95e1b3SDavid du Colombier #define	Z_MAGIC		_MAGIC(0, 29)		/* riscv */
35*ce95e1b3SDavid du Colombier #define	Y_MAGIC		_MAGIC(0, 30)		/* riscv64 */
364de34a7eSDavid du Colombier 
374de34a7eSDavid du Colombier #define	MIN_MAGIC	8
38*ce95e1b3SDavid du Colombier #define	MAX_MAGIC	30			/* <= 90 */
394de34a7eSDavid du Colombier 
404de34a7eSDavid du Colombier #define	DYN_MAGIC	0x80000000		/* dlm */
419a747e4fSDavid du Colombier 
423e12c5d1SDavid du Colombier typedef	struct	Sym	Sym;
433e12c5d1SDavid du Colombier struct	Sym
443e12c5d1SDavid du Colombier {
454de34a7eSDavid du Colombier 	vlong	value;
460c547597SDavid du Colombier 	uint	sig;
473e12c5d1SDavid du Colombier 	char	type;
48219b2ee8SDavid du Colombier 	char	*name;
493e12c5d1SDavid du Colombier };
50