iosapic.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #ifndef __ASM_IA64_IOSAPIC_H
  2. #define __ASM_IA64_IOSAPIC_H
  3. #define IOSAPIC_DEFAULT_ADDR 0xFEC00000
  4. #define IOSAPIC_REG_SELECT 0x0
  5. #define IOSAPIC_WINDOW 0x10
  6. #define IOSAPIC_EOI 0x40
  7. #define IOSAPIC_VERSION 0x1
  8. /*
  9.  * Redirection table entry
  10.  */
  11. #define IOSAPIC_RTE_LOW(i) (0x10+i*2)
  12. #define IOSAPIC_RTE_HIGH(i) (0x11+i*2)
  13. #define IOSAPIC_DEST_SHIFT 16
  14. /*
  15.  * Delivery mode
  16.  */
  17. #define IOSAPIC_DELIVERY_SHIFT 8
  18. #define IOSAPIC_FIXED 0x0
  19. #define IOSAPIC_LOWEST_PRIORITY 0x1
  20. #define IOSAPIC_PMI 0x2
  21. #define IOSAPIC_NMI 0x4
  22. #define IOSAPIC_INIT 0x5
  23. #define IOSAPIC_EXTINT 0x7
  24. /*
  25.  * Interrupt polarity
  26.  */
  27. #define IOSAPIC_POLARITY_SHIFT 13
  28. #define IOSAPIC_POL_HIGH 0
  29. #define IOSAPIC_POL_LOW 1
  30. /*
  31.  * Trigger mode
  32.  */
  33. #define IOSAPIC_TRIGGER_SHIFT 15
  34. #define IOSAPIC_EDGE 0
  35. #define IOSAPIC_LEVEL 1
  36. /*
  37.  * Mask bit
  38.  */
  39. #define IOSAPIC_MASK_SHIFT 16
  40. #define IOSAPIC_UNMASK 0
  41. #define IOSAPIC_MSAK 1
  42. #ifndef __ASSEMBLY__
  43. extern void __devinit iosapic_init (unsigned long address,
  44.     unsigned int gsi_base,
  45.     int pcat_compat);
  46. extern int gsi_to_vector (unsigned int gsi);
  47. extern int iosapic_register_intr (unsigned int gsi, unsigned long polarity,
  48.   unsigned long edge_triggered,
  49.   u32 gsi_base, char *iosapic_address);
  50. extern void iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi,
  51.       unsigned long polarity,
  52.       unsigned long edge_triggered);
  53. extern int iosapic_register_platform_intr (u32 int_type,
  54.    unsigned int gsi,
  55.    int pmi_vector,
  56.    u16 eid, u16 id,
  57.    unsigned long polarity,
  58.    unsigned long edge_triggered,
  59.    unsigned int gsi_base,
  60.    char *iosapic_address);
  61. extern unsigned int iosapic_version (char *addr);
  62. extern void iosapic_pci_fixup (int);
  63. # endif /* !__ASSEMBLY__ */
  64. #endif /* __ASM_IA64_IOSAPIC_H */