x86_init.h 1.6 KB
Newer Older
1 2 3
#ifndef _ASM_X86_PLATFORM_H
#define _ASM_X86_PLATFORM_H

4
struct mpc_bus;
5
struct mpc_cpu;
6
struct mpc_table;
7

8 9 10
/**
 * struct x86_init_mpparse - platform specific mpparse ops
 * @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
 * @mpc_oem_bus_info:		platform specific mpc bus info
16 17 18
 */
struct x86_init_mpparse {
	void (*mpc_record)(unsigned int mode);
19
	void (*setup_ioapic_ids)(void);
20
	int (*mpc_apic_id)(struct mpc_cpu *m);
21
	void (*smp_read_mpc_oem)(struct mpc_table *mpc);
22
	void (*mpc_oem_pci_bus)(struct mpc_bus *m);
23
	void (*mpc_oem_bus_info)(struct mpc_bus *m, char *name);
24 25
};

26 27 28
/**
 * struct x86_init_resources - platform specific resource related ops
 * @probe_roms:			probe BIOS roms
29 30
 * @reserve_resources:		reserve the standard resources for the
 *				platform
31
 * @reserve_ebda_region:	reserve the extended bios data area
32
 * @memory_setup:		platform specific memory setup
33 34 35 36
 *
 */
struct x86_init_resources {
	void (*probe_roms)(void);
37
	void (*reserve_resources)(void);
38
	void (*reserve_ebda_region)(void);
39
	char *(*memory_setup)(void);
40 41
};

42 43 44 45 46
/**
 * struct x86_init_ops - functions for platform specific setup
 *
 */
struct x86_init_ops {
47 48
	struct x86_init_resources	resources;
	struct x86_init_mpparse		mpparse;
49 50 51 52 53
};

extern struct x86_init_ops x86_init;

extern void x86_init_noop(void);
54
extern void x86_init_uint_noop(unsigned int unused);
55 56

#endif