Advertisement

notifier chain — 内核通知链

阅读量:

通常情况下,Linux内核中的各个子系统之间具有较高的独立性。因此某个子系统可能会对其他子系统产生的事件感兴趣。为了实现这一目标,Linux内核为此设计了一种名为通知链的技术机制。这种机制允许在内核各子系统的内部使用,并且无法向用户空间发送事件通知。其中每个节点都注册了一个回调函数,在特定事件触发时会执行这些回调操作。由此可知,在处理这些通知时存在一个发起者与多个接收者之间的关系:发起者决定并执行其引发的所有相关操作。消息传递技术的核心在于将接收者所需的行为通过函数指针的方式预先保存起来,并在相应事件发生时自动执行相关操作序列。

一、notifier chain 定义和接口

复制代码
 struct notifier_block {

    
 	int (*notifier_call)(struct notifier_block *, unsigned long, void *);  // 回调函数接口
    
 	struct notifier_block *next;  // 指向下一个通知结构
    
 	int priority;                 // 当前通知链的优先级
    
 };

可以看出该通知链设计较为基础其底层数据结构包含以下三项核心属性:第一是包含回调函数接口第二是后继节点指针第三是优先级字段其中每个回调

全部评论 (0)

还没有任何评论哟~