diff options
| author | Ada Christine <adachristine18@gmail.com> | 2021-12-17 16:06:06 +0000 |
|---|---|---|
| committer | Ada Christine <adachristine18@gmail.com> | 2021-12-17 16:06:06 +0000 |
| commit | d5f485a4f6801f58cbb2bc9d8e80c955c79ff044 (patch) | |
| tree | e49757ff0b076fe9f0088de92e5691d362e769a0 /api | |
| parent | ec1233b4fcd61a8d1eccbf030cede36e9848e06c (diff) | |
R_AMD64_RELATIVE relocations implemented for EFI shim
Diffstat (limited to 'api')
| -rw-r--r-- | api/elf/elf64.h | 22 | ||||
| -rw-r--r-- | api/loader/efi/shim.h | 2 |
2 files changed, 22 insertions, 2 deletions
diff --git a/api/elf/elf64.h b/api/elf/elf64.h index 4473d15..d975c35 100644 --- a/api/elf/elf64.h +++ b/api/elf/elf64.h @@ -18,6 +18,9 @@ typedef struct Elf64_Shdr Elf64_Shdr; typedef struct Elf64_Sym Elf64_Sym; typedef struct Elf64_Dyn Elf64_Dyn; +typedef struct Elf64_Rel Elf64_Rel; +typedef struct Elf64_Rela Elf64_Rela; + #define EM_X86_64 62 struct Elf64_Ehdr @@ -84,3 +87,22 @@ struct Elf64_Dyn }; }; +#define ELF64_R_SYM(info) ((info)>>32) +#define ELF64_R_TYPE(info) ((Elf64_Word)(info)) +#define ELF64_R_INFO(sym, type) (((Elf64_Xword)(sym)<<32)+(Elf64_Xword)(type)) + +#define R_AMD64_RELATIVE 8 + +struct Elf64_Rel +{ + Elf64_Addr r_offset; + Elf64_Xword r_info; +}; + +struct Elf64_Rela +{ + Elf64_Addr r_offset; + Elf64_Xword r_info; + Elf64_Sxword r_addend; +}; + diff --git a/api/loader/efi/shim.h b/api/loader/efi/shim.h index 3486c34..9421cc3 100644 --- a/api/loader/efi/shim.h +++ b/api/loader/efi/shim.h @@ -13,8 +13,6 @@ #define OsVendorMemoryType(t) ((EFI_MEMORY_TYPE)(0x80000000|t)) #define SystemMemoryType OsVendorMemoryType(1) -struct efi_loader_image; - struct efi_loader_image { CHAR16 *path; |
