|
|
1.1 root 1: /*
2: * Copyright (c) 1994 The University of Utah and
3: * the Computer Systems Laboratory at the University of Utah (CSL).
4: * All rights reserved.
5: *
6: * Permission to use, copy, modify and distribute this software is hereby
7: * granted provided that (1) source code retains these copyright, permission,
8: * and disclaimer notices, and (2) redistributions including binaries
9: * reproduce the notices in supporting documentation, and (3) all advertising
10: * materials mentioning features or use of this software display the following
11: * acknowledgement: ``This product includes software developed by the
12: * Computer Systems Laboratory at the University of Utah.''
13: *
14: * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
15: * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
16: * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
17: *
18: * CSL requests users of this software to return to [email protected] any
19: * improvements that they make and grant CSL redistribution rights.
20: *
21: * Author: Bryan Ford, University of Utah CSL
22: */
23: #ifndef _MACH_A_OUT_
24: #define _MACH_A_OUT_
25:
26: struct exec
27: {
28: unsigned long a_magic; /* magic number */
29: unsigned long a_text; /* size of text segment */
30: unsigned long a_data; /* size of initialized data */
31: unsigned long a_bss; /* size of uninitialized data */
32: unsigned long a_syms; /* size of symbol table */
33: unsigned long a_entry; /* entry point */
34: unsigned long a_trsize; /* size of text relocation */
35: unsigned long a_drsize; /* size of data relocation */
36: };
37:
38: struct nlist {
39: long n_strx;
40: unsigned char n_type;
41: char n_other;
42: short n_desc;
43: unsigned long n_value;
44: };
45:
46: #define OMAGIC 0407
47: #define NMAGIC 0410
48: #define ZMAGIC 0413
49: #define QMAGIC 0314
50:
51: #define N_GETMAGIC(ex) \
52: ( (ex).a_magic & 0xffff )
53: #define N_GETMAGIC_NET(ex) \
54: (ntohl((ex).a_magic) & 0xffff)
55:
56: /* Valid magic number check. */
57: #define N_BADMAG(ex) \
58: (N_GETMAGIC(ex) != OMAGIC && N_GETMAGIC(ex) != NMAGIC && \
59: N_GETMAGIC(ex) != ZMAGIC && N_GETMAGIC(ex) != QMAGIC && \
60: N_GETMAGIC_NET(ex) != OMAGIC && N_GETMAGIC_NET(ex) != NMAGIC && \
61: N_GETMAGIC_NET(ex) != ZMAGIC && N_GETMAGIC_NET(ex) != QMAGIC)
62:
63: /* We don't provide any N_???OFF macros here
64: because they vary too much between the different a.out variants;
65: it's practically impossible to create one set of macros
66: that works for UX, FreeBSD, NetBSD, Linux, etc. */
67:
68: #endif /* _MACH_A_OUT_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.