aboutsummaryrefslogtreecommitdiff
path: root/hw/block/nvme.h
diff options
context:
space:
mode:
authorKlaus Jensen <k.jensen@samsung.com>2020-08-24 12:43:38 +0200
committerKlaus Jensen <k.jensen@samsung.com>2020-10-27 07:24:46 +0100
commit6a09a3d737adbacd2b1d19596f0ac05de2a08aa7 (patch)
tree1695853d70d01022ea91368e5ec38b6c601a8f20 /hw/block/nvme.h
parente2f79209cd0129b8f27b87908de09cdc44a94baa (diff)
hw/block/nvme: refactor aio submission
This pulls block layer aio submission/completion to common functions. For completions, additionally map an AIO error to the Unrecovered Read and Write Fault status codes. Signed-off-by: Klaus Jensen <k.jensen@samsung.com> Reviewed-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'hw/block/nvme.h')
-rw-r--r--hw/block/nvme.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/hw/block/nvme.h b/hw/block/nvme.h
index ce9e931420..f355eccb32 100644
--- a/hw/block/nvme.h
+++ b/hw/block/nvme.h
@@ -171,4 +171,18 @@ static inline uint64_t nvme_ns_nlbas(NvmeCtrl *n, NvmeNamespace *ns)
return n->ns_size >> nvme_ns_lbads(ns);
}
+static inline NvmeCQueue *nvme_cq(NvmeRequest *req)
+{
+ NvmeSQueue *sq = req->sq;
+ NvmeCtrl *n = sq->ctrl;
+
+ return n->cq[sq->cqid];
+}
+
+static inline NvmeCtrl *nvme_ctrl(NvmeRequest *req)
+{
+ NvmeSQueue *sq = req->sq;
+ return sq->ctrl;
+}
+
#endif /* HW_NVME_H */