diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2008-08-17 21:05:42 -0400 |
|---|---|---|
| committer | H. Peter Anvin <hpa@zytor.com> | 2008-10-23 01:55:20 -0400 |
| commit | bb8985586b7a906e116db835c64773b7a7d51663 (patch) | |
| tree | de93ae58e88cc563d95cc124a73f3930594c6100 /arch/x86/include/asm/setup.h | |
| parent | 8ede0bdb63305d3353efd97e9af6210afb05734e (diff) | |
x86, um: ... and asm-x86 move
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/include/asm/setup.h')
| -rw-r--r-- | arch/x86/include/asm/setup.h | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h new file mode 100644 index 000000000000..11b6cc14b289 --- /dev/null +++ b/arch/x86/include/asm/setup.h | |||
| @@ -0,0 +1,105 @@ | |||
| 1 | #ifndef ASM_X86__SETUP_H | ||
| 2 | #define ASM_X86__SETUP_H | ||
| 3 | |||
| 4 | #define COMMAND_LINE_SIZE 2048 | ||
| 5 | |||
| 6 | #ifndef __ASSEMBLY__ | ||
| 7 | |||
| 8 | /* Interrupt control for vSMPowered x86_64 systems */ | ||
| 9 | void vsmp_init(void); | ||
| 10 | |||
| 11 | #ifdef CONFIG_X86_VISWS | ||
| 12 | extern void visws_early_detect(void); | ||
| 13 | extern int is_visws_box(void); | ||
| 14 | #else | ||
| 15 | static inline void visws_early_detect(void) { } | ||
| 16 | static inline int is_visws_box(void) { return 0; } | ||
| 17 | #endif | ||
| 18 | |||
| 19 | /* | ||
| 20 | * Any setup quirks to be performed? | ||
| 21 | */ | ||
| 22 | struct mpc_config_processor; | ||
| 23 | struct mpc_config_bus; | ||
| 24 | struct mp_config_oemtable; | ||
| 25 | struct x86_quirks { | ||
| 26 | int (*arch_pre_time_init)(void); | ||
| 27 | int (*arch_time_init)(void); | ||
| 28 | int (*arch_pre_intr_init)(void); | ||
| 29 | int (*arch_intr_init)(void); | ||
| 30 | int (*arch_trap_init)(void); | ||
| 31 | char * (*arch_memory_setup)(void); | ||
| 32 | int (*mach_get_smp_config)(unsigned int early); | ||
| 33 | int (*mach_find_smp_config)(unsigned int reserve); | ||
| 34 | |||
| 35 | int *mpc_record; | ||
| 36 | int (*mpc_apic_id)(struct mpc_config_processor *m); | ||
| 37 | void (*mpc_oem_bus_info)(struct mpc_config_bus *m, char *name); | ||
| 38 | void (*mpc_oem_pci_bus)(struct mpc_config_bus *m); | ||
| 39 | void (*smp_read_mpc_oem)(struct mp_config_oemtable *oemtable, | ||
| 40 | unsigned short oemsize); | ||
| 41 | int (*setup_ioapic_ids)(void); | ||
| 42 | }; | ||
| 43 | |||
| 44 | extern struct x86_quirks *x86_quirks; | ||
| 45 | extern unsigned long saved_video_mode; | ||
| 46 | |||
| 47 | #ifndef CONFIG_PARAVIRT | ||
| 48 | #define paravirt_post_allocator_init() do {} while (0) | ||
| 49 | #endif | ||
| 50 | #endif /* __ASSEMBLY__ */ | ||
| 51 | |||
| 52 | #ifdef __KERNEL__ | ||
| 53 | |||
| 54 | #ifdef __i386__ | ||
| 55 | |||
| 56 | #include <linux/pfn.h> | ||
| 57 | /* | ||
| 58 | * Reserved space for vmalloc and iomap - defined in asm/page.h | ||
| 59 | */ | ||
| 60 | #define MAXMEM_PFN PFN_DOWN(MAXMEM) | ||
| 61 | #define MAX_NONPAE_PFN (1 << 20) | ||
| 62 | |||
| 63 | #endif /* __i386__ */ | ||
| 64 | |||
| 65 | #define PARAM_SIZE 4096 /* sizeof(struct boot_params) */ | ||
| 66 | |||
| 67 | #define OLD_CL_MAGIC 0xA33F | ||
| 68 | #define OLD_CL_ADDRESS 0x020 /* Relative to real mode data */ | ||
| 69 | #define NEW_CL_POINTER 0x228 /* Relative to real mode data */ | ||
| 70 | |||
| 71 | #ifndef __ASSEMBLY__ | ||
| 72 | #include <asm/bootparam.h> | ||
| 73 | |||
| 74 | #ifndef _SETUP | ||
| 75 | |||
| 76 | /* | ||
| 77 | * This is set up by the setup-routine at boot-time | ||
| 78 | */ | ||
| 79 | extern struct boot_params boot_params; | ||
| 80 | |||
| 81 | /* | ||
| 82 | * Do NOT EVER look at the BIOS memory size location. | ||
| 83 | * It does not work on many machines. | ||
| 84 | */ | ||
| 85 | #define LOWMEMSIZE() (0x9f000) | ||
| 86 | |||
| 87 | #ifdef __i386__ | ||
| 88 | |||
| 89 | void __init i386_start_kernel(void); | ||
| 90 | extern void probe_roms(void); | ||
| 91 | |||
| 92 | extern unsigned long init_pg_tables_start; | ||
| 93 | extern unsigned long init_pg_tables_end; | ||
| 94 | |||
| 95 | #else | ||
| 96 | void __init x86_64_init_pda(void); | ||
| 97 | void __init x86_64_start_kernel(char *real_mode); | ||
| 98 | void __init x86_64_start_reservations(char *real_mode_data); | ||
| 99 | |||
| 100 | #endif /* __i386__ */ | ||
| 101 | #endif /* _SETUP */ | ||
| 102 | #endif /* __ASSEMBLY__ */ | ||
| 103 | #endif /* __KERNEL__ */ | ||
| 104 | |||
| 105 | #endif /* ASM_X86__SETUP_H */ | ||
