arch/x86/include/asm/genapic_64.h
changeset 2 d1f6d8b6f81c
parent 0 aa628870c1d3
equal deleted inserted replaced
1:0056487c491e 2:d1f6d8b6f81c
     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;