Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
pci-ats.h
Go to the documentation of this file.
1
#ifndef LINUX_PCI_ATS_H
2
#define LINUX_PCI_ATS_H
3
4
#include <linux/pci.h>
5
6
/* Address Translation Service */
7
struct
pci_ats
{
8
int
pos
;
/* capability position */
9
int
stu
;
/* Smallest Translation Unit */
10
int
qdep
;
/* Invalidate Queue Depth */
11
int
ref_cnt
;
/* Physical Function reference count */
12
unsigned
int
is_enabled
:1;
/* Enable bit is set */
13
};
14
15
#ifdef CONFIG_PCI_ATS
16
17
extern
int
pci_enable_ats
(
struct
pci_dev
*
dev
,
int
ps
);
18
extern
void
pci_disable_ats
(
struct
pci_dev
*
dev
);
19
extern
int
pci_ats_queue_depth
(
struct
pci_dev
*
dev
);
20
27
static
inline
int
pci_ats_enabled(
struct
pci_dev
*
dev
)
28
{
29
return
dev->ats && dev->ats->is_enabled;
30
}
31
32
#else
/* CONFIG_PCI_ATS */
33
34
static
inline
int
pci_enable_ats
(
struct
pci_dev
*
dev
,
int
ps
)
35
{
36
return
-
ENODEV
;
37
}
38
39
static
inline
void
pci_disable_ats
(
struct
pci_dev
*
dev
)
40
{
41
}
42
43
static
inline
int
pci_ats_queue_depth
(
struct
pci_dev
*
dev
)
44
{
45
return
-
ENODEV
;
46
}
47
48
static
inline
int
pci_ats_enabled(
struct
pci_dev
*
dev
)
49
{
50
return
0;
51
}
52
53
#endif
/* CONFIG_PCI_ATS */
54
55
#ifdef CONFIG_PCI_PRI
56
57
extern
int
pci_enable_pri(
struct
pci_dev
*pdev,
u32
reqs);
58
extern
void
pci_disable_pri(
struct
pci_dev
*pdev);
59
extern
bool
pci_pri_enabled(
struct
pci_dev
*pdev);
60
extern
int
pci_reset_pri(
struct
pci_dev
*pdev);
61
extern
bool
pci_pri_stopped(
struct
pci_dev
*pdev);
62
extern
int
pci_pri_status(
struct
pci_dev
*pdev);
63
64
#else
/* CONFIG_PCI_PRI */
65
66
static
inline
int
pci_enable_pri(
struct
pci_dev
*pdev,
u32
reqs)
67
{
68
return
-
ENODEV
;
69
}
70
71
static
inline
void
pci_disable_pri(
struct
pci_dev
*pdev)
72
{
73
}
74
75
static
inline
bool
pci_pri_enabled(
struct
pci_dev
*pdev)
76
{
77
return
false
;
78
}
79
80
static
inline
int
pci_reset_pri(
struct
pci_dev
*pdev)
81
{
82
return
-
ENODEV
;
83
}
84
85
static
inline
bool
pci_pri_stopped(
struct
pci_dev
*pdev)
86
{
87
return
true
;
88
}
89
90
static
inline
int
pci_pri_status(
struct
pci_dev
*pdev)
91
{
92
return
-
ENODEV
;
93
}
94
#endif
/* CONFIG_PCI_PRI */
95
96
#ifdef CONFIG_PCI_PASID
97
98
extern
int
pci_enable_pasid(
struct
pci_dev
*pdev,
int
features
);
99
extern
void
pci_disable_pasid(
struct
pci_dev
*pdev);
100
extern
int
pci_pasid_features(
struct
pci_dev
*pdev);
101
extern
int
pci_max_pasids(
struct
pci_dev
*pdev);
102
103
#else
/* CONFIG_PCI_PASID */
104
105
static
inline
int
pci_enable_pasid(
struct
pci_dev
*pdev,
int
features
)
106
{
107
return
-
EINVAL
;
108
}
109
110
static
inline
void
pci_disable_pasid(
struct
pci_dev
*pdev)
111
{
112
}
113
114
static
inline
int
pci_pasid_features(
struct
pci_dev
*pdev)
115
{
116
return
-
EINVAL
;
117
}
118
119
static
inline
int
pci_max_pasids(
struct
pci_dev
*pdev)
120
{
121
return
-
EINVAL
;
122
}
123
124
#endif
/* CONFIG_PCI_PASID */
125
126
127
#endif
/* LINUX_PCI_ATS_H*/
Generated on Thu Jan 10 2013 14:52:17 for Linux Kernel by
1.8.2