pci_sun4v.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /* pci_sun4v.h: SUN4V specific PCI controller support.
  2. *
  3. * Copyright (C) 2006 David S. Miller (davem@davemloft.net)
  4. */
  5. #ifndef _PCI_SUN4V_H
  6. #define _PCI_SUN4V_H
  7. extern long pci_sun4v_iommu_map(unsigned long devhandle,
  8. unsigned long tsbid,
  9. unsigned long num_ttes,
  10. unsigned long io_attributes,
  11. unsigned long io_page_list_pa);
  12. extern unsigned long pci_sun4v_iommu_demap(unsigned long devhandle,
  13. unsigned long tsbid,
  14. unsigned long num_ttes);
  15. extern unsigned long pci_sun4v_iommu_getmap(unsigned long devhandle,
  16. unsigned long tsbid,
  17. unsigned long *io_attributes,
  18. unsigned long *real_address);
  19. extern unsigned long pci_sun4v_config_get(unsigned long devhandle,
  20. unsigned long pci_device,
  21. unsigned long config_offset,
  22. unsigned long size);
  23. extern int pci_sun4v_config_put(unsigned long devhandle,
  24. unsigned long pci_device,
  25. unsigned long config_offset,
  26. unsigned long size,
  27. unsigned long data);
  28. extern unsigned long pci_sun4v_msiq_conf(unsigned long devhandle,
  29. unsigned long msiqid,
  30. unsigned long msiq_paddr,
  31. unsigned long num_entries);
  32. extern unsigned long pci_sun4v_msiq_info(unsigned long devhandle,
  33. unsigned long msiqid,
  34. unsigned long *msiq_paddr,
  35. unsigned long *num_entries);
  36. extern unsigned long pci_sun4v_msiq_getvalid(unsigned long devhandle,
  37. unsigned long msiqid,
  38. unsigned long *valid);
  39. extern unsigned long pci_sun4v_msiq_setvalid(unsigned long devhandle,
  40. unsigned long msiqid,
  41. unsigned long valid);
  42. extern unsigned long pci_sun4v_msiq_getstate(unsigned long devhandle,
  43. unsigned long msiqid,
  44. unsigned long *state);
  45. extern unsigned long pci_sun4v_msiq_setstate(unsigned long devhandle,
  46. unsigned long msiqid,
  47. unsigned long state);
  48. extern unsigned long pci_sun4v_msiq_gethead(unsigned long devhandle,
  49. unsigned long msiqid,
  50. unsigned long *head);
  51. extern unsigned long pci_sun4v_msiq_sethead(unsigned long devhandle,
  52. unsigned long msiqid,
  53. unsigned long head);
  54. extern unsigned long pci_sun4v_msiq_gettail(unsigned long devhandle,
  55. unsigned long msiqid,
  56. unsigned long *head);
  57. extern unsigned long pci_sun4v_msi_getvalid(unsigned long devhandle,
  58. unsigned long msinum,
  59. unsigned long *valid);
  60. extern unsigned long pci_sun4v_msi_setvalid(unsigned long devhandle,
  61. unsigned long msinum,
  62. unsigned long valid);
  63. extern unsigned long pci_sun4v_msi_getmsiq(unsigned long devhandle,
  64. unsigned long msinum,
  65. unsigned long *msiq);
  66. extern unsigned long pci_sun4v_msi_setmsiq(unsigned long devhandle,
  67. unsigned long msinum,
  68. unsigned long msiq,
  69. unsigned long msitype);
  70. extern unsigned long pci_sun4v_msi_getstate(unsigned long devhandle,
  71. unsigned long msinum,
  72. unsigned long *state);
  73. extern unsigned long pci_sun4v_msi_setstate(unsigned long devhandle,
  74. unsigned long msinum,
  75. unsigned long state);
  76. extern unsigned long pci_sun4v_msg_getmsiq(unsigned long devhandle,
  77. unsigned long msinum,
  78. unsigned long *msiq);
  79. extern unsigned long pci_sun4v_msg_setmsiq(unsigned long devhandle,
  80. unsigned long msinum,
  81. unsigned long msiq);
  82. extern unsigned long pci_sun4v_msg_getvalid(unsigned long devhandle,
  83. unsigned long msinum,
  84. unsigned long *valid);
  85. extern unsigned long pci_sun4v_msg_setvalid(unsigned long devhandle,
  86. unsigned long msinum,
  87. unsigned long valid);
  88. #endif /* !(_PCI_SUN4V_H) */