diff options
Diffstat (limited to 'arch/x86/include/asm/x86_init.h')
-rw-r--r-- | arch/x86/include/asm/x86_init.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h index baa579c8e038..d3d859035af9 100644 --- a/arch/x86/include/asm/x86_init.h +++ b/arch/x86/include/asm/x86_init.h | |||
@@ -68,6 +68,17 @@ struct x86_init_oem { | |||
68 | }; | 68 | }; |
69 | 69 | ||
70 | /** | 70 | /** |
71 | * struct x86_init_mapping - platform specific initial kernel pagetable setup | ||
72 | * @pagetable_reserve: reserve a range of addresses for kernel pagetable usage | ||
73 | * | ||
74 | * For more details on the purpose of this hook, look in | ||
75 | * init_memory_mapping and the commit that added it. | ||
76 | */ | ||
77 | struct x86_init_mapping { | ||
78 | void (*pagetable_reserve)(u64 start, u64 end); | ||
79 | }; | ||
80 | |||
81 | /** | ||
71 | * struct x86_init_paging - platform specific paging functions | 82 | * struct x86_init_paging - platform specific paging functions |
72 | * @pagetable_setup_start: platform specific pre paging_init() call | 83 | * @pagetable_setup_start: platform specific pre paging_init() call |
73 | * @pagetable_setup_done: platform specific post paging_init() call | 84 | * @pagetable_setup_done: platform specific post paging_init() call |
@@ -83,11 +94,13 @@ struct x86_init_paging { | |||
83 | * boot cpu | 94 | * boot cpu |
84 | * @tsc_pre_init: platform function called before TSC init | 95 | * @tsc_pre_init: platform function called before TSC init |
85 | * @timer_init: initialize the platform timer (default PIT/HPET) | 96 | * @timer_init: initialize the platform timer (default PIT/HPET) |
97 | * @wallclock_init: init the wallclock device | ||
86 | */ | 98 | */ |
87 | struct x86_init_timers { | 99 | struct x86_init_timers { |
88 | void (*setup_percpu_clockev)(void); | 100 | void (*setup_percpu_clockev)(void); |
89 | void (*tsc_pre_init)(void); | 101 | void (*tsc_pre_init)(void); |
90 | void (*timer_init)(void); | 102 | void (*timer_init)(void); |
103 | void (*wallclock_init)(void); | ||
91 | }; | 104 | }; |
92 | 105 | ||
93 | /** | 106 | /** |
@@ -121,6 +134,7 @@ struct x86_init_ops { | |||
121 | struct x86_init_mpparse mpparse; | 134 | struct x86_init_mpparse mpparse; |
122 | struct x86_init_irqs irqs; | 135 | struct x86_init_irqs irqs; |
123 | struct x86_init_oem oem; | 136 | struct x86_init_oem oem; |
137 | struct x86_init_mapping mapping; | ||
124 | struct x86_init_paging paging; | 138 | struct x86_init_paging paging; |
125 | struct x86_init_timers timers; | 139 | struct x86_init_timers timers; |
126 | struct x86_init_iommu iommu; | 140 | struct x86_init_iommu iommu; |
@@ -154,9 +168,18 @@ struct x86_platform_ops { | |||
154 | int (*i8042_detect)(void); | 168 | int (*i8042_detect)(void); |
155 | }; | 169 | }; |
156 | 170 | ||
171 | struct pci_dev; | ||
172 | |||
173 | struct x86_msi_ops { | ||
174 | int (*setup_msi_irqs)(struct pci_dev *dev, int nvec, int type); | ||
175 | void (*teardown_msi_irq)(unsigned int irq); | ||
176 | void (*teardown_msi_irqs)(struct pci_dev *dev); | ||
177 | }; | ||
178 | |||
157 | extern struct x86_init_ops x86_init; | 179 | extern struct x86_init_ops x86_init; |
158 | extern struct x86_cpuinit_ops x86_cpuinit; | 180 | extern struct x86_cpuinit_ops x86_cpuinit; |
159 | extern struct x86_platform_ops x86_platform; | 181 | extern struct x86_platform_ops x86_platform; |
182 | extern struct x86_msi_ops x86_msi; | ||
160 | 183 | ||
161 | extern void x86_init_noop(void); | 184 | extern void x86_init_noop(void); |
162 | extern void x86_init_uint_noop(unsigned int unused); | 185 | extern void x86_init_uint_noop(unsigned int unused); |