at v2.6.27 2.5 kB view raw
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 */ 9void vsmp_init(void); 10 11#ifdef CONFIG_X86_VISWS 12extern void visws_early_detect(void); 13extern int is_visws_box(void); 14#else 15static inline void visws_early_detect(void) { } 16static inline int is_visws_box(void) { return 0; } 17#endif 18 19/* 20 * Any setup quirks to be performed? 21 */ 22struct mpc_config_processor; 23struct mpc_config_bus; 24struct mp_config_oemtable; 25struct 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}; 42 43extern struct x86_quirks *x86_quirks; 44 45#ifndef CONFIG_PARAVIRT 46#define paravirt_post_allocator_init() do {} while (0) 47#endif 48#endif /* __ASSEMBLY__ */ 49 50#ifdef __KERNEL__ 51 52#ifdef __i386__ 53 54#include <linux/pfn.h> 55/* 56 * Reserved space for vmalloc and iomap - defined in asm/page.h 57 */ 58#define MAXMEM_PFN PFN_DOWN(MAXMEM) 59#define MAX_NONPAE_PFN (1 << 20) 60 61#endif /* __i386__ */ 62 63#define PARAM_SIZE 4096 /* sizeof(struct boot_params) */ 64 65#define OLD_CL_MAGIC 0xA33F 66#define OLD_CL_ADDRESS 0x020 /* Relative to real mode data */ 67#define NEW_CL_POINTER 0x228 /* Relative to real mode data */ 68 69#ifndef __ASSEMBLY__ 70#include <asm/bootparam.h> 71 72#ifndef _SETUP 73 74/* 75 * This is set up by the setup-routine at boot-time 76 */ 77extern struct boot_params boot_params; 78 79/* 80 * Do NOT EVER look at the BIOS memory size location. 81 * It does not work on many machines. 82 */ 83#define LOWMEMSIZE() (0x9f000) 84 85#ifdef __i386__ 86 87void __init i386_start_kernel(void); 88extern void probe_roms(void); 89 90extern unsigned long init_pg_tables_start; 91extern unsigned long init_pg_tables_end; 92 93#else 94void __init x86_64_init_pda(void); 95void __init x86_64_start_kernel(char *real_mode); 96void __init x86_64_start_reservations(char *real_mode_data); 97 98#endif /* __i386__ */ 99#endif /* _SETUP */ 100#endif /* __ASSEMBLY__ */ 101#endif /* __KERNEL__ */ 102 103#endif /* _ASM_X86_SETUP_H */