Lines Matching refs:req

244 nvme_vuc_req_fini(nvme_vuc_req_t *req)  in nvme_vuc_req_fini()  argument
246 free(req); in nvme_vuc_req_fini()
252 nvme_vuc_req_t *req; in nvme_vuc_req_init() local
267 req = calloc(1, sizeof (nvme_vuc_req_t)); in nvme_vuc_req_init()
268 if (req == NULL) { in nvme_vuc_req_init()
275 req->nvr_ctrl = ctrl; in nvme_vuc_req_init()
279 req->nvr_need |= 1 << i; in nvme_vuc_req_init()
283 *reqp = req; in nvme_vuc_req_init()
288 nvme_vuc_req_clear_need(nvme_vuc_req_t *req, nvme_vuc_req_field_t field) in nvme_vuc_req_clear_need() argument
290 req->nvr_need &= ~(1 << field); in nvme_vuc_req_clear_need()
299 nvme_vuc_req_set_cdw12(nvme_vuc_req_t *req, uint32_t cdw12) in nvme_vuc_req_set_cdw12() argument
301 req->nvr_cdw12 = cdw12; in nvme_vuc_req_set_cdw12()
302 nvme_vuc_req_clear_need(req, NVME_VUC_REQ_FIELD_CDW12); in nvme_vuc_req_set_cdw12()
303 return (nvme_ctrl_success(req->nvr_ctrl)); in nvme_vuc_req_set_cdw12()
307 nvme_vuc_req_set_cdw13(nvme_vuc_req_t *req, uint32_t cdw13) in nvme_vuc_req_set_cdw13() argument
309 req->nvr_cdw13 = cdw13; in nvme_vuc_req_set_cdw13()
310 nvme_vuc_req_clear_need(req, NVME_VUC_REQ_FIELD_CDW13); in nvme_vuc_req_set_cdw13()
311 return (nvme_ctrl_success(req->nvr_ctrl)); in nvme_vuc_req_set_cdw13()
315 nvme_vuc_req_set_cdw14(nvme_vuc_req_t *req, uint32_t cdw14) in nvme_vuc_req_set_cdw14() argument
317 req->nvr_cdw14 = cdw14; in nvme_vuc_req_set_cdw14()
318 nvme_vuc_req_clear_need(req, NVME_VUC_REQ_FIELD_CDW14); in nvme_vuc_req_set_cdw14()
319 return (nvme_ctrl_success(req->nvr_ctrl)); in nvme_vuc_req_set_cdw14()
323 nvme_vuc_req_set_cdw15(nvme_vuc_req_t *req, uint32_t cdw15) in nvme_vuc_req_set_cdw15() argument
325 req->nvr_cdw15 = cdw15; in nvme_vuc_req_set_cdw15()
326 nvme_vuc_req_clear_need(req, NVME_VUC_REQ_FIELD_CDW15); in nvme_vuc_req_set_cdw15()
327 return (nvme_ctrl_success(req->nvr_ctrl)); in nvme_vuc_req_set_cdw15()
336 nvme_vuc_req_set_opcode(nvme_vuc_req_t *req, uint32_t opc) in nvme_vuc_req_set_opcode() argument
338 if (!nvme_field_check_one(req->nvr_ctrl, opc, "vendor unique command", in nvme_vuc_req_set_opcode()
343 req->nvr_opcode = opc; in nvme_vuc_req_set_opcode()
344 nvme_vuc_req_clear_need(req, NVME_VUC_REQ_FIELD_OPC); in nvme_vuc_req_set_opcode()
345 return (nvme_ctrl_success(req->nvr_ctrl)); in nvme_vuc_req_set_opcode()
354 nvme_vuc_req_set_nsid(nvme_vuc_req_t *req, uint32_t nsid) in nvme_vuc_req_set_nsid() argument
356 if (!nvme_field_check_one(req->nvr_ctrl, nsid, "vendor unique command", in nvme_vuc_req_set_nsid()
361 req->nvr_nsid = nsid; in nvme_vuc_req_set_nsid()
362 nvme_vuc_req_clear_need(req, NVME_VUC_REQ_FIELD_NSID); in nvme_vuc_req_set_nsid()
363 return (nvme_ctrl_success(req->nvr_ctrl)); in nvme_vuc_req_set_nsid()
372 nvme_vuc_req_set_timeout(nvme_vuc_req_t *req, uint32_t to) in nvme_vuc_req_set_timeout() argument
374 if (!nvme_field_check_one(req->nvr_ctrl, to, "vendor unique command", in nvme_vuc_req_set_timeout()
379 req->nvr_timeout = to; in nvme_vuc_req_set_timeout()
380 nvme_vuc_req_clear_need(req, NVME_VUC_REQ_FIELD_TO); in nvme_vuc_req_set_timeout()
381 return (nvme_ctrl_success(req->nvr_ctrl)); in nvme_vuc_req_set_timeout()
395 nvme_vuc_req_data_validate(nvme_vuc_req_t *req, const void *buf, size_t len, in nvme_vuc_req_data_validate() argument
398 nvme_ctrl_t *ctrl = req->nvr_ctrl; in nvme_vuc_req_data_validate()
401 const void *alt_buf = in ? req->nvr_output : req->nvr_input; in nvme_vuc_req_data_validate()
423 if (!nvme_field_check_one(req->nvr_ctrl, len, "vendor unique command", in nvme_vuc_req_data_validate()
436 nvme_vuc_req_set_impact(nvme_vuc_req_t *req, nvme_vuc_disc_impact_t impact) in nvme_vuc_req_set_impact() argument
442 return (nvme_ctrl_error(req->nvr_ctrl, in nvme_vuc_req_set_impact()
447 req->nvr_impact = impact; in nvme_vuc_req_set_impact()
448 return (nvme_ctrl_success(req->nvr_ctrl)); in nvme_vuc_req_set_impact()
452 nvme_vuc_req_set_output(nvme_vuc_req_t *req, void *buf, size_t len) in nvme_vuc_req_set_output() argument
454 if (!nvme_vuc_req_data_validate(req, buf, len, false)) { in nvme_vuc_req_set_output()
458 req->nvr_output = buf; in nvme_vuc_req_set_output()
459 req->nvr_outlen = len; in nvme_vuc_req_set_output()
460 return (nvme_ctrl_success(req->nvr_ctrl)); in nvme_vuc_req_set_output()
464 nvme_vuc_req_set_input(nvme_vuc_req_t *req, const void *buf, size_t len) in nvme_vuc_req_set_input() argument
466 if (!nvme_vuc_req_data_validate(req, buf, len, true)) { in nvme_vuc_req_set_input()
470 req->nvr_input = buf; in nvme_vuc_req_set_input()
471 req->nvr_inlen = len; in nvme_vuc_req_set_input()
472 return (nvme_ctrl_success(req->nvr_ctrl)); in nvme_vuc_req_set_input()
476 nvme_vuc_req_get_cdw0(nvme_vuc_req_t *req, uint32_t *cdw0) in nvme_vuc_req_get_cdw0() argument
479 return (nvme_ctrl_error(req->nvr_ctrl, NVME_ERR_BAD_PTR, 0, in nvme_vuc_req_get_cdw0()
483 if (!req->nvr_results_valid) { in nvme_vuc_req_get_cdw0()
484 return (nvme_ctrl_error(req->nvr_ctrl, NVME_ERR_VUC_NO_RESULTS, in nvme_vuc_req_get_cdw0()
489 *cdw0 = req->nvr_cdw0; in nvme_vuc_req_get_cdw0()
490 return (nvme_ctrl_success(req->nvr_ctrl)); in nvme_vuc_req_get_cdw0()
494 nvme_vuc_req_exec(nvme_vuc_req_t *req) in nvme_vuc_req_exec() argument
496 nvme_ctrl_t *ctrl = req->nvr_ctrl; in nvme_vuc_req_exec()
502 req->nvr_results_valid = false; in nvme_vuc_req_exec()
503 req->nvr_cdw0 = 0; in nvme_vuc_req_exec()
505 if (req->nvr_need != 0) { in nvme_vuc_req_exec()
508 "vendor unique command", req->nvr_need)); in nvme_vuc_req_exec()
512 pass.npc_common.nioc_nsid = req->nvr_nsid; in nvme_vuc_req_exec()
513 pass.npc_opcode = req->nvr_opcode; in nvme_vuc_req_exec()
514 pass.npc_timeout = req->nvr_timeout; in nvme_vuc_req_exec()
515 pass.npc_cdw12 = req->nvr_cdw12; in nvme_vuc_req_exec()
516 pass.npc_cdw13 = req->nvr_cdw13; in nvme_vuc_req_exec()
517 pass.npc_cdw14 = req->nvr_cdw14; in nvme_vuc_req_exec()
518 pass.npc_cdw15 = req->nvr_cdw14; in nvme_vuc_req_exec()
520 if (req->nvr_input != NULL) { in nvme_vuc_req_exec()
521 pass.npc_buflen = req->nvr_inlen; in nvme_vuc_req_exec()
522 pass.npc_buf = (uintptr_t)req->nvr_input; in nvme_vuc_req_exec()
524 } else if (req->nvr_output != NULL) { in nvme_vuc_req_exec()
525 pass.npc_buflen = req->nvr_outlen; in nvme_vuc_req_exec()
526 pass.npc_buf = (uintptr_t)req->nvr_output; in nvme_vuc_req_exec()
530 if ((req->nvr_impact & NVME_VUC_DISC_IMPACT_NS) != 0) { in nvme_vuc_req_exec()
544 req->nvr_results_valid = true; in nvme_vuc_req_exec()
545 req->nvr_cdw0 = pass.npc_cdw0; in nvme_vuc_req_exec()