diff options
author | Karl Hiramoto <karl@hiramoto.org> | 2010-07-08 20:55:30 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-07-09 00:09:20 -0700 |
commit | 7313bb8f3dd6e28bcf9c42adfd54a5cf9a4949e0 (patch) | |
tree | 65d8486a2ff4aabc23e0b021f068dd3788081923 /include/linux | |
parent | 68dc9d36c19aa1fd1633427b419d5e1f44753e8a (diff) |
atm: propagate signal changes via notifier
Add notifier chain for changes in atm_dev.
Clients like br2684 will call register_atmdevice_notifier() to be notified of
changes. Drivers will call atm_dev_signal_change() to notify clients like
br2684 of the change.
On DSL and ATM devices it's usefull to have a know if you have a carrier
signal. netdevice LOWER_UP changes can be propagated to userspace via netlink
monitor.
Signed-off-by: Karl Hiramoto <karl@hiramoto.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/atmdev.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h index 817b23705c9..f6481daf6e5 100644 --- a/include/linux/atmdev.h +++ b/include/linux/atmdev.h @@ -431,6 +431,14 @@ struct atm_dev *atm_dev_register(const char *type,const struct atmdev_ops *ops, int number,unsigned long *flags); /* number == -1: pick first available */ struct atm_dev *atm_dev_lookup(int number); void atm_dev_deregister(struct atm_dev *dev); + +/* atm_dev_signal_change + * + * Propagate lower layer signal change in atm_dev->signal to netdevice. + * The event will be sent via a notifier call chain. + */ +void atm_dev_signal_change(struct atm_dev *dev, char signal); + void vcc_insert_socket(struct sock *sk); @@ -510,6 +518,15 @@ void register_atm_ioctl(struct atm_ioctl *); */ void deregister_atm_ioctl(struct atm_ioctl *); + +/* register_atmdevice_notifier - register atm_dev notify events + * + * Clients like br2684 will register notify events + * Currently we notify of signal found/lost + */ +int register_atmdevice_notifier(struct notifier_block *nb); +void unregister_atmdevice_notifier(struct notifier_block *nb); + #endif /* __KERNEL__ */ #endif |