OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [asm-alpha/] [a.out.h] - Blame information for rev 1777

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1632 jcastillo
#ifndef __ALPHA_A_OUT_H__
2
#define __ALPHA_A_OUT_H__
3
 
4
#include <linux/types.h>
5
 
6
/*
7
 * OSF/1 ECOFF header structs.  ECOFF files consist of:
8
 *      - a file header (struct filehdr),
9
 *      - an a.out header (struct aouthdr),
10
 *      - one or more section headers (struct scnhdr).
11
 *        The filhdr's "f_nscns" field contains the
12
 *        number of section headers.
13
 */
14
 
15
struct filehdr
16
{
17
        /* OSF/1 "file" header */
18
        __u16 f_magic, f_nscns;
19
        __u32 f_timdat;
20
        __u64 f_symptr;
21
        __u32 f_nsyms;
22
        __u16 f_opthdr, f_flags;
23
};
24
 
25
struct aouthdr
26
{
27
        __u64 info;             /* after that it looks quite normal.. */
28
        __u64 tsize;
29
        __u64 dsize;
30
        __u64 bsize;
31
        __u64 entry;
32
        __u64 text_start;       /* with a few additions that actually make sense */
33
        __u64 data_start;
34
        __u64 bss_start;
35
        __u32 gprmask, fprmask; /* bitmask of general & floating point regs used in binary */
36
        __u64 gpvalue;
37
};
38
 
39
struct scnhdr
40
{
41
        char    s_name[8];
42
        __u64   s_paddr;
43
        __u64   s_vaddr;
44
        __u64   s_size;
45
        __u64   s_scnptr;
46
        __u64   s_relptr;
47
        __u64   s_lnnoptr;
48
        __u16   s_nreloc;
49
        __u16   s_nlnno;
50
        __u32   s_flags;
51
};
52
 
53
struct exec
54
{
55
        /* OSF/1 "file" header */
56
        struct filehdr          fh;
57
        struct aouthdr          ah;
58
};
59
 
60
/*
61
 * Define's so that the kernel exec code can access the a.out header
62
 * fields...
63
 */
64
#define a_info          ah.info
65
#define a_text          ah.tsize
66
#define a_data          ah.dsize
67
#define a_bss           ah.bsize
68
#define a_entry         ah.entry
69
#define a_textstart     ah.text_start
70
#define a_datastart     ah.data_start
71
#define a_bssstart      ah.bss_start
72
#define a_gprmask       ah.gprmask
73
#define a_fprmask       ah.fprmask
74
#define a_gpvalue       ah.gpvalue
75
 
76
#define N_TXTADDR(x) ((x).a_textstart)
77
#define N_DATADDR(x) ((x).a_datastart)
78
#define N_BSSADDR(x) ((x).a_bssstart)
79
#define N_DRSIZE(x) 0
80
#define N_TRSIZE(x) 0
81
#define N_SYMSIZE(x) 0
82
 
83
#define AOUTHSZ         sizeof(struct aouthdr)
84
#define SCNHSZ          sizeof(struct scnhdr)
85
#define SCNROUND        16
86
 
87
#define N_TXTOFF(x) \
88
  ((long) N_MAGIC(x) == ZMAGIC ? 0 : \
89
   (sizeof(struct exec) + (x).fh.f_nscns*SCNHSZ + SCNROUND - 1) & ~(SCNROUND - 1))
90
 
91
#ifdef __KERNEL__
92
 
93
#define STACK_TOP ((current->personality & ADDR_MAX_32BIT) ? 0x100000000UL : \
94
      ((current->personality&ADDR_MAX_31BIT) ? 0x80000000UL : 0x00120000000UL))
95
 
96
#endif
97
 
98
#endif /* __A_OUT_GNU_H__ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.