119757fc8STomi Valkeinen /* 219757fc8STomi Valkeinen * linux/drivers/video/fb_notify.c 319757fc8STomi Valkeinen * 419757fc8STomi Valkeinen * Copyright (C) 2006 Antonino Daplas <adaplas@pol.net> 519757fc8STomi Valkeinen * 619757fc8STomi Valkeinen * 2001 - Documented with DocBook 719757fc8STomi Valkeinen * - Brad Douglas <brad@neruo.com> 819757fc8STomi Valkeinen * 919757fc8STomi Valkeinen * This file is subject to the terms and conditions of the GNU General Public 1019757fc8STomi Valkeinen * License. See the file COPYING in the main directory of this archive 1119757fc8STomi Valkeinen * for more details. 1219757fc8STomi Valkeinen */ 1319757fc8STomi Valkeinen #include <linux/fb.h> 1419757fc8STomi Valkeinen #include <linux/notifier.h> 1519757fc8STomi Valkeinen #include <linux/export.h> 1619757fc8STomi Valkeinen 1719757fc8STomi Valkeinen static BLOCKING_NOTIFIER_HEAD(fb_notifier_list); 1819757fc8STomi Valkeinen 1919757fc8STomi Valkeinen /** 2019757fc8STomi Valkeinen * fb_register_client - register a client notifier 2119757fc8STomi Valkeinen * @nb: notifier block to callback on events 22*e994a1b6SSam Ravnborg * 23*e994a1b6SSam Ravnborg * Return: 0 on success, negative error code on failure. 2419757fc8STomi Valkeinen */ fb_register_client(struct notifier_block * nb)2519757fc8STomi Valkeinenint fb_register_client(struct notifier_block *nb) 2619757fc8STomi Valkeinen { 2719757fc8STomi Valkeinen return blocking_notifier_chain_register(&fb_notifier_list, nb); 2819757fc8STomi Valkeinen } 2919757fc8STomi Valkeinen EXPORT_SYMBOL(fb_register_client); 3019757fc8STomi Valkeinen 3119757fc8STomi Valkeinen /** 3219757fc8STomi Valkeinen * fb_unregister_client - unregister a client notifier 3319757fc8STomi Valkeinen * @nb: notifier block to callback on events 34*e994a1b6SSam Ravnborg * 35*e994a1b6SSam Ravnborg * Return: 0 on success, negative error code on failure. 3619757fc8STomi Valkeinen */ fb_unregister_client(struct notifier_block * nb)3719757fc8STomi Valkeinenint fb_unregister_client(struct notifier_block *nb) 3819757fc8STomi Valkeinen { 3919757fc8STomi Valkeinen return blocking_notifier_chain_unregister(&fb_notifier_list, nb); 4019757fc8STomi Valkeinen } 4119757fc8STomi Valkeinen EXPORT_SYMBOL(fb_unregister_client); 4219757fc8STomi Valkeinen 4319757fc8STomi Valkeinen /** 4419757fc8STomi Valkeinen * fb_notifier_call_chain - notify clients of fb_events 45*e994a1b6SSam Ravnborg * @val: value passed to callback 46*e994a1b6SSam Ravnborg * @v: pointer passed to callback 4719757fc8STomi Valkeinen * 48*e994a1b6SSam Ravnborg * Return: The return value of the last notifier function 4919757fc8STomi Valkeinen */ fb_notifier_call_chain(unsigned long val,void * v)5019757fc8STomi Valkeinenint fb_notifier_call_chain(unsigned long val, void *v) 5119757fc8STomi Valkeinen { 5219757fc8STomi Valkeinen return blocking_notifier_call_chain(&fb_notifier_list, val, v); 5319757fc8STomi Valkeinen } 5419757fc8STomi Valkeinen EXPORT_SYMBOL_GPL(fb_notifier_call_chain); 55