Merging upstream version 1.3.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
34cf2bc5f8
commit
ae07fb4ed6
803 changed files with 4523 additions and 1325 deletions
|
@ -424,7 +424,7 @@ identifier, or NULL if not successful.
|
|||
|
||||
.. c:function:: char * nvmf_hostnqn_from_file ()
|
||||
|
||||
Reads the host nvm qualified name from the config default location in /etc/nvme/
|
||||
Reads the host nvm qualified name from the config default location in /usr/local/etc/nvme/
|
||||
|
||||
**Parameters**
|
||||
|
||||
|
@ -436,7 +436,7 @@ is responsible to free the string.
|
|||
|
||||
.. c:function:: char * nvmf_hostid_from_file ()
|
||||
|
||||
Reads the host identifier from the config default location in /etc/nvme/.
|
||||
Reads the host identifier from the config default location in /usr/local/etc/nvme/.
|
||||
|
||||
**Parameters**
|
||||
|
||||
|
|
|
@ -1538,6 +1538,27 @@ The nvme command status if a response was received (see
|
|||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_get_log_page (int fd, __u32 xfer_len, struct nvme_get_log_args *args)
|
||||
|
||||
Get log page data
|
||||
|
||||
**Parameters**
|
||||
|
||||
``int fd``
|
||||
File descriptor of nvme device
|
||||
|
||||
``__u32 xfer_len``
|
||||
Max log transfer size per request to split the total.
|
||||
|
||||
``struct nvme_get_log_args *args``
|
||||
:c:type:`struct nvme_get_log_args <nvme_get_log_args>` argument structure
|
||||
|
||||
**Return**
|
||||
|
||||
The nvme command status if a response was received (see
|
||||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_get_log_supported_log_pages (int fd, bool rae, struct nvme_supported_log_pages *log)
|
||||
|
||||
Retrieve nmve supported log pages
|
||||
|
@ -1883,6 +1904,97 @@ The nvme command status if a response was received (see
|
|||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_get_log_fdp_configurations (int fd, __u16 egid, __u32 offset, __u32 len, void *log)
|
||||
|
||||
Get list of Flexible Data Placement configurations
|
||||
|
||||
**Parameters**
|
||||
|
||||
``int fd``
|
||||
File descriptor of nvme device
|
||||
|
||||
``__u16 egid``
|
||||
Endurance group identifier
|
||||
|
||||
``__u32 offset``
|
||||
Offset into log page
|
||||
|
||||
``__u32 len``
|
||||
Length (in bytes) of provided user buffer to hold the log data
|
||||
|
||||
``void *log``
|
||||
Log page data buffer
|
||||
|
||||
|
||||
.. c:function:: int nvme_get_log_reclaim_unit_handle_usage (int fd, __u16 egid, __u32 offset, __u32 len, void *log)
|
||||
|
||||
Get reclaim unit handle usage
|
||||
|
||||
**Parameters**
|
||||
|
||||
``int fd``
|
||||
File descriptor of nvme device
|
||||
|
||||
``__u16 egid``
|
||||
Endurance group identifier
|
||||
|
||||
``__u32 offset``
|
||||
Offset into log page
|
||||
|
||||
``__u32 len``
|
||||
Length (in bytes) of provided user buffer to hold the log data
|
||||
|
||||
``void *log``
|
||||
Log page data buffer
|
||||
|
||||
|
||||
.. c:function:: int nvme_get_log_fdp_stats (int fd, __u16 egid, __u32 offset, __u32 len, void *log)
|
||||
|
||||
Get Flexible Data Placement statistics
|
||||
|
||||
**Parameters**
|
||||
|
||||
``int fd``
|
||||
File descriptor of nvme device
|
||||
|
||||
``__u16 egid``
|
||||
Endurance group identifier
|
||||
|
||||
``__u32 offset``
|
||||
Offset into log page
|
||||
|
||||
``__u32 len``
|
||||
Length (in bytes) of provided user buffer to hold the log data
|
||||
|
||||
``void *log``
|
||||
Log page data buffer
|
||||
|
||||
|
||||
.. c:function:: int nvme_get_log_fdp_events (int fd, __u16 egid, bool host_events, __u32 offset, __u32 len, void *log)
|
||||
|
||||
Get Flexible Data Placement events
|
||||
|
||||
**Parameters**
|
||||
|
||||
``int fd``
|
||||
File descriptor of nvme device
|
||||
|
||||
``__u16 egid``
|
||||
Endurance group identifier
|
||||
|
||||
``bool host_events``
|
||||
Whether to report host or controller events
|
||||
|
||||
``__u32 offset``
|
||||
Offset into log page
|
||||
|
||||
``__u32 len``
|
||||
Length (in bytes) of provided user buffer to hold the log data
|
||||
|
||||
``void *log``
|
||||
Log page data buffer
|
||||
|
||||
|
||||
.. c:function:: int nvme_get_log_ana (int fd, enum nvme_log_ana_lsp lsp, bool rae, __u64 offset, __u32 len, void *log)
|
||||
|
||||
Retrieve Asymmetric Namespace Access log page
|
||||
|
@ -2911,7 +3023,7 @@ The nvme command status if a response was received (see
|
|||
|
||||
.. c:function:: int nvme_set_features_host_id (int fd, bool exhid, bool save, __u8 *hostid)
|
||||
|
||||
Set enable extended host identifers feature
|
||||
Set enable extended host identifiers feature
|
||||
|
||||
**Parameters**
|
||||
|
||||
|
@ -4307,7 +4419,7 @@ controller and may include testing of the media associated with namespaces.
|
|||
The controller may return a response to this command immediately while
|
||||
running the self-test in the background.
|
||||
|
||||
Set the 'nsid' field to 0 to not include namepsaces in the test. Set to
|
||||
Set the 'nsid' field to 0 to not include namespaces in the test. Set to
|
||||
0xffffffff to test all namespaces. All other values tests a specific
|
||||
namespace, if present.
|
||||
|
||||
|
@ -4608,6 +4720,84 @@ The nvme command status if a response was received (see
|
|||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_io_mgmt_recv (struct nvme_io_mgmt_recv_args *args)
|
||||
|
||||
I/O Management Receive command
|
||||
|
||||
**Parameters**
|
||||
|
||||
``struct nvme_io_mgmt_recv_args *args``
|
||||
:c:type:`struct nvme_io_mgmt_recv_args <nvme_io_mgmt_recv_args>` argument structure
|
||||
|
||||
**Return**
|
||||
|
||||
The nvme command status if a response was received (see
|
||||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_fdp_reclaim_unit_handle_status (int fd, __u32 nsid, __u32 data_len, void *data)
|
||||
|
||||
Get reclaim unit handle status
|
||||
|
||||
**Parameters**
|
||||
|
||||
``int fd``
|
||||
File descriptor of nvme device
|
||||
|
||||
``__u32 nsid``
|
||||
Namespace identifier
|
||||
|
||||
``__u32 data_len``
|
||||
Length of response buffer
|
||||
|
||||
``void *data``
|
||||
Response buffer
|
||||
|
||||
**Return**
|
||||
|
||||
The nvme command status if a response was received (see
|
||||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_io_mgmt_send (struct nvme_io_mgmt_send_args *args)
|
||||
|
||||
I/O Management Send command
|
||||
|
||||
**Parameters**
|
||||
|
||||
``struct nvme_io_mgmt_send_args *args``
|
||||
:c:type:`struct nvme_io_mgmt_send_args <nvme_io_mgmt_send_args>` argument structure
|
||||
|
||||
**Return**
|
||||
|
||||
The nvme command status if a response was received (see
|
||||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_fdp_reclaim_unit_handle_update (int fd, __u32 nsid, unsigned int npids, __u16 *pids)
|
||||
|
||||
Update a list of reclaim unit handles
|
||||
|
||||
**Parameters**
|
||||
|
||||
``int fd``
|
||||
File descriptor of nvme device
|
||||
|
||||
``__u32 nsid``
|
||||
Namespace identifier
|
||||
|
||||
``unsigned int npids``
|
||||
Number of placement identifiers
|
||||
|
||||
``__u16 *pids``
|
||||
List of placement identifiers
|
||||
|
||||
**Return**
|
||||
|
||||
The nvme command status if a response was received (see
|
||||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_zns_mgmt_send (struct nvme_zns_mgmt_send_args *args)
|
||||
|
||||
ZNS management send command
|
||||
|
|
|
@ -143,27 +143,6 @@ The nvme command status if a response was received (see
|
|||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_get_log_page (int fd, __u32 xfer_len, struct nvme_get_log_args *args)
|
||||
|
||||
Get log page data
|
||||
|
||||
**Parameters**
|
||||
|
||||
``int fd``
|
||||
File descriptor of nvme device
|
||||
|
||||
``__u32 xfer_len``
|
||||
Max log transfer size per request to split the total.
|
||||
|
||||
``struct nvme_get_log_args *args``
|
||||
:c:type:`struct nvme_get_log_args <nvme_get_log_args>` argument structure
|
||||
|
||||
**Return**
|
||||
|
||||
The nvme command status if a response was received (see
|
||||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_get_ana_log_len (int fd, size_t *analen)
|
||||
|
||||
Retrieve size of the current ANA log
|
||||
|
|
|
@ -29,8 +29,6 @@ if want_docs != 'false'
|
|||
endforeach
|
||||
endif
|
||||
else
|
||||
if want_docs == 'all' or want_docs == 'rst'
|
||||
install_subdir('rst', install_dir: rstdir)
|
||||
endif
|
||||
# no prebuild docs
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -635,6 +635,25 @@ new root object, or NULL on failure.
|
|||
root to free
|
||||
|
||||
|
||||
.. c:function:: void nvme_mi_set_probe_enabled (nvme_root_t root, bool enabled)
|
||||
|
||||
enable/disable the probe for new endpoints
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_root_t root``
|
||||
:c:type:`nvme_root_t` object
|
||||
|
||||
``bool enabled``
|
||||
whether to probe new endpoints
|
||||
|
||||
**Description**
|
||||
|
||||
Controls whether newly-created endpoints are probed for quirks on creation.
|
||||
Defaults to enabled, which results in some initial messaging with the
|
||||
endpoint to determine model-specific details.
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:type:: nvme_mi_ep_t
|
||||
|
@ -1427,6 +1446,85 @@ The nvme command status if a response was received (see
|
|||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise..
|
||||
|
||||
|
||||
.. c:function:: int nvme_mi_admin_admin_passthru (nvme_mi_ctrl_t ctrl, __u8 opcode, __u8 flags, __u16 rsvd, __u32 nsid, __u32 cdw2, __u32 cdw3, __u32 cdw10, __u32 cdw11, __u32 cdw12, __u32 cdw13, __u32 cdw14, __u32 cdw15, __u32 data_len, void *data, __u32 metadata_len, void *metadata, __u32 timeout_ms, __u32 *result)
|
||||
|
||||
Submit an nvme admin passthrough command
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_mi_ctrl_t ctrl``
|
||||
Controller to send command to
|
||||
|
||||
``__u8 opcode``
|
||||
The nvme admin command to send
|
||||
|
||||
``__u8 flags``
|
||||
NVMe command flags (not used)
|
||||
|
||||
``__u16 rsvd``
|
||||
Reserved for future use
|
||||
|
||||
``__u32 nsid``
|
||||
Namespace identifier
|
||||
|
||||
``__u32 cdw2``
|
||||
Command dword 2
|
||||
|
||||
``__u32 cdw3``
|
||||
Command dword 3
|
||||
|
||||
``__u32 cdw10``
|
||||
Command dword 10
|
||||
|
||||
``__u32 cdw11``
|
||||
Command dword 11
|
||||
|
||||
``__u32 cdw12``
|
||||
Command dword 12
|
||||
|
||||
``__u32 cdw13``
|
||||
Command dword 13
|
||||
|
||||
``__u32 cdw14``
|
||||
Command dword 14
|
||||
|
||||
``__u32 cdw15``
|
||||
Command dword 15
|
||||
|
||||
``__u32 data_len``
|
||||
Length of the data transferred in this command in bytes
|
||||
|
||||
``void *data``
|
||||
Pointer to user address of the data buffer
|
||||
|
||||
``__u32 metadata_len``
|
||||
Length of metadata transferred in this command(not used)
|
||||
|
||||
``void *metadata``
|
||||
Pointer to user address of the metadata buffer(not used)
|
||||
|
||||
``__u32 timeout_ms``
|
||||
How long to wait for the command to complete
|
||||
|
||||
``__u32 *result``
|
||||
Optional field to return the result from the CQE dword 0
|
||||
|
||||
**Description**
|
||||
|
||||
Send a customized NVMe Admin command request message and get the corresponding
|
||||
response message.
|
||||
|
||||
This interface supports no data, host to controller and controller to
|
||||
host but it doesn't support bidirectional data transfer.
|
||||
Also this interface only supports data transfer size range [0, 4096] (bytes)
|
||||
so the & data_len parameter must be less than 4097.
|
||||
|
||||
**Return**
|
||||
|
||||
The nvme command status if a response was received (see
|
||||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_mi_admin_identify_partial (nvme_mi_ctrl_t ctrl, struct nvme_identify_args *args, off_t offset, size_t size)
|
||||
|
||||
Perform an Admin identify command, and retrieve partial response data.
|
||||
|
|
|
@ -133,6 +133,44 @@ DH-HMAC-CHAP host key or NULL if not set
|
|||
DH-HMAC-CHAP Key to set or NULL to clear existing key
|
||||
|
||||
|
||||
.. c:function:: void nvme_host_set_pdc_enabled (nvme_host_t h, bool enabled)
|
||||
|
||||
Set Persistent Discovery Controller flag
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_host_t h``
|
||||
Host for which the falg should be set
|
||||
|
||||
``bool enabled``
|
||||
The bool to set the enabled flag
|
||||
|
||||
**Description**
|
||||
|
||||
When nvme_host_set_pdc_enabled() is not used to set the PDC flag,
|
||||
nvme_host_is_pdc_enabled() will return the default value which was
|
||||
passed into the function and not the undefined flag value.
|
||||
|
||||
|
||||
.. c:function:: bool nvme_host_is_pdc_enabled (nvme_host_t h, bool fallback)
|
||||
|
||||
Is Persistenct Discovery Controller enabled
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_host_t h``
|
||||
Host which to check if PDC is enabled
|
||||
|
||||
``bool fallback``
|
||||
The fallback default value of the flag when
|
||||
**nvme_host_set_pdc_enabled** has not be used
|
||||
to set the flag.
|
||||
|
||||
**Return**
|
||||
|
||||
true if PDC is enabled for **h**, else false
|
||||
|
||||
|
||||
.. c:function:: nvme_host_t nvme_default_host (nvme_root_t r)
|
||||
|
||||
Initializes the default host
|
||||
|
@ -1644,6 +1682,38 @@ Returns the value of the 'discovery_ctrl' flag which specifies whether
|
|||
Value of the 'discover_ctrl' flag
|
||||
|
||||
|
||||
.. c:function:: void nvme_ctrl_set_unique_discovery_ctrl (nvme_ctrl_t c, bool unique)
|
||||
|
||||
Set the 'unique_discovery_ctrl' flag
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_ctrl_t c``
|
||||
Controller to be modified
|
||||
|
||||
``bool unique``
|
||||
value of the unique_disc_ctrl flag
|
||||
|
||||
**Description**
|
||||
|
||||
Sets the 'unique_discovery_ctrl' flag in **c** to specify wheter
|
||||
**c** is a unique discovery controller
|
||||
|
||||
|
||||
.. c:function:: bool nvme_ctrl_is_unique_discovery_ctrl (nvme_ctrl_t c)
|
||||
|
||||
Check the 'unique_discovery_ctrl' flag
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_ctrl_t c``
|
||||
Controller to be checked
|
||||
|
||||
**Return**
|
||||
|
||||
Value of the 'unique_discovery_ctrl' flag
|
||||
|
||||
|
||||
.. c:function:: int nvme_ctrl_identify (nvme_ctrl_t c, struct nvme_id_ctrl *id)
|
||||
|
||||
Issues an 'identify controller' command
|
||||
|
|
|
@ -1155,6 +1155,9 @@ power scale value
|
|||
``NVME_CTRL_CTRATT_ELBAS``
|
||||
Extended LBA Formats supported
|
||||
|
||||
``NVME_CTRL_CTRATT_FDPS``
|
||||
Flexible Data Placement supported
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -3944,6 +3947,9 @@ Supported Log Pages (Log Identifier 00h)
|
|||
``NVME_ST_CODE_VS``
|
||||
Vendor specific.
|
||||
|
||||
``NVME_ST_CODE_ABORT``
|
||||
Abort device self-test operation.
|
||||
|
||||
``NVME_ST_CODE_SHIFT``
|
||||
Shift amount to get the code value from the
|
||||
:c:type:`struct nvme_st_result <nvme_st_result>`.dsts field.
|
||||
|
@ -4775,6 +4781,35 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
|
||||
|
||||
|
||||
.. c:struct:: nvme_timestamp
|
||||
|
||||
Timestamp - Data Structure for Get Features
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_timestamp {
|
||||
__u8 timestamp[6];
|
||||
__u8 attr;
|
||||
__u8 rsvd;
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``timestamp``
|
||||
Timestamp value based on origin and synch field
|
||||
|
||||
``attr``
|
||||
Attribute
|
||||
|
||||
``rsvd``
|
||||
Reserved
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_time_stamp_change_event
|
||||
|
||||
Timestamp Change Event
|
||||
|
@ -6175,6 +6210,598 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
|
||||
|
||||
|
||||
.. c:enum:: nvme_fdp_ruh_type
|
||||
|
||||
Reclaim Unit Handle Type
|
||||
|
||||
**Constants**
|
||||
|
||||
``NVME_FDP_RUHT_INITIALLY_ISOLATED``
|
||||
Initially Isolated
|
||||
|
||||
``NVME_FDP_RUHT_PERSISTENTLY_ISOLATED``
|
||||
Persistently Isolated
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_ruh_desc
|
||||
|
||||
Reclaim Unit Handle Descriptor
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_ruh_desc {
|
||||
__u8 ruht;
|
||||
__u8 rsvd1[3];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``ruht``
|
||||
Reclaim Unit Handle Type
|
||||
|
||||
``rsvd1``
|
||||
Reserved
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_fdp_config_fdpa
|
||||
|
||||
FDP Attributes
|
||||
|
||||
**Constants**
|
||||
|
||||
``NVME_FDP_CONFIG_FDPA_RGIF_SHIFT``
|
||||
Reclaim Group Identifier Format Shift
|
||||
|
||||
``NVME_FDP_CONFIG_FDPA_RGIF_MASK``
|
||||
Reclaim Group Identifier Format Mask
|
||||
|
||||
``NVME_FDP_CONFIG_FDPA_FDPVWC_SHIFT``
|
||||
FDP Volatile Write Cache Shift
|
||||
|
||||
``NVME_FDP_CONFIG_FDPA_FDPVWC_MASK``
|
||||
FDP Volatile Write Cache Mask
|
||||
|
||||
``NVME_FDP_CONFIG_FDPA_VALID_SHIFT``
|
||||
FDP Configuration Valid Shift
|
||||
|
||||
``NVME_FDP_CONFIG_FDPA_VALID_MASK``
|
||||
FDP Configuration Valid Mask
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_config_desc
|
||||
|
||||
FDP Configuration Descriptor
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_config_desc {
|
||||
__u16 size;
|
||||
__u8 fdpa;
|
||||
__u8 vss;
|
||||
__u32 nrg;
|
||||
__u16 nruh;
|
||||
__u16 maxpids;
|
||||
__u32 nnss;
|
||||
__u64 runs;
|
||||
__u32 erutl;
|
||||
__u8 rsvd28[36];
|
||||
struct nvme_fdp_ruh_desc ruhs[];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``size``
|
||||
Descriptor size
|
||||
|
||||
``fdpa``
|
||||
FDP Attributes (:c:type:`enum nvme_fdp_config_fdpa <nvme_fdp_config_fdpa>`)
|
||||
|
||||
``vss``
|
||||
Vendor Specific Size
|
||||
|
||||
``nrg``
|
||||
Number of Reclaim Groups
|
||||
|
||||
``nruh``
|
||||
Number of Reclaim Unit Handles
|
||||
|
||||
``maxpids``
|
||||
Max Placement Identifiers
|
||||
|
||||
``nnss``
|
||||
Number of Namespaces Supported
|
||||
|
||||
``runs``
|
||||
Reclaim Unit Nominal Size
|
||||
|
||||
``erutl``
|
||||
Estimated Reclaim Unit Time Limit
|
||||
|
||||
``rsvd28``
|
||||
Reserved
|
||||
|
||||
``ruhs``
|
||||
Reclaim Unit Handle descriptors (:c:type:`struct nvme_fdp_ruh_desc <nvme_fdp_ruh_desc>`)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_config_log
|
||||
|
||||
FDP Configurations Log Page
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_config_log {
|
||||
__u16 n;
|
||||
__u8 version;
|
||||
__u8 rsvd3;
|
||||
__u32 size;
|
||||
__u8 rsvd8[8];
|
||||
struct nvme_fdp_config_desc configs[];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``n``
|
||||
Number of FDP Configurations
|
||||
|
||||
``version``
|
||||
Log page version
|
||||
|
||||
``rsvd3``
|
||||
Reserved
|
||||
|
||||
``size``
|
||||
Log page size in bytes
|
||||
|
||||
``rsvd8``
|
||||
Reserved
|
||||
|
||||
``configs``
|
||||
FDP Configuration descriptors (:c:type:`struct nvme_fdp_config_desc <nvme_fdp_config_desc>`)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_fdp_ruha
|
||||
|
||||
Reclaim Unit Handle Attributes
|
||||
|
||||
**Constants**
|
||||
|
||||
``NVME_FDP_RUHA_HOST_SHIFT``
|
||||
Host Specified Reclaim Unit Handle Shift
|
||||
|
||||
``NVME_FDP_RUHA_HOST_MASK``
|
||||
Host Specified Reclaim Unit Handle Mask
|
||||
|
||||
``NVME_FDP_RUHA_CTRL_SHIFT``
|
||||
Controller Specified Reclaim Unit Handle Shift
|
||||
|
||||
``NVME_FDP_RUHA_CTRL_MASK``
|
||||
Controller Specified Reclaim Unit Handle Mask
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_ruhu_desc
|
||||
|
||||
Reclaim Unit Handle Usage Descriptor
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_ruhu_desc {
|
||||
__u8 ruha;
|
||||
__u8 rsvd1[7];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``ruha``
|
||||
Reclaim Unit Handle Attributes (:c:type:`enum nvme_fdp_ruha <nvme_fdp_ruha>`)
|
||||
|
||||
``rsvd1``
|
||||
Reserved
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_ruhu_log
|
||||
|
||||
Reclaim Unit Handle Usage Log Page
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_ruhu_log {
|
||||
__u16 nruh;
|
||||
__u8 rsvd2[6];
|
||||
struct nvme_fdp_ruhu_desc ruhus[];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``nruh``
|
||||
Number of Reclaim Unit Handles
|
||||
|
||||
``rsvd2``
|
||||
Reserved
|
||||
|
||||
``ruhus``
|
||||
Reclaim Unit Handle Usage descriptors
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_stats_log
|
||||
|
||||
FDP Statistics Log Page
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_stats_log {
|
||||
__u8 hbmw[16];
|
||||
__u8 mbmw[16];
|
||||
__u8 mbe[16];
|
||||
__u8 rsvd48[16];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``hbmw``
|
||||
Host Bytes with Metadata Written
|
||||
|
||||
``mbmw``
|
||||
Media Bytes with Metadata Written
|
||||
|
||||
``mbe``
|
||||
Media Bytes Erased
|
||||
|
||||
``rsvd48``
|
||||
Reserved
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_fdp_event_type
|
||||
|
||||
FDP Event Types
|
||||
|
||||
**Constants**
|
||||
|
||||
``NVME_FDP_EVENT_RUNFW``
|
||||
Reclaim Unit Not Fully Written
|
||||
|
||||
``NVME_FDP_EVENT_RUTLE``
|
||||
Reclaim Unit Time Limit Exceeded
|
||||
|
||||
``NVME_FDP_EVENT_RESET``
|
||||
Controller Level Reset Modified Reclaim Unit Handles
|
||||
|
||||
``NVME_FDP_EVENT_PID``
|
||||
Invalid Placement Identifier
|
||||
|
||||
``NVME_FDP_EVENT_REALLOC``
|
||||
Media Reallocated
|
||||
|
||||
``NVME_FDP_EVENT_MODIFY``
|
||||
Implicitly Modified Reclaim Unit Handle
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_fdp_event_realloc_flags
|
||||
|
||||
Media Reallocated Event Type Specific Flags
|
||||
|
||||
**Constants**
|
||||
|
||||
``NVME_FDP_EVENT_REALLOC_F_LBAV``
|
||||
LBA Valid
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_event_realloc
|
||||
|
||||
Media Reallocated Event Type Specific Information
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_event_realloc {
|
||||
__u8 flags;
|
||||
__u8 rsvd1;
|
||||
__u16 nlbam;
|
||||
__u64 lba;
|
||||
__u8 rsvd12[4];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``flags``
|
||||
Event Type Specific flags (:c:type:`enum nvme_fdp_event_realloc_flags <nvme_fdp_event_realloc_flags>`)
|
||||
|
||||
``rsvd1``
|
||||
Reserved
|
||||
|
||||
``nlbam``
|
||||
Number of LBAs Moved
|
||||
|
||||
``lba``
|
||||
Logical Block Address
|
||||
|
||||
``rsvd12``
|
||||
Reserved
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_fdp_event_flags
|
||||
|
||||
FDP Event Flags
|
||||
|
||||
**Constants**
|
||||
|
||||
``NVME_FDP_EVENT_F_PIV``
|
||||
Placement Identifier Valid
|
||||
|
||||
``NVME_FDP_EVENT_F_NSIDV``
|
||||
Namespace Identifier Valid
|
||||
|
||||
``NVME_FDP_EVENT_F_LV``
|
||||
Location Valid
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_event
|
||||
|
||||
FDP Event
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_event {
|
||||
__u8 type;
|
||||
__u8 flags;
|
||||
__u16 pid;
|
||||
struct nvme_timestamp ts;
|
||||
__u32 nsid;
|
||||
__u8 type_specific[16];
|
||||
__u16 rgid;
|
||||
__u8 ruhid;
|
||||
__u8 rsvd35[5];
|
||||
__u8 vs[24];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``type``
|
||||
Event Type (:c:type:`enum nvme_fdp_event_type <nvme_fdp_event_type>`)
|
||||
|
||||
``flags``
|
||||
Event Flags (:c:type:`enum nvme_fdp_event_flags <nvme_fdp_event_flags>`)
|
||||
|
||||
``pid``
|
||||
Placement Identifier
|
||||
|
||||
``ts``
|
||||
Timestamp
|
||||
|
||||
``nsid``
|
||||
Namespace Identifier
|
||||
|
||||
``type_specific``
|
||||
Event Type Specific Information
|
||||
|
||||
``rgid``
|
||||
Reclaim Group Identifier
|
||||
|
||||
``ruhid``
|
||||
Reclaim Unit Handle Identifier
|
||||
|
||||
``rsvd35``
|
||||
Reserved
|
||||
|
||||
``vs``
|
||||
Vendor Specific
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_events_log
|
||||
|
||||
FDP Events Log Page
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_events_log {
|
||||
__u32 n;
|
||||
__u8 rsvd4[60];
|
||||
struct nvme_fdp_event events[63];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``n``
|
||||
Number of FDP Events
|
||||
|
||||
``rsvd4``
|
||||
Reserved
|
||||
|
||||
``events``
|
||||
FDP Events (:c:type:`struct nvme_fdp_event <nvme_fdp_event>`)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_feat_fdp_events_cdw11
|
||||
|
||||
FDP Events Feature Command Dword 11
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_feat_fdp_events_cdw11 {
|
||||
__u16 phndl;
|
||||
__u8 noet;
|
||||
__u8 rsvd24;
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``phndl``
|
||||
Placement Handle
|
||||
|
||||
``noet``
|
||||
Number of FDP Event Types
|
||||
|
||||
``rsvd24``
|
||||
Reserved
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_fdp_supported_event_attributes
|
||||
|
||||
Supported FDP Event Attributes
|
||||
|
||||
**Constants**
|
||||
|
||||
``NVME_FDP_SUPP_EVENT_ENABLED_SHIFT``
|
||||
FDP Event Enable Shift
|
||||
|
||||
``NVME_FDP_SUPP_EVENT_ENABLED_MASK``
|
||||
FDP Event Enable Mask
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_supported_event_desc
|
||||
|
||||
Supported FDP Event Descriptor
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_supported_event_desc {
|
||||
__u8 evt;
|
||||
__u8 evta;
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``evt``
|
||||
FDP Event Type
|
||||
|
||||
``evta``
|
||||
FDP Event Type Attributes (:c:type:`enum nvme_fdp_supported_event_attributes <nvme_fdp_supported_event_attributes>`)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_ruh_status_desc
|
||||
|
||||
Reclaim Unit Handle Status Descriptor
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_ruh_status_desc {
|
||||
__u16 pid;
|
||||
__u16 ruhid;
|
||||
__u32 earutr;
|
||||
__u64 ruamw;
|
||||
__u8 rsvd16[16];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``pid``
|
||||
Placement Identifier
|
||||
|
||||
``ruhid``
|
||||
Reclaim Unit Handle Identifier
|
||||
|
||||
``earutr``
|
||||
Estimated Active Reclaim Unit Time Remaining
|
||||
|
||||
``ruamw``
|
||||
Reclaim Unit Available Media Writes
|
||||
|
||||
``rsvd16``
|
||||
Reserved
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_ruh_status
|
||||
|
||||
Reclaim Unit Handle Status
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_fdp_ruh_status {
|
||||
__u8 rsvd0[14];
|
||||
__u16 nruhsd;
|
||||
struct nvme_fdp_ruh_status_desc ruhss[];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``rsvd0``
|
||||
Reserved
|
||||
|
||||
``nruhsd``
|
||||
Number of Reclaim Unit Handle Status Descriptors
|
||||
|
||||
``ruhss``
|
||||
Reclaim Unit Handle Status descriptors
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_lba_status_desc
|
||||
|
||||
LBA Status Descriptor Entry
|
||||
|
@ -6446,35 +7073,6 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
|
||||
|
||||
|
||||
.. c:struct:: nvme_timestamp
|
||||
|
||||
Timestamp - Data Structure for Get Features
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_timestamp {
|
||||
__u8 timestamp[6];
|
||||
__u8 attr;
|
||||
__u8 rsvd;
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``timestamp``
|
||||
Timestamp value based on origin and synch field
|
||||
|
||||
``attr``
|
||||
Attribute
|
||||
|
||||
``rsvd``
|
||||
Reserved
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_lba_range_type_entry
|
||||
|
||||
LBA Range Type - Data Structure Entry
|
||||
|
@ -9884,6 +10482,18 @@ true if **status** is of the specified type and value
|
|||
``NVME_LOG_LID_BOOT_PARTITION``
|
||||
Boot Partition
|
||||
|
||||
``NVME_LOG_LID_FDP_CONFIGS``
|
||||
FDP Configurations
|
||||
|
||||
``NVME_LOG_LID_FDP_RUH_USAGE``
|
||||
Reclaim Unit Handle Usage
|
||||
|
||||
``NVME_LOG_LID_FDP_STATS``
|
||||
FDP Statistics
|
||||
|
||||
``NVME_LOG_LID_FDP_EVENTS``
|
||||
FDP Events
|
||||
|
||||
``NVME_LOG_LID_DISCOVER``
|
||||
Discovery
|
||||
|
||||
|
@ -9983,6 +10593,12 @@ true if **status** is of the specified type and value
|
|||
``NVME_FEAT_FID_SPINUP_CONTROL``
|
||||
Spinup Control
|
||||
|
||||
``NVME_FEAT_FID_FDP``
|
||||
Flexible Data Placement
|
||||
|
||||
``NVME_FEAT_FID_FDP_EVENTS``
|
||||
FDP Events
|
||||
|
||||
``NVME_FEAT_FID_ENH_CTRL_METADATA``
|
||||
Enhanced Controller Metadata
|
||||
|
||||
|
@ -10212,6 +10828,18 @@ true if **status** is of the specified type and value
|
|||
|
||||
``NVME_FEAT_IOCSP_IOCSCI_MASK``
|
||||
|
||||
``NVME_FEAT_FDP_ENABLED_SHIFT``
|
||||
|
||||
``NVME_FEAT_FDP_ENABLED_MASK``
|
||||
|
||||
``NVME_FEAT_FDP_INDEX_SHIFT``
|
||||
|
||||
``NVME_FEAT_FDP_INDEX_MASK``
|
||||
|
||||
``NVME_FEAT_FDP_EVENTS_ENABLE_SHIFT``
|
||||
|
||||
``NVME_FEAT_FDP_EVENTS_ENABLE_MASK``
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -10776,12 +11404,18 @@ true if **status** is of the specified type and value
|
|||
``nvme_cmd_resv_acquire``
|
||||
Reservation Acquire
|
||||
|
||||
``nvme_cmd_io_mgmt_recv``
|
||||
I/O Management Receive
|
||||
|
||||
``nvme_cmd_resv_release``
|
||||
Reservation Release
|
||||
|
||||
``nvme_cmd_copy``
|
||||
Copy
|
||||
|
||||
``nvme_cmd_io_mgmt_send``
|
||||
I/O Management Send
|
||||
|
||||
``nvme_zns_cmd_mgmt_send``
|
||||
Zone Management Send
|
||||
|
||||
|
@ -11079,3 +11713,27 @@ true if **status** is of the specified type and value
|
|||
List the zones in the ZSO:Offline state
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_io_mgmt_recv_mo
|
||||
|
||||
I/O Management Receive - Management Operation
|
||||
|
||||
**Constants**
|
||||
|
||||
``NVME_IO_MGMT_RECV_RUH_STATUS``
|
||||
Reclaim Unit Handle Status
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_io_mgmt_send_mo
|
||||
|
||||
I/O Management Send - Management Operation
|
||||
|
||||
**Constants**
|
||||
|
||||
``NVME_IO_MGMT_SEND_RUH_UPDATE``
|
||||
Reclaim Unit Handle Update
|
||||
|
||||
|
||||
|
|
|
@ -64,6 +64,9 @@ libnvme utility functions
|
|||
``ENVME_CONNECT_OPNOTSUPP``
|
||||
not supported
|
||||
|
||||
``ENVME_CONNECT_CONNREFUSED``
|
||||
connection refused
|
||||
|
||||
|
||||
.. c:function:: __u8 nvme_status_to_errno (int status, bool fabrics)
|
||||
|
||||
|
@ -433,7 +436,7 @@ usage: int x = round_up(13, sizeof(__u32)); // 13 -> 16
|
|||
**Parameters**
|
||||
|
||||
``size_t val_len``
|
||||
Value lenght
|
||||
Value length
|
||||
|
||||
**Description**
|
||||
|
||||
|
@ -443,7 +446,7 @@ __u32), of the buffer needed to hold the exat value of size
|
|||
|
||||
**Return**
|
||||
|
||||
Lenght rounded up by 4
|
||||
Length rounded up by 4
|
||||
|
||||
|
||||
.. c:function:: __u16 nvmf_exat_size (size_t val_len)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue