summaryrefslogtreecommitdiff
path: root/arch/alpha/aout_machdep.h
blob: 28203a27fd1dabf20051b415eff2cb24b3674530 (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* $Id$ */

#ifndef __AOUT_MACHDEP_H__
#define __AOUT_MACHDEP_H__

///
/// Funky Alpha 64-bit a.out header used for PAL code.
///
struct aout_exechdr {
    uint16_t	magic;
    uint16_t	vstamp;
    uint16_t	bldrev;
    uint16_t	padcell;
    uint64_t	tsize;		// text segment size
    uint64_t	dsize;		// data segment size
    uint64_t	bsize;		// bss segment size
    uint64_t	entry;		// entry point
    uint64_t	text_start;	// text base address
    uint64_t	data_start;	// data base address
    uint64_t	bss_start;	// bss base address
    uint32_t	gprmask;
    uint32_t	fprmask;
    uint64_t	gp_value;
};

#define AOUT_LDPGSZ	8192

#define N_GETMAGIC(ex)	((ex).magic)

#define N_BADMAX

#define N_TXTADDR(ex)	((ex).text_start)
#define N_DATADDR(ex)	((ex).data_start)
#define N_BSSADDR(ex)	((ex).bss_start)

#define N_TXTOFF(ex)	\
        (N_GETMAGIC(ex) == ZMAGIC ? 0 : sizeof(struct aout_exechdr))

#define N_DATOFF(ex)	N_ALIGN(ex, N_TXTOFF(ex) + (ex).tsize)

#endif /* !__AOUT_MACHDEP_H__*/