summaryrefslogtreecommitdiffstats
path: root/vhost_loopback.h
diff options
context:
space:
mode:
authorTimos Ampelikiotis <t.ampelikiotis@virtualopensystems.com>2022-11-04 15:32:11 +0100
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-03 15:18:54 +0300
commita3fcee5911bf760f9f4522e94cb9e6ab22a7eb95 (patch)
tree9bc175084b6bc1da48651fdc3767567e2a54c22e /vhost_loopback.h
parent2b09c69cc896841c7828408083f6cb443fef8612 (diff)
Virtio-loopback-adapter Beta version for review:
- Beta version of the code to be discussed during the review planned on the 09/11/2022 - Before being merged into master, this code might be changed with fixes and optimization Signed-off-by: Timos Ampelikiotis <t.ampelikiotis@virtualopensystems.com>
Diffstat (limited to 'vhost_loopback.h')
-rw-r--r--vhost_loopback.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/vhost_loopback.h b/vhost_loopback.h
index f63a819..69a3f0d 100644
--- a/vhost_loopback.h
+++ b/vhost_loopback.h
@@ -1,4 +1,6 @@
/*
+ * Based on vhost.h of QEMU project
+ *
* Copyright 2022 Virtual Open Systems SAS.
*
* This program is free software; you can redistribute it and/or modify
@@ -31,5 +33,38 @@ int vhost_dev_enable_notifiers(struct vhost_dev *hdev, VirtIODevice *vdev);
int vhost_dev_start(struct vhost_dev *hdev, VirtIODevice *vdev);
void vhost_virtqueue_mask(struct vhost_dev *hdev, VirtIODevice *vdev,
int n, bool mask);
+int vhost_dev_get_config(struct vhost_dev *hdev, uint8_t *config,
+ uint32_t config_len);
+int vhost_dev_set_config(struct vhost_dev *hdev, const uint8_t *data,
+ uint32_t offset, uint32_t size, uint32_t flags);
+/**
+ * vhost_dev_set_config_notifier() - register VhostDevConfigOps
+ * @hdev: common vhost_dev_structure
+ * @ops: notifier ops
+ *
+ * If the device is expected to change configuration a notifier can be
+ * setup to handle the case.
+ */
+
+typedef struct VhostDevConfigOps VhostDevConfigOps;
+
+void vhost_dev_set_config_notifier(struct vhost_dev *dev,
+ const VhostDevConfigOps *ops);
+int vhost_dev_prepare_inflight(struct vhost_dev *hdev, VirtIODevice *vdev);
+
+int vhost_dev_get_inflight(struct vhost_dev *dev, uint16_t queue_size,
+ struct vhost_inflight *inflight);
+
+int vhost_dev_set_inflight(struct vhost_dev *dev,
+ struct vhost_inflight *inflight);
+
+
+struct vhost_inflight {
+ int fd;
+ void *addr;
+ uint64_t size;
+ uint64_t offset;
+ uint16_t queue_size;
+};
#endif /* LOOPBACK_VHOST_H */