Lines Matching refs:req
33 struct rpc_bdev_virtio_blk_hotplug req = {false, 0}; in rpc_bdev_virtio_blk_set_hotplug() local
37 SPDK_COUNTOF(rpc_bdev_virtio_blk_hotplug_decoders), &req)) { in rpc_bdev_virtio_blk_set_hotplug()
43 rc = bdev_virtio_pci_blk_set_hotplug(req.enabled, req.period_us); in rpc_bdev_virtio_blk_set_hotplug()
81 struct rpc_remove_virtio_dev req = {NULL}; in rpc_bdev_virtio_detach_controller() local
86 &req)) { in rpc_bdev_virtio_detach_controller()
92 rc = bdev_virtio_blk_dev_remove(req.name, rpc_bdev_virtio_detach_controller_cb, request); in rpc_bdev_virtio_detach_controller()
94 rc = bdev_virtio_scsi_dev_remove(req.name, rpc_bdev_virtio_detach_controller_cb, request); in rpc_bdev_virtio_detach_controller()
102 free(req.name); in rpc_bdev_virtio_detach_controller()
146 free_rpc_bdev_virtio_attach_controller_ctx(struct rpc_bdev_virtio_attach_controller_ctx *req) in free_rpc_bdev_virtio_attach_controller_ctx() argument
148 free(req->name); in free_rpc_bdev_virtio_attach_controller_ctx()
149 free(req->trtype); in free_rpc_bdev_virtio_attach_controller_ctx()
150 free(req->traddr); in free_rpc_bdev_virtio_attach_controller_ctx()
151 free(req->dev_type); in free_rpc_bdev_virtio_attach_controller_ctx()
152 free(req); in free_rpc_bdev_virtio_attach_controller_ctx()
158 struct rpc_bdev_virtio_attach_controller_ctx *req = ctx; in rpc_create_virtio_dev_cb() local
163 spdk_jsonrpc_send_error_response(req->request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, in rpc_create_virtio_dev_cb()
165 free_rpc_bdev_virtio_attach_controller_ctx(req); in rpc_create_virtio_dev_cb()
169 w = spdk_jsonrpc_begin_result(req->request); in rpc_create_virtio_dev_cb()
177 spdk_jsonrpc_end_result(req->request, w); in rpc_create_virtio_dev_cb()
186 struct rpc_bdev_virtio_attach_controller_ctx *req; in rpc_bdev_virtio_attach_controller() local
191 req = calloc(1, sizeof(*req)); in rpc_bdev_virtio_attach_controller()
192 if (!req) { in rpc_bdev_virtio_attach_controller()
200 req)) { in rpc_bdev_virtio_attach_controller()
206 if (strcmp(req->trtype, "pci") == 0) { in rpc_bdev_virtio_attach_controller()
207 if (req->vq_count != 0 || req->vq_size != 0) { in rpc_bdev_virtio_attach_controller()
214 if (spdk_pci_addr_parse(&pci_addr, req->traddr) != 0) { in rpc_bdev_virtio_attach_controller()
215 SPDK_ERRLOG("Invalid PCI address '%s'\n", req->traddr); in rpc_bdev_virtio_attach_controller()
216 spdk_jsonrpc_send_error_response_fmt(request, EINVAL, "Invalid PCI address '%s'", req->traddr); in rpc_bdev_virtio_attach_controller()
219 } else if (strcmp(req->trtype, "user") == 0) { in rpc_bdev_virtio_attach_controller()
220 req->vq_count = req->vq_count == 0 ? SPDK_VIRTIO_USER_DEFAULT_VQ_COUNT : req->vq_count; in rpc_bdev_virtio_attach_controller()
221 req->vq_size = req->vq_size == 0 ? SPDK_VIRTIO_USER_DEFAULT_QUEUE_SIZE : req->vq_size; in rpc_bdev_virtio_attach_controller()
222 } else if (strcmp(req->trtype, "vfio-user") == 0) { in rpc_bdev_virtio_attach_controller()
223 if (req->vq_count != 0 || req->vq_size != 0) { in rpc_bdev_virtio_attach_controller()
230 SPDK_ERRLOG("Invalid trtype '%s'\n", req->trtype); in rpc_bdev_virtio_attach_controller()
231 spdk_jsonrpc_send_error_response_fmt(request, EINVAL, "Invalid trtype '%s'", req->trtype); in rpc_bdev_virtio_attach_controller()
235 req->request = request; in rpc_bdev_virtio_attach_controller()
236 if (strcmp(req->dev_type, "blk") == 0) { in rpc_bdev_virtio_attach_controller()
237 if (strcmp(req->trtype, "pci") == 0) { in rpc_bdev_virtio_attach_controller()
238 bdev = bdev_virtio_pci_blk_dev_create(req->name, &pci_addr); in rpc_bdev_virtio_attach_controller()
239 } else if (strcmp(req->trtype, "user") == 0) { in rpc_bdev_virtio_attach_controller()
240 bdev = bdev_virtio_user_blk_dev_create(req->name, req->traddr, req->vq_count, req->vq_size); in rpc_bdev_virtio_attach_controller()
241 } else if (strcmp(req->trtype, "vfio-user") == 0) { in rpc_bdev_virtio_attach_controller()
242 bdev = bdev_virtio_vfio_user_blk_dev_create(req->name, req->traddr); in rpc_bdev_virtio_attach_controller()
247 rpc_create_virtio_dev_cb(req, rc, &bdev, bdev ? 1 : 0); in rpc_bdev_virtio_attach_controller()
248 } else if (strcmp(req->dev_type, "scsi") == 0) { in rpc_bdev_virtio_attach_controller()
249 if (strcmp(req->trtype, "pci") == 0) { in rpc_bdev_virtio_attach_controller()
250 rc = bdev_virtio_pci_scsi_dev_create(req->name, &pci_addr, rpc_create_virtio_dev_cb, req); in rpc_bdev_virtio_attach_controller()
251 } else if (strcmp(req->trtype, "user") == 0) { in rpc_bdev_virtio_attach_controller()
252 rc = bdev_virtio_user_scsi_dev_create(req->name, req->traddr, req->vq_count, req->vq_size, in rpc_bdev_virtio_attach_controller()
253 rpc_create_virtio_dev_cb, req); in rpc_bdev_virtio_attach_controller()
254 } else if (strcmp(req->trtype, "vfio-user") == 0) { in rpc_bdev_virtio_attach_controller()
255 rc = bdev_vfio_user_scsi_dev_create(req->name, req->traddr, rpc_create_virtio_dev_cb, req); in rpc_bdev_virtio_attach_controller()
260 rpc_create_virtio_dev_cb(req, rc, NULL, 0); in rpc_bdev_virtio_attach_controller()
263 SPDK_ERRLOG("Invalid dev_type '%s'\n", req->dev_type); in rpc_bdev_virtio_attach_controller()
264 spdk_jsonrpc_send_error_response_fmt(request, EINVAL, "Invalid dev_type '%s'", req->dev_type); in rpc_bdev_virtio_attach_controller()
271 free_rpc_bdev_virtio_attach_controller_ctx(req); in rpc_bdev_virtio_attach_controller()