home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-um / elf-x86_64.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  2.7 KB  |  96 lines

  1. /*
  2.  * Copyright 2003 PathScale, Inc.
  3.  *
  4.  * Licensed under the GPL
  5.  */
  6. #ifndef __UM_ELF_X86_64_H
  7. #define __UM_ELF_X86_64_H
  8.  
  9. #include <asm/user.h>
  10.  
  11. /* x86-64 relocation types, taken from asm-x86_64/elf.h */
  12. #define R_X86_64_NONE        0    /* No reloc */
  13. #define R_X86_64_64        1    /* Direct 64 bit  */
  14. #define R_X86_64_PC32        2    /* PC relative 32 bit signed */
  15. #define R_X86_64_GOT32        3    /* 32 bit GOT entry */
  16. #define R_X86_64_PLT32        4    /* 32 bit PLT address */
  17. #define R_X86_64_COPY        5    /* Copy symbol at runtime */
  18. #define R_X86_64_GLOB_DAT    6    /* Create GOT entry */
  19. #define R_X86_64_JUMP_SLOT    7    /* Create PLT entry */
  20. #define R_X86_64_RELATIVE    8    /* Adjust by program base */
  21. #define R_X86_64_GOTPCREL    9    /* 32 bit signed pc relative
  22.                        offset to GOT */
  23. #define R_X86_64_32        10    /* Direct 32 bit zero extended */
  24. #define R_X86_64_32S        11    /* Direct 32 bit sign extended */
  25. #define R_X86_64_16        12    /* Direct 16 bit zero extended */
  26. #define R_X86_64_PC16        13    /* 16 bit sign extended pc relative */
  27. #define R_X86_64_8        14    /* Direct 8 bit sign extended  */
  28. #define R_X86_64_PC8        15    /* 8 bit sign extended pc relative */
  29.  
  30. #define R_X86_64_NUM        16
  31.  
  32. typedef unsigned long elf_greg_t;
  33.  
  34. #define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
  35. typedef elf_greg_t elf_gregset_t[ELF_NGREG];
  36.  
  37. typedef struct { } elf_fpregset_t;
  38.  
  39. /*
  40.  * This is used to ensure we don't load something for the wrong architecture.
  41.  */
  42. #define elf_check_arch(x) \
  43.     ((x)->e_machine == EM_X86_64)
  44.  
  45. #define ELF_CLASS    ELFCLASS64
  46. #define ELF_DATA        ELFDATA2LSB
  47. #define ELF_ARCH        EM_X86_64
  48.  
  49. #define ELF_PLAT_INIT(regs, load_addr)    do { \
  50.     PT_REGS_RBX(regs) = 0; \
  51.     PT_REGS_RCX(regs) = 0; \
  52.     PT_REGS_RDX(regs) = 0; \
  53.     PT_REGS_RSI(regs) = 0; \
  54.     PT_REGS_RDI(regs) = 0; \
  55.     PT_REGS_RBP(regs) = 0; \
  56.     PT_REGS_RAX(regs) = 0; \
  57.     PT_REGS_R8(regs) = 0; \
  58.     PT_REGS_R9(regs) = 0; \
  59.     PT_REGS_R10(regs) = 0; \
  60.     PT_REGS_R11(regs) = 0; \
  61.     PT_REGS_R12(regs) = 0; \
  62.     PT_REGS_R13(regs) = 0; \
  63.     PT_REGS_R14(regs) = 0; \
  64.     PT_REGS_R15(regs) = 0; \
  65. } while (0)
  66.  
  67. #ifdef TIF_IA32 /* XXX */
  68. #error XXX, indeed
  69.         clear_thread_flag(TIF_IA32);
  70. #endif
  71.  
  72. #define USE_ELF_CORE_DUMP
  73. #define ELF_EXEC_PAGESIZE 4096
  74.  
  75. #define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3)
  76.  
  77. extern long elf_aux_hwcap;
  78. #define ELF_HWCAP (elf_aux_hwcap)
  79.  
  80. #define ELF_PLATFORM "x86_64"
  81.  
  82. #define SET_PERSONALITY(ex, ibcs2) do ; while(0)
  83.  
  84. #endif
  85.  
  86. /*
  87.  * Overrides for Emacs so that we follow Linus's tabbing style.
  88.  * Emacs will notice this stuff at the end of the file and automatically
  89.  * adjust the settings for this buffer only.  This must remain at the end
  90.  * of the file.
  91.  * ---------------------------------------------------------------------------
  92.  * Local variables:
  93.  * c-file-style: "linux"
  94.  * End:
  95.  */
  96.