~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/mlx5/mlx5_ifc_vdpa.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/linux/mlx5/mlx5_ifc_vdpa.h (Architecture i386) and /include/linux/mlx5/mlx5_ifc_vdpa.h (Architecture mips)


  1 /* SPDX-License-Identifier: GPL-2.0 OR Linux-O      1 /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
  2 /* Copyright (c) 2020 Mellanox Technologies Lt      2 /* Copyright (c) 2020 Mellanox Technologies Ltd. */
  3                                                     3 
  4 #ifndef __MLX5_IFC_VDPA_H_                          4 #ifndef __MLX5_IFC_VDPA_H_
  5 #define __MLX5_IFC_VDPA_H_                          5 #define __MLX5_IFC_VDPA_H_
  6                                                     6 
  7 enum {                                              7 enum {
  8         MLX5_VIRTIO_Q_EVENT_MODE_NO_MSIX_MODE       8         MLX5_VIRTIO_Q_EVENT_MODE_NO_MSIX_MODE  = 0x0,
  9         MLX5_VIRTIO_Q_EVENT_MODE_QP_MODE            9         MLX5_VIRTIO_Q_EVENT_MODE_QP_MODE       = 0x1,
 10         MLX5_VIRTIO_Q_EVENT_MODE_MSIX_MODE         10         MLX5_VIRTIO_Q_EVENT_MODE_MSIX_MODE     = 0x2,
 11 };                                                 11 };
 12                                                    12 
 13 enum {                                             13 enum {
 14         MLX5_VIRTIO_EMULATION_VIRTIO_QUEUE_TYP     14         MLX5_VIRTIO_EMULATION_VIRTIO_QUEUE_TYPE_SPLIT   = 0,
 15         MLX5_VIRTIO_EMULATION_VIRTIO_QUEUE_TYP     15         MLX5_VIRTIO_EMULATION_VIRTIO_QUEUE_TYPE_PACKED  = 1,
 16 };                                                 16 };
 17                                                    17 
 18 enum {                                             18 enum {
 19         MLX5_VIRTIO_EMULATION_CAP_VIRTIO_QUEUE     19         MLX5_VIRTIO_EMULATION_CAP_VIRTIO_QUEUE_TYPE_SPLIT =
 20                 BIT(MLX5_VIRTIO_EMULATION_VIRT     20                 BIT(MLX5_VIRTIO_EMULATION_VIRTIO_QUEUE_TYPE_SPLIT),
 21         MLX5_VIRTIO_EMULATION_CAP_VIRTIO_QUEUE     21         MLX5_VIRTIO_EMULATION_CAP_VIRTIO_QUEUE_TYPE_PACKED =
 22                 BIT(MLX5_VIRTIO_EMULATION_VIRT     22                 BIT(MLX5_VIRTIO_EMULATION_VIRTIO_QUEUE_TYPE_PACKED),
 23 };                                                 23 };
 24                                                    24 
 25 struct mlx5_ifc_virtio_q_bits {                    25 struct mlx5_ifc_virtio_q_bits {
 26         u8    virtio_q_type[0x8];                  26         u8    virtio_q_type[0x8];
 27         u8    reserved_at_8[0x5];                  27         u8    reserved_at_8[0x5];
 28         u8    event_mode[0x3];                     28         u8    event_mode[0x3];
 29         u8    queue_index[0x10];                   29         u8    queue_index[0x10];
 30                                                    30 
 31         u8    full_emulation[0x1];                 31         u8    full_emulation[0x1];
 32         u8    virtio_version_1_0[0x1];             32         u8    virtio_version_1_0[0x1];
 33         u8    reserved_at_22[0x2];                 33         u8    reserved_at_22[0x2];
 34         u8    offload_type[0x4];                   34         u8    offload_type[0x4];
 35         u8    event_qpn_or_msix[0x18];             35         u8    event_qpn_or_msix[0x18];
 36                                                    36 
 37         u8    doorbell_stride_index[0x10];         37         u8    doorbell_stride_index[0x10];
 38         u8    queue_size[0x10];                    38         u8    queue_size[0x10];
 39                                                    39 
 40         u8    device_emulation_id[0x20];           40         u8    device_emulation_id[0x20];
 41                                                    41 
 42         u8    desc_addr[0x40];                     42         u8    desc_addr[0x40];
 43                                                    43 
 44         u8    used_addr[0x40];                     44         u8    used_addr[0x40];
 45                                                    45 
 46         u8    available_addr[0x40];                46         u8    available_addr[0x40];
 47                                                    47 
 48         u8    virtio_q_mkey[0x20];                 48         u8    virtio_q_mkey[0x20];
 49                                                    49 
 50         u8    max_tunnel_desc[0x10];               50         u8    max_tunnel_desc[0x10];
 51         u8    reserved_at_170[0x8];                51         u8    reserved_at_170[0x8];
 52         u8    error_type[0x8];                     52         u8    error_type[0x8];
 53                                                    53 
 54         u8    umem_1_id[0x20];                     54         u8    umem_1_id[0x20];
 55                                                    55 
 56         u8    umem_1_size[0x20];                   56         u8    umem_1_size[0x20];
 57                                                    57 
 58         u8    umem_1_offset[0x40];                 58         u8    umem_1_offset[0x40];
 59                                                    59 
 60         u8    umem_2_id[0x20];                     60         u8    umem_2_id[0x20];
 61                                                    61 
 62         u8    umem_2_size[0x20];                   62         u8    umem_2_size[0x20];
 63                                                    63 
 64         u8    umem_2_offset[0x40];                 64         u8    umem_2_offset[0x40];
 65                                                    65 
 66         u8    umem_3_id[0x20];                     66         u8    umem_3_id[0x20];
 67                                                    67 
 68         u8    umem_3_size[0x20];                   68         u8    umem_3_size[0x20];
 69                                                    69 
 70         u8    umem_3_offset[0x40];                 70         u8    umem_3_offset[0x40];
 71                                                    71 
 72         u8    counter_set_id[0x20];                72         u8    counter_set_id[0x20];
 73                                                    73 
 74         u8    reserved_at_320[0x8];                74         u8    reserved_at_320[0x8];
 75         u8    pd[0x18];                            75         u8    pd[0x18];
 76                                                    76 
 77         u8    reserved_at_340[0x20];               77         u8    reserved_at_340[0x20];
 78                                                    78 
 79         u8    desc_group_mkey[0x20];               79         u8    desc_group_mkey[0x20];
 80                                                    80 
 81         u8    reserved_at_380[0x80];               81         u8    reserved_at_380[0x80];
 82 };                                                 82 };
 83                                                    83 
 84 struct mlx5_ifc_virtio_net_q_object_bits {         84 struct mlx5_ifc_virtio_net_q_object_bits {
 85         u8    modify_field_select[0x40];           85         u8    modify_field_select[0x40];
 86                                                    86 
 87         u8    reserved_at_40[0x20];                87         u8    reserved_at_40[0x20];
 88                                                    88 
 89         u8    vhca_id[0x10];                       89         u8    vhca_id[0x10];
 90         u8    reserved_at_70[0x10];                90         u8    reserved_at_70[0x10];
 91                                                    91 
 92         u8    queue_feature_bit_mask_12_3[0xa]     92         u8    queue_feature_bit_mask_12_3[0xa];
 93         u8    dirty_bitmap_dump_enable[0x1];       93         u8    dirty_bitmap_dump_enable[0x1];
 94         u8    vhost_log_page[0x5];                 94         u8    vhost_log_page[0x5];
 95         u8    reserved_at_90[0xc];                 95         u8    reserved_at_90[0xc];
 96         u8    state[0x4];                          96         u8    state[0x4];
 97                                                    97 
 98         u8    reserved_at_a0[0x5];                 98         u8    reserved_at_a0[0x5];
 99         u8    queue_feature_bit_mask_2_0[0x3];     99         u8    queue_feature_bit_mask_2_0[0x3];
100         u8    tisn_or_qpn[0x18];                  100         u8    tisn_or_qpn[0x18];
101                                                   101 
102         u8    dirty_bitmap_mkey[0x20];            102         u8    dirty_bitmap_mkey[0x20];
103                                                   103 
104         u8    dirty_bitmap_size[0x20];            104         u8    dirty_bitmap_size[0x20];
105                                                   105 
106         u8    dirty_bitmap_addr[0x40];            106         u8    dirty_bitmap_addr[0x40];
107                                                   107 
108         u8    hw_available_index[0x10];           108         u8    hw_available_index[0x10];
109         u8    hw_used_index[0x10];                109         u8    hw_used_index[0x10];
110                                                   110 
111         u8    reserved_at_160[0xa0];              111         u8    reserved_at_160[0xa0];
112                                                   112 
113         struct mlx5_ifc_virtio_q_bits virtio_q    113         struct mlx5_ifc_virtio_q_bits virtio_q_context;
114 };                                                114 };
115                                                   115 
116 struct mlx5_ifc_create_virtio_net_q_in_bits {     116 struct mlx5_ifc_create_virtio_net_q_in_bits {
117         struct mlx5_ifc_general_obj_in_cmd_hdr    117         struct mlx5_ifc_general_obj_in_cmd_hdr_bits general_obj_in_cmd_hdr;
118                                                   118 
119         struct mlx5_ifc_virtio_net_q_object_bi    119         struct mlx5_ifc_virtio_net_q_object_bits obj_context;
120 };                                                120 };
121                                                   121 
122 struct mlx5_ifc_create_virtio_net_q_out_bits {    122 struct mlx5_ifc_create_virtio_net_q_out_bits {
123         struct mlx5_ifc_general_obj_out_cmd_hd    123         struct mlx5_ifc_general_obj_out_cmd_hdr_bits general_obj_out_cmd_hdr;
124 };                                                124 };
125                                                   125 
126 struct mlx5_ifc_destroy_virtio_net_q_in_bits {    126 struct mlx5_ifc_destroy_virtio_net_q_in_bits {
127         struct mlx5_ifc_general_obj_in_cmd_hdr    127         struct mlx5_ifc_general_obj_in_cmd_hdr_bits general_obj_out_cmd_hdr;
128 };                                                128 };
129                                                   129 
130 struct mlx5_ifc_destroy_virtio_net_q_out_bits     130 struct mlx5_ifc_destroy_virtio_net_q_out_bits {
131         struct mlx5_ifc_general_obj_out_cmd_hd    131         struct mlx5_ifc_general_obj_out_cmd_hdr_bits general_obj_out_cmd_hdr;
132 };                                                132 };
133                                                   133 
134 struct mlx5_ifc_query_virtio_net_q_in_bits {      134 struct mlx5_ifc_query_virtio_net_q_in_bits {
135         struct mlx5_ifc_general_obj_in_cmd_hdr    135         struct mlx5_ifc_general_obj_in_cmd_hdr_bits general_obj_in_cmd_hdr;
136 };                                                136 };
137                                                   137 
138 struct mlx5_ifc_query_virtio_net_q_out_bits {     138 struct mlx5_ifc_query_virtio_net_q_out_bits {
139         struct mlx5_ifc_general_obj_out_cmd_hd    139         struct mlx5_ifc_general_obj_out_cmd_hdr_bits general_obj_out_cmd_hdr;
140                                                   140 
141         struct mlx5_ifc_virtio_net_q_object_bi    141         struct mlx5_ifc_virtio_net_q_object_bits obj_context;
142 };                                                142 };
143                                                   143 
144 enum {                                            144 enum {
145         MLX5_VIRTQ_MODIFY_MASK_STATE              145         MLX5_VIRTQ_MODIFY_MASK_STATE                    = (u64)1 << 0,
146         MLX5_VIRTQ_MODIFY_MASK_DIRTY_BITMAP_PA    146         MLX5_VIRTQ_MODIFY_MASK_DIRTY_BITMAP_PARAMS      = (u64)1 << 3,
147         MLX5_VIRTQ_MODIFY_MASK_DIRTY_BITMAP_DU    147         MLX5_VIRTQ_MODIFY_MASK_DIRTY_BITMAP_DUMP_ENABLE = (u64)1 << 4,
148         MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_ADDRS     148         MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_ADDRS           = (u64)1 << 6,
149         MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_AVAIL_    149         MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_AVAIL_IDX       = (u64)1 << 7,
150         MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_USED_I    150         MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_USED_IDX        = (u64)1 << 8,
151         MLX5_VIRTQ_MODIFY_MASK_QUEUE_VIRTIO_VE    151         MLX5_VIRTQ_MODIFY_MASK_QUEUE_VIRTIO_VERSION     = (u64)1 << 10,
152         MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_MKEY      152         MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_MKEY            = (u64)1 << 11,
153         MLX5_VIRTQ_MODIFY_MASK_QUEUE_FEATURES     153         MLX5_VIRTQ_MODIFY_MASK_QUEUE_FEATURES           = (u64)1 << 12,
154         MLX5_VIRTQ_MODIFY_MASK_DESC_GROUP_MKEY    154         MLX5_VIRTQ_MODIFY_MASK_DESC_GROUP_MKEY          = (u64)1 << 14,
155 };                                                155 };
156                                                   156 
157 enum {                                            157 enum {
158         MLX5_VIRTIO_NET_Q_OBJECT_STATE_INIT       158         MLX5_VIRTIO_NET_Q_OBJECT_STATE_INIT     = 0x0,
159         MLX5_VIRTIO_NET_Q_OBJECT_STATE_RDY        159         MLX5_VIRTIO_NET_Q_OBJECT_STATE_RDY      = 0x1,
160         MLX5_VIRTIO_NET_Q_OBJECT_STATE_SUSPEND    160         MLX5_VIRTIO_NET_Q_OBJECT_STATE_SUSPEND  = 0x2,
161         MLX5_VIRTIO_NET_Q_OBJECT_STATE_ERR        161         MLX5_VIRTIO_NET_Q_OBJECT_STATE_ERR      = 0x3,
162 };                                                162 };
163                                                   163 
164 /* This indicates that the object was not crea    164 /* This indicates that the object was not created or has already
165  * been desroyed. It is very safe to assume th    165  * been desroyed. It is very safe to assume that this object will never
166  * have so many states                            166  * have so many states
167  */                                               167  */
168 enum {                                            168 enum {
169         MLX5_VIRTIO_NET_Q_OBJECT_NONE = 0xffff    169         MLX5_VIRTIO_NET_Q_OBJECT_NONE = 0xffffffff
170 };                                                170 };
171                                                   171 
172 enum {                                            172 enum {
173         MLX5_RQTC_LIST_Q_TYPE_RQ            =     173         MLX5_RQTC_LIST_Q_TYPE_RQ            = 0x0,
174         MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q  =     174         MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q  = 0x1,
175 };                                                175 };
176                                                   176 
177 struct mlx5_ifc_modify_virtio_net_q_in_bits {     177 struct mlx5_ifc_modify_virtio_net_q_in_bits {
178         struct mlx5_ifc_general_obj_in_cmd_hdr    178         struct mlx5_ifc_general_obj_in_cmd_hdr_bits general_obj_in_cmd_hdr;
179                                                   179 
180         struct mlx5_ifc_virtio_net_q_object_bi    180         struct mlx5_ifc_virtio_net_q_object_bits obj_context;
181 };                                                181 };
182                                                   182 
183 struct mlx5_ifc_modify_virtio_net_q_out_bits {    183 struct mlx5_ifc_modify_virtio_net_q_out_bits {
184         struct mlx5_ifc_general_obj_out_cmd_hd    184         struct mlx5_ifc_general_obj_out_cmd_hdr_bits general_obj_out_cmd_hdr;
185 };                                                185 };
186                                                   186 
187 struct mlx5_ifc_virtio_q_counters_bits {          187 struct mlx5_ifc_virtio_q_counters_bits {
188         u8    modify_field_select[0x40];          188         u8    modify_field_select[0x40];
189         u8    reserved_at_40[0x40];               189         u8    reserved_at_40[0x40];
190         u8    received_desc[0x40];                190         u8    received_desc[0x40];
191         u8    completed_desc[0x40];               191         u8    completed_desc[0x40];
192         u8    error_cqes[0x20];                   192         u8    error_cqes[0x20];
193         u8    bad_desc_errors[0x20];              193         u8    bad_desc_errors[0x20];
194         u8    exceed_max_chain[0x20];             194         u8    exceed_max_chain[0x20];
195         u8    invalid_buffer[0x20];               195         u8    invalid_buffer[0x20];
196         u8    reserved_at_180[0x280];             196         u8    reserved_at_180[0x280];
197 };                                                197 };
198                                                   198 
199 struct mlx5_ifc_create_virtio_q_counters_in_bi    199 struct mlx5_ifc_create_virtio_q_counters_in_bits {
200         struct mlx5_ifc_general_obj_in_cmd_hdr    200         struct mlx5_ifc_general_obj_in_cmd_hdr_bits hdr;
201         struct mlx5_ifc_virtio_q_counters_bits    201         struct mlx5_ifc_virtio_q_counters_bits virtio_q_counters;
202 };                                                202 };
203                                                   203 
204 struct mlx5_ifc_create_virtio_q_counters_out_b    204 struct mlx5_ifc_create_virtio_q_counters_out_bits {
205         struct mlx5_ifc_general_obj_in_cmd_hdr    205         struct mlx5_ifc_general_obj_in_cmd_hdr_bits hdr;
206         struct mlx5_ifc_virtio_q_counters_bits    206         struct mlx5_ifc_virtio_q_counters_bits virtio_q_counters;
207 };                                                207 };
208                                                   208 
209 struct mlx5_ifc_destroy_virtio_q_counters_in_b    209 struct mlx5_ifc_destroy_virtio_q_counters_in_bits {
210         struct mlx5_ifc_general_obj_in_cmd_hdr    210         struct mlx5_ifc_general_obj_in_cmd_hdr_bits hdr;
211 };                                                211 };
212                                                   212 
213 struct mlx5_ifc_destroy_virtio_q_counters_out_    213 struct mlx5_ifc_destroy_virtio_q_counters_out_bits {
214         struct mlx5_ifc_general_obj_out_cmd_hd    214         struct mlx5_ifc_general_obj_out_cmd_hdr_bits hdr;
215 };                                                215 };
216                                                   216 
217 struct mlx5_ifc_query_virtio_q_counters_in_bit    217 struct mlx5_ifc_query_virtio_q_counters_in_bits {
218         struct mlx5_ifc_general_obj_in_cmd_hdr    218         struct mlx5_ifc_general_obj_in_cmd_hdr_bits hdr;
219 };                                                219 };
220                                                   220 
221 struct mlx5_ifc_query_virtio_q_counters_out_bi    221 struct mlx5_ifc_query_virtio_q_counters_out_bits {
222         struct mlx5_ifc_general_obj_in_cmd_hdr    222         struct mlx5_ifc_general_obj_in_cmd_hdr_bits hdr;
223         struct mlx5_ifc_virtio_q_counters_bits    223         struct mlx5_ifc_virtio_q_counters_bits counters;
224 };                                                224 };
225                                                   225 
226 #endif /* __MLX5_IFC_VDPA_H_ */                   226 #endif /* __MLX5_IFC_VDPA_H_ */
227                                                   227 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php