| /* |
| * Copyright (C) 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) |
| * Licensed under the GPL |
| */ |
| |
| #ifndef __START_H__ |
| #define __START_H__ |
| |
| #include "uml-config.h" |
| #include "kern_constants.h" |
| |
| /* |
| * Assembly doesn't want any casting, but C does, so define these |
| * without casts here, and define new symbols with casts inside the C |
| * section. |
| */ |
| #define ASM_STUB_CODE (UML_CONFIG_TOP_ADDR - 2 * UM_KERN_PAGE_SIZE) |
| #define ASM_STUB_DATA (UML_CONFIG_TOP_ADDR - UM_KERN_PAGE_SIZE) |
| #define ASM_STUB_START ASM_STUB_CODE |
| |
| /* |
| * This file is included by the assembly stubs, which just want the |
| * definitions above. |
| */ |
| #ifndef __ASSEMBLY__ |
| |
| #define STUB_CODE ((unsigned long) ASM_STUB_CODE) |
| #define STUB_DATA ((unsigned long) ASM_STUB_DATA) |
| #define STUB_START ((unsigned long) ASM_STUB_START) |
| |
| #include "sysdep/ptrace.h" |
| |
| struct cpu_task { |
| int pid; |
| void *task; |
| }; |
| |
| extern struct cpu_task cpu_tasks[]; |
| |
| extern unsigned long low_physmem; |
| extern unsigned long high_physmem; |
| extern unsigned long uml_physmem; |
| extern unsigned long uml_reserved; |
| extern unsigned long end_vm; |
| extern unsigned long start_vm; |
| extern unsigned long long highmem; |
| |
| extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end; |
| extern unsigned long _unprotected_end; |
| extern unsigned long brk_start; |
| |
| extern int linux_main(int argc, char **argv); |
| |
| extern void (*sig_info[])(int, struct uml_pt_regs *); |
| |
| #endif |
| |
| #endif |