x86_init.h 1.5 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 16 17
 */
struct x86_init_mpparse {
	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 26
/**
 * struct x86_init_resources - platform specific resource related ops
 * @probe_roms:			probe BIOS roms
27 28
 * @reserve_resources:		reserve the standard resources for the
 *				platform
29
 * @reserve_ebda_region:	reserve the extended bios data area
30
 * @memory_setup:		platform specific memory setup
31 32 33 34
 *
 */
struct x86_init_resources {
	void (*probe_roms)(void);
35
	void (*reserve_resources)(void);
36
	void (*reserve_ebda_region)(void);
37
	char *(*memory_setup)(void);
38 39
};

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

extern struct x86_init_ops x86_init;

extern void x86_init_noop(void);
52
extern void x86_init_uint_noop(unsigned int unused);
53 54

#endif