~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/asm-alpha/a.out.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #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 \
 94   ((current->personality==PER_LINUX_32BIT) ? (0x80000000) : (0x00120000000UL))
 95 
 96 #endif
 97 
 98 #endif /* __A_OUT_GNU_H__ */
 99 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.