1 #ifndef _ASM_X86_GENAPIC_64_H |
1 #ifndef _ASM_X86_GENAPIC_64_H |
2 #define _ASM_X86_GENAPIC_64_H |
2 #define _ASM_X86_GENAPIC_64_H |
|
3 |
|
4 #include <linux/cpumask.h> |
3 |
5 |
4 /* |
6 /* |
5 * Copyright 2004 James Cleverdon, IBM. |
7 * Copyright 2004 James Cleverdon, IBM. |
6 * Subject to the GNU Public License, v.2 |
8 * Subject to the GNU Public License, v.2 |
7 * |
9 * |
16 char *name; |
18 char *name; |
17 int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id); |
19 int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id); |
18 u32 int_delivery_mode; |
20 u32 int_delivery_mode; |
19 u32 int_dest_mode; |
21 u32 int_dest_mode; |
20 int (*apic_id_registered)(void); |
22 int (*apic_id_registered)(void); |
21 cpumask_t (*target_cpus)(void); |
23 const struct cpumask *(*target_cpus)(void); |
22 cpumask_t (*vector_allocation_domain)(int cpu); |
24 void (*vector_allocation_domain)(int cpu, struct cpumask *retmask); |
23 void (*init_apic_ldr)(void); |
25 void (*init_apic_ldr)(void); |
24 /* ipi */ |
26 /* ipi */ |
25 void (*send_IPI_mask)(cpumask_t mask, int vector); |
27 void (*send_IPI_mask)(const struct cpumask *mask, int vector); |
|
28 void (*send_IPI_mask_allbutself)(const struct cpumask *mask, |
|
29 int vector); |
26 void (*send_IPI_allbutself)(int vector); |
30 void (*send_IPI_allbutself)(int vector); |
27 void (*send_IPI_all)(int vector); |
31 void (*send_IPI_all)(int vector); |
28 void (*send_IPI_self)(int vector); |
32 void (*send_IPI_self)(int vector); |
29 /* */ |
33 /* */ |
30 unsigned int (*cpu_mask_to_apicid)(cpumask_t cpumask); |
34 unsigned int (*cpu_mask_to_apicid)(const struct cpumask *cpumask); |
|
35 unsigned int (*cpu_mask_to_apicid_and)(const struct cpumask *cpumask, |
|
36 const struct cpumask *andmask); |
31 unsigned int (*phys_pkg_id)(int index_msb); |
37 unsigned int (*phys_pkg_id)(int index_msb); |
32 unsigned int (*get_apic_id)(unsigned long x); |
38 unsigned int (*get_apic_id)(unsigned long x); |
33 unsigned long (*set_apic_id)(unsigned int id); |
39 unsigned long (*set_apic_id)(unsigned int id); |
34 unsigned long apic_id_mask; |
40 unsigned long apic_id_mask; |
|
41 /* wakeup_secondary_cpu */ |
|
42 int (*wakeup_cpu)(int apicid, unsigned long start_eip); |
35 }; |
43 }; |
36 |
44 |
37 extern struct genapic *genapic; |
45 extern struct genapic *genapic; |
38 |
46 |
39 extern struct genapic apic_flat; |
47 extern struct genapic apic_flat; |