Merge branches 'tracing/kmemtrace2' and 'tracing/ftrace' into tracing/urgent
[deliverable/linux.git] / arch / x86 / include / asm / setup.h
CommitLineData
1965aae3
PA
1#ifndef _ASM_X86_SETUP_H
2#define _ASM_X86_SETUP_H
ef685298
TG
3
4#define COMMAND_LINE_SIZE 2048
5
746ef0cd 6#ifndef __ASSEMBLY__
2785c8d0
GC
7
8/* Interrupt control for vSMPowered x86_64 systems */
9void vsmp_init(void);
10
6784f7d0
AV
11
12void setup_bios_corruption_check(void);
13
14
3b33553b
IM
15#ifdef CONFIG_X86_VISWS
16extern void visws_early_detect(void);
5548ed11 17extern int is_visws_box(void);
3b33553b
IM
18#else
19static inline void visws_early_detect(void) { }
5548ed11 20static inline int is_visws_box(void) { return 0; }
3b33553b
IM
21#endif
22
569712b2 23extern int wakeup_secondary_cpu_via_nmi(int apicid, unsigned long start_eip);
54ac14a8 24extern int wakeup_secondary_cpu_via_init(int apicid, unsigned long start_eip);
3b33553b
IM
25/*
26 * Any setup quirks to be performed?
27 */
64898a8b
YL
28struct mpc_config_processor;
29struct mpc_config_bus;
30struct mp_config_oemtable;
3c9cb6de 31struct x86_quirks {
63b5d7af 32 int (*arch_pre_time_init)(void);
3c9cb6de
YL
33 int (*arch_time_init)(void);
34 int (*arch_pre_intr_init)(void);
35 int (*arch_intr_init)(void);
36 int (*arch_trap_init)(void);
37 char * (*arch_memory_setup)(void);
38 int (*mach_get_smp_config)(unsigned int early);
39 int (*mach_find_smp_config)(unsigned int reserve);
64898a8b
YL
40
41 int *mpc_record;
42 int (*mpc_apic_id)(struct mpc_config_processor *m);
43 void (*mpc_oem_bus_info)(struct mpc_config_bus *m, char *name);
44 void (*mpc_oem_pci_bus)(struct mpc_config_bus *m);
45 void (*smp_read_mpc_oem)(struct mp_config_oemtable *oemtable,
46 unsigned short oemsize);
a4dbc34d 47 int (*setup_ioapic_ids)(void);
54ac14a8 48 int (*update_genapic)(void);
3c9cb6de
YL
49};
50
51extern struct x86_quirks *x86_quirks;
5314d48e 52extern unsigned long saved_video_mode;
3b33553b 53
746ef0cd
GOC
54#ifndef CONFIG_PARAVIRT
55#define paravirt_post_allocator_init() do {} while (0)
56#endif
57#endif /* __ASSEMBLY__ */
58
96a388de 59#ifdef __KERNEL__
ef685298
TG
60
61#ifdef __i386__
62
63#include <linux/pfn.h>
64/*
65 * Reserved space for vmalloc and iomap - defined in asm/page.h
66 */
67#define MAXMEM_PFN PFN_DOWN(MAXMEM)
68#define MAX_NONPAE_PFN (1 << 20)
69
fa76dab9
PA
70#endif /* __i386__ */
71
72#define PARAM_SIZE 4096 /* sizeof(struct boot_params) */
ef685298 73
ef685298 74#define OLD_CL_MAGIC 0xA33F
fa76dab9 75#define OLD_CL_ADDRESS 0x020 /* Relative to real mode data */
ef685298
TG
76#define NEW_CL_POINTER 0x228 /* Relative to real mode data */
77
ef685298
TG
78#ifndef __ASSEMBLY__
79#include <asm/bootparam.h>
80
fa76dab9
PA
81#ifndef _SETUP
82
ef685298
TG
83/*
84 * This is set up by the setup-routine at boot-time
85 */
86extern struct boot_params boot_params;
87
ef685298
TG
88/*
89 * Do NOT EVER look at the BIOS memory size location.
90 * It does not work on many machines.
91 */
92#define LOWMEMSIZE() (0x9f000)
93
95a71a45
YL
94#ifdef __i386__
95
f0d43100 96void __init i386_start_kernel(void);
a9c1182f 97extern void probe_roms(void);
746ef0cd 98
f0d43100
YL
99extern unsigned long init_pg_tables_start;
100extern unsigned long init_pg_tables_end;
ef685298 101
102e3b8d 102#else
5b09b287 103void __init x86_64_init_pda(void);
102e3b8d 104void __init x86_64_start_kernel(char *real_mode);
f97013fd
JF
105void __init x86_64_start_reservations(char *real_mode_data);
106
ef685298 107#endif /* __i386__ */
fa76dab9 108#endif /* _SETUP */
ef685298
TG
109#endif /* __ASSEMBLY__ */
110#endif /* __KERNEL__ */
111
1965aae3 112#endif /* _ASM_X86_SETUP_H */
This page took 0.290348 seconds and 5 git commands to generate.