1256694Snp/*
2256694Snp * Copyright (c) 2009-2013 Chelsio, Inc. All rights reserved.
3256694Snp *
4256694Snp * This software is available to you under a choice of one of two
5256694Snp * licenses.  You may choose to be licensed under the terms of the GNU
6256694Snp * General Public License (GPL) Version 2, available from the file
7256694Snp * COPYING in the main directory of this source tree, or the
8256694Snp * OpenIB.org BSD license below:
9256694Snp *
10256694Snp *     Redistribution and use in source and binary forms, with or
11256694Snp *     without modification, are permitted provided that the following
12256694Snp *     conditions are met:
13256694Snp *
14256694Snp *      - Redistributions of source code must retain the above
15256694Snp *        copyright notice, this list of conditions and the following
16256694Snp *        disclaimer.
17256694Snp *
18256694Snp *      - Redistributions in binary form must reproduce the above
19256694Snp *        copyright notice, this list of conditions and the following
20256694Snp *        disclaimer in the documentation and/or other materials
21256694Snp *        provided with the distribution.
22256694Snp *
23256694Snp * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24256694Snp * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25256694Snp * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26256694Snp * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
27256694Snp * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
28256694Snp * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
29256694Snp * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30256694Snp * SOFTWARE.
31256694Snp *
32256694Snp * $FreeBSD: stable/10/sys/dev/cxgbe/iw_cxgbe/user.h 309378 2016-12-01 23:38:52Z jhb $
33256694Snp */
34256694Snp#ifndef __C4IW_USER_H__
35256694Snp#define __C4IW_USER_H__
36256694Snp
37256694Snp#define C4IW_UVERBS_ABI_VERSION	2
38256694Snp
39256694Snp/*
40256694Snp * Make sure that all structs defined in this file remain laid out so
41256694Snp * that they pack the same way on 32-bit and 64-bit architectures (to
42256694Snp * avoid incompatibility between 32-bit userspace and 64-bit kernels).
43256694Snp * In particular do not use pointer types -- pass pointers in __u64
44256694Snp * instead.
45256694Snp */
46256694Snpstruct c4iw_create_cq_resp {
47256694Snp	__u64 key;
48256694Snp	__u64 gts_key;
49256694Snp	__u64 memsize;
50256694Snp	__u32 cqid;
51256694Snp	__u32 size;
52256694Snp	__u32 qid_mask;
53309378Sjhb	__u32 reserved; /* explicit padding (optional for i386) */
54256694Snp};
55256694Snp
56256694Snpstruct c4iw_create_qp_resp {
57256694Snp	__u64 ma_sync_key;
58256694Snp	__u64 sq_key;
59256694Snp	__u64 rq_key;
60256694Snp	__u64 sq_db_gts_key;
61256694Snp	__u64 rq_db_gts_key;
62256694Snp	__u64 sq_memsize;
63256694Snp	__u64 rq_memsize;
64256694Snp	__u32 sqid;
65256694Snp	__u32 rqid;
66256694Snp	__u32 sq_size;
67256694Snp	__u32 rq_size;
68256694Snp	__u32 qid_mask;
69256694Snp	__u32 flags;
70256694Snp};
71256694Snp#endif
72