blob: f2be2a780189c3d9490f67c748ff5c37edb515ab [file] [log] [blame]
Thomas Gleixner57844a82009-08-19 14:48:38 +02001#ifndef _ASM_X86_PLATFORM_H
2#define _ASM_X86_PLATFORM_H
3
Thomas Gleixnerfd6c6662009-08-20 10:41:58 +02004struct mpc_cpu;
5
Thomas Gleixner57844a82009-08-19 14:48:38 +02006/**
Thomas Gleixnerf4848472009-08-20 12:05:01 +02007 * struct x86_init_mpparse - platform specific mpparse ops
8 * @mpc_record: platform specific mpc record accounting
Thomas Gleixnerde934102009-08-20 09:27:29 +02009 * @setup_ioapic_ids: platform specific ioapic id override
Thomas Gleixnerfd6c6662009-08-20 10:41:58 +020010 * @mpc_apic_id: platform specific mpc apic id assignment
Thomas Gleixnerf4848472009-08-20 12:05:01 +020011 */
12struct x86_init_mpparse {
13 void (*mpc_record)(unsigned int mode);
Thomas Gleixnerde934102009-08-20 09:27:29 +020014 void (*setup_ioapic_ids)(void);
Thomas Gleixnerfd6c6662009-08-20 10:41:58 +020015 int (*mpc_apic_id)(struct mpc_cpu *m);
Thomas Gleixnerf4848472009-08-20 12:05:01 +020016};
17
18/**
Thomas Gleixnerf7cf5a52009-08-19 14:43:56 +020019 * struct x86_init_resources - platform specific resource related ops
20 * @probe_roms: probe BIOS roms
Thomas Gleixner8fee6972009-08-19 14:55:50 +020021 * @reserve_resources: reserve the standard resources for the
22 * platform
Thomas Gleixner816c25e2009-08-19 14:36:27 +020023 * @reserve_ebda_region: reserve the extended bios data area
Thomas Gleixner6b18ae32009-08-20 10:19:54 +020024 * @memory_setup: platform specific memory setup
Thomas Gleixnerf7cf5a52009-08-19 14:43:56 +020025 *
26 */
27struct x86_init_resources {
28 void (*probe_roms)(void);
Thomas Gleixner8fee6972009-08-19 14:55:50 +020029 void (*reserve_resources)(void);
Thomas Gleixner816c25e2009-08-19 14:36:27 +020030 void (*reserve_ebda_region)(void);
Thomas Gleixner6b18ae32009-08-20 10:19:54 +020031 char *(*memory_setup)(void);
Thomas Gleixnerf7cf5a52009-08-19 14:43:56 +020032};
33
34/**
Thomas Gleixner57844a82009-08-19 14:48:38 +020035 * struct x86_init_ops - functions for platform specific setup
36 *
37 */
38struct x86_init_ops {
Thomas Gleixnerf4848472009-08-20 12:05:01 +020039 struct x86_init_resources resources;
40 struct x86_init_mpparse mpparse;
Thomas Gleixner57844a82009-08-19 14:48:38 +020041};
42
43extern struct x86_init_ops x86_init;
44
45extern void x86_init_noop(void);
Thomas Gleixnerf4848472009-08-20 12:05:01 +020046extern void x86_init_uint_noop(unsigned int unused);
Thomas Gleixner57844a82009-08-19 14:48:38 +020047
48#endif