xref: /openbmc/qemu/include/qemu/event_notifier.h (revision 3bcf0fb3)
11de7afc9SPaolo Bonzini /*
21de7afc9SPaolo Bonzini  * event notifier support
31de7afc9SPaolo Bonzini  *
41de7afc9SPaolo Bonzini  * Copyright Red Hat, Inc. 2010
51de7afc9SPaolo Bonzini  *
61de7afc9SPaolo Bonzini  * Authors:
71de7afc9SPaolo Bonzini  *  Michael S. Tsirkin <mst@redhat.com>
81de7afc9SPaolo Bonzini  *
91de7afc9SPaolo Bonzini  * This work is licensed under the terms of the GNU GPL, version 2 or later.
101de7afc9SPaolo Bonzini  * See the COPYING file in the top-level directory.
111de7afc9SPaolo Bonzini  */
121de7afc9SPaolo Bonzini 
131de7afc9SPaolo Bonzini #ifndef QEMU_EVENT_NOTIFIER_H
141de7afc9SPaolo Bonzini #define QEMU_EVENT_NOTIFIER_H
151de7afc9SPaolo Bonzini 
161de7afc9SPaolo Bonzini 
171de7afc9SPaolo Bonzini #ifdef _WIN32
181de7afc9SPaolo Bonzini #include <windows.h>
191de7afc9SPaolo Bonzini #endif
201de7afc9SPaolo Bonzini 
211de7afc9SPaolo Bonzini struct EventNotifier {
221de7afc9SPaolo Bonzini #ifdef _WIN32
231de7afc9SPaolo Bonzini     HANDLE event;
241de7afc9SPaolo Bonzini #else
251de7afc9SPaolo Bonzini     int rfd;
261de7afc9SPaolo Bonzini     int wfd;
27e34e47ebSMaxim Levitsky     bool initialized;
281de7afc9SPaolo Bonzini #endif
291de7afc9SPaolo Bonzini };
301de7afc9SPaolo Bonzini 
311de7afc9SPaolo Bonzini typedef void EventNotifierHandler(EventNotifier *);
321de7afc9SPaolo Bonzini 
331de7afc9SPaolo Bonzini int event_notifier_init(EventNotifier *, int active);
341de7afc9SPaolo Bonzini void event_notifier_cleanup(EventNotifier *);
351de7afc9SPaolo Bonzini int event_notifier_set(EventNotifier *);
361de7afc9SPaolo Bonzini int event_notifier_test_and_clear(EventNotifier *);
371de7afc9SPaolo Bonzini 
381de7afc9SPaolo Bonzini #ifdef CONFIG_POSIX
391de7afc9SPaolo Bonzini void event_notifier_init_fd(EventNotifier *, int fd);
4012f0b68cSMarc-André Lureau int event_notifier_get_fd(const EventNotifier *);
41*3bcf0fb3SSergio Lopez int event_notifier_get_wfd(const EventNotifier *);
421de7afc9SPaolo Bonzini #else
431de7afc9SPaolo Bonzini HANDLE event_notifier_get_handle(EventNotifier *);
441de7afc9SPaolo Bonzini #endif
451de7afc9SPaolo Bonzini 
461de7afc9SPaolo Bonzini #endif
47