X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/a1330e13c10e7430177cf50dfb678b9a617d1573..ad7871609881e73855d0b04da49b486cd93efca7:/usr/include/a.out.h diff --git a/usr/include/a.out.h b/usr/include/a.out.h index 3ea301a2a4..3b242a15d9 100644 --- a/usr/include/a.out.h +++ b/usr/include/a.out.h @@ -1,85 +1,46 @@ -/* - * Header prepended to each a.out file. +/*- + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)a.out.h 8.1 (Berkeley) 6/2/93 */ -struct exec { - long a_magic; /* magic number */ -unsigned long a_text; /* size of text segment */ -unsigned long a_data; /* size of initialized data */ -unsigned long a_bss; /* size of uninitialized data */ -unsigned long a_syms; /* size of symbol table */ -unsigned long a_entry; /* entry point */ -unsigned long a_trsize; /* size of text relocation */ -unsigned long a_drsize; /* size of data relocation */ -}; -#define OMAGIC 0407 /* old impure format */ -#define NMAGIC 0410 /* read-only text */ -#define ZMAGIC 0413 /* demand load format */ +#ifndef _AOUT_H_ +#define _AOUT_H_ -/* - * Macros which take exec structures as arguments and tell whether - * the file has a reasonable magic number or offsets to text|symbols|strings. - */ -#define N_BADMAG(x) \ - (((x).a_magic)!=OMAGIC && ((x).a_magic)!=NMAGIC && ((x).a_magic)!=ZMAGIC) - -#define N_TXTOFF(x) \ - ((x).a_magic==ZMAGIC ? 1024 : sizeof (struct exec)) -#define N_SYMOFF(x) \ - (N_TXTOFF(x) + (x).a_text+(x).a_data + (x).a_trsize+(x).a_drsize) -#define N_STROFF(x) \ - (N_SYMOFF(x) + (x).a_syms) - -/* - * Format of a relocation datum. - */ -struct relocation_info { - int r_address; /* address which is relocated */ -unsigned int r_symbolnum:24, /* local symbol ordinal */ - r_pcrel:1, /* was relocated pc relative already */ - r_length:2, /* 0=byte, 1=word, 2=long */ - r_extern:1, /* does not include value of sym referenced */ - :4; /* nothing, yet */ -}; +#include +#include +#include -/* - * Format of a symbol table entry; this file is included by - * and should be used if you aren't interested the a.out header - * or relocation information. - */ -struct nlist { - union { - char *n_name; /* for use when in-core */ - long n_strx; /* index into file string table */ - } n_un; -unsigned char n_type; /* type flag, i.e. N_TEXT etc; see below */ - char n_other; /* unused */ - short n_desc; /* see */ -unsigned long n_value; /* value of this symbol (or sdb offset) */ -}; -#define n_hash n_desc /* used internally by ld */ +#define _AOUT_INCLUDE_ +#include -/* - * Simple values for n_type. - */ -#define N_UNDF 0x0 /* undefined */ -#define N_ABS 0x2 /* absolute */ -#define N_TEXT 0x4 /* text */ -#define N_DATA 0x6 /* data */ -#define N_BSS 0x8 /* bss */ -#define N_COMM 0x12 /* common (internal to ld) */ -#define N_FN 0x1f /* file name symbol */ - -#define N_EXT 01 /* external bit, or'ed in */ -#define N_TYPE 0x1e /* mask for all the type bits */ - -/* - * Sdb entries have some of the N_STAB bits set. - * These are given in - */ -#define N_STAB 0xe0 /* if any of these bits set, a SDB entry */ - -/* - * Format for namelist values. - */ -#define N_FORMAT "%08x" +#endif /* !_AOUT_H_ */