iosapic.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2. ** This file is private to iosapic driver.
  3. ** If stuff needs to be used by another driver, move it to a common file.
  4. **
  5. ** WARNING: fields most data structures here are ordered to make sure
  6. **          they pack nicely for 64-bit compilation. (ie sizeof(long) == 8)
  7. */
  8. /*
  9. ** I/O SAPIC init function
  10. ** Caller knows where an I/O SAPIC is. LBA has an integrated I/O SAPIC.
  11. ** Call setup as part of per instance initialization.
  12. ** (ie *not* init_module() function unless only one is present.)
  13. ** fixup_irq is to initialize PCI IRQ line support and
  14. ** virtualize pcidev->irq value. To be called by pci_fixup_bus().
  15. */
  16. extern void *iosapic_register(void *hpa);
  17. extern int iosapic_fixup_irq(void *obj, struct pci_dev *pcidev);
  18. #ifdef __IA64__
  19. /*
  20. ** PA: PIB (Processor Interrupt Block) is handled by Runway bus adapter.
  21. **     and is hardcoded to 0xfeeNNNN0 where NNNN is id_eid field.
  22. **
  23. ** IA64: PIB is handled by "Local SAPIC" (integrated in the processor).
  24. */
  25. struct local_sapic_info {
  26. struct local_sapic_info *lsi_next;      /* point to next CPU info */
  27. int                     *lsi_cpu_id;    /* point to logical CPU id */
  28. unsigned long           *lsi_id_eid;    /* point to IA-64 CPU id */
  29. int                     *lsi_status;    /* point to CPU status   */
  30. void                    *lsi_private;   /* point to special info */
  31. };
  32. /*
  33. ** "root" data structure which ties everything together.
  34. ** Should always be able to start with sapic_root and locate
  35. ** the desired information.
  36. */
  37. struct sapic_info {
  38. struct sapic_info *si_next; /* info is per cell */
  39. int                     si_cellid;      /* cell id */
  40. unsigned int            si_status;       /* status  */
  41. char                    *si_pib_base;   /* intr blk base address */
  42. local_sapic_info_t      *si_local_info;
  43. io_sapic_info_t         *si_io_info;
  44. extint_info_t           *si_extint_info;/* External Intr info      */
  45. };
  46. #endif /* IA64 */