xref: /openbmc/linux/arch/x86/include/asm/x86_init.h (revision 52fdb568)
1 #ifndef _ASM_X86_PLATFORM_H
2 #define _ASM_X86_PLATFORM_H
3 
4 struct mpc_bus;
5 struct mpc_cpu;
6 struct mpc_table;
7 
8 /**
9  * struct x86_init_mpparse - platform specific mpparse ops
10  * @mpc_record:			platform specific mpc record accounting
11  * @setup_ioapic_ids:		platform specific ioapic id override
12  * @mpc_apic_id:		platform specific mpc apic id assignment
13  * @smp_read_mpc_oem:		platform specific oem mpc table setup
14  * @mpc_oem_pci_bus:		platform specific pci bus setup (default NULL)
15  */
16 struct x86_init_mpparse {
17 	void (*mpc_record)(unsigned int mode);
18 	void (*setup_ioapic_ids)(void);
19 	int (*mpc_apic_id)(struct mpc_cpu *m);
20 	void (*smp_read_mpc_oem)(struct mpc_table *mpc);
21 	void (*mpc_oem_pci_bus)(struct mpc_bus *m);
22 };
23 
24 /**
25  * struct x86_init_resources - platform specific resource related ops
26  * @probe_roms:			probe BIOS roms
27  * @reserve_resources:		reserve the standard resources for the
28  *				platform
29  * @reserve_ebda_region:	reserve the extended bios data area
30  * @memory_setup:		platform specific memory setup
31  *
32  */
33 struct x86_init_resources {
34 	void (*probe_roms)(void);
35 	void (*reserve_resources)(void);
36 	void (*reserve_ebda_region)(void);
37 	char *(*memory_setup)(void);
38 };
39 
40 /**
41  * struct x86_init_ops - functions for platform specific setup
42  *
43  */
44 struct x86_init_ops {
45 	struct x86_init_resources	resources;
46 	struct x86_init_mpparse		mpparse;
47 };
48 
49 extern struct x86_init_ops x86_init;
50 
51 extern void x86_init_noop(void);
52 extern void x86_init_uint_noop(unsigned int unused);
53 
54 #endif
55