Path: blob/master/arch/um/include/shared/as-layout.h
10819 views
/*1* Copyright (C) 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)2* Licensed under the GPL3*/45#ifndef __START_H__6#define __START_H__78#include "kern_constants.h"910/*11* Stolen from linux/const.h, which can't be directly included since12* this is used in userspace code, which has no access to the kernel13* headers. Changed to be suitable for adding casts to the start,14* rather than "UL" to the end.15*/1617/* Some constant macros are used in both assembler and18* C code. Therefore we cannot annotate them always with19* 'UL' and other type specifiers unilaterally. We20* use the following macros to deal with this.21*/2223#ifdef __ASSEMBLY__24#define _UML_AC(X, Y) (Y)25#else26#define __UML_AC(X, Y) (X(Y))27#define _UML_AC(X, Y) __UML_AC(X, Y)28#endif2930#define STUB_START _UML_AC(, 0x100000)31#define STUB_CODE _UML_AC((unsigned long), STUB_START)32#define STUB_DATA _UML_AC((unsigned long), STUB_CODE + UM_KERN_PAGE_SIZE)33#define STUB_END _UML_AC((unsigned long), STUB_DATA + UM_KERN_PAGE_SIZE)3435#ifndef __ASSEMBLY__3637#include "sysdep/ptrace.h"3839struct cpu_task {40int pid;41void *task;42};4344extern struct cpu_task cpu_tasks[];4546extern unsigned long low_physmem;47extern unsigned long high_physmem;48extern unsigned long uml_physmem;49extern unsigned long uml_reserved;50extern unsigned long end_vm;51extern unsigned long start_vm;52extern unsigned long long highmem;5354extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end;55extern unsigned long _unprotected_end;56extern unsigned long brk_start;5758extern unsigned long host_task_size;5960extern int linux_main(int argc, char **argv);6162extern void (*sig_info[])(int, struct uml_pt_regs *);6364#endif6566#endif676869