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