• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This header was generated from the Linux kernel headers by update_headers.py,
3  * to provide necessary information from kernel to userspace, such as constants,
4  * structures, and macros, and thus, contains no copyrightable information.
5  */
6 #ifndef _UAPI__A_OUT_GNU_H__
7 #define _UAPI__A_OUT_GNU_H__
8 #define __GNU_EXEC_MACROS__
9 #ifndef __STRUCT_EXEC_OVERRIDE__
10 #include <asm/a.out.h>
11 #endif
12 #ifndef __ASSEMBLY__
13 enum machine_type {
14 #if defined (M_OLDSUN2)
15   M__OLDSUN2 = M_OLDSUN2,
16 #else
17   M_OLDSUN2 = 0,
18 #endif
19 #if defined (M_68010)
20   M__68010 = M_68010,
21 #else
22   M_68010 = 1,
23 #endif
24 #if defined (M_68020)
25   M__68020 = M_68020,
26 #else
27   M_68020 = 2,
28 #endif
29 #if defined (M_SPARC)
30   M__SPARC = M_SPARC,
31 #else
32   M_SPARC = 3,
33 #endif
34 
35   M_386 = 100,
36   M_MIPS1 = 151,
37   M_MIPS2 = 152
38 };
39 #if !defined (N_MAGIC)
40 #define N_MAGIC(exec) ((exec).a_info & 0xffff)
41 #endif
42 #define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))
43 #define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)
44 #define N_SET_INFO(exec, magic, type, flags) \
45 	((exec).a_info = ((magic) & 0xffff) \
46 	 | (((int)(type) & 0xff) << 16) \
47 	 | (((flags) & 0xff) << 24))
48 #define N_SET_MAGIC(exec, magic) \
49 	((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff)))
50 #define N_SET_MACHTYPE(exec, machtype) \
51 	((exec).a_info = \
52 	 ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))
53 #define N_SET_FLAGS(exec, flags) \
54 	((exec).a_info = \
55 	 ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))
56 #define OMAGIC 0407
57 #define NMAGIC 0410
58 #define ZMAGIC 0413
59 #define QMAGIC 0314
60 #define CMAGIC 0421
61 #if !defined (N_BADMAG)
62 #define N_BADMAG(x)	  (N_MAGIC(x) != OMAGIC		\
63 			&& N_MAGIC(x) != NMAGIC		\
64   			&& N_MAGIC(x) != ZMAGIC \
65 		        && N_MAGIC(x) != QMAGIC)
66 #endif
67 #define _N_HDROFF(x) (1024 - sizeof (struct exec))
68 #if !defined (N_TXTOFF)
69 #define N_TXTOFF(x) \
70  (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : \
71   (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))
72 #endif
73 #if !defined (N_DATOFF)
74 #define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
75 #endif
76 #if !defined (N_TRELOFF)
77 #define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
78 #endif
79 #if !defined (N_DRELOFF)
80 #define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x))
81 #endif
82 #if !defined (N_SYMOFF)
83 #define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x))
84 #endif
85 #if !defined (N_STROFF)
86 #define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x))
87 #endif
88 #if !defined (N_TXTADDR)
89 #define N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? PAGE_SIZE : 0)
90 #endif
91 #ifndef __KERNEL__
92 #include <unistd.h>
93 #endif
94 #if defined(__i386__) || defined(__mc68000__)
95 #define SEGMENT_SIZE	1024
96 #else
97 #ifndef SEGMENT_SIZE
98 #ifndef __KERNEL__
99 #define SEGMENT_SIZE   getpagesize()
100 #endif
101 #endif
102 #endif
103 #define _N_SEGMENT_ROUND(x) ALIGN(x, SEGMENT_SIZE)
104 #define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text)
105 #ifndef N_DATADDR
106 #define N_DATADDR(x) \
107     (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) \
108      : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
109 #endif
110 #if !defined (N_BSSADDR)
111 #define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)
112 #endif
113 
114 #if !defined (N_NLIST_DECLARED)
115 struct nlist {
116   union {
117     char *n_name;
118     struct nlist *n_next;
119     long n_strx;
120   } n_un;
121   unsigned char n_type;
122   char n_other;
123   short n_desc;
124   unsigned long n_value;
125 };
126 #endif
127 #if !defined (N_UNDF)
128 #define N_UNDF 0
129 #endif
130 #if !defined (N_ABS)
131 #define N_ABS 2
132 #endif
133 #if !defined (N_TEXT)
134 #define N_TEXT 4
135 #endif
136 #if !defined (N_DATA)
137 #define N_DATA 6
138 #endif
139 #if !defined (N_BSS)
140 #define N_BSS 8
141 #endif
142 #if !defined (N_FN)
143 #define N_FN 15
144 #endif
145 #if !defined (N_EXT)
146 #define N_EXT 1
147 #endif
148 #if !defined (N_TYPE)
149 #define N_TYPE 036
150 #endif
151 #if !defined (N_STAB)
152 #define N_STAB 0340
153 #endif
154 #define N_INDR 0xa
155 #define	N_SETA	0x14
156 #define	N_SETT	0x16
157 #define	N_SETD	0x18
158 #define	N_SETB	0x1A
159 #define N_SETV	0x1C
160 
161 #if !defined (N_RELOCATION_INFO_DECLARED)
162 struct relocation_info
163 {
164 
165   int r_address;
166 
167   unsigned int r_symbolnum:24;
168 
169   unsigned int r_pcrel:1;
170 
171   unsigned int r_length:2;
172 
173   unsigned int r_extern:1;
174 
175   unsigned int r_pad:4;
176 };
177 #endif
178 #endif
179 #endif
180