at v2.6.25 68 lines 1.7 kB view raw
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 9#include "uml-config.h" 10#include "kern_constants.h" 11 12/* 13 * Stolen from linux/const.h, which can't be directly included since 14 * this is used in userspace code, which has no access to the kernel 15 * headers. Changed to be suitable for adding casts to the start, 16 * rather than "UL" to the end. 17 */ 18 19/* Some constant macros are used in both assembler and 20 * C code. Therefore we cannot annotate them always with 21 * 'UL' and other type specifiers unilaterally. We 22 * use the following macros to deal with this. 23 */ 24 25#ifdef __ASSEMBLY__ 26#define _AC(X, Y) (Y) 27#else 28#define __AC(X, Y) (X (Y)) 29#define _AC(X, Y) __AC(X, Y) 30#endif 31 32#define STUB_START _AC(, 0x100000) 33#define STUB_CODE _AC((unsigned long), STUB_START) 34#define STUB_DATA _AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE) 35#define STUB_END _AC((unsigned long), STUB_DATA + UM_KERN_PAGE_SIZE) 36 37#ifndef __ASSEMBLY__ 38 39#include "sysdep/ptrace.h" 40 41struct cpu_task { 42 int pid; 43 void *task; 44}; 45 46extern struct cpu_task cpu_tasks[]; 47 48extern unsigned long low_physmem; 49extern unsigned long high_physmem; 50extern unsigned long uml_physmem; 51extern unsigned long uml_reserved; 52extern unsigned long end_vm; 53extern unsigned long start_vm; 54extern unsigned long long highmem; 55 56extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end; 57extern unsigned long _unprotected_end; 58extern unsigned long brk_start; 59 60extern unsigned long host_task_size; 61 62extern int linux_main(int argc, char **argv); 63 64extern void (*sig_info[])(int, struct uml_pt_regs *); 65 66#endif 67 68#endif