vhost: Add worker backend callouts
This adds the vhost backend callouts for the worker ioctls added in the 6.4 linux kernel commit: c1ecd8e95007 ("vhost: allow userspace to create workers") Signed-off-by: Mike Christie <michael.christie@oracle.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20231204231618.21962-2-michael.christie@oracle.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
c40db4ba60
commit
9aad781959
@ -158,6 +158,30 @@ static int vhost_kernel_set_vring_busyloop_timeout(struct vhost_dev *dev,
|
||||
return vhost_kernel_call(dev, VHOST_SET_VRING_BUSYLOOP_TIMEOUT, s);
|
||||
}
|
||||
|
||||
static int vhost_kernel_new_worker(struct vhost_dev *dev,
|
||||
struct vhost_worker_state *worker)
|
||||
{
|
||||
return vhost_kernel_call(dev, VHOST_NEW_WORKER, worker);
|
||||
}
|
||||
|
||||
static int vhost_kernel_free_worker(struct vhost_dev *dev,
|
||||
struct vhost_worker_state *worker)
|
||||
{
|
||||
return vhost_kernel_call(dev, VHOST_FREE_WORKER, worker);
|
||||
}
|
||||
|
||||
static int vhost_kernel_attach_vring_worker(struct vhost_dev *dev,
|
||||
struct vhost_vring_worker *worker)
|
||||
{
|
||||
return vhost_kernel_call(dev, VHOST_ATTACH_VRING_WORKER, worker);
|
||||
}
|
||||
|
||||
static int vhost_kernel_get_vring_worker(struct vhost_dev *dev,
|
||||
struct vhost_vring_worker *worker)
|
||||
{
|
||||
return vhost_kernel_call(dev, VHOST_GET_VRING_WORKER, worker);
|
||||
}
|
||||
|
||||
static int vhost_kernel_set_features(struct vhost_dev *dev,
|
||||
uint64_t features)
|
||||
{
|
||||
@ -313,6 +337,10 @@ const VhostOps kernel_ops = {
|
||||
.vhost_set_vring_err = vhost_kernel_set_vring_err,
|
||||
.vhost_set_vring_busyloop_timeout =
|
||||
vhost_kernel_set_vring_busyloop_timeout,
|
||||
.vhost_get_vring_worker = vhost_kernel_get_vring_worker,
|
||||
.vhost_attach_vring_worker = vhost_kernel_attach_vring_worker,
|
||||
.vhost_new_worker = vhost_kernel_new_worker,
|
||||
.vhost_free_worker = vhost_kernel_free_worker,
|
||||
.vhost_set_features = vhost_kernel_set_features,
|
||||
.vhost_get_features = vhost_kernel_get_features,
|
||||
.vhost_set_backend_cap = vhost_kernel_set_backend_cap,
|
||||
|
@ -45,6 +45,8 @@ struct vhost_memory;
|
||||
struct vhost_vring_file;
|
||||
struct vhost_vring_state;
|
||||
struct vhost_vring_addr;
|
||||
struct vhost_vring_worker;
|
||||
struct vhost_worker_state;
|
||||
struct vhost_scsi_target;
|
||||
struct vhost_iotlb_msg;
|
||||
struct vhost_virtqueue;
|
||||
@ -85,6 +87,14 @@ typedef int (*vhost_set_vring_err_op)(struct vhost_dev *dev,
|
||||
struct vhost_vring_file *file);
|
||||
typedef int (*vhost_set_vring_busyloop_timeout_op)(struct vhost_dev *dev,
|
||||
struct vhost_vring_state *r);
|
||||
typedef int (*vhost_attach_vring_worker_op)(struct vhost_dev *dev,
|
||||
struct vhost_vring_worker *worker);
|
||||
typedef int (*vhost_get_vring_worker_op)(struct vhost_dev *dev,
|
||||
struct vhost_vring_worker *worker);
|
||||
typedef int (*vhost_new_worker_op)(struct vhost_dev *dev,
|
||||
struct vhost_worker_state *worker);
|
||||
typedef int (*vhost_free_worker_op)(struct vhost_dev *dev,
|
||||
struct vhost_worker_state *worker);
|
||||
typedef int (*vhost_set_features_op)(struct vhost_dev *dev,
|
||||
uint64_t features);
|
||||
typedef int (*vhost_get_features_op)(struct vhost_dev *dev,
|
||||
@ -172,6 +182,10 @@ typedef struct VhostOps {
|
||||
vhost_set_vring_call_op vhost_set_vring_call;
|
||||
vhost_set_vring_err_op vhost_set_vring_err;
|
||||
vhost_set_vring_busyloop_timeout_op vhost_set_vring_busyloop_timeout;
|
||||
vhost_new_worker_op vhost_new_worker;
|
||||
vhost_free_worker_op vhost_free_worker;
|
||||
vhost_get_vring_worker_op vhost_get_vring_worker;
|
||||
vhost_attach_vring_worker_op vhost_attach_vring_worker;
|
||||
vhost_set_features_op vhost_set_features;
|
||||
vhost_get_features_op vhost_get_features;
|
||||
vhost_set_backend_cap_op vhost_set_backend_cap;
|
||||
|
Loading…
Reference in New Issue
Block a user