diff options
author | Timos Ampelikiotis <t.ampelikiotis@virtualopensystems.com> | 2022-11-04 15:32:11 +0100 |
---|---|---|
committer | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-03 15:18:54 +0300 |
commit | a3fcee5911bf760f9f4522e94cb9e6ab22a7eb95 (patch) | |
tree | 9bc175084b6bc1da48651fdc3767567e2a54c22e /vhost_loopback.h | |
parent | 2b09c69cc896841c7828408083f6cb443fef8612 (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.h | 35 |
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 */ |