/haiku/src/add-ons/kernel/drivers/disk/nvme/libnvme/ |
H A D | nvme_qpair.c | 153 static inline bool nvme_qpair_is_admin_queue(struct nvme_qpair *qpair) argument 155 return qpair->id == 0; 158 static inline bool nvme_qpair_is_io_queue(struct nvme_qpair *qpair) argument 160 return qpair->id != 0; 178 static void nvme_qpair_admin_qpair_print_command(struct nvme_qpair *qpair, argument 183 qpair->id, cmd->cid, 187 static void nvme_qpair_io_qpair_print_command(struct nvme_qpair *qpair, argument 190 nvme_assert(qpair != NULL, "print_command: qpair == NULL\n"); 200 qpair 218 nvme_qpair_print_command(struct nvme_qpair *qpair, struct nvme_cmd *cmd) argument 253 nvme_qpair_print_completion(struct nvme_qpair *qpair, struct nvme_cpl *cpl) argument 342 nvme_qpair_submit_tracker(struct nvme_qpair *qpair, struct nvme_tracker *tr) argument 367 nvme_qpair_complete_tracker(struct nvme_qpair *qpair, struct nvme_tracker *tr, struct nvme_cpl *cpl, bool print_on_error) argument 413 nvme_qpair_submit_queued_requests(struct nvme_qpair *qpair) argument 442 nvme_qpair_manual_complete_tracker(struct nvme_qpair *qpair, struct nvme_tracker *tr, uint32_t sct, uint32_t sc, uint32_t dnr, bool print_on_error) argument 461 nvme_qpair_manual_complete_request(struct nvme_qpair *qpair, struct nvme_request *req, uint32_t sct, uint32_t sc, bool print_on_error) argument 487 nvme_qpair_abort_aers(struct nvme_qpair *qpair) argument 507 _nvme_qpair_admin_qpair_destroy(struct nvme_qpair *qpair) argument 512 _nvme_qpair_req_bad_phys(struct nvme_qpair *qpair, struct nvme_tracker *tr) argument 527 _nvme_qpair_build_contig_request(struct nvme_qpair *qpair, struct nvme_request *req, struct nvme_tracker *tr) argument 583 _nvme_qpair_build_hw_sgl_request(struct nvme_qpair *qpair, struct nvme_request *req, struct nvme_tracker *tr) argument 664 _nvme_qpair_build_prps_sgl_request(struct nvme_qpair *qpair, struct nvme_request *req, struct nvme_tracker *tr) argument 756 _nvme_qpair_admin_qpair_enable(struct nvme_qpair *qpair) argument 776 _nvme_qpair_io_qpair_enable(struct nvme_qpair *qpair) argument 804 _nvme_qpair_admin_qpair_disable(struct nvme_qpair *qpair) argument 810 _nvme_qpair_io_qpair_disable(struct nvme_qpair *qpair) argument 843 nvme_qpair_construct(struct nvme_ctrlr *ctrlr, struct nvme_qpair *qpair, enum nvme_qprio qprio, uint16_t entries, uint16_t trackers) argument 970 nvme_qpair_destroy(struct nvme_qpair *qpair) argument 997 nvme_qpair_enabled(struct nvme_qpair *qpair) argument 1005 nvme_qpair_submit_request(struct nvme_qpair *qpair, struct nvme_request *req) argument 1100 nvme_qpair_poll(struct nvme_qpair *qpair, unsigned int max_completions) argument 1162 nvme_qpair_reset(struct nvme_qpair *qpair) argument 1182 nvme_qpair_enable(struct nvme_qpair *qpair) argument 1194 nvme_qpair_disable(struct nvme_qpair *qpair) argument 1206 nvme_qpair_fail(struct nvme_qpair *qpair) argument [all...] |
H A D | nvme_request.c | 39 static struct nvme_request *nvme_alloc_request(struct nvme_qpair *qpair) argument 43 pthread_mutex_lock(&qpair->lock); 45 req = STAILQ_FIRST(&qpair->free_req); 47 STAILQ_REMOVE_HEAD(&qpair->free_req, stailq); 51 pthread_mutex_unlock(&qpair->lock); 82 int nvme_request_pool_construct(struct nvme_qpair *qpair) argument 87 qpair->num_reqs = qpair->trackers * NVME_IO_ENTRIES_VS_TRACKERS_RATIO; 88 qpair->reqs = calloc(qpair 109 nvme_request_pool_destroy(struct nvme_qpair *qpair) argument 126 nvme_request_allocate(struct nvme_qpair *qpair, const struct nvme_payload *payload, uint32_t payload_size, nvme_cmd_cb cb_fn, void *cb_arg) argument 154 nvme_request_allocate_contig(struct nvme_qpair *qpair, void *buffer, uint32_t payload_size, nvme_cmd_cb cb_fn, void *cb_arg) argument 170 nvme_request_allocate_null(struct nvme_qpair *qpair, nvme_cmd_cb cb_fn, void *cb_arg) argument [all...] |
H A D | nvme_ns.c | 225 struct nvme_qpair *qpair, 233 struct nvme_qpair *qpair, 264 child = _nvme_ns_rw(ns, qpair, payload, lba, lba_count, cb_fn, 297 struct nvme_qpair *qpair, 327 req = nvme_request_allocate(qpair, payload, 340 return _nvme_ns_split_request(ns, qpair, payload, lba, 347 return _nvme_ns_split_request(ns, qpair, payload, lba, 377 int nvme_ns_read(struct nvme_ns *ns, struct nvme_qpair *qpair, argument 390 req = _nvme_ns_rw(ns, qpair, &payload, lba, lba_count, cb_fn, cb_arg, 393 return nvme_qpair_submit_request(qpair, re 232 _nvme_ns_split_request(struct nvme_ns *ns, struct nvme_qpair *qpair, const struct nvme_payload *payload, uint64_t lba, uint32_t lba_count, nvme_cmd_cb cb_fn, void *cb_arg, uint32_t opc, uint32_t io_flags, struct nvme_request *req, uint32_t sectors_per_max_io, uint32_t sector_mask, uint16_t apptag_mask, uint16_t apptag) argument 296 _nvme_ns_rw(struct nvme_ns *ns, struct nvme_qpair *qpair, const struct nvme_payload *payload, uint64_t lba, uint32_t lba_count, nvme_cmd_cb cb_fn, void *cb_arg, uint32_t opc, uint32_t io_flags, uint16_t apptag_mask, uint16_t apptag) argument 398 nvme_ns_read_with_md(struct nvme_ns *ns, struct nvme_qpair *qpair, void *buffer, void *metadata, uint64_t lba, uint32_t lba_count, nvme_cmd_cb cb_fn, void *cb_arg, unsigned int io_flags, uint16_t apptag_mask, uint16_t apptag) argument 420 nvme_ns_readv(struct nvme_ns *ns, struct nvme_qpair *qpair, uint64_t lba, uint32_t lba_count, nvme_cmd_cb cb_fn, void *cb_arg, unsigned int io_flags, nvme_req_reset_sgl_cb reset_sgl_fn, nvme_req_next_sge_cb next_sge_fn) argument 447 nvme_ns_write(struct nvme_ns *ns, struct nvme_qpair *qpair, void *buffer, uint64_t lba, uint32_t lba_count, nvme_cmd_cb cb_fn, void *cb_arg, unsigned int io_flags) argument 468 nvme_ns_write_with_md(struct nvme_ns *ns, struct nvme_qpair *qpair, void *buffer, void *metadata, uint64_t lba, uint32_t lba_count, nvme_cmd_cb cb_fn, void *cb_arg, unsigned int io_flags, uint16_t apptag_mask, uint16_t apptag) argument 490 nvme_ns_writev(struct nvme_ns *ns, struct nvme_qpair *qpair, uint64_t lba, uint32_t lba_count, nvme_cmd_cb cb_fn, void *cb_arg, unsigned int io_flags, nvme_req_reset_sgl_cb reset_sgl_fn, nvme_req_next_sge_cb next_sge_fn) argument 517 nvme_ns_write_zeroes(struct nvme_ns *ns, struct nvme_qpair *qpair, uint64_t lba, uint32_t lba_count, nvme_cmd_cb cb_fn, void *cb_arg, unsigned int io_flags) argument 545 nvme_ns_deallocate(struct nvme_ns *ns, struct nvme_qpair *qpair, void *payload, uint16_t ranges, nvme_cmd_cb cb_fn, void *cb_arg) argument 572 nvme_ns_flush(struct nvme_ns *ns, struct nvme_qpair *qpair, nvme_cmd_cb cb_fn, void *cb_arg) argument 589 nvme_ns_reservation_register(struct nvme_ns *ns, struct nvme_qpair *qpair, struct nvme_reservation_register_data *payload, bool ignore_key, enum nvme_reservation_register_action action, enum nvme_reservation_register_cptpl cptpl, nvme_cmd_cb cb_fn, void *cb_arg) argument 619 nvme_ns_reservation_release(struct nvme_ns *ns, struct nvme_qpair *qpair, struct nvme_reservation_key_data *payload, bool ignore_key, enum nvme_reservation_release_action action, enum nvme_reservation_type type, nvme_cmd_cb cb_fn, void *cb_arg) argument 649 nvme_ns_reservation_acquire(struct nvme_ns *ns, struct nvme_qpair *qpair, struct nvme_reservation_acquire_data *payload, bool ignore_key, enum nvme_reservation_acquire_action action, enum nvme_reservation_type type, nvme_cmd_cb cb_fn, void *cb_arg) argument 679 nvme_ns_reservation_report(struct nvme_ns *ns, struct nvme_qpair *qpair, void *payload, size_t len, nvme_cmd_cb cb_fn, void *cb_arg) argument [all...] |
H A D | nvme.h | 722 * @param qpair I/O queue pair handle 726 extern int nvme_ioqp_release(struct nvme_qpair *qpair); 731 * @param qpair I/O queue pair handle 736 extern int nvme_qpair_stat(struct nvme_qpair *qpair, 742 * @param qpair I/O qpair handle 757 extern int nvme_ioqp_submit_cmd(struct nvme_qpair *qpair, 765 * @param qpair I/O queue pair handle 780 extern unsigned int nvme_qpair_poll(struct nvme_qpair *qpair, 829 * @param qpair [all...] |
H A D | nvme_ctrlr.c | 57 struct nvme_qpair *qpair) 62 ret = nvme_admin_create_ioq(ctrlr, qpair, NVME_IO_COMPLETION_QUEUE); 65 qpair->id); 70 ret = nvme_admin_create_ioq(ctrlr, qpair, NVME_IO_SUBMISSION_QUEUE); 74 qpair->id); 75 nvme_admin_delete_ioq(ctrlr, qpair, NVME_IO_COMPLETION_QUEUE); 79 nvme_qpair_reset(qpair); 88 struct nvme_qpair *qpair) 93 ret = nvme_admin_delete_ioq(ctrlr, qpair, NVME_IO_SUBMISSION_QUEUE); 96 qpair 56 nvme_ctrlr_create_qpair(struct nvme_ctrlr *ctrlr, struct nvme_qpair *qpair) argument 87 nvme_ctrlr_delete_qpair(struct nvme_ctrlr *ctrlr, struct nvme_qpair *qpair) argument 245 struct nvme_qpair *qpair; local 992 struct nvme_qpair *qpair; local 1143 struct nvme_qpair *qpair; local 1405 struct nvme_qpair *qpair = NULL; local 1486 nvme_ioqp_release(struct nvme_qpair *qpair) argument 1515 nvme_ioqp_submit_cmd(struct nvme_qpair *qpair, struct nvme_cmd *cmd, void *buf, size_t len, nvme_cmd_cb cb_fn, void *cb_arg) argument [all...] |
H A D | nvme_internal.h | 113 * NVME_IO_ENTRIES defines the size of an I/O qpair's submission and completion 115 * will allow outstanding on an I/O qpair at any time. The only advantage in 276 * For queueing in qpair queued_req or free_req. 278 struct nvme_qpair *qpair; member in struct:nvme_request 651 struct nvme_qpair *qpair, 688 struct nvme_qpair *qpair, enum nvme_qprio qprio, 691 extern void nvme_qpair_destroy(struct nvme_qpair *qpair); 692 extern void nvme_qpair_enable(struct nvme_qpair *qpair); 693 extern void nvme_qpair_disable(struct nvme_qpair *qpair); 694 extern int nvme_qpair_submit_request(struct nvme_qpair *qpair, [all...] |
H A D | nvme_admin.c | 196 struct nvme_qpair *qpair, 206 cmd.cdw11 = (qpair->id << 16) | (qpair->qprio << 1) | 0x1; 207 cmd.dptr.prp.prp1 = qpair->cmd_bus_addr; 216 cmd.dptr.prp.prp1 = qpair->cpl_bus_addr; 222 cmd.cdw10 = ((qpair->entries - 1) << 16) | qpair->id; 232 struct nvme_qpair *qpair, 249 cmd.cdw10 = qpair->id; 195 nvme_admin_create_ioq(struct nvme_ctrlr *ctrlr, struct nvme_qpair *qpair, enum nvme_io_queue_type io_qtype) argument 231 nvme_admin_delete_ioq(struct nvme_ctrlr *ctrlr, struct nvme_qpair *qpair, enum nvme_io_queue_type io_qtype) argument
|
H A D | nvme.c | 301 /* Maximum io qpair possible */ 351 * Get qpair information 353 int nvme_qpair_stat(struct nvme_qpair *qpair, struct nvme_qpair_stat *qpstat) argument 355 struct nvme_ctrlr *ctrlr = qpair->ctrlr; 366 qpstat->id = qpair->id; 367 qpstat->qd = qpair->entries; 368 qpstat->enabled = qpair->enabled; 369 qpstat->qprio = qpair->qprio;
|
/haiku/src/add-ons/kernel/drivers/disk/nvme/ |
H A D | nvme_disk.cpp | 100 struct nvme_qpair* qpair; member in struct:__anon25::qpair_info 280 info->qpairs[i].qpair = nvme_ioqp_get(info->ctrlr, 282 if (info->qpairs[i].qpair == NULL) 416 await_status(nvme_disk_driver_info* info, struct nvme_qpair* qpair, status_t& status) argument 425 nvme_qpair_poll(qpair, 0); 436 // no matter the qpair or transfer within; so if it does occur, 442 nvme_qpair_fail(qpair); 453 nvme_qpair_poll(qpair, 0); 516 ret = nvme_ns_writev(info->ns, qpinfo->qpair, request->lba_start, 521 ret = nvme_ns_readv(info->ns, qpinfo->qpair, reques 917 qpair_info* qpair = get_qpair(info); local [all...] |