1 /*
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 
21 typedef struct VugDev {
22     VuDev parent;
23 
24     GHashTable *fdmap; /* fd -> gsource */
25     GSource *src;
26 } VugDev;
27 
28 bool vug_init(VugDev *dev, uint16_t max_queues, int socket,
29               vu_panic_cb panic, const VuDevIface *iface);
30 void vug_deinit(VugDev *dev);
31 
32 GSource *vug_source_new(VugDev *dev, int fd, GIOCondition cond,
33                         vu_watch_cb vu_cb, gpointer data);
34 void vug_source_destroy(GSource *src);
35 
36 #endif /* LIBVHOST_USER_GLIB_H */
37