1 |
/* GNU Hurd standard exec server, private declarations. |
/* GNU Hurd standard exec server, private declarations. |
2 |
Copyright (C) 1992,93,94,95,96,99,2000 Free Software Foundation, Inc. |
Copyright (C) 1992,93,94,95,96,99,2000,02 Free Software Foundation, Inc. |
3 |
Written by Roland McGrath. |
Written by Roland McGrath. |
4 |
|
|
5 |
This file is part of the GNU Hurd. |
This file is part of the GNU Hurd. |
33 |
#endif |
#endif |
34 |
|
|
35 |
#include <elf.h> |
#include <elf.h> |
36 |
|
#include <link.h> /* This gives us the ElfW macro. */ |
37 |
#include <fcntl.h> |
#include <fcntl.h> |
38 |
#include "exec_S.h" |
#include "exec_S.h" |
39 |
|
|
128 |
union /* Interpreter section giving name of file. */ |
union /* Interpreter section giving name of file. */ |
129 |
{ |
{ |
130 |
asection *section; |
asection *section; |
131 |
const Elf32_Phdr *phdr; |
const ElfW(Phdr) *phdr; |
132 |
} interp; |
} interp; |
133 |
memory_object_t filemap, cntlmap; |
memory_object_t filemap, cntlmap; |
134 |
struct shared_io *cntl; |
struct shared_io *cntl; |
150 |
/* Program header table read from the executable. |
/* Program header table read from the executable. |
151 |
After `check' this is a pointer into the mapping window. |
After `check' this is a pointer into the mapping window. |
152 |
By `load' it is local alloca'd storage. */ |
By `load' it is local alloca'd storage. */ |
153 |
Elf32_Phdr *phdr; |
ElfW(Phdr) *phdr; |
154 |
Elf32_Word phnum; /* Number of program header table elements. */ |
ElfW(Word) phnum; /* Number of program header table elements. */ |
155 |
int anywhere; /* Nonzero if image can go anywhere. */ |
int anywhere; /* Nonzero if image can go anywhere. */ |
156 |
vm_address_t loadbase; /* Actual mapping location. */ |
vm_address_t loadbase; /* Actual mapping location. */ |
157 |
} elf; |
} elf; |
158 |
} info; |
} info; |
159 |
}; |
}; |
160 |
|
|
161 |
error_t elf_machine_matches_host (Elf32_Half e_machine); |
error_t elf_machine_matches_host (ElfW(Half) e_machine); |
162 |
|
|
163 |
void finish (struct execdata *, int dealloc_file_port); |
void finish (struct execdata *, int dealloc_file_port); |
164 |
|
|