blob: 1a79a4916ef26ac9b45c0cc3046a096fe69010b9 [file] [log] [blame]
Marc-André Lureau8bb7ddb2017-08-17 20:55:14 +02001/*
2 * Vhost User library
3 *
4 * Copyright (c) 2016 Nutanix Inc. All rights reserved.
5 * Copyright (c) 2017 Red Hat, Inc.
6 *
7 * Authors:
8 * Marc-André Lureau <mlureau@redhat.com>
9 * Felipe Franciosi <felipe@nutanix.com>
10 *
11 * This work is licensed under the terms of the GNU GPL, version 2 or
12 * later. See the COPYING file in the top-level directory.
13 */
14
15#ifndef LIBVHOST_USER_GLIB_H
16#define LIBVHOST_USER_GLIB_H
17
18#include <glib.h>
19#include "libvhost-user.h"
20
21typedef struct VugDev {
22 VuDev parent;
23
24 GHashTable *fdmap; /* fd -> gsource */
25 GSource *src;
26} VugDev;
27
Stefan Hajnoczi6f5fd832019-06-26 08:48:13 +010028bool vug_init(VugDev *dev, uint16_t max_queues, int socket,
Marc-André Lureau8bb7ddb2017-08-17 20:55:14 +020029 vu_panic_cb panic, const VuDevIface *iface);
30void vug_deinit(VugDev *dev);
31
Marc-André Lureau922ef482019-03-08 15:04:51 +010032GSource *vug_source_new(VugDev *dev, int fd, GIOCondition cond,
33 vu_watch_cb vu_cb, gpointer data);
Johannes Berga7290a72020-01-23 09:17:04 +010034void vug_source_destroy(GSource *src);
Marc-André Lureau922ef482019-03-08 15:04:51 +010035
Marc-André Lureau8bb7ddb2017-08-17 20:55:14 +020036#endif /* LIBVHOST_USER_GLIB_H */