xref: /qemu/subprojects/libvhost-user/libvhost-user-glib.h (revision 0df750e9d3a5fea5e19f4750582121c9293a9d71)
18bb7ddb7SMarc-André Lureau /*
28bb7ddb7SMarc-André Lureau  * Vhost User library
38bb7ddb7SMarc-André Lureau  *
48bb7ddb7SMarc-André Lureau  * Copyright (c) 2016 Nutanix Inc. All rights reserved.
58bb7ddb7SMarc-André Lureau  * Copyright (c) 2017 Red Hat, Inc.
68bb7ddb7SMarc-André Lureau  *
78bb7ddb7SMarc-André Lureau  * Authors:
88bb7ddb7SMarc-André Lureau  *  Marc-André Lureau <mlureau@redhat.com>
98bb7ddb7SMarc-André Lureau  *  Felipe Franciosi <felipe@nutanix.com>
108bb7ddb7SMarc-André Lureau  *
118bb7ddb7SMarc-André Lureau  * This work is licensed under the terms of the GNU GPL, version 2 or
128bb7ddb7SMarc-André Lureau  * later.  See the COPYING file in the top-level directory.
138bb7ddb7SMarc-André Lureau  */
148bb7ddb7SMarc-André Lureau 
158bb7ddb7SMarc-André Lureau #ifndef LIBVHOST_USER_GLIB_H
168bb7ddb7SMarc-André Lureau #define LIBVHOST_USER_GLIB_H
178bb7ddb7SMarc-André Lureau 
188bb7ddb7SMarc-André Lureau #include <glib.h>
198bb7ddb7SMarc-André Lureau #include "libvhost-user.h"
208bb7ddb7SMarc-André Lureau 
218bb7ddb7SMarc-André Lureau typedef struct VugDev {
228bb7ddb7SMarc-André Lureau     VuDev parent;
238bb7ddb7SMarc-André Lureau 
248bb7ddb7SMarc-André Lureau     GHashTable *fdmap; /* fd -> gsource */
258bb7ddb7SMarc-André Lureau     GSource *src;
268bb7ddb7SMarc-André Lureau } VugDev;
278bb7ddb7SMarc-André Lureau 
286f5fd837SStefan Hajnoczi bool vug_init(VugDev *dev, uint16_t max_queues, int socket,
298bb7ddb7SMarc-André Lureau               vu_panic_cb panic, const VuDevIface *iface);
308bb7ddb7SMarc-André Lureau void vug_deinit(VugDev *dev);
318bb7ddb7SMarc-André Lureau 
32922ef483SMarc-André Lureau GSource *vug_source_new(VugDev *dev, int fd, GIOCondition cond,
33922ef483SMarc-André Lureau                         vu_watch_cb vu_cb, gpointer data);
34*a7290a79SJohannes Berg void vug_source_destroy(GSource *src);
35922ef483SMarc-André Lureau 
368bb7ddb7SMarc-André Lureau #endif /* LIBVHOST_USER_GLIB_H */
37