a.out.h revision 11cd02dfb91661c65134cac258cf5924270e9d2
111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __A_OUT_GNU_H__ 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __A_OUT_GNU_H__ 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __GNU_EXEC_MACROS__ 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __STRUCT_EXEC_OVERRIDE__ 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/a.out.h> 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum machine_type { 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef M_OLDSUN2 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert M__OLDSUN2 = M_OLDSUN2, 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert M_OLDSUN2 = 0, 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef M_68010 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert M__68010 = M_68010, 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert M_68010 = 1, 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef M_68020 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert M__68020 = M_68020, 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert M_68020 = 2, 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef M_SPARC 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert M__SPARC = M_SPARC, 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert M_SPARC = 3, 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert M_386 = 100, 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert M_MIPS1 = 151, 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert M_MIPS2 = 152 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_MAGIC 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_MAGIC(exec) ((exec).a_info & 0xffff) 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff)) 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff) 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_SET_INFO(exec, magic, type, flags) ((exec).a_info = ((magic) & 0xffff) | (((int)(type) & 0xff) << 16) | (((flags) & 0xff) << 24)) 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_SET_MAGIC(exec, magic) ((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff))) 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_SET_MACHTYPE(exec, machtype) ((exec).a_info = ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16)) 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_SET_FLAGS(exec, flags) ((exec).a_info = ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24)) 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define OMAGIC 0407 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define NMAGIC 0410 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ZMAGIC 0413 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define QMAGIC 0314 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CMAGIC 0421 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_BADMAG 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC && N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC) 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _N_HDROFF(x) (1024 - sizeof (struct exec)) 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_TXTOFF 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_TXTOFF(x) (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec))) 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_DATOFF 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text) 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_TRELOFF 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data) 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_DRELOFF 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x)) 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_SYMOFF 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x)) 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_STROFF 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x)) 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_TXTADDR 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? PAGE_SIZE : 0) 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined(vax) || defined(hp300) || defined(pyr) 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEGMENT_SIZE page_size 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef sony 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEGMENT_SIZE 0x2000 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef is68k 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEGMENT_SIZE 0x20000 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined(m68k) && defined(PORTAR) 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PAGE_SIZE 0x400 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEGMENT_SIZE PAGE_SIZE 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef linux 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/page.h> 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined(__i386__) || defined(__mc68000__) 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEGMENT_SIZE 1024 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef SEGMENT_SIZE 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEGMENT_SIZE PAGE_SIZE 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _N_SEGMENT_ROUND(x) ALIGN(x, SEGMENT_SIZE) 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text) 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_DATADDR 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_DATADDR(x) (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x)))) 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_BSSADDR 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data) 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_NLIST_DECLARED 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct nlist { 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char *n_name; 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct nlist *n_next; 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long n_strx; 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } n_un; 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char n_type; 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char n_other; 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short n_desc; 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long n_value; 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_UNDF 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_UNDF 0 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_ABS 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_ABS 2 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_TEXT 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_TEXT 4 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_DATA 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_DATA 6 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_BSS 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_BSS 8 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_FN 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_FN 15 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_EXT 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_EXT 1 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_TYPE 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_TYPE 036 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_STAB 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_STAB 0340 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_INDR 0xa 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_SETA 0x14 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_SETT 0x16 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_SETD 0x18 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_SETB 0x1A 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define N_SETV 0x1C 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef N_RELOCATION_INFO_DECLARED 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct relocation_info 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int r_address; 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int r_symbolnum:24; 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int r_pcrel:1; 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int r_length:2; 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int r_extern:1; 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef NS32K 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned r_bsr:1; 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned r_disp:1; 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned r_pad:2; 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int r_pad:4; 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 221