summaryrefslogtreecommitdiffstats
path: root/sys/dev/nvme/nvme_ns_cmd.c
diff options
context:
space:
mode:
authorjimharris <jimharris@FreeBSD.org>2013-03-29 20:34:28 +0000
committerjimharris <jimharris@FreeBSD.org>2013-03-29 20:34:28 +0000
commit2128397eaf648b65e295eba2a5b4f2d9dcc3640b (patch)
tree2744e9774deaf9fff221c4a2a9234f52883e244d /sys/dev/nvme/nvme_ns_cmd.c
parentd5c182905bb3f6a19be6f99d729e9e3dd83b3e53 (diff)
downloadFreeBSD-src-2128397eaf648b65e295eba2a5b4f2d9dcc3640b.zip
FreeBSD-src-2128397eaf648b65e295eba2a5b4f2d9dcc3640b.tar.gz
Add "type" to nvme_request, signifying if its payload is a VADDR, UIO, or
NULL. This simplifies decisions around if/how requests are routed through busdma. It also paves the way for supporting unmapped bios. Sponsored by: Intel
Diffstat (limited to 'sys/dev/nvme/nvme_ns_cmd.c')
-rw-r--r--sys/dev/nvme/nvme_ns_cmd.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/dev/nvme/nvme_ns_cmd.c b/sys/dev/nvme/nvme_ns_cmd.c
index c77361a..011ce4d 100644
--- a/sys/dev/nvme/nvme_ns_cmd.c
+++ b/sys/dev/nvme/nvme_ns_cmd.c
@@ -36,7 +36,7 @@ nvme_ns_cmd_read(struct nvme_namespace *ns, void *payload, uint64_t lba,
struct nvme_request *req;
struct nvme_command *cmd;
- req = nvme_allocate_request(payload, lba_count*512, cb_fn, cb_arg);
+ req = nvme_allocate_request_vaddr(payload, lba_count*512, cb_fn, cb_arg);
if (req == NULL)
return (ENOMEM);
@@ -60,7 +60,8 @@ nvme_ns_cmd_write(struct nvme_namespace *ns, void *payload, uint64_t lba,
struct nvme_request *req;
struct nvme_command *cmd;
- req = nvme_allocate_request(payload, lba_count*512, cb_fn, cb_arg);
+ req = nvme_allocate_request_vaddr(payload, lba_count*512, cb_fn,
+ cb_arg);
if (req == NULL)
return (ENOMEM);
@@ -85,7 +86,7 @@ nvme_ns_cmd_deallocate(struct nvme_namespace *ns, void *payload,
struct nvme_request *req;
struct nvme_command *cmd;
- req = nvme_allocate_request(payload,
+ req = nvme_allocate_request_vaddr(payload,
num_ranges * sizeof(struct nvme_dsm_range), cb_fn, cb_arg);
if (req == NULL)
@@ -110,7 +111,7 @@ nvme_ns_cmd_flush(struct nvme_namespace *ns, nvme_cb_fn_t cb_fn, void *cb_arg)
struct nvme_request *req;
struct nvme_command *cmd;
- req = nvme_allocate_request(NULL, 0, cb_fn, cb_arg);
+ req = nvme_allocate_request_null(cb_fn, cb_arg);
if (req == NULL)
return (ENOMEM);
OpenPOWER on IntegriCloud