]>
Commit | Line | Data |
---|---|---|
4ff83ce1 JD |
1 | /* |
2 | * Copyright (C) 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | |
3 | * Licensed under the GPL | |
4 | */ | |
5 | ||
6 | #ifndef __START_H__ | |
7 | #define __START_H__ | |
8 | ||
9e636452 | 9 | #include <generated/asm-offsets.h> |
54ae36f2 JD |
10 | |
11 | /* | |
4bdf8bc4 JD |
12 | * Stolen from linux/const.h, which can't be directly included since |
13 | * this is used in userspace code, which has no access to the kernel | |
14 | * headers. Changed to be suitable for adding casts to the start, | |
15 | * rather than "UL" to the end. | |
54ae36f2 | 16 | */ |
54ae36f2 | 17 | |
4bdf8bc4 JD |
18 | /* Some constant macros are used in both assembler and |
19 | * C code. Therefore we cannot annotate them always with | |
20 | * 'UL' and other type specifiers unilaterally. We | |
21 | * use the following macros to deal with this. | |
54ae36f2 | 22 | */ |
54ae36f2 | 23 | |
4bdf8bc4 | 24 | #ifdef __ASSEMBLY__ |
a7dfa940 | 25 | #define _UML_AC(X, Y) (Y) |
4bdf8bc4 | 26 | #else |
a7dfa940 CG |
27 | #define __UML_AC(X, Y) (X(Y)) |
28 | #define _UML_AC(X, Y) __UML_AC(X, Y) | |
4bdf8bc4 JD |
29 | #endif |
30 | ||
a7dfa940 CG |
31 | #define STUB_START _UML_AC(, 0x100000) |
32 | #define STUB_CODE _UML_AC((unsigned long), STUB_START) | |
33 | #define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE) | |
34 | #define STUB_END _UML_AC((unsigned long), STUB_DATA + UM_KERN_PAGE_SIZE) | |
4bdf8bc4 JD |
35 | |
36 | #ifndef __ASSEMBLY__ | |
54ae36f2 | 37 | |
37185b33 | 38 | #include <sysdep/ptrace.h> |
4ff83ce1 JD |
39 | |
40 | struct cpu_task { | |
41 | int pid; | |
42 | void *task; | |
43 | }; | |
44 | ||
45 | extern struct cpu_task cpu_tasks[]; | |
46 | ||
47 | extern unsigned long low_physmem; | |
48 | extern unsigned long high_physmem; | |
49 | extern unsigned long uml_physmem; | |
50 | extern unsigned long uml_reserved; | |
51 | extern unsigned long end_vm; | |
52 | extern unsigned long start_vm; | |
53 | extern unsigned long long highmem; | |
54 | ||
55 | extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end; | |
56 | extern unsigned long _unprotected_end; | |
57 | extern unsigned long brk_start; | |
58 | ||
536788fe JD |
59 | extern unsigned long host_task_size; |
60 | ||
4ff83ce1 | 61 | extern int linux_main(int argc, char **argv); |
4ff83ce1 | 62 | |
d3c1cfcd MP |
63 | struct siginfo; |
64 | extern void (*sig_info[])(int, struct siginfo *si, struct uml_pt_regs *); | |
4ff83ce1 JD |
65 | |
66 | #endif | |
54ae36f2 JD |
67 | |
68 | #endif |