1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2*f80ad8b4SAndroid Build Coastguard Worker /* elf-fdpic.h: FDPIC ELF load map 3*f80ad8b4SAndroid Build Coastguard Worker * 4*f80ad8b4SAndroid Build Coastguard Worker * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. 5*f80ad8b4SAndroid Build Coastguard Worker * Written by David Howells ([email protected]) 6*f80ad8b4SAndroid Build Coastguard Worker * 7*f80ad8b4SAndroid Build Coastguard Worker * This program is free software; you can redistribute it and/or 8*f80ad8b4SAndroid Build Coastguard Worker * modify it under the terms of the GNU General Public License 9*f80ad8b4SAndroid Build Coastguard Worker * as published by the Free Software Foundation; either version 10*f80ad8b4SAndroid Build Coastguard Worker * 2 of the License, or (at your option) any later version. 11*f80ad8b4SAndroid Build Coastguard Worker */ 12*f80ad8b4SAndroid Build Coastguard Worker 13*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_ELF_FDPIC_H 14*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LINUX_ELF_FDPIC_H 15*f80ad8b4SAndroid Build Coastguard Worker 16*f80ad8b4SAndroid Build Coastguard Worker #include <linux/elf.h> 17*f80ad8b4SAndroid Build Coastguard Worker 18*f80ad8b4SAndroid Build Coastguard Worker #define PT_GNU_STACK (PT_LOOS + 0x474e551) 19*f80ad8b4SAndroid Build Coastguard Worker 20*f80ad8b4SAndroid Build Coastguard Worker /* segment mappings for ELF FDPIC libraries/executables/interpreters */ 21*f80ad8b4SAndroid Build Coastguard Worker struct elf32_fdpic_loadseg { 22*f80ad8b4SAndroid Build Coastguard Worker Elf32_Addr addr; /* core address to which mapped */ 23*f80ad8b4SAndroid Build Coastguard Worker Elf32_Addr p_vaddr; /* VMA recorded in file */ 24*f80ad8b4SAndroid Build Coastguard Worker Elf32_Word p_memsz; /* allocation size recorded in file */ 25*f80ad8b4SAndroid Build Coastguard Worker }; 26*f80ad8b4SAndroid Build Coastguard Worker 27*f80ad8b4SAndroid Build Coastguard Worker struct elf32_fdpic_loadmap { 28*f80ad8b4SAndroid Build Coastguard Worker Elf32_Half version; /* version of these structures, just in case... */ 29*f80ad8b4SAndroid Build Coastguard Worker Elf32_Half nsegs; /* number of segments */ 30*f80ad8b4SAndroid Build Coastguard Worker struct elf32_fdpic_loadseg segs[]; 31*f80ad8b4SAndroid Build Coastguard Worker }; 32*f80ad8b4SAndroid Build Coastguard Worker 33*f80ad8b4SAndroid Build Coastguard Worker #define ELF32_FDPIC_LOADMAP_VERSION 0x0000 34*f80ad8b4SAndroid Build Coastguard Worker 35*f80ad8b4SAndroid Build Coastguard Worker /* segment mappings for ELF FDPIC libraries/executables/interpreters */ 36*f80ad8b4SAndroid Build Coastguard Worker struct elf64_fdpic_loadseg { 37*f80ad8b4SAndroid Build Coastguard Worker Elf64_Addr addr; /* core address to which mapped */ 38*f80ad8b4SAndroid Build Coastguard Worker Elf64_Addr p_vaddr; /* VMA recorded in file */ 39*f80ad8b4SAndroid Build Coastguard Worker Elf64_Word p_memsz; /* allocation size recorded in file */ 40*f80ad8b4SAndroid Build Coastguard Worker }; 41*f80ad8b4SAndroid Build Coastguard Worker 42*f80ad8b4SAndroid Build Coastguard Worker struct elf64_fdpic_loadmap { 43*f80ad8b4SAndroid Build Coastguard Worker Elf64_Half version; /* version of these structures, just in case... */ 44*f80ad8b4SAndroid Build Coastguard Worker Elf64_Half nsegs; /* number of segments */ 45*f80ad8b4SAndroid Build Coastguard Worker struct elf64_fdpic_loadseg segs[]; 46*f80ad8b4SAndroid Build Coastguard Worker }; 47*f80ad8b4SAndroid Build Coastguard Worker 48*f80ad8b4SAndroid Build Coastguard Worker #define ELF64_FDPIC_LOADMAP_VERSION 0x0000 49*f80ad8b4SAndroid Build Coastguard Worker 50*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_LINUX_ELF_FDPIC_H */ 51