1#ifndef _ASM_GENAPIC_H 2#define _ASM_GENAPIC_H 1 3 4/* 5 * Copyright 2004 James Cleverdon, IBM. 6 * Subject to the GNU Public License, v.2 7 * 8 * Generic APIC sub-arch data struct. 9 * 10 * Hacked for x86-64 by James Cleverdon from i386 architecture code by 11 * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and 12 * James Cleverdon. 13 */ 14 15struct genapic { 16 char *name; 17 u32 int_delivery_mode; 18 u32 int_dest_mode; 19 int (*apic_id_registered)(void); 20 cpumask_t (*target_cpus)(void); 21 cpumask_t (*vector_allocation_domain)(int cpu); 22 void (*init_apic_ldr)(void); 23 /* ipi */ 24 void (*send_IPI_mask)(cpumask_t mask, int vector); 25 void (*send_IPI_allbutself)(int vector); 26 void (*send_IPI_all)(int vector); 27 /* */ 28 unsigned int (*cpu_mask_to_apicid)(cpumask_t cpumask); 29 unsigned int (*phys_pkg_id)(int index_msb); 30}; 31 32extern struct genapic *genapic; 33 34extern struct genapic apic_flat; 35extern struct genapic apic_physflat; 36 37#endif 38