nvme: add macros to populate nvme_payload
The definitions of these macros will change in an upcoming patch that modifies the way nvme_payload is laid out. Change-Id: Ic6edc18928542b07be7519a72bdbf6babbeb0131 Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-on: https://review.gerrithub.io/413174 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
5c2ccd0628
commit
caf85d8f23
@ -182,9 +182,7 @@ nvme_allocate_request_contig(struct spdk_nvme_qpair *qpair,
|
||||
{
|
||||
struct nvme_payload payload;
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
payload.u.contig = buffer;
|
||||
payload.md = NULL;
|
||||
payload = NVME_PAYLOAD_CONTIG(buffer, NULL);
|
||||
|
||||
return nvme_allocate_request(qpair, &payload, payload_size, cb_fn, cb_arg);
|
||||
}
|
||||
|
@ -63,9 +63,7 @@ spdk_nvme_ctrlr_cmd_io_raw_with_md(struct spdk_nvme_ctrlr *ctrlr,
|
||||
struct nvme_request *req;
|
||||
struct nvme_payload payload;
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
payload.u.contig = buf;
|
||||
payload.md = md_buf;
|
||||
payload = NVME_PAYLOAD_CONTIG(buf, md_buf);
|
||||
|
||||
req = nvme_allocate_request(qpair, &payload, len, cb_fn, cb_arg);
|
||||
if (req == NULL) {
|
||||
|
@ -160,6 +160,22 @@ struct __attribute__((packed)) nvme_payload {
|
||||
uint8_t type;
|
||||
};
|
||||
|
||||
#define NVME_PAYLOAD_CONTIG(contig_, md_) \
|
||||
(struct nvme_payload) { \
|
||||
.u.contig = (contig_), \
|
||||
.md = (md_), \
|
||||
.type = NVME_PAYLOAD_TYPE_CONTIG, \
|
||||
}
|
||||
|
||||
#define NVME_PAYLOAD_SGL(reset_sgl_fn_, next_sge_fn_, cb_arg_, md_) \
|
||||
(struct nvme_payload) { \
|
||||
.u.sgl.reset_sgl_fn = (reset_sgl_fn_), \
|
||||
.u.sgl.next_sge_fn = (next_sge_fn_), \
|
||||
.u.sgl.cb_arg = (cb_arg_), \
|
||||
.md = (md_), \
|
||||
.type = NVME_PAYLOAD_TYPE_SGL, \
|
||||
}
|
||||
|
||||
static inline enum nvme_payload_type
|
||||
nvme_payload_type(const struct nvme_payload *payload) {
|
||||
return payload->type;
|
||||
|
@ -507,9 +507,7 @@ spdk_nvme_ns_cmd_compare(struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair,
|
||||
struct nvme_request *req;
|
||||
struct nvme_payload payload;
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
payload.u.contig = buffer;
|
||||
payload.md = NULL;
|
||||
payload = NVME_PAYLOAD_CONTIG(buffer, NULL);
|
||||
|
||||
req = _nvme_ns_cmd_rw(ns, qpair, &payload, 0, 0, lba, lba_count, cb_fn, cb_arg,
|
||||
SPDK_NVME_OPC_COMPARE,
|
||||
@ -538,9 +536,7 @@ spdk_nvme_ns_cmd_compare_with_md(struct spdk_nvme_ns *ns, struct spdk_nvme_qpair
|
||||
struct nvme_request *req;
|
||||
struct nvme_payload payload;
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
payload.u.contig = buffer;
|
||||
payload.md = metadata;
|
||||
payload = NVME_PAYLOAD_CONTIG(buffer, metadata);
|
||||
|
||||
req = _nvme_ns_cmd_rw(ns, qpair, &payload, 0, 0, lba, lba_count, cb_fn, cb_arg,
|
||||
SPDK_NVME_OPC_COMPARE,
|
||||
@ -572,11 +568,7 @@ spdk_nvme_ns_cmd_comparev(struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_SGL;
|
||||
payload.md = NULL;
|
||||
payload.u.sgl.reset_sgl_fn = reset_sgl_fn;
|
||||
payload.u.sgl.next_sge_fn = next_sge_fn;
|
||||
payload.u.sgl.cb_arg = cb_arg;
|
||||
payload = NVME_PAYLOAD_SGL(reset_sgl_fn, next_sge_fn, cb_arg, NULL);
|
||||
|
||||
req = _nvme_ns_cmd_rw(ns, qpair, &payload, 0, 0, lba, lba_count, cb_fn, cb_arg,
|
||||
SPDK_NVME_OPC_COMPARE,
|
||||
@ -602,9 +594,7 @@ spdk_nvme_ns_cmd_read(struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair, vo
|
||||
struct nvme_request *req;
|
||||
struct nvme_payload payload;
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
payload.u.contig = buffer;
|
||||
payload.md = NULL;
|
||||
payload = NVME_PAYLOAD_CONTIG(buffer, NULL);
|
||||
|
||||
req = _nvme_ns_cmd_rw(ns, qpair, &payload, 0, 0, lba, lba_count, cb_fn, cb_arg, SPDK_NVME_OPC_READ,
|
||||
io_flags, 0,
|
||||
@ -631,9 +621,7 @@ spdk_nvme_ns_cmd_read_with_md(struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *q
|
||||
struct nvme_request *req;
|
||||
struct nvme_payload payload;
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
payload.u.contig = buffer;
|
||||
payload.md = metadata;
|
||||
payload = NVME_PAYLOAD_CONTIG(buffer, metadata);
|
||||
|
||||
req = _nvme_ns_cmd_rw(ns, qpair, &payload, 0, 0, lba, lba_count, cb_fn, cb_arg, SPDK_NVME_OPC_READ,
|
||||
io_flags,
|
||||
@ -664,11 +652,7 @@ spdk_nvme_ns_cmd_readv(struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_SGL;
|
||||
payload.md = NULL;
|
||||
payload.u.sgl.reset_sgl_fn = reset_sgl_fn;
|
||||
payload.u.sgl.next_sge_fn = next_sge_fn;
|
||||
payload.u.sgl.cb_arg = cb_arg;
|
||||
payload = NVME_PAYLOAD_SGL(reset_sgl_fn, next_sge_fn, cb_arg, NULL);
|
||||
|
||||
req = _nvme_ns_cmd_rw(ns, qpair, &payload, 0, 0, lba, lba_count, cb_fn, cb_arg, SPDK_NVME_OPC_READ,
|
||||
io_flags, 0, 0, true);
|
||||
@ -693,9 +677,7 @@ spdk_nvme_ns_cmd_write(struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair,
|
||||
struct nvme_request *req;
|
||||
struct nvme_payload payload;
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
payload.u.contig = buffer;
|
||||
payload.md = NULL;
|
||||
payload = NVME_PAYLOAD_CONTIG(buffer, NULL);
|
||||
|
||||
req = _nvme_ns_cmd_rw(ns, qpair, &payload, 0, 0, lba, lba_count, cb_fn, cb_arg, SPDK_NVME_OPC_WRITE,
|
||||
io_flags, 0, 0, true);
|
||||
@ -720,9 +702,7 @@ spdk_nvme_ns_cmd_write_with_md(struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *
|
||||
struct nvme_request *req;
|
||||
struct nvme_payload payload;
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
payload.u.contig = buffer;
|
||||
payload.md = metadata;
|
||||
payload = NVME_PAYLOAD_CONTIG(buffer, metadata);
|
||||
|
||||
req = _nvme_ns_cmd_rw(ns, qpair, &payload, 0, 0, lba, lba_count, cb_fn, cb_arg, SPDK_NVME_OPC_WRITE,
|
||||
io_flags, apptag_mask, apptag, true);
|
||||
@ -752,11 +732,7 @@ spdk_nvme_ns_cmd_writev(struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_SGL;
|
||||
payload.md = NULL;
|
||||
payload.u.sgl.reset_sgl_fn = reset_sgl_fn;
|
||||
payload.u.sgl.next_sge_fn = next_sge_fn;
|
||||
payload.u.sgl.cb_arg = cb_arg;
|
||||
payload = NVME_PAYLOAD_SGL(reset_sgl_fn, next_sge_fn, cb_arg, NULL);
|
||||
|
||||
req = _nvme_ns_cmd_rw(ns, qpair, &payload, 0, 0, lba, lba_count, cb_fn, cb_arg, SPDK_NVME_OPC_WRITE,
|
||||
io_flags, 0, 0, true);
|
||||
|
@ -525,6 +525,7 @@ test_nvme_user_copy_cmd_complete(void)
|
||||
struct nvme_request req;
|
||||
int test_data = 0xdeadbeef;
|
||||
int buff_size = sizeof(int);
|
||||
void *buff;
|
||||
static struct spdk_nvme_cpl cpl;
|
||||
|
||||
memset(&req, 0, sizeof(req));
|
||||
@ -540,10 +541,10 @@ test_nvme_user_copy_cmd_complete(void)
|
||||
SPDK_CU_ASSERT_FATAL(req.user_buffer != NULL);
|
||||
memset(req.user_buffer, 0, buff_size);
|
||||
req.payload_size = buff_size;
|
||||
req.payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
req.payload.u.contig = malloc(buff_size);
|
||||
SPDK_CU_ASSERT_FATAL(req.payload.u.contig != NULL);
|
||||
memcpy(req.payload.u.contig, &test_data, buff_size);
|
||||
buff = malloc(buff_size);
|
||||
SPDK_CU_ASSERT_FATAL(buff != NULL);
|
||||
req.payload = NVME_PAYLOAD_CONTIG(buff, NULL);
|
||||
memcpy(buff, &test_data, buff_size);
|
||||
req.cmd.opc = SPDK_NVME_OPC_GET_LOG_PAGE;
|
||||
req.pid = getpid();
|
||||
|
||||
@ -572,7 +573,7 @@ test_nvme_user_copy_cmd_complete(void)
|
||||
|
||||
/* clean up */
|
||||
free(req.user_buffer);
|
||||
free(req.payload.u.contig);
|
||||
free(buff);
|
||||
|
||||
/* return spdk_dma_zmalloc/freee to unmocked */
|
||||
MOCK_SET_P(spdk_dma_zmalloc, void *, &ut_spdk_dma_zmalloc);
|
||||
|
@ -442,8 +442,7 @@ nvme_allocate_request_contig(struct spdk_nvme_qpair *qpair, void *buffer, uint32
|
||||
{
|
||||
struct nvme_payload payload;
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
payload.u.contig = buffer;
|
||||
payload = NVME_PAYLOAD_CONTIG(buffer, NULL);
|
||||
|
||||
return nvme_allocate_request(qpair, &payload, payload_size, cb_fn, cb_arg);
|
||||
}
|
||||
|
@ -272,9 +272,7 @@ nvme_allocate_request_contig(struct spdk_nvme_qpair *qpair, void *buffer, uint32
|
||||
{
|
||||
struct nvme_payload payload;
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
payload.u.contig = buffer;
|
||||
payload.md = NULL;
|
||||
payload = NVME_PAYLOAD_CONTIG(buffer, NULL);
|
||||
|
||||
return nvme_allocate_request(qpair, &payload, payload_size, cb_fn, cb_arg);
|
||||
}
|
||||
|
@ -468,10 +468,7 @@ test_sgl_req(void)
|
||||
uint64_t i;
|
||||
struct io_request io_req = {};
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_SGL;
|
||||
payload.u.sgl.reset_sgl_fn = nvme_request_reset_sgl;
|
||||
payload.u.sgl.next_sge_fn = nvme_request_next_sge;
|
||||
payload.u.sgl.cb_arg = &io_req;
|
||||
payload = NVME_PAYLOAD_SGL(nvme_request_reset_sgl, nvme_request_next_sge, &io_req, NULL);
|
||||
|
||||
prepare_submit_request_test(&qpair, &ctrlr);
|
||||
req = nvme_allocate_request(&payload, 0x1000, NULL, &io_req);
|
||||
@ -546,10 +543,7 @@ test_hw_sgl_req(void)
|
||||
uint64_t i;
|
||||
struct io_request io_req = {};
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_SGL;
|
||||
payload.u.sgl.reset_sgl_fn = nvme_request_reset_sgl;
|
||||
payload.u.sgl.next_sge_fn = nvme_request_next_sge;
|
||||
payload.u.sgl.cb_arg = &io_req;
|
||||
payload = NVME_PAYLOAD_SGL(nvme_request_reset_sgl, nvme_request_next_sge, &io_req, NULL);
|
||||
|
||||
prepare_submit_request_test(&qpair, &ctrlr);
|
||||
req = nvme_allocate_request(&payload, 0x1000, NULL, &io_req);
|
||||
|
@ -86,8 +86,7 @@ nvme_allocate_request_contig(struct spdk_nvme_qpair *qpair, void *buffer, uint32
|
||||
{
|
||||
struct nvme_payload payload;
|
||||
|
||||
payload.type = NVME_PAYLOAD_TYPE_CONTIG;
|
||||
payload.u.contig = buffer;
|
||||
payload = NVME_PAYLOAD_CONTIG(buffer, NULL);
|
||||
|
||||
return nvme_allocate_request(qpair, &payload, payload_size, cb_fn, cb_arg);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user