Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
elf-fdpic.h
Go to the documentation of this file.
1
/* FDPIC ELF load map
2
*
3
* Copyright (C) 2003 Red Hat, Inc. All Rights Reserved.
4
* Written by David Howells (
[email protected]
)
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version
9
* 2 of the License, or (at your option) any later version.
10
*/
11
12
#ifndef _LINUX_ELF_FDPIC_H
13
#define _LINUX_ELF_FDPIC_H
14
15
#include <
uapi/linux/elf-fdpic.h
>
16
17
/*
18
* binfmt binary parameters structure
19
*/
20
struct
elf_fdpic_params
{
21
struct
elfhdr
hdr
;
/* ref copy of ELF header */
22
struct
elf_phdr
*
phdrs
;
/* ref copy of PT_PHDR table */
23
struct
elf32_fdpic_loadmap
*
loadmap
;
/* loadmap to be passed to userspace */
24
unsigned
long
elfhdr_addr
;
/* mapped ELF header user address */
25
unsigned
long
ph_addr
;
/* mapped PT_PHDR user address */
26
unsigned
long
map_addr
;
/* mapped loadmap user address */
27
unsigned
long
entry_addr
;
/* mapped entry user address */
28
unsigned
long
stack_size
;
/* stack size requested (PT_GNU_STACK) */
29
unsigned
long
dynamic_addr
;
/* mapped PT_DYNAMIC user address */
30
unsigned
long
load_addr
;
/* user address at which to map binary */
31
unsigned
long
flags
;
32
#define ELF_FDPIC_FLAG_ARRANGEMENT 0x0000000f
/* PT_LOAD arrangement flags */
33
#define ELF_FDPIC_FLAG_INDEPENDENT 0x00000000
/* PT_LOADs can be put anywhere */
34
#define ELF_FDPIC_FLAG_HONOURVADDR 0x00000001
/* PT_LOAD.vaddr must be honoured */
35
#define ELF_FDPIC_FLAG_CONSTDISP 0x00000002
/* PT_LOADs require constant
36
* displacement */
37
#define ELF_FDPIC_FLAG_CONTIGUOUS 0x00000003
/* PT_LOADs should be contiguous */
38
#define ELF_FDPIC_FLAG_EXEC_STACK 0x00000010
/* T if stack to be executable */
39
#define ELF_FDPIC_FLAG_NOEXEC_STACK 0x00000020
/* T if stack not to be executable */
40
#define ELF_FDPIC_FLAG_EXECUTABLE 0x00000040
/* T if this object is the executable */
41
#define ELF_FDPIC_FLAG_PRESENT 0x80000000
/* T if this object is present */
42
};
43
44
#ifdef CONFIG_MMU
45
extern
void
elf_fdpic_arch_lay_out_mm(
struct
elf_fdpic_params
*exec_params,
46
struct
elf_fdpic_params
*interp_params,
47
unsigned
long
*
start_stack
,
48
unsigned
long
*start_brk);
49
#endif
50
51
#endif
/* _LINUX_ELF_FDPIC_H */
Generated on Thu Jan 10 2013 14:51:21 for Linux Kernel by
1.8.2