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