diff options
Diffstat (limited to 'drivers/infiniband/hw/nes/nes_user.h')
-rw-r--r-- | drivers/infiniband/hw/nes/nes_user.h | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/nes/nes_user.h b/drivers/infiniband/hw/nes/nes_user.h new file mode 100644 index 000000000000..e64306bce80b --- /dev/null +++ b/drivers/infiniband/hw/nes/nes_user.h | |||
@@ -0,0 +1,112 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2006 - 2008 NetEffect. All rights reserved. | ||
3 | * Copyright (c) 2005 Topspin Communications. All rights reserved. | ||
4 | * Copyright (c) 2005 Cisco Systems. All rights reserved. | ||
5 | * Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved. | ||
6 | * | ||
7 | * This software is available to you under a choice of one of two | ||
8 | * licenses. You may choose to be licensed under the terms of the GNU | ||
9 | * General Public License (GPL) Version 2, available from the file | ||
10 | * COPYING in the main directory of this source tree, or the | ||
11 | * OpenIB.org BSD license below: | ||
12 | * | ||
13 | * Redistribution and use in source and binary forms, with or | ||
14 | * without modification, are permitted provided that the following | ||
15 | * conditions are met: | ||
16 | * | ||
17 | * - Redistributions of source code must retain the above | ||
18 | * copyright notice, this list of conditions and the following | ||
19 | * disclaimer. | ||
20 | * | ||
21 | * - Redistributions in binary form must reproduce the above | ||
22 | * copyright notice, this list of conditions and the following | ||
23 | * disclaimer in the documentation and/or other materials | ||
24 | * provided with the distribution. | ||
25 | * | ||
26 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
27 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
28 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
29 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||
30 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||
31 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
32 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
33 | * SOFTWARE. | ||
34 | * | ||
35 | */ | ||
36 | |||
37 | #ifndef NES_USER_H | ||
38 | #define NES_USER_H | ||
39 | |||
40 | #include <linux/types.h> | ||
41 | |||
42 | #define NES_ABI_USERSPACE_VER 1 | ||
43 | #define NES_ABI_KERNEL_VER 1 | ||
44 | |||
45 | /* | ||
46 | * Make sure that all structs defined in this file remain laid out so | ||
47 | * that they pack the same way on 32-bit and 64-bit architectures (to | ||
48 | * avoid incompatibility between 32-bit userspace and 64-bit kernels). | ||
49 | * In particular do not use pointer types -- pass pointers in __u64 | ||
50 | * instead. | ||
51 | */ | ||
52 | |||
53 | struct nes_alloc_ucontext_req { | ||
54 | __u32 reserved32; | ||
55 | __u8 userspace_ver; | ||
56 | __u8 reserved8[3]; | ||
57 | }; | ||
58 | |||
59 | struct nes_alloc_ucontext_resp { | ||
60 | __u32 max_pds; /* maximum pds allowed for this user process */ | ||
61 | __u32 max_qps; /* maximum qps allowed for this user process */ | ||
62 | __u32 wq_size; /* size of the WQs (sq+rq) allocated to the mmaped area */ | ||
63 | __u8 virtwq; /* flag to indicate if virtual WQ are to be used or not */ | ||
64 | __u8 kernel_ver; | ||
65 | __u8 reserved[2]; | ||
66 | }; | ||
67 | |||
68 | struct nes_alloc_pd_resp { | ||
69 | __u32 pd_id; | ||
70 | __u32 mmap_db_index; | ||
71 | }; | ||
72 | |||
73 | struct nes_create_cq_req { | ||
74 | __u64 user_cq_buffer; | ||
75 | __u32 mcrqf; | ||
76 | __u8 reserved[4]; | ||
77 | }; | ||
78 | |||
79 | struct nes_create_qp_req { | ||
80 | __u64 user_wqe_buffers; | ||
81 | }; | ||
82 | |||
83 | enum iwnes_memreg_type { | ||
84 | IWNES_MEMREG_TYPE_MEM = 0x0000, | ||
85 | IWNES_MEMREG_TYPE_QP = 0x0001, | ||
86 | IWNES_MEMREG_TYPE_CQ = 0x0002, | ||
87 | IWNES_MEMREG_TYPE_MW = 0x0003, | ||
88 | IWNES_MEMREG_TYPE_FMR = 0x0004, | ||
89 | }; | ||
90 | |||
91 | struct nes_mem_reg_req { | ||
92 | __u32 reg_type; /* indicates if id is memory, QP or CQ */ | ||
93 | __u32 reserved; | ||
94 | }; | ||
95 | |||
96 | struct nes_create_cq_resp { | ||
97 | __u32 cq_id; | ||
98 | __u32 cq_size; | ||
99 | __u32 mmap_db_index; | ||
100 | __u32 reserved; | ||
101 | }; | ||
102 | |||
103 | struct nes_create_qp_resp { | ||
104 | __u32 qp_id; | ||
105 | __u32 actual_sq_size; | ||
106 | __u32 actual_rq_size; | ||
107 | __u32 mmap_sq_db_index; | ||
108 | __u32 mmap_rq_db_index; | ||
109 | __u32 nes_drv_opt; | ||
110 | }; | ||
111 | |||
112 | #endif /* NES_USER_H */ | ||