1 /*******************************************************************
2 * This file is part of the Emulex RoCE Device Driver for *
3 * RoCE (RDMA over Converged Ethernet) adapters. *
4 * Copyright (C) 2008-2012 Emulex. All rights reserved. *
5 * EMULEX and SLI are trademarks of Emulex. *
8 * This program is free software; you can redistribute it and/or *
9 * modify it under the terms of version 2 of the GNU General *
10 * Public License as published by the Free Software Foundation. *
11 * This program is distributed in the hope that it will be useful. *
12 * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND *
13 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, *
14 * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE *
15 * DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD *
16 * TO BE LEGALLY INVALID. See the GNU General Public License for *
17 * more details, a copy of which can be found in the file COPYING *
18 * included with this package. *
20 * Contact Information:
21 * linux-drivers@emulex.com
25 * Costa Mesa, CA 92626
26 *******************************************************************/
28 #ifndef __OCRDMA_VERBS_H__
29 #define __OCRDMA_VERBS_H__
31 int ocrdma_post_send(struct ib_qp
*, struct ib_send_wr
*,
32 struct ib_send_wr
**bad_wr
);
33 int ocrdma_post_recv(struct ib_qp
*, struct ib_recv_wr
*,
34 struct ib_recv_wr
**bad_wr
);
36 int ocrdma_poll_cq(struct ib_cq
*, int num_entries
, struct ib_wc
*wc
);
37 int ocrdma_arm_cq(struct ib_cq
*, enum ib_cq_notify_flags flags
);
39 int ocrdma_query_device(struct ib_device
*, struct ib_device_attr
*props
);
40 int ocrdma_query_port(struct ib_device
*, u8 port
, struct ib_port_attr
*props
);
41 int ocrdma_modify_port(struct ib_device
*, u8 port
, int mask
,
42 struct ib_port_modify
*props
);
44 void ocrdma_get_guid(struct ocrdma_dev
*, u8
*guid
);
45 int ocrdma_query_gid(struct ib_device
*, u8 port
,
46 int index
, union ib_gid
*gid
);
47 int ocrdma_query_pkey(struct ib_device
*, u8 port
, u16 index
, u16
*pkey
);
49 struct ib_ucontext
*ocrdma_alloc_ucontext(struct ib_device
*,
51 int ocrdma_dealloc_ucontext(struct ib_ucontext
*);
53 int ocrdma_mmap(struct ib_ucontext
*, struct vm_area_struct
*vma
);
55 struct ib_pd
*ocrdma_alloc_pd(struct ib_device
*,
56 struct ib_ucontext
*, struct ib_udata
*);
57 int ocrdma_dealloc_pd(struct ib_pd
*pd
);
59 struct ib_cq
*ocrdma_create_cq(struct ib_device
*, int entries
, int vector
,
60 struct ib_ucontext
*, struct ib_udata
*);
61 int ocrdma_resize_cq(struct ib_cq
*, int cqe
, struct ib_udata
*);
62 int ocrdma_destroy_cq(struct ib_cq
*);
64 struct ib_qp
*ocrdma_create_qp(struct ib_pd
*,
65 struct ib_qp_init_attr
*attrs
,
67 int _ocrdma_modify_qp(struct ib_qp
*, struct ib_qp_attr
*attr
,
69 int ocrdma_modify_qp(struct ib_qp
*, struct ib_qp_attr
*attr
,
70 int attr_mask
, struct ib_udata
*udata
);
71 int ocrdma_query_qp(struct ib_qp
*,
72 struct ib_qp_attr
*qp_attr
,
73 int qp_attr_mask
, struct ib_qp_init_attr
*);
74 int ocrdma_destroy_qp(struct ib_qp
*);
76 struct ib_srq
*ocrdma_create_srq(struct ib_pd
*, struct ib_srq_init_attr
*,
78 int ocrdma_modify_srq(struct ib_srq
*, struct ib_srq_attr
*,
79 enum ib_srq_attr_mask
, struct ib_udata
*);
80 int ocrdma_query_srq(struct ib_srq
*, struct ib_srq_attr
*);
81 int ocrdma_destroy_srq(struct ib_srq
*);
82 int ocrdma_post_srq_recv(struct ib_srq
*, struct ib_recv_wr
*,
83 struct ib_recv_wr
**bad_recv_wr
);
85 int ocrdma_dereg_mr(struct ib_mr
*);
86 struct ib_mr
*ocrdma_get_dma_mr(struct ib_pd
*, int acc
);
87 struct ib_mr
*ocrdma_reg_kernel_mr(struct ib_pd
*,
88 struct ib_phys_buf
*buffer_list
,
89 int num_phys_buf
, int acc
, u64
*iova_start
);
90 struct ib_mr
*ocrdma_reg_user_mr(struct ib_pd
*, u64 start
, u64 length
,
91 u64 virt
, int acc
, struct ib_udata
*);
93 #endif /* __OCRDMA_VERBS_H__ */