x86-32: Separate 1:1 pagetables from swapper_pg_dir
[firefly-linux-kernel-4.4.55.git] / arch / x86 / include / asm / trampoline.h
1 #ifndef _ASM_X86_TRAMPOLINE_H
2 #define _ASM_X86_TRAMPOLINE_H
3
4 #ifndef __ASSEMBLY__
5
6 #ifdef CONFIG_X86_TRAMPOLINE
7 /*
8  * Trampoline 80x86 program as an array.
9  */
10 extern const unsigned char trampoline_data [];
11 extern const unsigned char trampoline_end  [];
12 extern unsigned char *trampoline_base;
13
14 extern unsigned long init_rsp;
15 extern unsigned long initial_code;
16 extern unsigned long initial_page_table;
17 extern unsigned long initial_gs;
18
19 #define TRAMPOLINE_SIZE roundup(trampoline_end - trampoline_data, PAGE_SIZE)
20 #define TRAMPOLINE_BASE 0x6000
21
22 extern unsigned long setup_trampoline(void);
23 extern void __init setup_trampoline_page_table(void);
24 extern void __init reserve_trampoline_memory(void);
25 #else
26 static inline void reserve_trampoline_memory(void) {};
27 extern void __init setup_trampoline_page_table(void) {};
28 #endif /* CONFIG_X86_TRAMPOLINE */
29
30 #endif /* __ASSEMBLY__ */
31
32 #endif /* _ASM_X86_TRAMPOLINE_H */