1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
24  */
25 
26 #ifndef	_SYS_IB_CLIENTS_OF_SOL_UCMA_SOL_RDMA_USER_CM_H
27 #define	_SYS_IB_CLIENTS_OF_SOL_UCMA_SOL_RDMA_USER_CM_H
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 #include <sys/ib/clients/of/ofa_solaris.h>
34 #include <sys/ib/clients/of/rdma/rdma_user_cm.h>
35 
36 /*
37  * Typedefs for data structures defined in rdma_user_cm.h
38  */
39 typedef struct rdma_ucm_cmd_hdr		sol_ucma_cmd_hdr_t;
40 typedef struct rdma_ucm_create_id	sol_ucma_create_id_t;
41 typedef struct rdma_ucm_create_id_resp	sol_ucma_create_id_resp_t;
42 typedef struct rdma_ucm_destroy_id	sol_ucma_destroy_id_t;
43 typedef struct rdma_ucm_destroy_id_resp	sol_ucma_destroy_id_resp_t;
44 typedef struct rdma_ucm_bind_addr	sol_ucma_bind_addr_t;
45 typedef struct rdma_ucm_resolve_addr	sol_ucma_resolve_addr_t;
46 typedef struct rdma_ucm_resolve_route	sol_ucma_resolve_route_t;
47 typedef struct rdma_ucm_query_route	sol_ucma_query_route_t;
48 typedef struct rdma_ucm_query_route_resp
49     sol_ucma_query_route_resp_t;
50 typedef struct rdma_ucm_connect		sol_ucma_connect_t;
51 typedef struct rdma_ucm_listen		sol_ucma_listen_t;
52 typedef struct rdma_ucm_accept		sol_ucma_accept_t;
53 typedef struct rdma_ucm_reject 		sol_ucma_reject_t;
54 typedef struct rdma_ucm_disconnect	sol_ucma_disconnect_t;
55 typedef struct rdma_ucm_init_qp_attr	sol_ucma_init_qp_attr_t;
56 typedef struct rdma_ucm_notify		sol_ucma_notify_t;
57 typedef struct rdma_ucm_join_mcast	sol_ucma_join_mcast_t;
58 typedef struct rdma_ucm_get_event	sol_ucma_get_event_t;
59 typedef struct rdma_ucm_event_resp	sol_ucma_event_resp_t;
60 typedef struct rdma_ucm_ud_param	sol_ucma_ud_param_t;
61 typedef struct rdma_ucm_set_option	sol_ucma_set_option_t;
62 
63 #pragma pack(1)
64 typedef struct {
65 	uint64_t		response;
66 	struct sockaddr_in6	addr;
67 	uint32_t		id;
68 } sol_ucma_bind_addr32_t;
69 
70 typedef struct {
71 	uint64_t		response;
72 	struct sockaddr_in6	addr;
73 	uint32_t		id;
74 	uint32_t		reserved;
75 } sol_ucma_bind_addr64_t;
76 
77 typedef struct {
78 	uint64_t		response;
79 	uint64_t		uid;
80 	struct sockaddr_in6	addr;
81 	uint32_t		id;
82 } sol_ucma_join_mcast32_t;
83 
84 typedef struct {
85 	uint64_t		response;
86 	uint64_t		uid;
87 	struct sockaddr_in6	addr;
88 	uint32_t		id;
89 	uint32_t		reserved;
90 } sol_ucma_join_mcast64_t;
91 #pragma pack()
92 
93 #ifdef __cplusplus
94 }
95 #endif
96 
97 #endif /* _SYS_IB_CLIENTS_OF_SOL_UCMA_SOL_RDMA_USER_CM_H */
98