Lines Matching defs:ioc
90 handle_get_log_page(struct io_controller *ioc, const struct nvmf_capsule *nc,
121 if (len != sizeof(ioc->hip))
124 nvmf_send_controller_data(nc, &ioc->hip, sizeof(ioc->hip));
127 if (len != sizeof(ioc->fp))
130 nvmf_send_controller_data(nc, &ioc->fp, sizeof(ioc->fp));
187 handle_set_features(struct io_controller *ioc, const struct nvmf_capsule *nc,
199 if (ioc->num_io_queues != 0) {
220 ioc->num_io_queues = num_queues;
221 ioc->io_qpairs = calloc(num_queues, sizeof(*ioc->io_qpairs));
222 ioc->io_sockets = calloc(num_queues, sizeof(*ioc->io_sockets));
257 struct io_controller *ioc = arg;
261 handle_get_log_page(ioc, nc, cmd);
266 handle_set_features(ioc, nc, cmd);
280 handle_admin_qpair(struct io_controller *ioc)
284 controller_handle_admin_commands(ioc->c, admin_command, ioc);
287 for (u_int i = 0; i < ioc->num_io_queues; i++) {
288 if (ioc->io_qpairs[i] == NULL || ioc->io_sockets[i] == -1)
290 close(ioc->io_sockets[i]);
291 ioc->io_sockets[i] = -1;
295 while (ioc->active_io_queues > 0)
301 free_controller(ioc->c);
303 free(ioc);
361 handle_read(struct io_controller *ioc, const struct nvmf_capsule *nc,
368 hip_add(ioc->hip.host_read_commands, 1);
371 len += ioc->partial_dur;
373 hip_add(ioc->hip.data_units_read, len / 1000);
374 ioc->partial_dur = len % 1000;
378 handle_write(struct io_controller *ioc, const struct nvmf_capsule *nc,
385 hip_add(ioc->hip.host_write_commands, 1);
388 len += ioc->partial_duw;
390 hip_add(ioc->hip.data_units_written, len / 1000);
391 ioc->partial_duw = len % 1000;
401 handle_io_commands(struct io_controller *ioc, struct nvmf_qpair *qp)
430 handle_write(ioc, nc, cmd);
433 handle_read(ioc, nc, cmd);
451 handle_io_qpair(struct io_controller *ioc, struct nvmf_qpair *qp, int qid)
459 disconnect = handle_io_commands(ioc, qp);
463 ioc->io_qpairs[qid - 1] = NULL;
464 if (ioc->io_sockets[qid - 1] != -1) {
465 close(ioc->io_sockets[qid - 1]);
466 ioc->io_sockets[qid - 1] = -1;
468 ioc->active_io_queues--;
469 if (ioc->active_io_queues == 0)
479 struct io_controller *ioc;
498 ioc = calloc(1, sizeof(*ioc));
499 ioc->cntlid = 2;
500 memcpy(ioc->hostid, data->hostid, sizeof(ioc->hostid));
501 memcpy(ioc->hostnqn, data->hostnqn, sizeof(ioc->hostnqn));
506 ioc->fp.afi = NVMEF(NVME_FIRMWARE_PAGE_AFI_SLOT, 1);
507 memcpy(ioc->fp.revision[0], cdata.fr, sizeof(cdata.fr));
509 ioc->hip.power_cycles[0] = 1;
511 ioc->c = init_controller(qp, &cdata);
513 io_controller = ioc;
518 handle_admin_qpair(ioc);
531 struct io_controller *ioc;
593 ioc = io_controller;
594 ioc->active_io_queues++;
595 ioc->io_qpairs[qid - 1] = qp;
596 ioc->io_sockets[qid - 1] = s;
601 handle_io_qpair(ioc, qp, qid);