1c39526b7SPramod Gunjikar /*
2c39526b7SPramod Gunjikar  * CDDL HEADER START
3c39526b7SPramod Gunjikar  *
4c39526b7SPramod Gunjikar  * The contents of this file are subject to the terms of the
5c39526b7SPramod Gunjikar  * Common Development and Distribution License (the "License").
6c39526b7SPramod Gunjikar  * You may not use this file except in compliance with the License.
7c39526b7SPramod Gunjikar  *
8c39526b7SPramod Gunjikar  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9c39526b7SPramod Gunjikar  * or http://www.opensolaris.org/os/licensing.
10c39526b7SPramod Gunjikar  * See the License for the specific language governing permissions
11c39526b7SPramod Gunjikar  * and limitations under the License.
12c39526b7SPramod Gunjikar  *
13c39526b7SPramod Gunjikar  * When distributing Covered Code, include this CDDL HEADER in each
14c39526b7SPramod Gunjikar  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15c39526b7SPramod Gunjikar  * If applicable, add the following below this CDDL HEADER, with the
16c39526b7SPramod Gunjikar  * fields enclosed by brackets "[]" replaced with your own identifying
17c39526b7SPramod Gunjikar  * information: Portions Copyright [yyyy] [name of copyright owner]
18c39526b7SPramod Gunjikar  *
19c39526b7SPramod Gunjikar  * CDDL HEADER END
20c39526b7SPramod Gunjikar  */
21c39526b7SPramod Gunjikar 
22c39526b7SPramod Gunjikar /*
23c39526b7SPramod Gunjikar  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
24c39526b7SPramod Gunjikar  */
25c39526b7SPramod Gunjikar 
26c39526b7SPramod Gunjikar #ifndef _SYS_IB_CLIENTS_OF_SOL_UVERBS_SOL_UVERBS_QP_H
27c39526b7SPramod Gunjikar #define	_SYS_IB_CLIENTS_OF_SOL_UVERBS_SOL_UVERBS_QP_H
28c39526b7SPramod Gunjikar 
29c39526b7SPramod Gunjikar #ifdef __cplusplus
30c39526b7SPramod Gunjikar extern "C" {
31c39526b7SPramod Gunjikar #endif
32c39526b7SPramod Gunjikar 
33c39526b7SPramod Gunjikar /*
34c39526b7SPramod Gunjikar  * NAME: sol_uverbs_qp.h
35c39526b7SPramod Gunjikar  *
36c39526b7SPramod Gunjikar  * DESC: OFED User Verbs Kernel Queue Pair structures and definitions
37c39526b7SPramod Gunjikar  *
38c39526b7SPramod Gunjikar  */
39c39526b7SPramod Gunjikar 
40c39526b7SPramod Gunjikar /*
41c39526b7SPramod Gunjikar  * Definitions
42c39526b7SPramod Gunjikar  */
43c39526b7SPramod Gunjikar #define	IBT_TO_OFA_QP_STATE(_state)  ((_state) < IBT_STATE_SQDRAIN ?   \
44*a522dae1SToomas Soome 	(enum ib_qp_state)(_state) : IB_QPS_SQD)
45c39526b7SPramod Gunjikar 
46c39526b7SPramod Gunjikar /*
47c39526b7SPramod Gunjikar  * Structures
48c39526b7SPramod Gunjikar  */
49c39526b7SPramod Gunjikar 
50c39526b7SPramod Gunjikar /*
51c39526b7SPramod Gunjikar  * Functions - See sol_uverbs_qp.c for descriptions
52c39526b7SPramod Gunjikar  */
53c39526b7SPramod Gunjikar int sol_uverbs_create_qp(uverbs_uctxt_uobj_t *uctxt, char *buf, int in_len,
54c39526b7SPramod Gunjikar 								int out_len);
55c39526b7SPramod Gunjikar 
56c39526b7SPramod Gunjikar int sol_uverbs_destroy_qp(uverbs_uctxt_uobj_t *uctxt, char *buf, int in_len,
57c39526b7SPramod Gunjikar 								int out_len);
58c39526b7SPramod Gunjikar 
59c39526b7SPramod Gunjikar int sol_uverbs_modify_qp(uverbs_uctxt_uobj_t *uctxt, char *buf, int in_len,
60c39526b7SPramod Gunjikar 								int out_len);
61c39526b7SPramod Gunjikar 
62c39526b7SPramod Gunjikar int sol_uverbs_query_qp(uverbs_uctxt_uobj_t *uctxt, char *buf, int in_len,
63c39526b7SPramod Gunjikar 								int out_len);
64c39526b7SPramod Gunjikar 
65c39526b7SPramod Gunjikar int sol_uverbs_create_srq(uverbs_uctxt_uobj_t *uctxt, char *buf, int in_len,
66c39526b7SPramod Gunjikar 								int out_len);
67c39526b7SPramod Gunjikar 
68c39526b7SPramod Gunjikar int sol_uverbs_modify_srq(uverbs_uctxt_uobj_t *uctxt, char *buf, int in_len,
69c39526b7SPramod Gunjikar 								int out_len);
70c39526b7SPramod Gunjikar 
71c39526b7SPramod Gunjikar int sol_uverbs_query_srq(uverbs_uctxt_uobj_t *uctxt, char *buf, int in_len,
72c39526b7SPramod Gunjikar 								int out_len);
73c39526b7SPramod Gunjikar 
74c39526b7SPramod Gunjikar int sol_uverbs_destroy_srq(uverbs_uctxt_uobj_t *uctxt, char *buf, int in_len,
75c39526b7SPramod Gunjikar 								int out_len);
76c39526b7SPramod Gunjikar 
77c39526b7SPramod Gunjikar int sol_uverbs_attach_mcast(uverbs_uctxt_uobj_t *uctxt, char *buf, int in_len,
78c39526b7SPramod Gunjikar 								int out_len);
79c39526b7SPramod Gunjikar 
80c39526b7SPramod Gunjikar int sol_uverbs_detach_mcast(uverbs_uctxt_uobj_t *uctxt, char *buf, int in_len,
81c39526b7SPramod Gunjikar 								int out_len);
82c39526b7SPramod Gunjikar 
83c39526b7SPramod Gunjikar void uverbs_detach_uqp_mcast_entries(uverbs_uqp_uobj_t *uqp);
84c39526b7SPramod Gunjikar 
85c39526b7SPramod Gunjikar #ifdef __cplusplus
86c39526b7SPramod Gunjikar }
87c39526b7SPramod Gunjikar #endif
88c39526b7SPramod Gunjikar #endif /* _SYS_IB_CLIENTS_OF_SOL_UVERBS_SOL_UVERBS_QP_H */