mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 00:21:17 +00:00
Improved modules loader, more robust and works on 64bit kernels.
Signed-off-by: Thiemo Seufer <ths@networkno.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
7ee8798f37
commit
4e6a05fe5f
5 changed files with 368 additions and 538 deletions
|
@ -14,15 +14,23 @@ 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. */
|
||||
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;
|
||||
|
||||
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
|
||||
|
@ -30,6 +38,13 @@ typedef struct
|
|||
#define Elf_Shdr Elf32_Shdr
|
||||
#define Elf_Sym Elf32_Sym
|
||||
#define Elf_Ehdr Elf32_Ehdr
|
||||
#define Elf_Addr Elf32_Addr
|
||||
|
||||
#define Elf_Mips_Rel Elf32_Rel
|
||||
#define Elf_Mips_Rela Elf32_Rela
|
||||
|
||||
#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
|
||||
|
||||
|
@ -38,6 +53,13 @@ typedef struct
|
|||
#define Elf_Shdr Elf64_Shdr
|
||||
#define Elf_Sym Elf64_Sym
|
||||
#define Elf_Ehdr Elf64_Ehdr
|
||||
#define Elf_Addr Elf64_Addr
|
||||
|
||||
#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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue