diff options
author | Stefan Hajnoczi | 2020-09-24 17:15:48 +0200 |
---|---|---|
committer | Stefan Hajnoczi | 2020-10-23 14:42:16 +0200 |
commit | 80a06cc52bcf7a9771407306991a816834c04941 (patch) | |
tree | 113511c4b74c4bab4a86dd84b49ce68636c67074 /util | |
parent | block/export: convert vhost-user-blk server to block export API (diff) | |
download | qemu-80a06cc52bcf7a9771407306991a816834c04941.tar.gz qemu-80a06cc52bcf7a9771407306991a816834c04941.tar.xz qemu-80a06cc52bcf7a9771407306991a816834c04941.zip |
util/vhost-user-server: move header to include/
Headers used by other subsystems are located in include/. Also add the
vhost-user-server and vhost-user-blk-server headers to MAINTAINERS.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20200924151549.913737-13-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'util')
-rw-r--r-- | util/vhost-user-server.c | 2 | ||||
-rw-r--r-- | util/vhost-user-server.h | 65 |
2 files changed, 1 insertions, 66 deletions
diff --git a/util/vhost-user-server.c b/util/vhost-user-server.c index 516999b38a..783d847a6d 100644 --- a/util/vhost-user-server.c +++ b/util/vhost-user-server.c @@ -9,8 +9,8 @@ */ #include "qemu/osdep.h" #include "qemu/main-loop.h" +#include "qemu/vhost-user-server.h" #include "block/aio-wait.h" -#include "vhost-user-server.h" /* * Theory of operation: diff --git a/util/vhost-user-server.h b/util/vhost-user-server.h deleted file mode 100644 index 0da4c2cc4c..0000000000 --- a/util/vhost-user-server.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Sharing QEMU devices via vhost-user protocol - * - * Copyright (c) Coiby Xu <coiby.xu@gmail.com>. - * Copyright (c) 2020 Red Hat, Inc. - * - * This work is licensed under the terms of the GNU GPL, version 2 or - * later. See the COPYING file in the top-level directory. - */ - -#ifndef VHOST_USER_SERVER_H -#define VHOST_USER_SERVER_H - -#include "contrib/libvhost-user/libvhost-user.h" -#include "io/channel-socket.h" -#include "io/channel-file.h" -#include "io/net-listener.h" -#include "qemu/error-report.h" -#include "qapi/error.h" -#include "standard-headers/linux/virtio_blk.h" - -/* A kick fd that we monitor on behalf of libvhost-user */ -typedef struct VuFdWatch { - VuDev *vu_dev; - int fd; /*kick fd*/ - void *pvt; - vu_watch_cb cb; - QTAILQ_ENTRY(VuFdWatch) next; -} VuFdWatch; - -/** - * VuServer: - * A vhost-user server instance with user-defined VuDevIface callbacks. - * Vhost-user device backends can be implemented using VuServer. VuDevIface - * callbacks and virtqueue kicks run in the given AioContext. - */ -typedef struct { - QIONetListener *listener; - QEMUBH *restart_listener_bh; - AioContext *ctx; - int max_queues; - const VuDevIface *vu_iface; - - /* Protected by ctx lock */ - VuDev vu_dev; - QIOChannel *ioc; /* The I/O channel with the client */ - QIOChannelSocket *sioc; /* The underlying data channel with the client */ - QTAILQ_HEAD(, VuFdWatch) vu_fd_watches; - - Coroutine *co_trip; /* coroutine for processing VhostUserMsg */ -} VuServer; - -bool vhost_user_server_start(VuServer *server, - SocketAddress *unix_socket, - AioContext *ctx, - uint16_t max_queues, - const VuDevIface *vu_iface, - Error **errp); - -void vhost_user_server_stop(VuServer *server); - -void vhost_user_server_attach_aio_context(VuServer *server, AioContext *ctx); -void vhost_user_server_detach_aio_context(VuServer *server); - -#endif /* VHOST_USER_SERVER_H */ |