Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / include / asm-mips / module.h
index 90ee24a..3e3ba05 100644 (file)
@@ -14,30 +14,60 @@ struct mod_arch_specific {
 
 typedef uint8_t Elf64_Byte;            /* Type for a 8-bit quantity.  */
 
-typedef struct
-{
-  Elf64_Addr r_offset;                 /* Address of relocation.  */
-  Elf64_Word r_sym;                    /* Symbol index.  */
-  Elf64_Byte r_ssym;                   /* Special symbol.  */
-  Elf64_Byte r_type3;                  /* Third relocation.  */
-  Elf64_Byte r_type2;                  /* Second relocation.  */
-  Elf64_Byte r_type;                   /* First relocation.  */
-  Elf64_Sxword r_addend;               /* Addend.  */
-} Elf64_Mips_Rela;
+typedef struct {
+       Elf64_Addr r_offset;                    /* Address of relocation.  */
+       Elf64_Word r_sym;                       /* Symbol index.  */
+       Elf64_Byte r_ssym;                      /* Special symbol.  */
+       Elf64_Byte r_type3;                     /* Third relocation.  */
+       Elf64_Byte r_type2;                     /* Second relocation.  */
+       Elf64_Byte r_type;                      /* First relocation.  */
+} Elf64_Mips_Rel;
 
-#ifdef CONFIG_MIPS32
+typedef struct {
+       Elf64_Addr r_offset;                    /* Address of relocation.  */
+       Elf64_Word r_sym;                       /* Symbol index.  */
+       Elf64_Byte r_ssym;                      /* Special symbol.  */
+       Elf64_Byte r_type3;                     /* Third relocation.  */
+       Elf64_Byte r_type2;                     /* Second relocation.  */
+       Elf64_Byte r_type;                      /* First relocation.  */
+       Elf64_Sxword r_addend;                  /* Addend.  */
+} Elf64_Mips_Rela;
 
+#ifdef CONFIG_32BIT
+#define MODULES_ARE_ELF32
 #define Elf_Shdr       Elf32_Shdr
 #define Elf_Sym                Elf32_Sym
 #define Elf_Ehdr       Elf32_Ehdr
+#define Elf_Addr       Elf32_Addr
+#define Elf_Rel                Elf32_Rel
+#define Elf_Rela       Elf32_Rela
+#define ELF_R_TYPE(X)  ELF32_R_TYPE(X)
+#define ELF_R_SYM(X)   ELF32_R_SYM(X)
 
-#endif
+#define Elf_Mips_Rel   Elf32_Rel
+#define Elf_Mips_Rela  Elf32_Rela
 
-#ifdef CONFIG_MIPS64
+#define ELF_MIPS_R_SYM(rel) ELF32_R_SYM(rel.r_info)
+#define ELF_MIPS_R_TYPE(rel) ELF32_R_TYPE(rel.r_info)
 
+#endif
+
+#ifdef CONFIG_64BIT
+#define MODULES_ARE_ELF64
 #define Elf_Shdr       Elf64_Shdr
 #define Elf_Sym                Elf64_Sym
 #define Elf_Ehdr       Elf64_Ehdr
+#define Elf_Addr       Elf64_Addr
+#define Elf_Rel                Elf64_Rel
+#define Elf_Rela       Elf64_Rela
+#define ELF_R_TYPE(X)  ELF64_R_TYPE(X)
+#define ELF_R_SYM(X)   ELF64_R_SYM(X)
+
+#define Elf_Mips_Rel   Elf64_Mips_Rel
+#define Elf_Mips_Rela  Elf64_Mips_Rela
+
+#define ELF_MIPS_R_SYM(rel) (rel.r_sym)
+#define ELF_MIPS_R_TYPE(rel) (rel.r_type)
 
 #endif
 
@@ -53,4 +83,54 @@ search_module_dbetables(unsigned long addr)
 }
 #endif
 
+#ifdef CONFIG_CPU_MIPS32_R1
+#define MODULE_PROC_FAMILY "MIPS32_R1 "
+#elif defined CONFIG_CPU_MIPS32_R2
+#define MODULE_PROC_FAMILY "MIPS32_R2 "
+#elif defined CONFIG_CPU_MIPS64_R1
+#define MODULE_PROC_FAMILY "MIPS64_R1 "
+#elif defined CONFIG_CPU_MIPS64_R2
+#define MODULE_PROC_FAMILY "MIPS64_R2 "
+#elif defined CONFIG_CPU_R3000
+#define MODULE_PROC_FAMILY "R3000 "
+#elif defined CONFIG_CPU_TX39XX
+#define MODULE_PROC_FAMILY "TX39XX "
+#elif defined CONFIG_CPU_VR41XX
+#define MODULE_PROC_FAMILY "VR41XX "
+#elif defined CONFIG_CPU_R4300
+#define MODULE_PROC_FAMILY "R4300 "
+#elif defined CONFIG_CPU_R4X00
+#define MODULE_PROC_FAMILY "R4X00 "
+#elif defined CONFIG_CPU_TX49XX
+#define MODULE_PROC_FAMILY "TX49XX "
+#elif defined CONFIG_CPU_R5000
+#define MODULE_PROC_FAMILY "R5000 "
+#elif defined CONFIG_CPU_R5432
+#define MODULE_PROC_FAMILY "R5432 "
+#elif defined CONFIG_CPU_R6000
+#define MODULE_PROC_FAMILY "R6000 "
+#elif defined CONFIG_CPU_NEVADA
+#define MODULE_PROC_FAMILY "NEVADA "
+#elif defined CONFIG_CPU_R8000
+#define MODULE_PROC_FAMILY "R8000 "
+#elif defined CONFIG_CPU_R10000
+#define MODULE_PROC_FAMILY "R10000 "
+#elif defined CONFIG_CPU_RM7000
+#define MODULE_PROC_FAMILY "RM7000 "
+#elif defined CONFIG_CPU_RM9000
+#define MODULE_PROC_FAMILY "RM9000 "
+#elif defined CONFIG_CPU_SB1
+#define MODULE_PROC_FAMILY "SB1 "
+#else
+#error MODULE_PROC_FAMILY undefined for your processor configuration
+#endif
+
+#ifdef CONFIG_32BIT
+#define MODULE_KERNEL_TYPE "32BIT "
+#elif defined CONFIG_64BIT
+#define MODULE_KERNEL_TYPE "64BIT "
+#endif
+
+#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_KERNEL_TYPE
+
 #endif /* _ASM_MODULE_H */