summaryrefslogtreecommitdiffstats
path: root/include/vhost_user_gpio.h
diff options
context:
space:
mode:
authorTimos Ampelikiotis <t.ampelikiotis@virtualopensystems.com>2024-10-01 18:16:29 +0300
committerTimos Ampelikiotis <t.ampelikiotis@virtualopensystems.com>2024-10-01 15:36:35 +0000
commit9941dec970111be9e02dcaf6819c037946bde160 (patch)
treebea826b7fc861fe09c53d43f60d1a7d464e4cf9b /include/vhost_user_gpio.h
parent1cc834724919caf5ea21c146b29f62b6cd213db7 (diff)
Add multiple-device support virtio-loopback-adapter
Updates [v1]: - The adapter supports multiple vhost-user devices running in parallel. - Redesign the devices interfaces. Unified their common functionality and add it into vhost-user-loopback lib. This eases the addition of new vhost-user devices and makes the virtio-loopback adapter more device agnostic. Bug-AGL: SPEC-4834 Change-Id: I9aff91dce0207ccdd8c2d1c5d0769a13b4e9ae04 Signed-off-by: Timos Ampelikiotis <t.ampelikiotis@virtualopensystems.com>
Diffstat (limited to 'include/vhost_user_gpio.h')
-rw-r--r--include/vhost_user_gpio.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/include/vhost_user_gpio.h b/include/vhost_user_gpio.h
new file mode 100644
index 0000000..4d77e0a
--- /dev/null
+++ b/include/vhost_user_gpio.h
@@ -0,0 +1,37 @@
+/*
+ * Based on virtio-gpio.h of QEMU project
+ *
+ * Copyright (c) 2023-2024 Virtual Open Systems SAS.
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version. See the COPYING file in the
+ * top-level directory.
+ */
+
+#ifndef VHOST_USER_GPIO
+#define VHOST_USER_GPIO
+
+#include "vhost_loopback.h"
+#include "vhost_user_loopback.h"
+#include "virtio_loopback.h"
+
+#define VIRTIO_GPIO_F_IRQ 0
+
+struct virtio_gpio_config {
+ uint16_t ngpio;
+ uint8_t padding[2];
+ uint32_t gpio_names_size;
+};
+
+struct VHostUserGPIO {
+ VirtIODevice *parent;
+ struct virtio_gpio_config config;
+ struct vhost_virtqueue *vhost_vqs;
+ struct vhost_dev *vhost_dev;
+ uint16_t num_queues;
+ uint32_t queue_size;
+};
+
+void vu_gpio_device_realize(struct adapter_dev *adev);
+
+#endif /* VHOST_USER_GPIO */