author | sreynata <sreyas.natarajan@oracle.com> |
Tue, 26 Jul 2016 11:56:10 -0700 | |
branch | s11u3-sru |
changeset 6479 | 5730eca693a9 |
parent 5812 | ac16f94826c3 |
child 7120 | b01185225eaa |
permissions | -rw-r--r-- |
5812
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
1 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
2 |
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
3 |
*/ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
4 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
5 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
6 |
* Redistribution and use in source and binary forms, with or without |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
7 |
* modification, are permitted provided that the following conditions are met: |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
8 |
* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
9 |
* 1. Redistributions of source code must retain the above copyright notice, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
10 |
* this list of conditions and the following disclaimer. |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
11 |
* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
12 |
* 2. Redistributions in binary form must reproduce the above copyright notice, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
13 |
* this list of conditions and the following disclaimer in the documentation |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
14 |
* and/or other materials provided with the distribution. |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
15 |
* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
16 |
* 3. Neither the name of the copyright holder nor the names of its contributors |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
17 |
* may be used to endorse or promote products derived from this software |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
18 |
* without specific prior written permission. |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
19 |
* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
20 |
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
21 |
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
22 |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
23 |
* ARE DISCLAIMED. |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
24 |
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
25 |
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
26 |
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
27 |
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
28 |
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
29 |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
30 |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
31 |
*/ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
32 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
33 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
34 |
* Userspace library for Oracle SIF Infiniband PCI Express |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
35 |
* host channel adapter (HCA) |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
36 |
* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
37 |
* sif_user.h: This file defines sif specific verbs extension request/response. |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
38 |
* This file is included both from user space and kernel space so |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
39 |
* it must not contain any kernel/user specific header file includes. |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
40 |
*/ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
41 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
42 |
#ifndef _SIF_USER_H |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
43 |
#define _SIF_USER_H |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
44 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
45 |
#ifdef __cplusplus |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
46 |
extern "C" { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
47 |
#endif |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
48 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
49 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
50 |
* Binary interface control: |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
51 |
* Major version difference indicate backward incompatible changes |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
52 |
* Minor version difference indicate that only a common subset of |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
53 |
* features are available. |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
54 |
* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
55 |
*/ |
6479
5730eca693a9
23188922 libsif to support TSL policy
sreynata <sreyas.natarajan@oracle.com>
parents:
5812
diff
changeset
|
56 |
#define SIF_UVERBS_ABI_MAJOR_VERSION 4 |
5730eca693a9
23188922 libsif to support TSL policy
sreynata <sreyas.natarajan@oracle.com>
parents:
5812
diff
changeset
|
57 |
#define SIF_UVERBS_ABI_MINOR_VERSION 0 |
5812
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
58 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
59 |
/* Bw comp */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
60 |
#define SIF_UVERBS_VERSION(x, y) ((x) << 8 | (y)) |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
61 |
#define SIF_UVERBS_ABI_VERSION \ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
62 |
SIF_UVERBS_VERSION(SIF_UVERBS_ABI_MAJOR_VERSION, \ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
63 |
SIF_UVERBS_ABI_MINOR_VERSION) |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
64 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
65 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
66 |
* Bit 5 is not used by the PSIF_WC_OPCODE_FOO_BAR enums. Hence, using |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
67 |
* it to indicate if QP has been destroyed before the CQE has been |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
68 |
* polled |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
69 |
*/ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
70 |
#define SIF_WC_QP_DESTROYED (1<<5) |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
71 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
72 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
73 |
* This struct will be amended to an un-polled cqe, in case the QP has |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
74 |
* been destroyed before the CQEs are polled. The information is |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
75 |
* needed in order to handle flushing of SRQs and generation of Last |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
76 |
* WQE Reached event. |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
77 |
* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
78 |
* The information amended to the CQE is _only_ valid if the CQE has |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
79 |
* been marked with SIF_WC_QP_DESTROYED. |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
80 |
*/ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
81 |
struct sif_post_mortem_qp_info_in_cqe { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
82 |
int was_srq; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
83 |
int srq_idx; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
84 |
int qpn; /* Could be useful for de-bugging/logging */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
85 |
}; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
86 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
87 |
#ifndef __u32 |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
88 |
#define __u32 uint32_t |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
89 |
#endif |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
90 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
91 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
92 |
* These definitions must be kept in sync with |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
93 |
* the ones in libsif's sif.h |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
94 |
*/ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
95 |
typedef enum sif_vendor_flags { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
96 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
97 |
* Use special mmu setup in associated mappings |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
98 |
* NB! Modifies input to ibv_reg_mr! |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
99 |
*/ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
100 |
MMU_special = 0x1, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
101 |
/* Trigger send queue mode instead of using VCBs */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
102 |
SQ_mode = 0x2, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
103 |
/* Enable EPS-A proxying - requires the eps_a field to be set */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
104 |
proxy_mode = 0x4, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
105 |
/* Enable kernel mode - default is direct user mode */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
106 |
SVF_kernel_mode = 0x8, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
107 |
/* Value to use for the qosl bit in the qp state */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
108 |
tsu_qosl = 0x10 |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
109 |
} sif_vendor_flags_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
110 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
111 |
typedef enum sif_mem_type { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
112 |
SIFMT_BYPASS, /* Use MMU bypass in associated mmu contexts */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
113 |
SIFMT_UMEM, /* Normal default umem based user level mapping */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
114 |
/* Mapping of user memory based on the process' own page table */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
115 |
SIFMT_UMEM_SPT, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
116 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
117 |
* A large (sparsely populated) SIF only vaddr mapping |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
118 |
* (used for a.o.SQ CMPL) |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
119 |
*/ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
120 |
SIFMT_CS, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
121 |
/* Special mapping of a vaddr range to a single page (see #1931) */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
122 |
SIFMT_ZERO, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
123 |
/* MMU bypass mapped read only for device (requires IOMMU enabled) */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
124 |
SIFMT_BYPASS_RO, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
125 |
/* GVA2GPA mapped read only for device (requires IOMMU enabled) */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
126 |
SIFMT_UMEM_RO, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
127 |
/* Use GVA2GPA but input is based on a phys_buf array instead of umem */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
128 |
SIFMT_PHYS, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
129 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
130 |
* Use GVA2GPA but input is based on a page address array instead |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
131 |
* of umem |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
132 |
*/ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
133 |
SIFMT_FMR, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
134 |
/* Similar to FMR but input pages are 2M instead of 4K */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
135 |
SIFMT_2M, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
136 |
/* Bypass mode - special kernel mappings with no memory allocated */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
137 |
SIFMT_NOMEM, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
138 |
/* sif_kmem based 4K page allocation - mostly for test purposes */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
139 |
SIFMT_4K, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
140 |
SIFMT_RDMA, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
141 |
SIFMT_PTONLY, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
142 |
SIFMT_CTRL_PT, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
143 |
SIFMT_MAX |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
144 |
} sif_mem_type_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
145 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
146 |
typedef enum sif_proxy_type { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
147 |
SIFPX_OFF, /* Default value - no proxying */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
148 |
SIFPX_EPSA_1, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
149 |
SIFPX_EPSA_2, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
150 |
SIFPX_EPSA_3, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
151 |
SIFPX_EPSA_4 |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
152 |
} sif_proxy_type_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
153 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
154 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
155 |
typedef enum sif_flush_type { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
156 |
NO_FLUSH, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
157 |
FLUSH_SQ, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
158 |
FLUSH_RQ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
159 |
} sif_flush_type_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
160 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
161 |
/* These should be multiple of 64 bytes and densely packed: */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
162 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
163 |
typedef struct sif_get_context_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
164 |
uint32_t abi_version; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
165 |
uint32_t reserved; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
166 |
} sif_get_context_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
167 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
168 |
typedef struct sif_get_context_resp_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
169 |
/* Distance in bytes between descriptor elements */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
170 |
uint32_t sq_sw_ext_sz; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
171 |
uint32_t rq_ext_sz; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
172 |
uint32_t cq_ext_sz; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
173 |
/* Number of entries per block of descriptors */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
174 |
uint32_t sq_entry_per_block; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
175 |
uint32_t rq_entry_per_block; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
176 |
uint32_t cq_entry_per_block; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
177 |
/* Dist between sq hw descriptor elms, from >= v.3.3 */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
178 |
uint32_t sq_hw_ext_sz; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
179 |
uint32_t reserved; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
180 |
} sif_get_context_resp_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
181 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
182 |
typedef struct sif_alloc_pd_resp_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
183 |
/* The virtual collect buffer to use by this protection domain */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
184 |
int cb_idx; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
185 |
uint32_t reserved; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
186 |
} sif_alloc_pd_resp_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
187 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
188 |
typedef struct sif_create_cq_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
189 |
enum sif_vendor_flags flags; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
190 |
enum sif_proxy_type proxy; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
191 |
} sif_create_cq_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
192 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
193 |
typedef struct sif_create_cq_resp_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
194 |
uint32_t cq_idx; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
195 |
uint32_t reserved; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
196 |
uint32_t cq_entries; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
197 |
} sif_create_cq_resp_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
198 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
199 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
200 |
typedef struct sif_create_qp_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
201 |
enum sif_vendor_flags flags; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
202 |
enum sif_proxy_type proxy; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
203 |
} sif_create_qp_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
204 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
205 |
typedef struct sif_create_qp_resp_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
206 |
uint32_t qp_idx; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
207 |
uint32_t rq_idx; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
208 |
uint32_t magic; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
209 |
uint32_t sq_extent; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
210 |
uint32_t rq_extent; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
211 |
uint32_t sq_sgl_offset; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
212 |
uint32_t sq_mr_idx; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
213 |
uint32_t reserved; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
214 |
uint64_t sq_dma_handle; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
215 |
} sif_create_qp_resp_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
216 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
217 |
typedef struct sif_modify_qp_ext |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
218 |
{ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
219 |
enum sif_flush_type flush; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
220 |
uint32_t reserved; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
221 |
} sif_modify_qp_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
222 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
223 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
224 |
typedef struct sif_reg_mr_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
225 |
enum sif_vendor_flags flags; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
226 |
enum sif_mem_type mem_type; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
227 |
/* Used by gva_type SIFGT_ZERO - indicates psif vmap length */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
228 |
uint64_t map_length; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
229 |
/* Used by gva_type SIFGT_ZERO - indicates valid memory length */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
230 |
uint64_t phys_length; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
231 |
} sif_reg_mr_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
232 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
233 |
typedef struct sif_reg_mr_resp_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
234 |
uint64_t uv2dma; /* Used to support bypass mode */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
235 |
} sif_reg_mr_resp_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
236 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
237 |
typedef struct sif_create_srq_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
238 |
enum sif_vendor_flags flags; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
239 |
uint32_t res1; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
240 |
} sif_create_srq_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
241 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
242 |
typedef struct sif_create_srq_resp_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
243 |
uint32_t index; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
244 |
uint32_t extent; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
245 |
} sif_create_srq_resp_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
246 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
247 |
typedef struct sif_create_ah_resp_ext { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
248 |
uint32_t index; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
249 |
uint32_t reserved; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
250 |
} sif_create_ah_resp_ext_t; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
251 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
252 |
/* mmap offset encoding */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
253 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
254 |
enum sif_mmap_cmd { |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
255 |
SIF_MAP_NONE, /* No mapping */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
256 |
/* Map a collect buffer - cb index as argument */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
257 |
SIF_MAP_CB, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
258 |
/* Map an SQ, RQ or CQ (entries) - queue index as argument */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
259 |
SIF_MAP_SQ, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
260 |
SIF_MAP_RQ, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
261 |
SIF_MAP_CQ, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
262 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
263 |
* Map a block of SQ, RQ or CQ software descriptors - |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
264 |
* block index as argument |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
265 |
*/ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
266 |
SIF_MAP_SQ_SW, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
267 |
SIF_MAP_RQ_SW, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
268 |
SIF_MAP_CQ_SW, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
269 |
/* These are safe to map read-only (so far only sq_hw in use) */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
270 |
/* Map a block of qp descriptors - block index as argument */ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
271 |
SIF_MAP_QP, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
272 |
/* |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
273 |
* Map a block of SQ, RQ or CQ hardware descriptors - |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
274 |
* block index as argument |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
275 |
*/ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
276 |
SIF_MAP_SQ_HW, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
277 |
SIF_MAP_RQ_HW, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
278 |
SIF_MAP_CQ_HW, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
279 |
SIF_MAP_MAX |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
280 |
}; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
281 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
282 |
static inline uint64_t mmap_set_cmd(enum sif_mmap_cmd cmd, uint32_t index) |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
283 |
{ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
284 |
return ((uint64_t)cmd << 44) | ((uint64_t)index << 13); |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
285 |
} |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
286 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
287 |
static inline void mmap_get_cmd(uint64_t offset, enum sif_mmap_cmd *cmdp, |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
288 |
uint32_t *idxp) |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
289 |
{ |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
290 |
*cmdp = (offset >> 44) & 0xff; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
291 |
*idxp = (offset >> 13) & 0x7fffffff; |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
292 |
} |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
293 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
294 |
#ifdef __cplusplus |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
295 |
} |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
296 |
#endif |
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
297 |
|
ac16f94826c3
PSARC/2015/479 PSIF Solaris IB HCA Driver
ssadalka soniya.sadalkar@oracle.com
parents:
diff
changeset
|
298 |
#endif /* _SIF_USER_H */ |