1: /*
   2:  * Copyright (c) 1980 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)a.out.h	5.1 (Berkeley) 5/30/85
   7:  */
   8: 
   9: /*
  10:  * Definitions of the a.out header
  11:  * and magic numbers are shared with
  12:  * the kernel.
  13:  */
  14: #include <sys/exec.h>
  15: 
  16: /*
  17:  * Macros which take exec structures as arguments and tell whether
  18:  * the file has a reasonable magic number or offsets to text|symbols|strings.
  19:  */
  20: #define N_BADMAG(x) \
  21:     (((x).a_magic)!=OMAGIC && ((x).a_magic)!=NMAGIC && ((x).a_magic)!=ZMAGIC)
  22: 
  23: #define N_TXTOFF(x) \
  24:     ((x).a_magic==ZMAGIC ? 1024 : sizeof (struct exec))
  25: #define N_SYMOFF(x) \
  26:     (N_TXTOFF(x) + (x).a_text+(x).a_data + (x).a_trsize+(x).a_drsize)
  27: #define N_STROFF(x) \
  28:     (N_SYMOFF(x) + (x).a_syms)
  29: 
  30: /*
  31:  * Format of a relocation datum.
  32:  */
  33: struct relocation_info {
  34:     int r_address;  /* address which is relocated */
  35: unsigned int    r_symbolnum:24, /* local symbol ordinal */
  36:         r_pcrel:1,  /* was relocated pc relative already */
  37:         r_length:2, /* 0=byte, 1=word, 2=long */
  38:         r_extern:1, /* does not include value of sym referenced */
  39:         :4;     /* nothing, yet */
  40: };
  41: 
  42: /*
  43:  * Format of a symbol table entry; this file is included by <a.out.h>
  44:  * and should be used if you aren't interested the a.out header
  45:  * or relocation information.
  46:  */
  47: struct  nlist {
  48:     union {
  49:         char    *n_name;    /* for use when in-core */
  50:         long    n_strx;     /* index into file string table */
  51:     } n_un;
  52: unsigned char   n_type;     /* type flag, i.e. N_TEXT etc; see below */
  53:     char    n_other;    /* unused */
  54:     short   n_desc;     /* see <stab.h> */
  55: unsigned long   n_value;    /* value of this symbol (or sdb offset) */
  56: };
  57: #define n_hash  n_desc      /* used internally by ld */
  58: 
  59: /*
  60:  * Simple values for n_type.
  61:  */
  62: #define N_UNDF  0x0     /* undefined */
  63: #define N_ABS   0x2     /* absolute */
  64: #define N_TEXT  0x4     /* text */
  65: #define N_DATA  0x6     /* data */
  66: #define N_BSS   0x8     /* bss */
  67: #define N_COMM  0x12        /* common (internal to ld) */
  68: #define N_FN    0x1f        /* file name symbol */
  69: 
  70: #define N_EXT   01      /* external bit, or'ed in */
  71: #define N_TYPE  0x1e        /* mask for all the type bits */
  72: 
  73: /*
  74:  * Sdb entries have some of the N_STAB bits set.
  75:  * These are given in <stab.h>
  76:  */
  77: #define N_STAB  0xe0        /* if any of these bits set, a SDB entry */
  78: 
  79: /*
  80:  * Format for namelist values.
  81:  */
  82: #define N_FORMAT    "%08x"

Defined struct's

nlist defined in line 47; used 288 times
relocation_info defined in line 33; used 20 times

Defined macros

N_ABS defined in line 63; used 4 times
N_COMM defined in line 67; used 3 times
N_FN defined in line 68; used 2 times
N_FORMAT defined in line 82; used 1 times
N_TYPE defined in line 71; used 15 times
N_UNDF defined in line 62; used 12 times
n_hash defined in line 57; used 2 times

Usage of this include

a.out.h used 59 times
Last modified: 1985-06-19
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1336
Valid CSS Valid XHTML 1.0 Strict