Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
x86
include
asm
x86_init.h
Go to the documentation of this file.
1
#ifndef _ASM_X86_PLATFORM_H
2
#define _ASM_X86_PLATFORM_H
3
4
#include <
asm/pgtable_types.h
>
5
#include <asm/bootparam.h>
6
7
struct
mpc_bus
;
8
struct
mpc_cpu
;
9
struct
mpc_table
;
10
struct
cpuinfo_x86
;
11
23
struct
x86_init_mpparse
{
24
void
(*
mpc_record
)(
unsigned
int
mode
);
25
void
(*
setup_ioapic_ids
)(
void
);
26
int
(*
mpc_apic_id
)(
struct
mpc_cpu
*
m
);
27
void
(*
smp_read_mpc_oem
)(
struct
mpc_table
*mpc);
28
void
(*
mpc_oem_pci_bus
)(
struct
mpc_bus
*
m
);
29
void
(*
mpc_oem_bus_info
)(
struct
mpc_bus
*
m
,
char
*
name
);
30
void
(*
find_smp_config
)(
void
);
31
void
(*
get_smp_config
)(
unsigned
int
early);
32
};
33
42
struct
x86_init_resources
{
43
void
(*
probe_roms
)(
void
);
44
void
(*
reserve_resources
)(
void
);
45
char
*(*memory_setup)(
void
);
46
};
47
55
struct
x86_init_irqs
{
56
void
(*
pre_vector_init
)(
void
);
57
void
(*
intr_init
)(
void
);
58
void
(*
trap_init
)(
void
);
59
};
60
66
struct
x86_init_oem
{
67
void
(*
arch_setup
)(
void
);
68
void
(*
banner
)(
void
);
69
};
70
78
struct
x86_init_mapping
{
79
void
(*
pagetable_reserve
)(
u64
start
,
u64
end
);
80
};
81
89
struct
x86_init_paging
{
90
void
(*
pagetable_init
)(
void
);
91
};
92
101
struct
x86_init_timers
{
102
void
(*
setup_percpu_clockev
)(
void
);
103
void
(*
tsc_pre_init
)(
void
);
104
void
(*
timer_init
)(
void
);
105
void
(*
wallclock_init
)(
void
);
106
};
107
112
struct
x86_init_iommu
{
113
int
(*
iommu_init
)(
void
);
114
};
115
123
struct
x86_init_pci
{
124
int
(*
arch_init
)(
void
);
125
int
(*
init
)(
void
);
126
void
(*
init_irq
)(
void
);
127
void
(*
fixup_irqs
)(
void
);
128
};
129
134
struct
x86_init_ops
{
135
struct
x86_init_resources
resources
;
136
struct
x86_init_mpparse
mpparse
;
137
struct
x86_init_irqs
irqs
;
138
struct
x86_init_oem
oem
;
139
struct
x86_init_mapping
mapping
;
140
struct
x86_init_paging
paging
;
141
struct
x86_init_timers
timers
;
142
struct
x86_init_iommu
iommu
;
143
struct
x86_init_pci
pci
;
144
};
145
151
struct
x86_cpuinit_ops
{
152
void
(*
setup_percpu_clockev
)(
void
);
153
void
(*
early_percpu_clock_init
)(
void
);
154
void
(*
fixup_cpu_id
)(
struct
cpuinfo_x86
*
c
,
int
node
);
155
};
156
169
struct
x86_platform_ops
{
170
unsigned
long
(*
calibrate_tsc
)(
void
);
171
unsigned
long
(*
get_wallclock
)(
void
);
172
int
(*
set_wallclock
)(
unsigned
long
nowtime);
173
void
(*
iommu_shutdown
)(
void
);
174
bool
(*
is_untracked_pat_range
)(
u64
start
,
u64
end
);
175
void
(*
nmi_init
)(
void
);
176
unsigned
char
(*
get_nmi_reason
)(
void
);
177
int
(*
i8042_detect
)(
void
);
178
void
(*
save_sched_clock_state
)(
void
);
179
void
(*
restore_sched_clock_state
)(
void
);
180
void
(*
apic_post_init
)(
void
);
181
};
182
183
struct
pci_dev
;
184
185
struct
x86_msi_ops
{
186
int
(*
setup_msi_irqs
)(
struct
pci_dev
*
dev
,
int
nvec,
int
type
);
187
void
(*
teardown_msi_irq
)(
unsigned
int
irq
);
188
void
(*
teardown_msi_irqs
)(
struct
pci_dev
*
dev
);
189
void
(*
restore_msi_irqs
)(
struct
pci_dev
*
dev
,
int
irq
);
190
};
191
192
struct
x86_io_apic_ops
{
193
void
(*
init
) (
void
);
194
unsigned
int
(*
read
) (
unsigned
int
apic
,
unsigned
int
reg
);
195
void
(*
write
) (
unsigned
int
apic
,
unsigned
int
reg
,
unsigned
int
value
);
196
void
(*
modify
)(
unsigned
int
apic
,
unsigned
int
reg
,
unsigned
int
value
);
197
};
198
199
extern
struct
x86_init_ops
x86_init
;
200
extern
struct
x86_cpuinit_ops
x86_cpuinit
;
201
extern
struct
x86_platform_ops
x86_platform
;
202
extern
struct
x86_msi_ops
x86_msi
;
203
extern
struct
x86_io_apic_ops
x86_io_apic_ops
;
204
extern
void
x86_init_noop
(
void
);
205
extern
void
x86_init_uint_noop
(
unsigned
int
unused
);
206
207
#endif
Generated on Thu Jan 10 2013 13:20:10 for Linux Kernel by
1.8.2