2025-02-16 11:09:01 +01:00
|
|
|
#compdef _nvme nvme
|
|
|
|
|
|
|
|
# zsh completions for the nvme command-line interface,
|
|
|
|
# very loosely based on git and adb command completion
|
|
|
|
# Kelly Kaoudis kelly.n.kaoudis at intel.com, June 2015
|
|
|
|
|
|
|
|
_nvme () {
|
|
|
|
local -a _cmds
|
|
|
|
_cmds=(
|
|
|
|
'id-ctrl:display information about the controller'
|
|
|
|
'id-ns:display information about the namespace'
|
|
|
|
'list-ns:identify all namespace(s) attached'
|
2025-02-16 12:13:48 +01:00
|
|
|
'cmdset-ind-id-ns':display I/O Command Set Independent information about the namespace'
|
2025-02-16 11:31:10 +01:00
|
|
|
'id-iocs:display information about I/O command sets'
|
2025-02-16 12:11:43 +01:00
|
|
|
'id-domain:display information about domain list'
|
2025-02-16 11:09:01 +01:00
|
|
|
'create-ns:create a new namespace before attachment'
|
|
|
|
'delete-ns:delete a detached namespace'
|
|
|
|
'attach-ns:attach namespace to controller'
|
|
|
|
'detach-ns:detach namespace from controller'
|
|
|
|
'list-ctrl:identify all controller(s) attached'
|
2025-02-16 11:31:10 +01:00
|
|
|
'nvm-id-ctrl:display information about the nvm command set'
|
2025-02-16 12:13:48 +01:00
|
|
|
'list-endgrp:display information about nvme endurance group list'
|
2025-02-16 11:09:01 +01:00
|
|
|
'get-ns-id:get namespace id of opened block device'
|
|
|
|
'get-log:retrieve any log in raw format'
|
2025-02-16 11:31:10 +01:00
|
|
|
'predictable-lat-log:retrieve predictable latency per nvmset log'
|
|
|
|
'pred-lat-event-agg-log:retrieve predictable latency event aggregate log'
|
|
|
|
'persistent-event-log:retrieve presistent event log'
|
2025-02-16 11:09:01 +01:00
|
|
|
'fw-log:retrieve fw log'
|
|
|
|
'smart-log:retrieve SMART log'
|
|
|
|
'smart-log-add:retrieve additional SMART log'
|
|
|
|
'error-log:retrieve error log'
|
2025-02-16 11:31:10 +01:00
|
|
|
'endurance-event-agg-log:retrieve endurance group event aggregate log'
|
|
|
|
'lba-status-log:retrieve lba status log'
|
|
|
|
'resv-notif-log: retrieve reservation notification log'
|
2025-02-16 11:09:01 +01:00
|
|
|
'get-feature:display a controller feature'
|
|
|
|
'set-feature:set a controller feature and show results'
|
|
|
|
'format:apply new block format to namespace'
|
|
|
|
'fw-activate:activate a firmware on the device'
|
|
|
|
'fw-download:download a firmware to the device'
|
|
|
|
'admin-passthru:submit a passthrough IOCTL'
|
|
|
|
'io-passthru:submit a passthrough IOCTL'
|
|
|
|
'security-send:send security/secure data to controller'
|
|
|
|
'security-recv:ask for security/secure data from controller'
|
|
|
|
'resv-acquire:acquire reservation on a namespace'
|
|
|
|
'resv-register:register reservation on a namespace'
|
|
|
|
'resv-release:release reservation on a namespace'
|
|
|
|
'resv-report:report reservation on a namespace'
|
2025-02-16 11:31:10 +01:00
|
|
|
'copy:submit a simple copy command'
|
2025-02-16 11:09:01 +01:00
|
|
|
'flush:submit a flush'
|
|
|
|
'compare:compare data on device to data elsewhere'
|
|
|
|
'read:submit a read command'
|
|
|
|
'write:submit a write command'
|
2025-02-16 12:11:43 +01:00
|
|
|
'capacity-mgmt: submit capacity management command'
|
2025-02-16 11:09:01 +01:00
|
|
|
'show-regs:shows the controller registers; requires admin character device'
|
2025-02-16 12:13:48 +01:00
|
|
|
'boot-part-log: retrieve boot partition log'
|
|
|
|
'fid-support-effects-log:retrieve fid support and effects log'
|
|
|
|
'supported-log-pages: retrieve support log pages details'
|
|
|
|
'lockdown:submit a lockdown command'
|
2025-02-16 11:09:01 +01:00
|
|
|
'help:print brief descriptions of all nvme commands'
|
|
|
|
)
|
|
|
|
|
|
|
|
local expl
|
|
|
|
|
|
|
|
_arguments '*:: :->subcmds' && return 0
|
|
|
|
|
|
|
|
if (( CURRENT == 1 )); then
|
|
|
|
_describe -t commands "nvme subcommands" _cmds
|
|
|
|
return
|
|
|
|
else
|
|
|
|
case ${words[CURRENT-1]} in
|
|
|
|
(id-ctrl)
|
|
|
|
local _idctrl
|
|
|
|
_idctrl=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias of --raw-binary'
|
|
|
|
--human-readable':show infos in readable format'
|
|
|
|
-H':alias of --human-readable'
|
|
|
|
--vendor-specific':also dump binary vendor infos'
|
|
|
|
-v':alias of --vendor-specific'
|
|
|
|
)
|
|
|
|
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme id-ctrl options" _idctrl
|
|
|
|
;;
|
|
|
|
(id-ns)
|
|
|
|
local _idns
|
|
|
|
_idns=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':show infos for namespace <nsid>'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias of --raw-binary'
|
|
|
|
--human-readable':show infos in readable format'
|
|
|
|
-H':alias of --human-readable'
|
|
|
|
--vendor-specific':also dump binary vendor infos'
|
|
|
|
-v':alias of --vendor-specific'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme id-ns options" _idns
|
|
|
|
;;
|
|
|
|
(list-ns)
|
|
|
|
local _listns
|
|
|
|
_listns=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':start namespace infos listing with this nsid'
|
|
|
|
-n':alias of --namespace-id'
|
2025-02-16 11:31:10 +01:00
|
|
|
--csi=':command set identifier'
|
|
|
|
-y':alias of --csi'
|
2025-02-16 11:09:01 +01:00
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme list-ns options" _listns
|
|
|
|
;;
|
2025-02-16 12:13:48 +01:00
|
|
|
(cmdset-ind-id-ns)
|
|
|
|
local _cmdset_ind_idns
|
|
|
|
_cmdset_ind_idns=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':show infos for namespace <nsid>'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias of --raw-binary'
|
|
|
|
--human-readable':show infos in readable format'
|
|
|
|
-H':alias of --human-readable'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme cmdset-ind-id-ns options" _cmdset_ind_idns
|
|
|
|
;;
|
2025-02-16 11:31:10 +01:00
|
|
|
(id-iocs)
|
|
|
|
local _idiocs
|
|
|
|
_idiocs=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--controller-id=':show infos for controller <cntid>'
|
|
|
|
-c':alias of --controller-id'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme id-iocs options" _idiocs
|
|
|
|
;;
|
2025-02-16 12:11:43 +01:00
|
|
|
(id-domain)
|
|
|
|
local _iddomain
|
|
|
|
_iddomain=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--dom-id=':show infos for domain id <cntid>'
|
|
|
|
-d':alias of --dom-id'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme id-domain options" _iddomain
|
|
|
|
;;
|
2025-02-16 11:31:10 +01:00
|
|
|
nvm-id-ctrl)
|
|
|
|
local _nvmidctrl
|
|
|
|
_nvmidctrl=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme nvm-id-ctrl options" _nvmidctrl
|
|
|
|
;;
|
2025-02-16 12:13:48 +01:00
|
|
|
(list-endgrp)
|
|
|
|
local _listendgrp
|
|
|
|
_listendgrp=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--endgrp-id=':endurance group id'
|
|
|
|
-i':alias of --endgrp-id'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme list-ns options" _listendgrp
|
|
|
|
;;
|
2025-02-16 11:09:01 +01:00
|
|
|
(create-ns)
|
|
|
|
local _createns
|
|
|
|
_createns=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--nsze=':namespace size to create'
|
|
|
|
-s':alias of --nsze'
|
|
|
|
--ncap=':namespace capacity'
|
|
|
|
-c':alias of --ncap'
|
|
|
|
--flbas=':FLBA size'
|
|
|
|
-f':alias of --flbas'
|
|
|
|
--dps=':data protection?'
|
|
|
|
-d':alias of --dps'
|
|
|
|
--nmic=':multipath and sharing'
|
|
|
|
-n':alias of --nmic'
|
2025-02-16 11:31:10 +01:00
|
|
|
--csi=':command set identifier'
|
|
|
|
-y':alias of --csi'
|
2025-02-16 11:09:01 +01:00
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme create-ns options" _createns
|
|
|
|
;;
|
|
|
|
(delete-ns)
|
|
|
|
local _deletens
|
|
|
|
_deletens=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':namespace to delete'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme delete-ns options" _deletens
|
|
|
|
;;
|
|
|
|
(attach-ns)
|
|
|
|
local _attachns
|
|
|
|
_attachns=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':namespace to attach to the controller'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--controllers=':if a device is not provided, supply a comma-sep list of controllers'
|
|
|
|
-c':alias of --controllers'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme attach-ns options" _attachns
|
|
|
|
;;
|
|
|
|
(detach-ns)
|
|
|
|
local _detachns
|
|
|
|
_detachns=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':namespace to detach from controller'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--controllers=':if a device is not provided, supply a comma-sep list of controllers'
|
|
|
|
-c':alias of --controllers'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme detach-ns options" _detachns
|
|
|
|
;;
|
|
|
|
(list-ctrl)
|
|
|
|
local _listctrl
|
|
|
|
_listctrl=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':show controllers attached to this namespace'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--cntid=':start the list with this controller'
|
|
|
|
-c':alias of --cntid'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme list-ctrl options" _listctrl
|
|
|
|
;;
|
|
|
|
(get-ns-id)
|
|
|
|
local _getnsid
|
|
|
|
_getnsid=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme get-ns-id options" _getnsid
|
|
|
|
;;
|
|
|
|
(get-log)
|
|
|
|
local _getlog
|
|
|
|
_getlog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--log-id=':requested log number'
|
|
|
|
-i':alias of --log-id'
|
|
|
|
--log-len=':number of bytes to show for requested log'
|
|
|
|
-l':alias of --log-len'
|
|
|
|
--namespace-id=':get log specific to <nsid> if namespace logs are supported'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias of --raw-binary'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme get-log options" _getlog
|
|
|
|
;;
|
2025-02-16 11:31:10 +01:00
|
|
|
(persistent-event-log)
|
|
|
|
local _persistenteventlog
|
|
|
|
_persistenteventlog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--action=': action the controller shall take for this log page'
|
|
|
|
-a':alias to --action'
|
|
|
|
--log-len=':number of bytes to show for requested log'
|
|
|
|
-l':alias of --log-len'
|
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias of --raw-binary'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "persistent-event-log options" _persistenteventlog
|
|
|
|
;;
|
|
|
|
(pred-lat-event-agg-log)
|
|
|
|
local _predlateventagglog
|
|
|
|
_predlateventagglog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--log-entries=': Number of pending NVM Set Entries log list'
|
|
|
|
-e':alias to --log-entries'
|
|
|
|
--rae': Retain an Asynchronous Event'
|
2025-02-16 12:11:43 +01:00
|
|
|
-r':alias to --rae'
|
2025-02-16 11:31:10 +01:00
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias of --raw-binary'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme pred-lat-event-agg-log options" _predlateventagglog
|
|
|
|
;;
|
2025-02-16 12:11:43 +01:00
|
|
|
(predictable-lat-log)
|
2025-02-16 11:31:10 +01:00
|
|
|
local _predictablelatlog
|
|
|
|
_predictablelatlog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--nvmset-id=': NVM Set Identifier on which log page retrieve info'
|
|
|
|
-i':alias to --nvmset-id'
|
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias of --raw-binary'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme predictable-lat-log options" _predictablelatlog
|
|
|
|
;;
|
2025-02-16 11:09:01 +01:00
|
|
|
(fw-log)
|
|
|
|
local _fwlog
|
|
|
|
_fwlog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias of --raw-binary'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme fw-log options" _fwlog
|
|
|
|
;;
|
|
|
|
(smart-log)
|
|
|
|
local _smartlog
|
|
|
|
_smartlog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':get SMART log specific to <nsid> if namespace logs are supported'
|
|
|
|
-n':alias to --namespace-id'
|
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias to --raw-binary'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme smart-log options" _smartlog
|
|
|
|
;;
|
|
|
|
(smart-log-add)
|
|
|
|
local _add
|
|
|
|
_add=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':get additional SMART log specific to <nsid> if namespace logs supported'
|
|
|
|
-n':alias to --namespace-id'
|
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias to --raw-binary'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme smart-log-add options" _add
|
|
|
|
;;
|
|
|
|
(error-log)
|
|
|
|
local _errlog
|
|
|
|
_errlog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':get log specific to <nsid> if namespace logs are supported'
|
|
|
|
-n':alias to --namespace-id'
|
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias to --raw-binary'
|
|
|
|
--log-entries=':request n >= 1 log entries'
|
|
|
|
-e':alias to --log-entries'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme error-log options" _errlog
|
|
|
|
;;
|
2025-02-16 11:31:10 +01:00
|
|
|
(endurance-event-agg-log)
|
|
|
|
local _enduranceeventagglog
|
|
|
|
_enduranceeventagglog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--log-entries=': Number of Endurance Group Event Agg Entries log list'
|
|
|
|
-e':alias to --log-entries'
|
|
|
|
--rae': Retain an Asynchronous Event'
|
2025-02-16 12:11:43 +01:00
|
|
|
-r':alias to --rae'
|
2025-02-16 11:31:10 +01:00
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias of --raw-binary'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme endurance-event-agg-log options" _enduranceeventagglog
|
|
|
|
;;
|
|
|
|
(lba-status-log)
|
|
|
|
local _lbastatuslog
|
|
|
|
_lbastatuslog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--rae': Retain an Asynchronous Event'
|
2025-02-16 12:11:43 +01:00
|
|
|
-r':alias to --rae'
|
2025-02-16 11:31:10 +01:00
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme lba-status-log options" _lbastatuslog
|
|
|
|
;;
|
|
|
|
(resv-notif-log)
|
|
|
|
local _resvnotiflog
|
|
|
|
_resvnotiflog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme resv-notif-log options" _resvnotiflog
|
|
|
|
;;
|
2025-02-16 12:13:48 +01:00
|
|
|
(boot-part-log)
|
|
|
|
local _bootpartlog
|
|
|
|
_bootpartlog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--lsp=': log specific field'
|
|
|
|
-s':alias to --lsp'
|
|
|
|
--output-file=': boot partition data output write'
|
|
|
|
-f':alias for --output-file'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme boot-part-log options" _bootpartlog
|
|
|
|
;;
|
2025-02-16 11:09:01 +01:00
|
|
|
(get-feature)
|
|
|
|
local _getf
|
|
|
|
_getf=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':get feature specific to <nsid>'
|
|
|
|
-n':alias to --namespace-id'
|
|
|
|
--feature-id=':hexadecimal name of feature to examine (required)'
|
|
|
|
-f':alias to --feature-id'
|
|
|
|
--sel=':select from 0 - current, 1 - default, 2 - saved, 3 - supported'
|
|
|
|
-s':alias to --sel'
|
|
|
|
--data-len=':buffer len for returned LBA Type Range or host identifier data'
|
|
|
|
-l':alias for --data-len'
|
2025-02-16 12:11:43 +01:00
|
|
|
--uuid-index=':uuid index'
|
|
|
|
-U':alias for --uuid-index'
|
2025-02-16 11:09:01 +01:00
|
|
|
--cdw11=':dword 11 value, used for interrupt vector configuration only'
|
|
|
|
--raw-binary':dump infos in binary format'
|
|
|
|
-b':alias to --raw-binary'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme get-feature options" _getf
|
|
|
|
;;
|
2025-02-16 12:13:48 +01:00
|
|
|
(lockdown)
|
|
|
|
local _lockdown
|
|
|
|
_lockdown=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--ofi=': Opcode or Feature Identifier(OFI) (required)'
|
|
|
|
-o':alias of --ofi'
|
|
|
|
--ifc=':Interface (INF) field Information (required)'
|
|
|
|
-f':alias of --ifc'
|
|
|
|
--prhbt=':Prohibit(PRHBT) bit field (required)'
|
|
|
|
-p':alias of --prhbt'
|
|
|
|
--scp=':Scope(SCP) field for identifying opcode or feature id (required)'
|
|
|
|
-s':alias of --scp'
|
|
|
|
--uuid=':UUID Index field required aligned with Scope'
|
|
|
|
-U':alias of --uuid'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme lockdown options" _lockdown
|
|
|
|
;;
|
2025-02-16 11:09:01 +01:00
|
|
|
(set-feature)
|
|
|
|
local _setf
|
|
|
|
_setf=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':feature is specific to <nsid>'
|
|
|
|
-n':alias to --namespace-id'
|
|
|
|
--feature-id=':hexadecimal name of feature to set (required)'
|
|
|
|
-f':alias to --feature-id'
|
|
|
|
--data-len=':buffer length, only used for LBA Type Range or host identifier data'
|
|
|
|
-l':alias for --data-len'
|
|
|
|
--data=':data file for LBA Type Range or host identifier buffer (defaults to stdin)'
|
|
|
|
-d':alias to --data'
|
|
|
|
--value=':new value of feature (required)'
|
|
|
|
-v'alias to --value'
|
2025-02-16 12:11:43 +01:00
|
|
|
--uuid-index=':uuid index'
|
|
|
|
-U':alias for --uuid-index'
|
2025-02-16 11:09:01 +01:00
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme set-feature options" _setf
|
|
|
|
;;
|
|
|
|
(format)
|
|
|
|
local _format
|
|
|
|
_format=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':<nsid> of namespace to format (required)'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--lbaf=':LBA format to apply to namespace (required)'
|
|
|
|
-l':alias of --lbaf'
|
|
|
|
--ses=':secure erase? 0 - no-op (default), 1 - user-data erase, 2 - cryptographic erase'
|
|
|
|
-s':alias of --ses'
|
|
|
|
--pil=':location of protection information? 0 - end, 1 - start'
|
|
|
|
-p':alias of --pil'
|
|
|
|
--pi=':protection information? 0 - off, 1 - Type 1 on, 2 - Type 2 on, 3 - Type 3 on'
|
|
|
|
-i':alias of --pi'
|
|
|
|
--ms=':extended format? 0 - off (metadata in separate buffer), 1 - on (extended LBA used)'
|
|
|
|
-m':alias of --ms'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme format options" _format
|
|
|
|
;;
|
|
|
|
(fw-activate)
|
|
|
|
local _fwact
|
|
|
|
_fwact=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--action=':activation action (required)? 0 - replace fw without activating, 1 - replace with activation, 2 - replace with activation at next reset'
|
|
|
|
-a':alias of --action'
|
|
|
|
--slot=':firmware slot to activate'
|
|
|
|
-s':alias of --slot'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme fw-activate options" _fwact
|
|
|
|
;;
|
|
|
|
(fw-download)
|
|
|
|
local _fwd
|
|
|
|
_fwd=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--fw=':firmware file to download (required)'
|
|
|
|
-f':alias of --fw'
|
|
|
|
--xfer=':limit on chunk-size of transfer (if device has download size limit)'
|
|
|
|
-x':alias of --xfer'
|
|
|
|
--offset=':starting offset, in dwords (defaults to 0, only useful if download is split across multiple files)'
|
|
|
|
-o':alias of --offset'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme fw-download options" _fwd
|
|
|
|
;;
|
2025-02-16 12:11:43 +01:00
|
|
|
(capacity-mgmt)
|
|
|
|
local _fwd
|
|
|
|
_fwd=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--operation=':Operation to be performed by the controller'
|
|
|
|
-o':alias of --operation'
|
|
|
|
--element-id=':specific to the value of the Operation field'
|
|
|
|
-i':alias of --element-id'
|
|
|
|
--cap-lower=':Least significant 32 bits of the capacity in bytes'
|
|
|
|
-l':alias of --cap-lower'
|
|
|
|
--cap-upper=':Most significant 32 bits of the capacity in bytes'
|
|
|
|
-u':alias of --cap-upper'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme capacity-mgmt options" _fwd
|
|
|
|
;;
|
2025-02-16 12:13:48 +01:00
|
|
|
(supported-log-pages)
|
|
|
|
local _support
|
|
|
|
_support=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--human-readable':show infos in readable format'
|
|
|
|
-H':alias of --human-readable'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme supported-log-pages options" _support
|
|
|
|
;;
|
2025-02-16 11:09:01 +01:00
|
|
|
(admin-passthru)
|
|
|
|
local _admin
|
|
|
|
_admin=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--opcode=':hexadecimal opcode to send (required)'
|
|
|
|
-o':alias of --opcode'
|
|
|
|
--flags=':command flags'
|
|
|
|
-f':alias of --flags'
|
|
|
|
--rsvd=':value for reserved field'
|
|
|
|
-R':alias of --rsvd'
|
|
|
|
--namespace-id=':value for nsid'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--data-len=':length for data buffer'
|
|
|
|
-l':alias of --data-len'
|
|
|
|
--metadata-len=':length for metadata buffer'
|
|
|
|
-m':alias of --metadata-len'
|
|
|
|
--timeout=':value for timeout'
|
|
|
|
-t':alias of --timeout'
|
|
|
|
--cdw2=':value for command dword 2'
|
|
|
|
-2':alias for --cdw2'
|
|
|
|
--cdw3=':value for command dword 3'
|
|
|
|
-3':alias for --cdw3'
|
|
|
|
--cdw10=':value for command dword 10'
|
|
|
|
-4':alias for --cdw10'
|
|
|
|
--cdw11=':value for command dword 11'
|
|
|
|
-5':alias for --cdw11'
|
|
|
|
--cdw12=':value for command dword 12'
|
|
|
|
-6':alias for --cdw12'
|
|
|
|
--cdw13=':value for command dword 13'
|
|
|
|
-7':alias for --cdw13'
|
|
|
|
--cdw14=':value for command dword 14'
|
|
|
|
-8':alias for command dword 14'
|
|
|
|
--cdw15=':value for command dword 15'
|
|
|
|
-9':alias for command dword 15'
|
|
|
|
--input-file=':defaults to stdin; input for write (send direction)'
|
|
|
|
-i':alias for --input-file'
|
|
|
|
--raw-binary':dump output in binary format'
|
|
|
|
-b':alias for --raw-binary'
|
|
|
|
--show-command':simply print command instead of sending it to <device>'
|
|
|
|
-s':alias for --show-command'
|
|
|
|
--dry-run':alias for --show-command'
|
|
|
|
-d':alias for --show-command'
|
|
|
|
--read':set dataflow direction to receive'
|
|
|
|
-r':alias for --read'
|
|
|
|
--write':set dataflow direction to send'
|
|
|
|
-w':alias for --write'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme admin-passthru options" _admin
|
|
|
|
;;
|
|
|
|
(io-passthru)
|
|
|
|
local _io
|
|
|
|
_io=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--opcode=':hexadecimal opcode to send (required)'
|
|
|
|
-o':alias of --opcode'
|
|
|
|
--flags=':command flags'
|
|
|
|
-f':alias of --flags'
|
|
|
|
--rsvd=':value for reserved field'
|
|
|
|
-R':alias of --rsvd'
|
|
|
|
--namespace-id=':value for nsid'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--data-len=':length for data buffer'
|
|
|
|
-l':alias of --data-len'
|
|
|
|
--metadata-len=':length for metadata buffer'
|
|
|
|
-m':alias of --metadata-len'
|
|
|
|
--timeout=':value for timeout'
|
|
|
|
-t':alias of --timeout'
|
|
|
|
--cdw2=':value for command dword 2'
|
|
|
|
-2':alias for --cdw2'
|
|
|
|
--cdw3=':value for command dword 3'
|
|
|
|
-3':alias for --cdw3'
|
|
|
|
--cdw10=':value for command dword 10'
|
|
|
|
-4':alias for --cdw10'
|
|
|
|
--cdw11=':value for command dword 11'
|
|
|
|
-5':alias for --cdw11'
|
|
|
|
--cdw12=':value for command dword 12'
|
|
|
|
-6':alias for --cdw12'
|
|
|
|
--cdw13=':value for command dword 13'
|
|
|
|
-7':alias for --cdw13'
|
|
|
|
--cdw14=':value for command dword 14'
|
|
|
|
-8':alias for command dword 14'
|
|
|
|
--cdw15=':value for command dword 15'
|
|
|
|
-9':alias for command dword 15'
|
|
|
|
--input-file=':defaults to stdin; input for write (send direction)'
|
|
|
|
-i':alias for --input-file'
|
|
|
|
--raw-binary':dump output in binary format'
|
|
|
|
-b':alias for --raw-binary'
|
|
|
|
--show-command':simply print command instead of sending it to <device>'
|
|
|
|
-s':alias for --show-command'
|
|
|
|
--dry-run':alias for --show-command'
|
|
|
|
-d':alias for --show-command'
|
|
|
|
--read':set dataflow direction to receive'
|
|
|
|
-r':alias for --read'
|
|
|
|
--write':set dataflow direction to send'
|
|
|
|
-w':alias for --write'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme io-passthru options" _io
|
|
|
|
;;
|
|
|
|
(security-send)
|
|
|
|
local _ssend
|
|
|
|
_ssend=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--file=':payload'
|
|
|
|
-f':alias for --file'
|
|
|
|
--secp=':security protocol as defined in SPC-4'
|
|
|
|
-p':alias for --secp'
|
|
|
|
--spsp=':send security-protocol-specific data as defined in SPC-4'
|
|
|
|
-s':alias for --spsp'
|
|
|
|
--tl=':transfer length as defined in SPC-4'
|
|
|
|
-t':alias for --tl'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme security-send options" _ssend
|
|
|
|
;;
|
|
|
|
(security-recv)
|
|
|
|
local _srecv
|
|
|
|
_srecv=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--secp=':security protocol as defined in SPC-4'
|
|
|
|
-p':alias for --secp'
|
|
|
|
--spsp=':send security-protocol-specific data as defined in SPC-4'
|
|
|
|
-s':alias for --spsp'
|
|
|
|
--size=':size of buffer (prints to stdout on successful recv)'
|
|
|
|
-x':alias for --size'
|
|
|
|
--al=':allocation length as defined in SPC-4'
|
|
|
|
-a':alias for --al'
|
|
|
|
--raw-binary':dump output in binary format'
|
|
|
|
-b':alias for --raw-binary'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme security-recv options" _srecv
|
|
|
|
;;
|
|
|
|
(resv-acquire)
|
|
|
|
local _acq
|
|
|
|
_acq=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':<nsid> of namespace to try to reserve (required)'
|
|
|
|
-n':alias for --namespace-id'
|
|
|
|
--prkey=':pre-empt reservation key'
|
|
|
|
-p':alias for --prkey'
|
|
|
|
--rtype=':hexadecimal reservation type'
|
|
|
|
-t':alias for --rtype'
|
2025-02-16 12:11:43 +01:00
|
|
|
--racqa=':reservation acquire action'
|
2025-02-16 11:09:01 +01:00
|
|
|
-a':alias for --racqa'
|
|
|
|
--iekey=':ignore existing reservation key'
|
|
|
|
-i':alias for --iekey'
|
|
|
|
--crkey':current reservation key'
|
|
|
|
-c':alias for --crkey'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme resv-acquire options" _acq
|
|
|
|
;;
|
|
|
|
(resv-release)
|
|
|
|
local _rel
|
|
|
|
_rel=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':nsid'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--rtype=':hexadecimal reservation type'
|
|
|
|
-t':alias of --rtype'
|
|
|
|
--rrela=':reservation release action'
|
|
|
|
-a':alias of --rrela'
|
|
|
|
--iekey':ignore existing reservation key'
|
|
|
|
-i':alias of --iekey'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme resv-release options" _rel
|
|
|
|
;;
|
|
|
|
(resv-report)
|
|
|
|
local _rep
|
|
|
|
_rep=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':nsid'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--numd=':number of dwords of reservation status to xfer'
|
|
|
|
-d':alias of --numd'
|
|
|
|
--raw-binary':dump output in binary format'
|
|
|
|
-b':alias of --raw-binary'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme resv-report options" _rep
|
|
|
|
;;
|
|
|
|
(resv-register)
|
|
|
|
local _reg
|
|
|
|
_reg=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':nsid'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
--crkey=':current reservation key'
|
|
|
|
-c'alias of --crkey'
|
|
|
|
--nrkey=':new reservation key'
|
|
|
|
-k':alias of --nrkey'
|
|
|
|
--cptpl=':change persistence through power loss setting'
|
|
|
|
-p':alias for --cptpl'
|
|
|
|
--rrega=':reservation registration action to perform'
|
2025-02-16 12:11:43 +01:00
|
|
|
-r':alias for --rrega'
|
2025-02-16 11:09:01 +01:00
|
|
|
--iekey':ignore existing reservation key'
|
|
|
|
-i':alias for --iekey'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme resv-register options" _reg
|
|
|
|
;;
|
2025-02-16 11:31:10 +01:00
|
|
|
(copy)
|
|
|
|
local _copy
|
|
|
|
_copy=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--sdlba=':64-bit addr of first destination logical block'
|
|
|
|
-d':alias of --sdlba'
|
|
|
|
--slbs=':64-bit addr of first block per range (comma-separated list)'
|
|
|
|
-s':alias of --slbs'
|
|
|
|
--blocks=':number of blocks per range (comma-separated list, zeroes-based values)'
|
|
|
|
-b':alias of --blocks'
|
|
|
|
--limited-retry':if included, controller should try less hard to retrieve data from media (if not included, all available data recovery means used)'
|
|
|
|
-l':alias of --limited-retry'
|
|
|
|
--force-unit-access':if included, the data shall be read from non-volatile media'
|
|
|
|
-f':alias of --force-unit access'
|
|
|
|
--prinfow=':protection information and check field (write part)'
|
|
|
|
-p':alias of --prinfow'
|
|
|
|
--prinfor=':protection information and check field (read part)'
|
|
|
|
-P':alias of --prinfor'
|
|
|
|
--ref-tag=':initial lba reference tag (write part)'
|
|
|
|
-r':alias of --ref-tag'
|
|
|
|
--expected-ref-tags=':expected lba reference tags (read part, comma-separated list)'
|
|
|
|
-R':alias of --expected-ref-tags'
|
|
|
|
--app-tag=':lba application tag (write part)'
|
|
|
|
-a':alias of --app-tag'
|
|
|
|
--expected-app-tags=':expected lba application tags (read part, comma-separated list)'
|
|
|
|
-A':alias of --expected-app-tags'
|
|
|
|
--app-tag-mask=':lba application tag mask (write part)'
|
|
|
|
-m':alias of --app-tag-mask'
|
|
|
|
--expected-app-tag-masks=':expected lba application tag masks (read part, comma-separated list)'
|
|
|
|
-M':alias of --expected-app-tag-masks'
|
|
|
|
--dir-type':directive type (write part)'
|
|
|
|
-T':alias of --dir-type'
|
|
|
|
--dir-spec':directive specific (write part)'
|
|
|
|
-S':alias of --dir-spec'
|
|
|
|
--format':source range entry format'
|
|
|
|
-F':alias of --format'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme copy options" _copy
|
|
|
|
;;
|
2025-02-16 11:09:01 +01:00
|
|
|
(flush)
|
|
|
|
local _flush
|
|
|
|
_flush=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--namespace-id=':nsid'
|
|
|
|
-n':alias of --namespace-id'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme flush options" _flush
|
|
|
|
;;
|
|
|
|
(compare)
|
|
|
|
local _comp
|
|
|
|
_comp=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--start-block=':begin compare at this 64-bit LBA on device'
|
|
|
|
-s':alias of --start-block'
|
|
|
|
--block-count=':number of logical blocks on device to compare to local data'
|
|
|
|
-c':alias of --block-count'
|
|
|
|
--metadata-size=':number of bytes of metadata to compare'
|
|
|
|
-y':alias of --metadata-size'
|
|
|
|
--data-size=':size of local data buffer in bytes'
|
|
|
|
-z':alias of --data-size'
|
|
|
|
--data=':local data file to compare to blocks on device'
|
|
|
|
-d':alias of --data'
|
|
|
|
--prinfo=':protection information action and check field'
|
|
|
|
-p':alias of --prinfo'
|
|
|
|
--app-tag-mask=':application tag mask (for end to end PI)'
|
|
|
|
-m':alias of --app-tag-mask'
|
|
|
|
--app-tag=':application tag (for end to end PI)'
|
|
|
|
-a':alias of --app-tag'
|
|
|
|
--limited-retry':if included, controller should try less hard to retrieve data from media (if not included, all available data recovery means used)'
|
|
|
|
-l':alias of --limited-retry'
|
|
|
|
--force-unit-access':if included, the data shall be read from non-volatile media'
|
|
|
|
-f':alias of --force-unit access'
|
|
|
|
--show-command':show command instead of sending to device'
|
|
|
|
-v':alias of --show-command'
|
|
|
|
--dry-run':show command instead of sending to device'
|
|
|
|
-w':alias of --show-command'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme compare options" _comp
|
|
|
|
;;
|
|
|
|
(read)
|
|
|
|
local _read
|
|
|
|
_read=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--start-block=':64-bit address of the first logical block to be read'
|
|
|
|
-s':alias of --start-block'
|
|
|
|
--block-count=':number of logical blocks on device to read'
|
|
|
|
-c':alias of --block-count'
|
|
|
|
--data-size=':size of data to be read'
|
|
|
|
-z':alias of --data-size'
|
|
|
|
--metadata-size=':size of metadata to be read'
|
|
|
|
-y':alias of --metadata-size'
|
|
|
|
--ref-tag=':reference tag (for end to end PI)'
|
|
|
|
-r':alias of --ref-tag'
|
|
|
|
--data=':file into which data should be read (defaults to stdout)'
|
|
|
|
-d':alias of --data'
|
|
|
|
--prinfo=':protection information and check field'
|
|
|
|
-p':alias of --prinfo'
|
|
|
|
--app-tag-mask=':application tag mask (for end to end PI)'
|
|
|
|
-m':alias of --app-tag-mask'
|
|
|
|
--app-tag=':application tag (for end to end PI)'
|
|
|
|
-a':alias of --app-tag'
|
|
|
|
--limited-retry=':if included, controller should try less hard to retrieve data from media (if not included, all available data-recovery means used)'
|
|
|
|
-l':alias of --limited-retry'
|
|
|
|
--latency':latency statistics will be output following read'
|
|
|
|
-t':alias of --latency'
|
|
|
|
--force-unit-access':data read shall be returned from nonvolatile media before command completion is indicated'
|
|
|
|
-f':alias of --force-unit-access'
|
|
|
|
--show-command':show command instead of sending to device'
|
|
|
|
-v':alias of --show-command'
|
|
|
|
--dry-run':show command instead of sending to device'
|
|
|
|
-w':alias of --show-command'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme read options" _read
|
|
|
|
;;
|
|
|
|
(write)
|
|
|
|
local _wr
|
|
|
|
_wr=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
--start-block=':64-bit address of the first logical block to be written'
|
|
|
|
-s':alias of --start-block'
|
|
|
|
--block-count=':number of logical blocks on device to write'
|
|
|
|
-c':alias of --block-count'
|
|
|
|
--data-size=':size of data to be written'
|
|
|
|
-z':alias of --data-size'
|
|
|
|
--metadata-size=':size of metadata to be written'
|
|
|
|
-y':alias of --metadata-size'
|
|
|
|
--ref-tag=':reference tag (for end to end PI)'
|
|
|
|
-r':alias of --ref-tag'
|
|
|
|
--data=':file from which data should be written to device (defaults to stdin)'
|
|
|
|
-d':alias of --data'
|
|
|
|
--prinfo=':protection information and check field'
|
|
|
|
-p':alias of --prinfo'
|
|
|
|
--app-tag-mask=':application tag mask (for end to end PI)'
|
|
|
|
-m':alias of --app-tag-mask'
|
|
|
|
--app-tag=':application tag (for end to end PI)'
|
|
|
|
-a':alias of --app-tag'
|
|
|
|
--limited-retry=':if included, controller should try less hard to send data to media (if not included, all available data-recovery means used)'
|
|
|
|
-l':alias of --limited-retry'
|
|
|
|
--latency':latency statistics will be output following write'
|
|
|
|
-t':alias of --latency'
|
|
|
|
--force-unit-access':data shall be written to nonvolatile media before command completion is indicated'
|
|
|
|
-f':alias of --force-unit-access'
|
|
|
|
--show-command':show command instead of sending to device'
|
|
|
|
-v':alias of --show-command'
|
|
|
|
--dry-run':show command instead of sending to device'
|
|
|
|
-w':alias of --show-command'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme write options" _wr
|
|
|
|
;;
|
|
|
|
(show-regs)
|
|
|
|
local _shor
|
|
|
|
_shor=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme show-regs options" _shor
|
|
|
|
;;
|
2025-02-16 12:13:48 +01:00
|
|
|
(fid-support-effects-log)
|
|
|
|
local _fidsupporteffectslog
|
|
|
|
_fidsupporteffectslog=(
|
|
|
|
/dev/nvme':supply a device to use (required)'
|
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "nvme fid-support-effects-log options" _fidsupporteffectslog
|
|
|
|
;;
|
2025-02-16 11:09:01 +01:00
|
|
|
(help)
|
|
|
|
local _h
|
2025-02-16 11:31:10 +01:00
|
|
|
_h=( id-ctrl id-ns list-ns id-iocs create-ns delete-ns attach-ns detach-ns
|
2025-02-16 11:09:01 +01:00
|
|
|
list-ctrl get-ns-id get-log fw-log smart-log error-log get-feature
|
|
|
|
set-feature format fw-activate fw-download admin-passthru io-passthru
|
|
|
|
security-send security-recv resv-acquire resv-register resv-release
|
2025-02-16 11:31:10 +01:00
|
|
|
resv-report flush compare read write copy show-regs persistent-event-log
|
|
|
|
pred-lat-event-agg-log nvm-id-ctrl endurance-event-agg-log lba-status-log
|
2025-02-16 12:13:48 +01:00
|
|
|
resv-notif-log capacity-mgmt id-domain boot-part-log fid-support-effects-log
|
|
|
|
supported-log-pages lockdown
|
|
|
|
supported-log-pages list-endgrp
|
2025-02-16 11:09:01 +01:00
|
|
|
)
|
|
|
|
_arguments '*:: :->subcmds'
|
|
|
|
_describe -t commands "help: infos on a specific nvme command, or provide no option to see a synopsis of all nvme commands" _h
|
|
|
|
;;
|
|
|
|
(*)
|
|
|
|
_files
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
|
|
|
|
_files
|
|
|
|
}
|