From 3a480dc9102663e31f9fb473c759f89b0fdd9468 Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Sun, 15 Apr 2012 14:57:17 +0200 Subject: [PATCH] misc: add kmscon_hook_num() helper This helper returns the number of registered callbacks for an hook. Signed-off-by: David Herrmann --- src/misc.c | 11 +++++++++++ src/misc.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/misc.c b/src/misc.c index 5afe470..45eb67a 100644 --- a/src/misc.c +++ b/src/misc.c @@ -176,6 +176,7 @@ struct hook_entry { }; struct kmscon_hook { + unsigned int num; struct hook_entry *entries; struct hook_entry *cur_entry; }; @@ -211,6 +212,14 @@ void kmscon_hook_free(struct kmscon_hook *hook) free(hook); } +unsigned int kmscon_hook_num(struct kmscon_hook *hook) +{ + if (!hook) + return 0; + + return hook->num; +} + int kmscon_hook_add(struct kmscon_hook *hook, kmscon_hook_cb cb, void *data) { struct hook_entry *entry; @@ -227,6 +236,7 @@ int kmscon_hook_add(struct kmscon_hook *hook, kmscon_hook_cb cb, void *data) entry->next = hook->entries; hook->entries = entry; + hook->num++; return 0; } @@ -254,6 +264,7 @@ void kmscon_hook_rm(struct kmscon_hook *hook, kmscon_hook_cb cb, void *data) if (hook->cur_entry == tmp) hook->cur_entry = tmp->next; free(tmp); + hook->num--; } } diff --git a/src/misc.h b/src/misc.h index 97fb6c5..a3169a4 100644 --- a/src/misc.h +++ b/src/misc.h @@ -54,6 +54,7 @@ typedef void (*kmscon_hook_cb) (void *parent, void *arg, void *data); int kmscon_hook_new(struct kmscon_hook **out); void kmscon_hook_free(struct kmscon_hook *hook); +unsigned int kmscon_hook_num(struct kmscon_hook *hook); int kmscon_hook_add(struct kmscon_hook *hook, kmscon_hook_cb cb, void *data); void kmscon_hook_rm(struct kmscon_hook *hook, kmscon_hook_cb cb, void *data); void kmscon_hook_call(struct kmscon_hook *hook, void *parent, void *arg);