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