aboutsummaryrefslogtreecommitdiff
path: root/kernel/features/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/features/event.c')
-rw-r--r--kernel/features/event.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/kernel/features/event.c b/kernel/features/event.c
index 320b45a..8bdba1a 100644
--- a/kernel/features/event.c
+++ b/kernel/features/event.c
@@ -19,6 +19,20 @@ u32 event_map(enum event id, u32 *func)
return 0;
}
+// TODO: Fix unmap
+void event_unmap(enum event id, u32 *func)
+{
+ struct list *list = ((struct list *)event_table[id]);
+ struct node *iterator = list->head;
+ while (iterator->data != (void *)func) {
+ iterator = iterator->next;
+ if (!iterator)
+ return;
+ }
+
+ list_remove(list, iterator);
+}
+
u32 event_trigger(enum event id, u32 *data)
{
assert(id < sizeof(event_table) / sizeof(*event_table));