xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/elf-fdpic.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
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