3.通知链

 

 

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函数中有一组包裹函数,这些包裹函数中,可以用于注册和删除
struct notifier_block

 

posted @ 2022-03-18 10:45  雲淡風輕333  阅读(21)  评论(0)    收藏  举报