aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/core/uverbs.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/core/uverbs.h')
-rw-r--r--drivers/infiniband/core/uverbs.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/infiniband/core/uverbs.h b/drivers/infiniband/core/uverbs.h
index a078e5624d22..5bcb2afd3dcb 100644
--- a/drivers/infiniband/core/uverbs.h
+++ b/drivers/infiniband/core/uverbs.h
@@ -76,6 +76,8 @@ struct ib_uverbs_device {
76 struct ib_device *ib_dev; 76 struct ib_device *ib_dev;
77 int devnum; 77 int devnum;
78 struct cdev cdev; 78 struct cdev cdev;
79 struct rb_root xrcd_tree;
80 struct mutex xrcd_tree_mutex;
79}; 81};
80 82
81struct ib_uverbs_event_file { 83struct ib_uverbs_event_file {
@@ -120,6 +122,16 @@ struct ib_uevent_object {
120 u32 events_reported; 122 u32 events_reported;
121}; 123};
122 124
125struct ib_uxrcd_object {
126 struct ib_uobject uobject;
127 atomic_t refcnt;
128};
129
130struct ib_usrq_object {
131 struct ib_uevent_object uevent;
132 struct ib_uxrcd_object *uxrcd;
133};
134
123struct ib_uqp_object { 135struct ib_uqp_object {
124 struct ib_uevent_object uevent; 136 struct ib_uevent_object uevent;
125 struct list_head mcast_list; 137 struct list_head mcast_list;
@@ -142,6 +154,7 @@ extern struct idr ib_uverbs_ah_idr;
142extern struct idr ib_uverbs_cq_idr; 154extern struct idr ib_uverbs_cq_idr;
143extern struct idr ib_uverbs_qp_idr; 155extern struct idr ib_uverbs_qp_idr;
144extern struct idr ib_uverbs_srq_idr; 156extern struct idr ib_uverbs_srq_idr;
157extern struct idr ib_uverbs_xrcd_idr;
145 158
146void idr_remove_uobj(struct idr *idp, struct ib_uobject *uobj); 159void idr_remove_uobj(struct idr *idp, struct ib_uobject *uobj);
147 160
@@ -161,6 +174,7 @@ void ib_uverbs_qp_event_handler(struct ib_event *event, void *context_ptr);
161void ib_uverbs_srq_event_handler(struct ib_event *event, void *context_ptr); 174void ib_uverbs_srq_event_handler(struct ib_event *event, void *context_ptr);
162void ib_uverbs_event_handler(struct ib_event_handler *handler, 175void ib_uverbs_event_handler(struct ib_event_handler *handler,
163 struct ib_event *event); 176 struct ib_event *event);
177void ib_uverbs_dealloc_xrcd(struct ib_uverbs_device *dev, struct ib_xrcd *xrcd);
164 178
165#define IB_UVERBS_DECLARE_CMD(name) \ 179#define IB_UVERBS_DECLARE_CMD(name) \
166 ssize_t ib_uverbs_##name(struct ib_uverbs_file *file, \ 180 ssize_t ib_uverbs_##name(struct ib_uverbs_file *file, \
@@ -181,6 +195,7 @@ IB_UVERBS_DECLARE_CMD(poll_cq);
181IB_UVERBS_DECLARE_CMD(req_notify_cq); 195IB_UVERBS_DECLARE_CMD(req_notify_cq);
182IB_UVERBS_DECLARE_CMD(destroy_cq); 196IB_UVERBS_DECLARE_CMD(destroy_cq);
183IB_UVERBS_DECLARE_CMD(create_qp); 197IB_UVERBS_DECLARE_CMD(create_qp);
198IB_UVERBS_DECLARE_CMD(open_qp);
184IB_UVERBS_DECLARE_CMD(query_qp); 199IB_UVERBS_DECLARE_CMD(query_qp);
185IB_UVERBS_DECLARE_CMD(modify_qp); 200IB_UVERBS_DECLARE_CMD(modify_qp);
186IB_UVERBS_DECLARE_CMD(destroy_qp); 201IB_UVERBS_DECLARE_CMD(destroy_qp);
@@ -195,5 +210,8 @@ IB_UVERBS_DECLARE_CMD(create_srq);
195IB_UVERBS_DECLARE_CMD(modify_srq); 210IB_UVERBS_DECLARE_CMD(modify_srq);
196IB_UVERBS_DECLARE_CMD(query_srq); 211IB_UVERBS_DECLARE_CMD(query_srq);
197IB_UVERBS_DECLARE_CMD(destroy_srq); 212IB_UVERBS_DECLARE_CMD(destroy_srq);
213IB_UVERBS_DECLARE_CMD(create_xsrq);
214IB_UVERBS_DECLARE_CMD(open_xrcd);
215IB_UVERBS_DECLARE_CMD(close_xrcd);
198 216
199#endif /* UVERBS_H */ 217#endif /* UVERBS_H */