Home | History | Annotate | Download | only in qemu
      1 /*
      2  * Notifier lists
      3  *
      4  * Copyright IBM, Corp. 2010
      5  *
      6  * Authors:
      7  *  Anthony Liguori   <aliguori (at) us.ibm.com>
      8  *
      9  * This work is licensed under the terms of the GNU GPL, version 2.  See
     10  * the COPYING file in the top-level directory.
     11  *
     12  */
     13 
     14 #ifndef QEMU_NOTIFY_H
     15 #define QEMU_NOTIFY_H
     16 
     17 #include "qemu-queue.h"
     18 
     19 typedef struct Notifier Notifier;
     20 
     21 struct Notifier
     22 {
     23     void (*notify)(Notifier *notifier);
     24     QTAILQ_ENTRY(Notifier) node;
     25 };
     26 
     27 typedef struct NotifierList
     28 {
     29     QTAILQ_HEAD(, Notifier) notifiers;
     30 } NotifierList;
     31 
     32 #define NOTIFIER_LIST_INITIALIZER(head) \
     33     { QTAILQ_HEAD_INITIALIZER((head).notifiers) }
     34 
     35 void notifier_list_init(NotifierList *list);
     36 
     37 void notifier_list_add(NotifierList *list, Notifier *notifier);
     38 
     39 void notifier_list_remove(NotifierList *list, Notifier *notifier);
     40 
     41 void notifier_list_notify(NotifierList *list);
     42 
     43 #endif
     44