212 .int_delivery_mode = dest_Fixed,
213 .int_dest_mode = (APIC_DEST_PHYSICAL != 0),
214 .target_cpus = uv_target_cpus,
215 .vector_allocation_domain = uv_vector_allocation_domain,
216 .apic_id_registered = uv_apic_id_registered,
217 .init_apic_ldr = uv_init_apic_ldr,
218 .send_IPI_all = uv_send_IPI_all,
219 .send_IPI_allbutself = uv_send_IPI_allbutself,
220 .send_IPI_mask = uv_send_IPI_mask,
221 .send_IPI_self = uv_send_IPI_self,
222 .cpu_mask_to_apicid = uv_cpu_mask_to_apicid,
223 .phys_pkg_id = phys_pkg_id,
224 .get_apic_id = get_apic_id,
225 .set_apic_id = set_apic_id,
226 .apic_id_mask = (0xFFFFFFFFu),
227};
228
229static __cpuinit void set_x2apic_extra_bits(int pnode)
230{
231 __get_cpu_var(x2apic_extra_bits) = (pnode << 6);
232}
233
234
235
236
237static __init int boot_pnode_to_blade(int pnode)
238{
239 int blade;
240
241 for (blade = 0; blade < uv_num_possible_blades(); blade++)
242 if (pnode == uv_blade_info[blade].pnode)
243 return blade;
244 BUG();
245}
246
247struct redir_addr {
248 unsigned long redirect;
249 unsigned long alias;
250};
251
252#define DEST_SHIFT UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT