FAULTD_MODULE_TYPE_MIN = 0,
FAULTD_MODULE_TYPE_UNCATEGORIZED = FAULTD_MODULE_TYPE_MIN,
FAULTD_MODULE_TYPE_CORE,
+ FAULTD_MODULE_TYPE_EVENT,
FAULTD_MODULE_TYPE_ACTION_EXECUTOR,
FAULTD_MODULE_TYPE_DECISION_MAKER,
FAULTD_MODULE_TYPE_LISTENER,
#include "uref.h"
#include "list.h"
+#include "module.h"
struct faultd_event;
int faultd_event_type_register(struct faultd_event_type *type);
void faultd_event_type_unregister(struct faultd_event_type *type);
+#define FAULTD_EVENT_TYPE_REGISTER(EVENT_TYPE) \
+static int event_type_init(struct faultd_module *module, sd_event *event_loop) \
+{ \
+ return faultd_event_type_register(&EVENT_TYPE); \
+} \
+ \
+static void event_type_cleanup(struct faultd_module *module) \
+{ \
+ faultd_event_type_unregister(&EVENT_TYPE); \
+} \
+ \
+static struct faultd_module event_type_module = { \
+ .name = EVENT_TYPE.name, \
+ .type = FAULTD_MODULE_TYPE_EVENT, \
+ .init = event_type_init, \
+ .cleanup = event_type_cleanup, \
+ .node = LIST_HEAD_INIT(event_type_module.node), \
+}; \
+ \
+FAULTD_MODULE_REGISTER(&event_type_module)
+
int faultd_event_create(const char *type, void *data, struct faultd_event **ev);
static inline void faultd_event_get(struct faultd_event *ev)
int faultd_event_init(struct faultd_event_type *ev_type,
struct faultd_event *ev);
+void faultd_event_cleanup(struct faultd_event *ev) {}
+
#endif /* FAULTD_EVENT_H */