Annotation of Gnu-Mach/include/mach/exec/a.out.h, revision 1.1.1.1

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_ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.