]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/bootstrap_custom/server/src/exec.h
Some minor fixes.
[l4.git] / l4 / pkg / bootstrap_custom / server / src / exec.h
1 /*
2  * (c) 2008-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
3  *               Alexander Warg <warg@os.inf.tu-dresden.de>,
4  *               Frank Mehnert <fm3@os.inf.tu-dresden.de>
5  *     economic rights: Technische Universität Dresden (Germany)
6  *
7  * This file is part of TUD:OS and distributed under the terms of the
8  * GNU General Public License 2.
9  * Please see the COPYING-GPL-2 file for details.
10  */
11 #ifndef EXEC_H
12 #define EXEC_H
13
14 #include "types.h"
15 #include <l4/sys/compiler.h>
16 #include <l4/util/mb_info.h>
17
18 typedef int exec_sectype_t;
19
20 #define EXEC_SECTYPE_READ               ((exec_sectype_t)0x000001)
21 #define EXEC_SECTYPE_WRITE              ((exec_sectype_t)0x000002)
22 #define EXEC_SECTYPE_EXECUTE            ((exec_sectype_t)0x000004)
23 #define EXEC_SECTYPE_ALLOC              ((exec_sectype_t)0x000100)
24 #define EXEC_SECTYPE_LOAD               ((exec_sectype_t)0x000200)
25
26
27 typedef struct
28 {
29   void *mod_start;
30   l4util_mb_mod_t *mod;
31   unsigned type;
32   l4_addr_t begin;      /* program begin */
33   l4_addr_t end;        /* program end */
34 } exec_task_t;
35
36
37 typedef int exec_handler_func_t(void *handle,
38                                   l4_addr_t file_ofs, l4_size_t file_size,
39                                   l4_addr_t mem_addr, l4_addr_t v_addr,
40                                   l4_size_t mem_size,
41                                   exec_sectype_t section_type);
42
43 EXTERN_C_BEGIN
44
45 int exec_load_elf(exec_handler_func_t *handler_exec,
46                   void *handle, const char **error_msg, l4_addr_t *entry);
47
48 EXTERN_C_END
49
50 #endif