diff options
Diffstat (limited to 'include/notifier.h')
-rw-r--r-- | include/notifier.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/include/notifier.h b/include/notifier.h new file mode 100644 index 0000000000..878b17e078 --- /dev/null +++ b/include/notifier.h @@ -0,0 +1,35 @@ +#ifndef __NOTIFIER_H +#define __NOTIFIER_H + +/* + * Notifer chains loosely based on the according Linux framework + */ + +struct notifier_block { + int (*notifier_call)(struct notifier_block *, unsigned long, void *); + struct list_head list; +}; + +struct notifier_head { + struct list_head blocks; +}; + +int notifier_chain_register(struct notifier_head *nh, struct notifier_block *n); + +int notifier_call_chain(struct notifier_head *nh, unsigned long val, void *v); + +/* + * Register a function which is called upon changes of + * clock frequencies in the system. + */ +int clock_register_client(struct notifier_block *nb); +int clock_unregister_client(struct notifier_block *nb); +int clock_notifier_call_chain(void); + +#define NOTIFIER_HEAD(name) \ + struct notifier_head name = { \ + .blocks = LIST_HEAD_INIT((name).blocks), \ + }; + +#endif /* __NOTIFIER_H */ + |