aboutsummaryrefslogtreecommitdiff
path: root/scripts/mod/modpost.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-05-08 09:10:44 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-05-08 09:10:44 -0700
commitbed7a560333d40269a886c4421d4c8f964a32177 (patch)
tree2350415cae5724d07862a84140d94522fca3f6ab /scripts/mod/modpost.h
parent75dff55af9a989293e9f9bacf049858f4262bc08 (diff)
parentfd5f0cd6b0cef59ba18e5ac13be5b2775fa6ec28 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: kbuild: Do not overwrite makefile as anohter user kbuild: drivers/video/logo/ - fix ident glitch kbuild: fix gen_initramfs_list.sh kbuild modpost - relax driver data name kbuild: removing .tmp_versions considered harmful kbuild: fix modpost segfault for 64bit mipsel kernel
Diffstat (limited to 'scripts/mod/modpost.h')
-rw-r--r--scripts/mod/modpost.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
index b14255c72a3..89b96c6d8ef 100644
--- a/scripts/mod/modpost.h
+++ b/scripts/mod/modpost.h
@@ -39,6 +39,25 @@
#define ELF_R_TYPE ELF64_R_TYPE
#endif
+/* The 64-bit MIPS ELF ABI uses an unusual reloc format. */
+typedef struct
+{
+ Elf32_Word r_sym; /* Symbol index */
+ unsigned char r_ssym; /* Special symbol for 2nd relocation */
+ unsigned char r_type3; /* 3rd relocation type */
+ unsigned char r_type2; /* 2nd relocation type */
+ unsigned char r_type1; /* 1st relocation type */
+} _Elf64_Mips_R_Info;
+
+typedef union
+{
+ Elf64_Xword r_info_number;
+ _Elf64_Mips_R_Info r_info_fields;
+} _Elf64_Mips_R_Info_union;
+
+#define ELF64_MIPS_R_SYM(i) \
+ ((__extension__ (_Elf64_Mips_R_Info_union)(i)).r_info_fields.r_sym)
+
#if KERNEL_ELFDATA != HOST_ELFDATA
static inline void __endian(const void *src, void *dest, unsigned int size)