aboutsummaryrefslogtreecommitdiff
path: root/include/a.out.sun4.h
blob: 3ba363d55e416cf4ee1d05dcf4576c775d3e9c00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* SPARC-specific values for a.out files */

#define PAGE_SIZE	0x2000		/* 8K.  aka NBPG in <sys/param.h> */
/* Note that some SPARCs have 4K pages, some 8K, some others.  */
#define SEGMENT_SIZE	PAGE_SIZE
#define TEXT_START_ADDR	PAGE_SIZE	/* Location 0 is not accessible */

/* Non-default definitions of the accessor macros... */

/* Offset in a.out file of the text section.  For ZMAGIC, the text section
   actually includes the a.out header.  */

#define N_TXTOFF(x)	( (N_MAGIC((x)) == ZMAGIC) ? 0 : sizeof(struct exec) )

/* Virtual Address of text segment from the a.out file.  For OMAGIC,
   (almost always "unlinked .o's" these days), should be zero.
   Sun added a kludge so that shared libraries linked ZMAGIC get
   an address of zero if a_entry (!!!) is lower than the otherwise
   expected text address.  These kludges have gotta go!
   For linked files, should reflect reality if we know it.  */

#define N_TXTADDR(x) \
    (N_MAGIC(x)==OMAGIC? 0 \
     : (N_MAGIC(x) == ZMAGIC && (x).a_entry < TEXT_START_ADDR)? 0 \
     : TEXT_START_ADDR)