1 /*
2 * This file and its contents are supplied under the terms of the
3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 * You may only use this file in accordance with the terms of version
5 * 1.0 of the CDDL.
6 *
7 * A full copy of the text of the CDDL should have accompanied this
8 * source. A copy of the CDDL is also available via the Internet at
9 * http://www.illumos.org/license/CDDL.
10 */
11
12 /*
13 * Copyright 2016 Nexenta Systems, Inc. All rights reserved.
14 * Copyright 2016 The MathWorks, Inc. All rights reserved.
15 * Copyright 2017 Joyent, Inc.
16 */
17
18 #ifndef _NVME_VAR_H
19 #define _NVME_VAR_H
20
21 #include <sys/ddi.h>
22 #include <sys/sunddi.h>
23 #include <sys/blkdev.h>
24 #include <sys/taskq_impl.h>
25 #include <sys/list.h>
26
27 /*
28 * NVMe driver state
29 */
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
136
137 char *n_product;
138 char *n_vendor;
139
140 nvme_version_t n_version;
141 boolean_t n_dead;
142 boolean_t n_strict_version;
143 boolean_t n_ignore_unknown_vendor_status;
144 uint32_t n_admin_queue_len;
145 uint32_t n_io_queue_len;
146 uint16_t n_async_event_limit;
147 uint_t n_min_block_size;
148 uint16_t n_abort_command_limit;
149 uint64_t n_max_data_transfer_size;
150 boolean_t n_write_cache_present;
151 boolean_t n_write_cache_enabled;
152 int n_error_log_len;
153 boolean_t n_lba_range_supported;
154 boolean_t n_auto_pst_supported;
155 boolean_t n_async_event_supported;
156
157 int n_nssr_supported;
158 int n_doorbell_stride;
159 int n_timeout;
160 int n_arbitration_mechanisms;
161 int n_cont_queues_reqd;
162 int n_max_queue_entries;
163 int n_pageshift;
164 int n_pagesize;
165
166 int n_namespace_count;
167 uint16_t n_ioq_count;
168
169 nvme_identify_ctrl_t *n_idctl;
170
171 nvme_qpair_t *n_adminq;
172 nvme_qpair_t **n_ioq;
173
174 nvme_namespace_t *n_ns;
175
|
1 /*
2 * This file and its contents are supplied under the terms of the
3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 * You may only use this file in accordance with the terms of version
5 * 1.0 of the CDDL.
6 *
7 * A full copy of the text of the CDDL should have accompanied this
8 * source. A copy of the CDDL is also available via the Internet at
9 * http://www.illumos.org/license/CDDL.
10 */
11
12 /*
13 * Copyright 2018 Nexenta Systems, Inc.
14 * Copyright 2016 The MathWorks, Inc. All rights reserved.
15 * Copyright 2017 Joyent, Inc.
16 */
17
18 #ifndef _NVME_VAR_H
19 #define _NVME_VAR_H
20
21 #include <sys/ddi.h>
22 #include <sys/sunddi.h>
23 #include <sys/blkdev.h>
24 #include <sys/taskq_impl.h>
25 #include <sys/list.h>
26
27 /*
28 * NVMe driver state
29 */
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
136
137 char *n_product;
138 char *n_vendor;
139
140 nvme_version_t n_version;
141 boolean_t n_dead;
142 boolean_t n_strict_version;
143 boolean_t n_ignore_unknown_vendor_status;
144 uint32_t n_admin_queue_len;
145 uint32_t n_io_queue_len;
146 uint16_t n_async_event_limit;
147 uint_t n_min_block_size;
148 uint16_t n_abort_command_limit;
149 uint64_t n_max_data_transfer_size;
150 boolean_t n_write_cache_present;
151 boolean_t n_write_cache_enabled;
152 int n_error_log_len;
153 boolean_t n_lba_range_supported;
154 boolean_t n_auto_pst_supported;
155 boolean_t n_async_event_supported;
156 boolean_t n_progress_supported;
157
158 int n_nssr_supported;
159 int n_doorbell_stride;
160 int n_timeout;
161 int n_arbitration_mechanisms;
162 int n_cont_queues_reqd;
163 int n_max_queue_entries;
164 int n_pageshift;
165 int n_pagesize;
166
167 int n_namespace_count;
168 uint16_t n_ioq_count;
169
170 nvme_identify_ctrl_t *n_idctl;
171
172 nvme_qpair_t *n_adminq;
173 nvme_qpair_t **n_ioq;
174
175 nvme_namespace_t *n_ns;
176
|