Changeset View
Changeset View
Standalone View
Standalone View
head/usr.sbin/bhyve/pci_nvme.c
Show First 20 Lines • Show All 1,347 Lines • ▼ Show 20 Lines | while (sqhead != atomic_load_acq_short(&sq->tail)) { | ||||
case NVME_OPC_ASYNC_EVENT_REQUEST: | case NVME_OPC_ASYNC_EVENT_REQUEST: | ||||
DPRINTF("%s command ASYNC_EVENT_REQ", __func__); | DPRINTF("%s command ASYNC_EVENT_REQ", __func__); | ||||
/* XXX dont care, unhandled for now | /* XXX dont care, unhandled for now | ||||
nvme_opc_async_event_req(sc, cmd, &compl); | nvme_opc_async_event_req(sc, cmd, &compl); | ||||
*/ | */ | ||||
compl.status = NVME_NO_STATUS; | compl.status = NVME_NO_STATUS; | ||||
break; | break; | ||||
default: | default: | ||||
WPRINTF("0x%x command is not implemented", | DPRINTF("0x%x command is not implemented", | ||||
cmd->opc); | cmd->opc); | ||||
pci_nvme_status_genc(&compl.status, NVME_SC_INVALID_OPCODE); | pci_nvme_status_genc(&compl.status, NVME_SC_INVALID_OPCODE); | ||||
} | } | ||||
sqhead = (sqhead + 1) % sq->size; | sqhead = (sqhead + 1) % sq->size; | ||||
if (NVME_COMPLETION_VALID(compl)) { | if (NVME_COMPLETION_VALID(compl)) { | ||||
pci_nvme_cq_update(sc, &sc->compl_queues[0], | pci_nvme_cq_update(sc, &sc->compl_queues[0], | ||||
compl.cdw0, | compl.cdw0, | ||||
▲ Show 20 Lines • Show All 1,080 Lines • Show Last 20 Lines |