History

binfmt_elf_fdpic: support 64-bit systems

The binfmt_flat_fdpic code has a number of 32-bit specific data structures associated with it. Extend it to be able to support and be used on 64-bit systems as well. The new code defines a number of key 64-bit variants of the core elf-fdpic data structures - along side the existing 32-bit sized ones. A common set of generic named structures are defined to be either the 32-bit or 64-bit ones as required at compile time. This is a similar technique to that used in the ELF binfmt loader. For example: elf_fdpic_loadseg is either elf32_fdpic_loadseg or elf64_fdpic_loadseg elf_fdpic_loadmap is either elf32_fdpic_loadmap or elf64_fdpic_loadmap the choice based on ELFCLASS32 or ELFCLASS64.

Greg Ungerer committed 3 years ago

Commit b922bf01 parent 06c2afb3 files · +47 −20Browse files

Showing the changes to include/uapi (1 of 3 files). Show all

Unified · Split

include/uapi/linux/elf-fdpic.h+15−0
@@ -32,4 +32,19 @@ struct elf32_fdpic_loadmap { · 31 unmodified lines
3232
3333 #define ELF32_FDPIC_LOADMAP_VERSION 0x0000
3434
35+/* segment mappings for ELF FDPIC libraries/executables/interpreters */
36+struct elf64_fdpic_loadseg {
37+ Elf64_Addr addr; /* core address to which mapped */
38+ Elf64_Addr p_vaddr; /* VMA recorded in file */
39+ Elf64_Word p_memsz; /* allocation size recorded in file */
40+};
41+
42+struct elf64_fdpic_loadmap {
43+ Elf64_Half version; /* version of these structures, just in case... */
44+ Elf64_Half nsegs; /* number of segments */
45+ struct elf64_fdpic_loadseg segs[];
46+};
47+
48+#define ELF64_FDPIC_LOADMAP_VERSION 0x0000
49+
3550 #endif /* _UAPI_LINUX_ELF_FDPIC_H */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t