struct notifier_block
=======================================================
struct notifier_block { //struct notifier_block结构就是通知链
int (*notifier_call)(struct notifier_block *self, unsigned long, void *); //要执行的函数
struct notifier_block *next; //通知链的下一跳
int priority;
};
notifier_chain_register函数负责将notifier_block实例插入到通知链的尾端。
notifier_call_chain函数会遍历通知链,调用通知链中的函数
内核定义了至少10种不同的通知链,我们只需要关系inetaddr_chain/netdev_chain(这2个应该就是struct notifier_block结构的实例吧。。)
我理解struct notifier_block结构实例的notifier_call函数中有一组包裹函数,这些包裹函数中,可以用于注册和删除