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