Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
x86_init.h
Go to the documentation of this file.
1 #ifndef _ASM_X86_PLATFORM_H
2 #define _ASM_X86_PLATFORM_H
3 
4 #include <asm/pgtable_types.h>
5 #include <asm/bootparam.h>
6 
7 struct mpc_bus;
8 struct mpc_cpu;
9 struct mpc_table;
10 struct cpuinfo_x86;
11 
24  void (*mpc_record)(unsigned int mode);
26  int (*mpc_apic_id)(struct mpc_cpu *m);
27  void (*smp_read_mpc_oem)(struct mpc_table *mpc);
29  void (*mpc_oem_bus_info)(struct mpc_bus *m, char *name);
31  void (*get_smp_config)(unsigned int early);
32 };
33 
45  char *(*memory_setup)(void);
46 };
47 
55 struct x86_init_irqs {
59 };
60 
66 struct x86_init_oem {
69 };
70 
80 };
81 
91 };
92 
106 };
107 
114 };
115 
123 struct x86_init_pci {
125  int (*init)(void);
128 };
129 
134 struct x86_init_ops {
144 };
145 
154  void (*fixup_cpu_id)(struct cpuinfo_x86 *c, int node);
155 };
156 
170  unsigned long (*calibrate_tsc)(void);
171  unsigned long (*get_wallclock)(void);
172  int (*set_wallclock)(unsigned long nowtime);
176  unsigned char (*get_nmi_reason)(void);
181 };
182 
183 struct pci_dev;
184 
185 struct x86_msi_ops {
186  int (*setup_msi_irqs)(struct pci_dev *dev, int nvec, int type);
187  void (*teardown_msi_irq)(unsigned int irq);
189  void (*restore_msi_irqs)(struct pci_dev *dev, int irq);
190 };
191 
193  void (*init) (void);
194  unsigned int (*read) (unsigned int apic, unsigned int reg);
195  void (*write) (unsigned int apic, unsigned int reg, unsigned int value);
196  void (*modify)(unsigned int apic, unsigned int reg, unsigned int value);
197 };
198 
199 extern struct x86_init_ops x86_init;
200 extern struct x86_cpuinit_ops x86_cpuinit;
201 extern struct x86_platform_ops x86_platform;
202 extern struct x86_msi_ops x86_msi;
203 extern struct x86_io_apic_ops x86_io_apic_ops;
204 extern void x86_init_noop(void);
205 extern void x86_init_uint_noop(unsigned int unused);
206 
207 #endif