]>
Commit | Line | Data |
---|---|---|
fc97a652 PB |
1 | /* |
2 | * event notifier support | |
3 | * | |
4 | * Copyright Red Hat, Inc. 2010 | |
5 | * | |
6 | * Authors: | |
7 | * Michael S. Tsirkin <[email protected]> | |
8 | * | |
9 | * This work is licensed under the terms of the GNU GPL, version 2 or later. | |
10 | * See the COPYING file in the top-level directory. | |
11 | */ | |
12 | ||
aafd7584 | 13 | #include "qemu/osdep.h" |
fc97a652 | 14 | #include "qemu-common.h" |
1de7afc9 PB |
15 | #include "qemu/event_notifier.h" |
16 | #include "qemu/main-loop.h" | |
fc97a652 PB |
17 | |
18 | int event_notifier_init(EventNotifier *e, int active) | |
19 | { | |
e9bff10f | 20 | e->event = CreateEvent(NULL, TRUE, FALSE, NULL); |
fc97a652 PB |
21 | assert(e->event); |
22 | return 0; | |
23 | } | |
24 | ||
25 | void event_notifier_cleanup(EventNotifier *e) | |
26 | { | |
27 | CloseHandle(e->event); | |
aa262928 | 28 | e->event = NULL; |
fc97a652 PB |
29 | } |
30 | ||
31 | HANDLE event_notifier_get_handle(EventNotifier *e) | |
32 | { | |
33 | return e->event; | |
34 | } | |
35 | ||
fc97a652 PB |
36 | int event_notifier_set(EventNotifier *e) |
37 | { | |
38 | SetEvent(e->event); | |
39 | return 0; | |
40 | } | |
41 | ||
42 | int event_notifier_test_and_clear(EventNotifier *e) | |
43 | { | |
44 | int ret = WaitForSingleObject(e->event, 0); | |
45 | if (ret == WAIT_OBJECT_0) { | |
46 | ResetEvent(e->event); | |
47 | return true; | |
48 | } | |
49 | return false; | |
50 | } |