Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

types,util: Added Enums for missing status codes #952

Merged
merged 1 commit into from
Feb 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions src/nvme/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -7649,6 +7649,14 @@ struct nvme_mi_vpd_hdr {
* @NVME_SC_ADMIN_CMD_MEDIA_NOT_READY: Admin Command Media Not Ready: The Admin
* command requires access to media and
* the media is not ready.
* @NVME_SC_INVALID_KEY_TAG: The command was aborted due to an invalid KEYTAG
* field value.
* @NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED: The command is prohibited while the
* Host Disperesed Namespace Support (HDISNS) field is not
* set to 1h in the Host Behavior Support feature.
* @NVME_SC_HOST_ID_NOT_INITIALIZED: Host Identifier Not Initialized.
* @NVME_SC_INCORRECT_KEY: The command was aborted due to the key associated
* with the KEYTAG field being incorrect.
* @NVME_SC_FDP_DISABLED: Command is not allowed when
* Flexible Data Placement is disabled.
* @NVME_SC_INVALID_PLACEMENT_HANDLE_LIST: The Placement Handle List is invalid
Expand All @@ -7672,6 +7680,15 @@ struct nvme_mi_vpd_hdr {
* namespace.
* @NVME_SC_FORMAT_IN_PROGRESS: Format In Progress: A Format NVM command
* is in progress on the namespace.
* @NVME_SC_INVALID_VALUE_SIZE: The value size is not valid.
* @NVME_SC_INVALID_KEY_SIZE: The KV key size is not valid.
* @NVME_SC_KV_KEY_NOT_EXISTS: The Store If Key Exists (SIKE) bit is set to
* '1' in the Store Option field and the KV key does not
* exists.
* @NVME_SC_UNRECOVERED_ERROR: There was an unrecovered error when reading
* from the meidum.
* @NVME_SC_KEY_EXISTS: The Store If No Key Exists (SINKE) bit is set to '1'
* in the Store Option field and the KV key exists.
* @NVME_SC_CQ_INVALID: Completion Queue Invalid: The Completion
* Queue identifier specified in the command
* does not exist.
Expand Down Expand Up @@ -8029,13 +8046,22 @@ enum nvme_status_field {
NVME_SC_TRAN_TPORT_ERROR = 0x22,
NVME_SC_PROHIBITED_BY_CMD_AND_FEAT = 0x23,
NVME_SC_ADMIN_CMD_MEDIA_NOT_READY = 0x24,
NVME_SC_INVALID_KEY_TAG = 0x25,
NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED = 0x26,
NVME_SC_HOST_ID_NOT_INITIALIZED = 0x27,
NVME_SC_INCORRECT_KEY = 0x28,
NVME_SC_FDP_DISABLED = 0x29,
NVME_SC_INVALID_PLACEMENT_HANDLE_LIST = 0x2A,
NVME_SC_LBA_RANGE = 0x80,
NVME_SC_CAP_EXCEEDED = 0x81,
NVME_SC_NS_NOT_READY = 0x82,
NVME_SC_RESERVATION_CONFLICT = 0x83,
NVME_SC_FORMAT_IN_PROGRESS = 0x84,
NVME_SC_INVALID_VALUE_SIZE = 0x85,
NVME_SC_INVALID_KEY_SIZE = 0x86,
NVME_SC_KV_KEY_NOT_EXISTS = 0x87,
NVME_SC_UNRECOVERED_ERROR = 0x88,
NVME_SC_KEY_EXISTS = 0x89,

/*
* Command Specific Status Codes:
Expand Down
13 changes: 13 additions & 0 deletions src/nvme/util.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@
case NVME_SC_PRP_INVALID_OFFSET:
case NVME_SC_CMB_INVALID_USE:
case NVME_SC_KAT_INVALID:
case NVME_SC_INVALID_KEY_TAG:
case NVME_SC_INCORRECT_KEY:
case NVME_SC_INVALID_VALUE_SIZE:
case NVME_SC_INVALID_KEY_SIZE:
return EINVAL;
case NVME_SC_CMDID_CONFLICT:
return EADDRINUSE;
Expand Down Expand Up @@ -227,11 +231,20 @@
[NVME_SC_TRAN_TPORT_ERROR] = "Transient Transport Error: A transient transport error was detected",
[NVME_SC_PROHIBITED_BY_CMD_AND_FEAT] = "Command Prohibited by Command and Feature Lockdown: The command was aborted due to command execution being prohibited by the Command and Feature Lockdown",
[NVME_SC_ADMIN_CMD_MEDIA_NOT_READY] = "Admin Command Media Not Ready: The Admin command requires access to media and the media is not ready",
[NVME_SC_INVALID_KEY_TAG] = "The command was aborted due to an invalid KEYTAG field value",
[NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED] = "The command is prohibited while the Host Disperesed Namespace Support (HDISNS) field is not set to 1h in the Host Behavior Support feature",

Check failure on line 235 in src/nvme/util.c

View workflow job for this annotation

GitHub Actions / checkpatch review

WARNING: line length of 193 exceeds 120 columns
[NVME_SC_HOST_ID_NOT_INITIALIZED] = "Host Identifier Not Initialized",
[NVME_SC_INCORRECT_KEY] = "The command was aborted due to the key associated with the KEYTAG field being incorrect",

Check failure on line 237 in src/nvme/util.c

View workflow job for this annotation

GitHub Actions / checkpatch review

WARNING: line length of 142 exceeds 120 columns
[NVME_SC_LBA_RANGE] = "LBA Out of Range: The command references an LBA that exceeds the size of the namespace",
[NVME_SC_CAP_EXCEEDED] = "Capacity Exceeded: Execution of the command has caused the capacity of the namespace to be exceeded",
[NVME_SC_NS_NOT_READY] = "Namespace Not Ready: The namespace is not ready to be accessed",
[NVME_SC_RESERVATION_CONFLICT] = "Reservation Conflict: The command was aborted due to a conflict with a reservation held on the accessed namespace",
[NVME_SC_FORMAT_IN_PROGRESS] = "Format In Progress: A Format NVM command is in progress on the namespace",
[NVME_SC_INVALID_VALUE_SIZE] = "The value size is not valid",
[NVME_SC_INVALID_KEY_SIZE] = "The KV key size is not valid",
[NVME_SC_KV_KEY_NOT_EXISTS] = "The Store If Key Exists (SIKE) bit is set to '1' in the Store Option field and the KV key does not exists",

Check failure on line 245 in src/nvme/util.c

View workflow job for this annotation

GitHub Actions / checkpatch review

WARNING: line length of 160 exceeds 120 columns
[NVME_SC_UNRECOVERED_ERROR] = "There was an unrecovered error when reading from the medium",
[NVME_SC_KEY_EXISTS] = "The Store If No Key Exists (SINKE) bit is set to '1' in the Store Option field and the KV key exists",

Check failure on line 247 in src/nvme/util.c

View workflow job for this annotation

GitHub Actions / checkpatch review

WARNING: line length of 155 exceeds 120 columns
};

static const char * const cmd_spec_status[] = {
Expand Down