1 #ifndef _ASM_X86_MPSPEC_H
2 #define _ASM_X86_MPSPEC_H
19 #if CONFIG_BASE_SMALL == 0
20 # define MAX_MP_BUSSES 260
22 # define MAX_MP_BUSSES 32
25 #define MAX_IRQ_SOURCES 256
27 extern unsigned int def_to_bigsmp;
29 #ifdef CONFIG_X86_NUMAQ
37 #define MAX_MP_BUSSES 256
39 #define MAX_IRQ_SOURCES (MAX_MP_BUSSES * 4)
54 #ifdef CONFIG_X86_LOCAL_APIC
57 # define smp_found_config 0
60 static inline void get_smp_config(
void)
65 static inline void early_get_smp_config(
void)
70 static inline void find_smp_config(
void)
75 #ifdef CONFIG_X86_MPPARSE
80 # ifdef CONFIG_X86_IO_APIC
83 # define default_mpc_oem_bus_info NULL
89 #define enable_update_mptable 0
90 #define default_mpc_apic_id NULL
91 #define default_smp_read_mpc_oem NULL
92 #define default_mpc_oem_bus_info NULL
93 #define default_find_smp_config x86_init_noop
94 #define default_get_smp_config x86_init_uint_noop
102 extern void mp_config_acpi_legacy_irqs(
void);
104 extern int mp_register_gsi(
struct device *
dev,
u32 gsi,
int edge_level,
105 int active_high_low);
108 #define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_LOCAL_APIC)
116 #define physid_set(physid, map) set_bit(physid, (map).mask)
117 #define physid_clear(physid, map) clear_bit(physid, (map).mask)
118 #define physid_isset(physid, map) test_bit(physid, (map).mask)
119 #define physid_test_and_set(physid, map) \
120 test_and_set_bit(physid, (map).mask)
122 #define physids_and(dst, src1, src2) \
123 bitmap_and((dst).mask, (src1).mask, (src2).mask, MAX_LOCAL_APIC)
125 #define physids_or(dst, src1, src2) \
126 bitmap_or((dst).mask, (src1).mask, (src2).mask, MAX_LOCAL_APIC)
128 #define physids_clear(map) \
129 bitmap_zero((map).mask, MAX_LOCAL_APIC)
131 #define physids_complement(dst, src) \
132 bitmap_complement((dst).mask, (src).mask, MAX_LOCAL_APIC)
134 #define physids_empty(map) \
135 bitmap_empty((map).mask, MAX_LOCAL_APIC)
137 #define physids_equal(map1, map2) \
138 bitmap_equal((map1).mask, (map2).mask, MAX_LOCAL_APIC)
140 #define physids_weight(map) \
141 bitmap_weight((map).mask, MAX_LOCAL_APIC)
143 #define physids_shift_right(d, s, n) \
144 bitmap_shift_right((d).mask, (s).mask, n, MAX_LOCAL_APIC)
146 #define physids_shift_left(d, s, n) \
147 bitmap_shift_left((d).mask, (s).mask, n, MAX_LOCAL_APIC)
154 static inline void physids_promote(
unsigned long physids,
physid_mask_t *
map)
157 map->
mask[0] = physids;
160 static inline void physid_set_mask_of_physid(
int physid,
physid_mask_t *
map)
166 #define PHYSID_MASK_ALL { {[0 ... PHYSID_ARRAY_SIZE-1] = ~0UL} }
167 #define PHYSID_MASK_NONE { {[0 ... PHYSID_ARRAY_SIZE-1] = 0UL} }