From fb2315b514e7cdc01b255928ad1080588b11c813 Mon Sep 17 00:00:00 2001 From: dg Date: Sat, 24 Sep 1994 21:37:01 +0000 Subject: Shuffled macros and definitions around to facilitate architecture independance. --- sys/amd64/include/exec.h | 112 +---------------------------------------------- 1 file changed, 2 insertions(+), 110 deletions(-) (limited to 'sys/amd64/include/exec.h') diff --git a/sys/amd64/include/exec.h b/sys/amd64/include/exec.h index 15f40c7..c08283f 100644 --- a/sys/amd64/include/exec.h +++ b/sys/amd64/include/exec.h @@ -31,120 +31,12 @@ * SUCH DAMAGE. * * @(#)exec.h 8.1 (Berkeley) 6/11/93 - * $Id: exec.h,v 1.3 1994/08/02 07:38:45 davidg Exp $ + * $Id: exec.h,v 1.4 1994/08/09 14:39:56 jkh Exp $ */ #ifndef _EXEC_H_ #define _EXEC_H_ -#if defined(hp300) || defined(i386) -#define __LDPGSZ 4096 -#endif -#if defined(tahoe) || defined(vax) -#define __LDPGSZ 1024 -#endif - -#define N_GETMAGIC(ex) \ - ( (ex).a_midmag & 0xffff ) -#define N_GETMID(ex) \ - ( (N_GETMAGIC_NET(ex) == ZMAGIC) ? N_GETMID_NET(ex) : \ - ((ex).a_midmag >> 16) & 0x03ff ) -#define N_GETFLAG(ex) \ - ( (N_GETMAGIC_NET(ex) == ZMAGIC) ? N_GETFLAG_NET(ex) : \ - ((ex).a_midmag >> 26) & 0x3f ) -#define N_SETMAGIC(ex,mag,mid,flag) \ - ( (ex).a_midmag = (((flag) & 0x3f) <<26) | (((mid) & 0x03ff) << 16) | \ - ((mag) & 0xffff) ) - -#define N_GETMAGIC_NET(ex) \ - (ntohl((ex).a_midmag) & 0xffff) -#define N_GETMID_NET(ex) \ - ((ntohl((ex).a_midmag) >> 16) & 0x03ff) -#define N_GETFLAG_NET(ex) \ - ((ntohl((ex).a_midmag) >> 26) & 0x3f) -#define N_SETMAGIC_NET(ex,mag,mid,flag) \ - ( (ex).a_midmag = htonl( (((flag)&0x3f)<<26) | (((mid)&0x03ff)<<16) | \ - (((mag)&0xffff)) ) ) - -#define N_ALIGN(ex,x) \ - (N_GETMAGIC(ex) == ZMAGIC || N_GETMAGIC(ex) == QMAGIC || \ - N_GETMAGIC_NET(ex) == ZMAGIC || N_GETMAGIC_NET(ex) == QMAGIC ? \ - ((x) + __LDPGSZ - 1) & ~(__LDPGSZ - 1) : (x)) - -/* Valid magic number check. */ -#define N_BADMAG(ex) \ - (N_GETMAGIC(ex) != OMAGIC && N_GETMAGIC(ex) != NMAGIC && \ - N_GETMAGIC(ex) != ZMAGIC && N_GETMAGIC(ex) != QMAGIC && \ - N_GETMAGIC_NET(ex) != OMAGIC && N_GETMAGIC_NET(ex) != NMAGIC && \ - N_GETMAGIC_NET(ex) != ZMAGIC && N_GETMAGIC_NET(ex) != QMAGIC) - - -/* Address of the bottom of the text segment. */ -#define N_TXTADDR(ex) \ - ((N_GETMAGIC(ex) == OMAGIC || N_GETMAGIC(ex) == NMAGIC || \ - N_GETMAGIC(ex) == ZMAGIC) ? 0 : __LDPGSZ) - -/* Address of the bottom of the data segment. */ -#define N_DATADDR(ex) \ - N_ALIGN(ex, N_TXTADDR(ex) + (ex).a_text) - -/* Text segment offset. */ -#define N_TXTOFF(ex) \ - (N_GETMAGIC(ex) == ZMAGIC ? __LDPGSZ : (N_GETMAGIC(ex) == QMAGIC || \ - N_GETMAGIC_NET(ex) == ZMAGIC) ? 0 : sizeof(struct exec)) - -/* Data segment offset. */ -#define N_DATOFF(ex) \ - N_ALIGN(ex, N_TXTOFF(ex) + (ex).a_text) - -/* Relocation table offset. */ -#define N_RELOFF(ex) \ - N_ALIGN(ex, N_DATOFF(ex) + (ex).a_data) - -/* Symbol table offset. */ -#define N_SYMOFF(ex) \ - (N_RELOFF(ex) + (ex).a_trsize + (ex).a_drsize) - -/* String table offset. */ -#define N_STROFF(ex) (N_SYMOFF(ex) + (ex).a_syms) - -/* - * Header prepended to each a.out file. - * only manipulate the a_midmag field via the - * N_SETMAGIC/N_GET{MAGIC,MID,FLAG} macros in a.out.h - */ - -struct exec { - unsigned long a_midmag; /* htonl(flags<<26 | mid<<16 | magic) */ - unsigned long a_text; /* text segment size */ - unsigned long a_data; /* initialized data size */ - unsigned long a_bss; /* uninitialized data size */ - unsigned long a_syms; /* symbol table size */ - unsigned long a_entry; /* entry point */ - unsigned long a_trsize; /* text relocation size */ - unsigned long a_drsize; /* data relocation size */ -}; -#define a_magic a_midmag /* XXX Hack to work with current kern_execve.c */ - -/* a_magic */ -#define OMAGIC 0407 /* old impure format */ -#define NMAGIC 0410 /* read-only text */ -#define ZMAGIC 0413 /* demand load format */ -#define QMAGIC 0314 /* "compact" demand load format */ - -/* a_mid */ -#define MID_ZERO 0 /* unknown - implementation dependent */ -#define MID_SUN010 1 /* sun 68010/68020 binary */ -#define MID_SUN020 2 /* sun 68020-only binary */ -#define MID_I386 134 /* i386 BSD binary */ -#define MID_HP200 200 /* hp200 (68010) BSD binary */ -#define MID_HP300 300 /* hp300 (68020+68881) BSD binary */ -#define MID_HPUX 0x20C /* hp200/300 HP-UX binary */ -#define MID_HPUX800 0x20B /* hp800 HP-UX binary */ - -/* - * a_flags - */ -#define EX_DYNAMIC 0x20 /* a.out contains run-time link-edit info */ +#define __LDPGSZ 4096 #endif /* !_EXEC_H_ */ -- cgit v1.1