apicRegular
4.4: ✅struct apic {
char *name;
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(int);
int (*apic_id_registered)();
u32 irq_delivery_mode;
u32 irq_dest_mode;
const struct cpumask * (*target_cpus)();
int disable_esr;
int dest_logical;
long unsigned int (*check_apicid_used)(physid_mask_t *, int);
void (*vector_allocation_domain)(int, struct cpumask *, const struct cpumask *);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
unsigned int (*get_apic_id)(long unsigned int);
long unsigned int (*set_apic_id)(unsigned int);
long unsigned int apic_id_mask;
int (*cpu_mask_to_apicid_and)(const struct cpumask *, const struct cpumask *, unsigned int *);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
u32 (*read)(u32);
void (*write)(u32, u32);
void (*eoi_write)(u32, u32);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
};
4.8: ✅struct apic {
char *name;
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(int);
int (*apic_id_registered)();
u32 irq_delivery_mode;
u32 irq_dest_mode;
const struct cpumask * (*target_cpus)();
int disable_esr;
int dest_logical;
long unsigned int (*check_apicid_used)(physid_mask_t *, int);
void (*vector_allocation_domain)(int, struct cpumask *, const struct cpumask *);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
unsigned int (*get_apic_id)(long unsigned int);
long unsigned int (*set_apic_id)(unsigned int);
int (*cpu_mask_to_apicid_and)(const struct cpumask *, const struct cpumask *, unsigned int *);
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
u32 (*read)(u32);
void (*write)(u32, u32);
void (*eoi_write)(u32, u32);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
};
4.10: ✅struct apic {
char *name;
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(int);
int (*apic_id_registered)();
u32 irq_delivery_mode;
u32 irq_dest_mode;
const struct cpumask * (*target_cpus)();
int disable_esr;
int dest_logical;
long unsigned int (*check_apicid_used)(physid_mask_t *, int);
void (*vector_allocation_domain)(int, struct cpumask *, const struct cpumask *);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
unsigned int (*get_apic_id)(long unsigned int);
long unsigned int (*set_apic_id)(unsigned int);
int (*cpu_mask_to_apicid_and)(const struct cpumask *, const struct cpumask *, unsigned int *);
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
u32 (*read)(u32);
void (*write)(u32, u32);
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
};
4.13: ✅struct apic {
char *name;
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(int);
int (*apic_id_registered)();
u32 irq_delivery_mode;
u32 irq_dest_mode;
const struct cpumask * (*target_cpus)();
int disable_esr;
int dest_logical;
long unsigned int (*check_apicid_used)(physid_mask_t *, int);
void (*vector_allocation_domain)(int, struct cpumask *, const struct cpumask *);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
unsigned int (*get_apic_id)(long unsigned int);
long unsigned int (*set_apic_id)(unsigned int);
int (*cpu_mask_to_apicid)(const struct cpumask *, struct irq_data *, unsigned int *);
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
u32 (*read)(u32);
void (*write)(u32, u32);
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
};
4.15: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 dest_logical;
u32 disable_esr;
u32 irq_delivery_mode;
u32 irq_dest_mode;
void (*vector_allocation_domain)(int, struct cpumask *, const struct cpumask *);
int (*cpu_mask_to_apicid)(const struct cpumask *, struct irq_data *, unsigned int *);
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(int);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
4.18: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 dest_logical;
u32 disable_esr;
u32 irq_delivery_mode;
u32 irq_dest_mode;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
5.0: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 dest_logical;
u32 disable_esr;
u32 irq_delivery_mode;
u32 irq_dest_mode;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
5.3: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 dest_logical;
u32 disable_esr;
u32 irq_delivery_mode;
u32 irq_dest_mode;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
5.4: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 dest_logical;
u32 disable_esr;
u32 irq_delivery_mode;
u32 irq_dest_mode;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
5.8: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 dest_logical;
u32 disable_esr;
u32 irq_delivery_mode;
u32 irq_dest_mode;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
5.11: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 disable_esr;
enum apic_delivery_modes delivery_mode;
bool dest_mode_logical;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
5.13: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 disable_esr;
enum apic_delivery_modes delivery_mode;
bool dest_mode_logical;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
5.15: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 disable_esr;
enum apic_delivery_modes delivery_mode;
bool dest_mode_logical;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
5.19: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 disable_esr;
enum apic_delivery_modes delivery_mode;
bool dest_mode_logical;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
int (*wakeup_secondary_cpu_64)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
6.2: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 disable_esr;
enum apic_delivery_modes delivery_mode;
bool dest_mode_logical;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
int (*wakeup_secondary_cpu_64)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
6.5: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 disable_esr;
enum apic_delivery_modes delivery_mode;
bool dest_mode_logical;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
int (*wakeup_secondary_cpu_64)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
6.8: ✅struct apic {
void (*eoi)();
void (*native_eoi)();
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 disable_esr;
u32 dest_mode_logical;
u32 x2apic_set_max_apicid;
u32 nmi_to_offline_cpu;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
u32 max_apic_id;
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
bool (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, u32);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
u32 (*cpu_present_to_apicid)(int);
u32 (*phys_pkg_id)(u32, int);
u32 (*get_apic_id)(u32);
u32 (*set_apic_id)(u32);
int (*wakeup_secondary_cpu)(u32, long unsigned int);
int (*wakeup_secondary_cpu_64)(u32, long unsigned int);
char *name;
};
arm64: Absent ⚠️
armhf: Absent ⚠️
ppc64el: Absent ⚠️
riscv64: Absent ⚠️
aws: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 dest_logical;
u32 disable_esr;
u32 irq_delivery_mode;
u32 irq_dest_mode;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
azure: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 dest_logical;
u32 disable_esr;
u32 irq_delivery_mode;
u32 irq_dest_mode;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
gcp: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 dest_logical;
u32 disable_esr;
u32 irq_delivery_mode;
u32 irq_dest_mode;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
lowlatency: ✅struct apic {
void (*eoi_write)(u32, u32);
void (*native_eoi_write)(u32, u32);
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 dest_logical;
u32 disable_esr;
u32 irq_delivery_mode;
u32 irq_dest_mode;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
int (*apic_id_valid)(u32);
int (*apic_id_registered)();
bool (*check_apicid_used)(physid_mask_t *, int);
void (*init_apic_ldr)();
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
void (*setup_apic_routing)();
int (*cpu_present_to_apicid)(int);
void (*apicid_to_cpu_present)(int, physid_mask_t *);
int (*check_phys_apicid_present)(int);
int (*phys_pkg_id)(int, int);
u32 (*get_apic_id)(long unsigned int);
u32 (*set_apic_id)(unsigned int);
int (*wakeup_secondary_cpu)(int, long unsigned int);
void (*inquire_remote_apic)(int);
char *name;
};
Regular
4.4 and 4.8 ⚠️void (*send_IPI)(int, int)
long unsigned int apic_id_mask
4.8 and 4.10 ⚠️void (*native_eoi_write)(u32, u32)
4.10 and 4.13 ⚠️int (*cpu_mask_to_apicid)(const struct cpumask *, struct irq_data *, unsigned int *)
int (*cpu_mask_to_apicid_and)(const struct cpumask *, const struct cpumask *, unsigned int *)
4.13 and 4.15 ⚠️u32 (*calc_dest_apicid)(unsigned int)
const struct cpumask * (*target_cpus)()
int disable_esr ➡️ u32 disable_esr
int dest_logical ➡️ u32 dest_logical
long unsigned int (*check_apicid_used)(physid_mask_t *, int) ➡️ bool (*check_apicid_used)(physid_mask_t *, int)
unsigned int (*get_apic_id)(long unsigned int) ➡️ u32 (*get_apic_id)(long unsigned int)
long unsigned int (*set_apic_id)(unsigned int) ➡️ u32 (*set_apic_id)(unsigned int)
4.15 and 4.18 ⚠️void (*vector_allocation_domain)(int, struct cpumask *, const struct cpumask *)
int (*cpu_mask_to_apicid)(const struct cpumask *, struct irq_data *, unsigned int *)
int (*apic_id_valid)(int) ➡️ int (*apic_id_valid)(u32)
4.18 and 5.0 ✅
5.0 and 5.3 ✅
5.3 and 5.4 ✅
5.4 and 5.8 ✅
5.8 and 5.11 ⚠️enum apic_delivery_modes delivery_mode
bool dest_mode_logical
u32 dest_logical
u32 irq_delivery_mode
u32 irq_dest_mode
5.11 and 5.13 ✅
5.13 and 5.15 ✅
5.15 and 5.19 ⚠️int (*wakeup_secondary_cpu_64)(int, long unsigned int)
5.19 and 6.2 ✅
6.2 and 6.5 ✅
6.5 and 6.8 ⚠️void (*eoi)()
void (*native_eoi)()
u32 x2apic_set_max_apicid
u32 nmi_to_offline_cpu
u32 max_apic_id
void (*eoi_write)(u32, u32)
void (*native_eoi_write)(u32, u32)
enum apic_delivery_modes delivery_mode
int (*apic_id_valid)(u32)
void (*setup_apic_routing)()
void (*apicid_to_cpu_present)(int, physid_mask_t *)
int (*check_phys_apicid_present)(int)
void (*inquire_remote_apic)(int)
bool dest_mode_logical ➡️ u32 dest_mode_logical
int (*apic_id_registered)() ➡️ bool (*apic_id_registered)()
bool (*check_apicid_used)(physid_mask_t *, int) ➡️ bool (*check_apicid_used)(physid_mask_t *, u32)
int (*cpu_present_to_apicid)(int) ➡️ u32 (*cpu_present_to_apicid)(int)
int (*phys_pkg_id)(int, int) ➡️ u32 (*phys_pkg_id)(u32, int)
u32 (*get_apic_id)(long unsigned int) ➡️ u32 (*get_apic_id)(u32)
u32 (*set_apic_id)(unsigned int) ➡️ u32 (*set_apic_id)(u32)
int (*wakeup_secondary_cpu)(int, long unsigned int) ➡️ int (*wakeup_secondary_cpu)(u32, long unsigned int)
int (*wakeup_secondary_cpu_64)(int, long unsigned int) ➡️ int (*wakeup_secondary_cpu_64)(u32, long unsigned int)
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅