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

Linux Cross Reference
Linux/include/asm-ia64/elf.h

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

  1 #ifndef _ASM_IA64_ELF_H
  2 #define _ASM_IA64_ELF_H
  3 
  4 /*
  5  * ELF archtecture specific definitions.
  6  *
  7  * Copyright (C) 1998, 1999 Hewlett-Packard Co
  8  * Copyright (C) 1998, 1999 David Mosberger-Tang <davidm@hpl.hp.com>
  9  */
 10 
 11 #include <asm/fpu.h>
 12 #include <asm/page.h>
 13 
 14 /*
 15  * This is used to ensure we don't load something for the wrong architecture.
 16  */
 17 #define elf_check_arch(x) ((x)->e_machine == EM_IA_64)
 18 
 19 /*
 20  * These are used to set parameters in the core dumps.
 21  */
 22 #define ELF_CLASS       ELFCLASS64
 23 #define ELF_DATA        ELFDATA2LSB
 24 #define ELF_ARCH        EM_IA_64
 25 
 26 #define USE_ELF_CORE_DUMP
 27 
 28 /* always align to 64KB to allow for future page sizes of up to 64KB: */
 29 #define ELF_EXEC_PAGESIZE       PAGE_SIZE
 30 
 31 /*
 32  * This is the location that an ET_DYN program is loaded if exec'ed.
 33  * Typical use of this is to invoke "./ld.so someprog" to test out a
 34  * new version of the loader.  We need to make sure that it is out of
 35  * the way of the program that it will "exec", and that there is
 36  * sufficient room for the brk.
 37  */
 38 #define ELF_ET_DYN_BASE         (TASK_UNMAPPED_BASE + 0x1000000)
 39 
 40 
 41 /*
 42  * We use (abuse?) this macro to insert the (empty) vm_area that is
 43  * used to map the register backing store.  I don't see any better
 44  * place to do this, but we should discuss this with Linus once we can
 45  * talk to him...
 46  */
 47 extern void ia64_init_addr_space (void);
 48 #define ELF_PLAT_INIT(_r)       ia64_init_addr_space()
 49 
 50 /* ELF register definitions.  This is needed for core dump support.  */
 51 
 52 /*
 53  * elf_gregset_t contains the application-level state in the following order:
 54  *      r0-r31
 55  *      NaT bits (for r0-r31; bit N == 1 iff rN is a NaT)
 56  *      predicate registers (p0-p63)
 57  *      b0-b7
 58  *      ip cfm psr
 59  *      ar.rsc ar.bsp ar.bspstore ar.rnat
 60  *      ar.ccv ar.unat ar.fpsr ar.pfs ar.lc ar.ec
 61  */
 62 #define ELF_NGREG       128     /* we really need just 72 but let's leave some headroom... */
 63 #define ELF_NFPREG      128     /* f0 and f1 could be omitted, but so what... */
 64 
 65 typedef unsigned long elf_greg_t;
 66 typedef elf_greg_t elf_gregset_t[ELF_NGREG];
 67 
 68 typedef struct ia64_fpreg elf_fpreg_t;
 69 typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
 70 
 71 struct pt_regs; /* forward declaration... */
 72 extern void ia64_elf_core_copy_regs (struct pt_regs *src, elf_gregset_t dst);
 73 #define ELF_CORE_COPY_REGS(_dest,_regs) ia64_elf_core_copy_regs(_regs, _dest);
 74 
 75 /* This macro yields a bitmask that programs can use to figure out
 76    what instruction set this CPU supports.  */
 77 #define ELF_HWCAP       0
 78 
 79 /* This macro yields a string that ld.so will use to load
 80    implementation specific libraries for optimization.  Not terribly
 81    relevant until we have real hardware to play with... */
 82 #define ELF_PLATFORM    0
 83 
 84 #ifdef __KERNEL__
 85 #define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX)
 86 #endif
 87 
 88 #endif /* _ASM_IA64_ELF_H */
 89 

~ [ 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.