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
kernel
apic
probe_64.c
Go to the documentation of this file.
1
/*
2
* Copyright 2004 James Cleverdon, IBM.
3
* Subject to the GNU Public License, v.2
4
*
5
* Generic APIC sub-arch probe layer.
6
*
7
* Hacked for x86-64 by James Cleverdon from i386 architecture code by
8
* Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
9
* James Cleverdon.
10
*/
11
#include <
linux/threads.h
>
12
#include <
linux/cpumask.h
>
13
#include <linux/string.h>
14
#include <linux/module.h>
15
#include <linux/kernel.h>
16
#include <linux/ctype.h>
17
#include <
linux/init.h
>
18
#include <
linux/hardirq.h
>
19
#include <
linux/dmar.h
>
20
21
#include <asm/smp.h>
22
#include <asm/apic.h>
23
#include <
asm/ipi.h
>
24
#include <asm/setup.h>
25
26
/*
27
* Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
28
*/
29
void
__init
default_setup_apic_routing
(
void
)
30
{
31
struct
apic
**drv;
32
33
enable_IR_x2apic
();
34
35
for
(drv =
__apicdrivers
; drv <
__apicdrivers_end
; drv++) {
36
if
((*drv)->probe && (*drv)->probe()) {
37
if
(
apic
!= *drv) {
38
apic
= *drv;
39
pr_info
(
"Switched APIC routing to %s.\n"
,
40
apic
->
name
);
41
}
42
break
;
43
}
44
}
45
46
if
(
x86_platform
.apic_post_init)
47
x86_platform
.apic_post_init();
48
}
49
50
/* Same for both flat and physical. */
51
52
void
apic_send_IPI_self
(
int
vector
)
53
{
54
__default_send_IPI_shortcut(
APIC_DEST_SELF
, vector,
APIC_DEST_PHYSICAL
);
55
}
56
57
int
__init
default_acpi_madt_oem_check
(
char
*
oem_id
,
char
*oem_table_id)
58
{
59
struct
apic
**drv;
60
61
for
(drv =
__apicdrivers
; drv <
__apicdrivers_end
; drv++) {
62
if
((*drv)->acpi_madt_oem_check(oem_id, oem_table_id)) {
63
if
(
apic
!= *drv) {
64
apic
= *drv;
65
pr_info
(
"Setting APIC routing to %s.\n"
,
66
apic
->
name
);
67
}
68
return
1;
69
}
70
}
71
return
0;
72
}
Generated on Thu Jan 10 2013 13:20:19 for Linux Kernel by
1.8.2