blob: a5cdf953e04a964569e9ea6f2912e9a9b9d6369a [file] [log] [blame]
Jeff Dike4ff83ce2007-05-06 14:51:08 -07001/*
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
Jeff Dike54ae36f2007-10-16 01:27:33 -07009#include "uml-config.h"
10#include "kern_constants.h"
11
12/*
13 * Assembly doesn't want any casting, but C does, so define these
14 * without casts here, and define new symbols with casts inside the C
15 * section.
16 */
17#define ASM_STUB_CODE (UML_CONFIG_TOP_ADDR - 2 * UM_KERN_PAGE_SIZE)
18#define ASM_STUB_DATA (UML_CONFIG_TOP_ADDR - UM_KERN_PAGE_SIZE)
19#define ASM_STUB_START ASM_STUB_CODE
20
21/*
22 * This file is included by the assembly stubs, which just want the
23 * definitions above.
24 */
25#ifndef __ASSEMBLY__
26
27#define STUB_CODE ((unsigned long) ASM_STUB_CODE)
28#define STUB_DATA ((unsigned long) ASM_STUB_DATA)
29#define STUB_START ((unsigned long) ASM_STUB_START)
30
Jeff Dike4ff83ce2007-05-06 14:51:08 -070031#include "sysdep/ptrace.h"
32
33struct cpu_task {
34 int pid;
35 void *task;
36};
37
38extern struct cpu_task cpu_tasks[];
39
40extern unsigned long low_physmem;
41extern unsigned long high_physmem;
42extern unsigned long uml_physmem;
43extern unsigned long uml_reserved;
44extern unsigned long end_vm;
45extern unsigned long start_vm;
46extern unsigned long long highmem;
47
48extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end;
49extern unsigned long _unprotected_end;
50extern unsigned long brk_start;
51
52extern int linux_main(int argc, char **argv);
Jeff Dike4ff83ce2007-05-06 14:51:08 -070053
Jeff Dike77bf4402007-10-16 01:26:58 -070054extern void (*sig_info[])(int, struct uml_pt_regs *);
Jeff Dike4ff83ce2007-05-06 14:51:08 -070055
56#endif
Jeff Dike54ae36f2007-10-16 01:27:33 -070057
58#endif