enumerazione NVME_NVM_COMMANDS (nvme.h)

Contiene valori che indicano un comando nel set di comandi NVM.

Sintassi

typedef enum {
  NVME_NVM_COMMAND_FLUSH,
  NVME_NVM_COMMAND_WRITE,
  NVME_NVM_COMMAND_READ,
  NVME_NVM_COMMAND_WRITE_UNCORRECTABLE,
  NVME_NVM_COMMAND_COMPARE,
  NVME_NVM_COMMAND_WRITE_ZEROES,
  NVME_NVM_COMMAND_DATASET_MANAGEMENT,
  NVME_NVM_COMMAND_VERIFY,
  NVME_NVM_COMMAND_RESERVATION_REGISTER,
  NVME_NVM_COMMAND_RESERVATION_REPORT,
  NVME_NVM_COMMAND_RESERVATION_ACQUIRE,
  NVME_NVM_COMMAND_RESERVATION_RELEASE,
  NVME_NVM_COMMAND_COPY,
  NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND,
  NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE,
  NVME_NVM_COMMAND_ZONE_APPEND
} NVME_NVM_COMMANDS;

Costanti

 
NVME_NVM_COMMAND_FLUSH
Comando Flush che esegue il commit di dati e metadati associati agli spazi dei nomi specificati in supporti non volatile. Lo scaricamento si applica a tutti i comandi completati prima dell'invio del comando Flush. Il controller può anche scaricare dati aggiuntivi e/o metadati da qualsiasi spazio dei nomi.
NVME_NVM_COMMAND_WRITE
Comando Write che scrive i dati e i metadati, se applicabile, nel controller NVM per i blocchi logici specificati. L'host può anche specificare le informazioni di protezione da includere come parte dell'operazione.

Il comando usa i campi Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 e Command Dword 15. Se il comando usa le richieste pull per il trasferimento dei dati, vengono usati i campi Puntatore ai metadati, PRP Entry 1 e PRP Entry 2. Se il comando usa gli ELENCHI di criteri di riga per il trasferimento dei dati, vengono usati i campi Puntatore segmento SGL metadati e voce 1 SGL.
NVME_NVM_COMMAND_READ
Comando Read che legge i dati e i metadati, se applicabile, dal controller NVM per i blocchi logici specificati. Il comando può specificare le informazioni di protezione da controllare come parte dell'operazione di lettura.

Il comando usa i campi Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 e Command Dword 15. Se il comando usa le richieste pull per il trasferimento dei dati, vengono usati i campi Puntatore ai metadati, PRP Entry 1 e PRP Entry 2. Se il comando usa gli ELENCHI di criteri di riga per il trasferimento dei dati, vengono usati i campi Puntatore segmento SGL metadati e voce 1 SGL.
NVME_NVM_COMMAND_WRITE_UNCORRECTABLE
Comando Write Uncorrectable utilizzato per contrassegnare un intervallo di blocchi logici come non validi. Quando i blocchi logici specificati vengono letti dopo questa operazione, viene restituito un errore con stato Errore di lettura non ripristinato. Per cancellare lo stato del blocco logico non valido, viene eseguita un'operazione di scrittura su tali blocchi logici.

I campi usati sono i campi Command Dword 10, Command Dword 11 e Command Dword 12. Tutti gli altri campi specifici del comando sono riservati.
NVME_NVM_COMMAND_COMPARE
Il comando Compare che legge i blocchi logici specificati dal comando dal supporto e confronta i dati letti con un buffer di dati di confronto trasferito come parte del comando. Se i dati letti dal controller e dal buffer dei dati di confronto sono equivalenti senza errori di completamento, il comando viene completato correttamente. Se si verifica un errore di completamento, il comando viene completato con un errore Di confronto non riuscito. Se vengono forniti metadati, viene eseguito anche un confronto per i metadati.

Il comando usa i campi Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 14 e Command Dword 15. Se il comando usa le richieste pull per il trasferimento dei dati, vengono usati i campi Puntatore ai metadati, PRP Entry 1 e PRP Entry 2. Se il comando usa gli ELENCHI di criteri di riga per il trasferimento dei dati, vengono usati i campi Puntatore segmento SGL metadati e voce 1 SGL. Tutti gli altri campi specifici del comando sono riservati.
NVME_NVM_COMMAND_WRITE_ZEROES
Comando Write Zeroes utilizzato per impostare un intervallo di blocchi logici su zero. Al termine di questo comando, il valore restituito dalle letture successive di blocchi logici in questo intervallo sarà zero fino a quando non si verifica una scrittura nell'intervallo LBA. I metadati per questo comando saranno tutti zero e le informazioni di protezione vengono aggiornate in base a CDW12. PRINFO.

I campi usati sono i campi Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 14 e Command Dword 15.
NVME_NVM_COMMAND_DATASET_MANAGEMENT
Comando Gestione set di dati usato dall'host per indicare gli attributi per gli intervalli di blocchi logici.

Sono inclusi attributi come frequenza in cui i dati vengono letti o scritti, dimensioni di accesso e altre informazioni che possono essere usate per ottimizzare le prestazioni e l'affidabilità. Questo comando è consultivo; un titolare del trattamento conforme può scegliere di non eseguire alcuna azione in base alle informazioni fornite.

Il comando usa i campi Command Dword 10 e Command Dword 11. Se il comando usa le richieste pull per il trasferimento dei dati, vengono usati i campi PRP Entry 1 e PRP Entry 2. Se il comando usa gli ELENCHI di sicurezza per il trasferimento dei dati, viene usato il campo SGL Entry 1. Tutti gli altri campi specifici del comando sono riservati.
NVME_NVM_COMMAND_RESERVATION_REGISTER
Comando Registro prenotazioni usato per registrare, annullare la registrazione o sostituire una chiave di prenotazione.

Il comando usa comando Dword 10 e una struttura di dati Registro prenotazioni in memoria. Se il comando usa le richieste pull per il trasferimento dei dati, vengono usati i campi PRP Entry 1 e PRP Entry 2. Se il comando usa gli ELENCHI di sicurezza per il trasferimento dei dati, viene usato il campo SGL Entry 1. Tutti gli altri campi specifici del comando sono riservati.
NVME_NVM_COMMAND_RESERVATION_REPORT
Comando Report prenotazione che restituisce una struttura di dati stato prenotazione alla memoria che descrive la registrazione e lo stato della prenotazione di uno spazio dei nomi.

Le dimensioni della struttura dei dati Stato prenotazione sono una funzione del numero di controller nel sottosistema NVM associati agli host che sono registranti dello spazio dei nomi ( ad esempio, esiste una struttura dei dati del controller registrato per ogni controller di questo tipo).
NVME_NVM_COMMAND_RESERVATION_ACQUIRE
Comando Di acquisizione prenotazione usato per acquisire una prenotazione in uno spazio dei nomi, annullare una prenotazione contenuta in uno spazio dei nomi e interrompere una prenotazione contenuta in uno spazio dei nomi.

Il comando usa comando Dword 10 e una struttura di dati Di acquisizione prenotazioni in memoria. Se il comando usa le richieste pull per il trasferimento dei dati, vengono usati i campi PRP Entry 1 e PRP Entry 2. Se il comando usa gli ELENCHI di sicurezza per il trasferimento dei dati, viene usato il campo SGL Entry 1. Tutti gli altri campi specifici del comando sono riservati.
NVME_NVM_COMMAND_RESERVATION_RELEASE
Comando Reservation Release usato per rilasciare o cancellare una prenotazione contenuta in uno spazio dei nomi.

Il comando usa comando Dword 10 e una struttura di dati di versione della prenotazione in memoria. Se il comando usa le richieste pull per il trasferimento dei dati, vengono usati i campi PRP Entry 1 e PRP Entry 2. Se il comando usa gli ELENCHI di sicurezza per il trasferimento dei dati, viene usato il campo SGL Entry 1. Tutti gli altri campi specifici del comando sono riservati.

Commenti

I comandi NVM vengono inviati dall'host quando il controller è pronto come indicato nel registro di stato del controller e dopo la creazione delle code di invio di I/O e delle code di completamento I/O appropriate.

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Intestazione nvme.h