码迷,mamicode.com
首页 > 系统相关 > 详细

linux kernel notifier chain(事件通知链)

时间:2019-04-18 14:52:04      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:nbsp   int   服务   after   一段   其他   linux内核   ext   函数   

  Linux内核中各个子系统相互依赖,当其中某个子系统状态发生改变时,就必须使用一定的机制告知使用其服务的其他子系统,以便其他子系统采取相应的措施。为满足这样的需求,内核实现了事件通知链机制(notification chain)。

struct notifier_block {
       int (*notifier_call)(struct notifier_block *, unsigned long, void *);
       struct notifier_block *next;
       int priority;
};

  此处只要注意一个 priority 优先级,参见下面一段代码(./net/rds/tcp.c p382)

static struct notifier_block rds_tcp_dev_notifier = {                                                                                                   
    .notifier_call        = rds_tcp_dev_event,
    .priority = -10, /* must be called after other network notifiers */
};

  想要接受一个通知链信息需要自己设置两个参数:通知链调用函数,优先级。

  优先级能够控制函数调用的顺序,默认优先级为 0,数字越小表示越晚被调用。

 

  看着很简单吧,哈哈哈,方案暂时不用这个啦,回头再看,:)。

 

linux kernel notifier chain(事件通知链)

标签:nbsp   int   服务   after   一段   其他   linux内核   ext   函数   

原文地址:https://www.cnblogs.com/rivsidn/p/10729353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!