genapic_32.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef _ASM_X86_GENAPIC_32_H
  2. #define _ASM_X86_GENAPIC_32_H
  3. #include <asm/mpspec.h>
  4. #include <asm/atomic.h>
  5. #define APICFUNC(x) .x = x,
  6. /* More functions could be probably marked IPIFUNC and save some space
  7. in UP GENERICARCH kernels, but I don't have the nerve right now
  8. to untangle this mess. -AK */
  9. #ifdef CONFIG_SMP
  10. #define IPIFUNC(x) APICFUNC(x)
  11. #else
  12. #define IPIFUNC(x)
  13. #endif
  14. #define APIC_INIT(aname, aprobe) \
  15. { \
  16. .name = aname, \
  17. .probe = aprobe, \
  18. .int_delivery_mode = INT_DELIVERY_MODE, \
  19. .int_dest_mode = INT_DEST_MODE, \
  20. .no_balance_irq = NO_BALANCE_IRQ, \
  21. .ESR_DISABLE = esr_disable, \
  22. .apic_destination_logical = APIC_DEST_LOGICAL, \
  23. APICFUNC(apic_id_registered) \
  24. APICFUNC(target_cpus) \
  25. APICFUNC(check_apicid_used) \
  26. APICFUNC(check_apicid_present) \
  27. APICFUNC(init_apic_ldr) \
  28. APICFUNC(ioapic_phys_id_map) \
  29. APICFUNC(setup_apic_routing) \
  30. APICFUNC(multi_timer_check) \
  31. APICFUNC(apicid_to_node) \
  32. APICFUNC(cpu_to_logical_apicid) \
  33. APICFUNC(cpu_present_to_apicid) \
  34. APICFUNC(apicid_to_cpu_present) \
  35. APICFUNC(setup_portio_remap) \
  36. APICFUNC(check_phys_apicid_present) \
  37. APICFUNC(mps_oem_check) \
  38. APICFUNC(get_apic_id) \
  39. .apic_id_mask = APIC_ID_MASK, \
  40. APICFUNC(cpu_mask_to_apicid) \
  41. APICFUNC(cpu_mask_to_apicid_and) \
  42. APICFUNC(vector_allocation_domain) \
  43. APICFUNC(acpi_madt_oem_check) \
  44. IPIFUNC(send_IPI_mask) \
  45. IPIFUNC(send_IPI_allbutself) \
  46. IPIFUNC(send_IPI_all) \
  47. APICFUNC(enable_apic_mode) \
  48. APICFUNC(phys_pkg_id) \
  49. .trampoline_phys_low = TRAMPOLINE_PHYS_LOW, \
  50. .trampoline_phys_high = TRAMPOLINE_PHYS_HIGH, \
  51. APICFUNC(wait_for_init_deassert) \
  52. APICFUNC(smp_callin_clear_local_apic) \
  53. APICFUNC(store_NMI_vector) \
  54. APICFUNC(restore_NMI_vector) \
  55. APICFUNC(inquire_remote_apic) \
  56. }
  57. extern struct genapic *genapic;
  58. extern void es7000_update_genapic_to_cluster(void);
  59. #endif /* _ASM_X86_GENAPIC_32_H */