linux驱动入口函数module_init何时被调用

linux驱动入口函数module_init何时被调用

 

被上面的宏处理过后,变成__initcall_func6 __used加入到内核映像的".initcall"区。内核的加载的时候,会搜索".initcall"中的所有条目,并按优先级加载它们,普通驱动程序的优先级是6。其它模块优先级列出如下:值越小,越先加载。

 
复制代码
#define pure_initcall(fn)           __define_initcall("0",fn,0)  
  
#define core_initcall(fn)            __define_initcall("1",fn,1)  
  
#define core_initcall_sync(fn)          __define_initcall("1s",fn,1s)  
  
#define postcore_initcall(fn)             __define_initcall("2",fn,2)  
  
#define postcore_initcall_sync(fn)  __define_initcall("2s",fn,2s)  
  
#define arch_initcall(fn)            __define_initcall("3",fn,3)  
  
#define arch_initcall_sync(fn)          __define_initcall("3s",fn,3s)  
  
#define subsys_initcall(fn)                 __define_initcall("4",fn,4)  
  
#define subsys_initcall_sync(fn)      __define_initcall("4s",fn,4s)  
  
#define fs_initcall(fn)                          __define_initcall("5",fn,5)  
  
#define fs_initcall_sync(fn)               __define_initcall("5s",fn,5s)  
  
#define rootfs_initcall(fn)                  __define_initcall("rootfs",fn,rootfs)  
  
#define device_initcall(fn)                 __define_initcall("6",fn,6)  
  
#define device_initcall_sync(fn)       __define_initcall("6s",fn,6s)  
  
#define late_initcall(fn)             __define_initcall("7",fn,7)  
  
#define late_initcall_sync(fn)           __define_initcall("7s",fn,7s)  
复制代码

 

from:
https://www.jianshu.com/p/a783474efb44


 

posted @   aspirs  阅读(397)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
历史上的今天:
2020-09-10 linux kernel ftrace 之wakeup tracer and wakeup_rt tracer
2018-09-10 HDMI 收发器简化家庭影院系统设计
2018-09-10 HDMI ARC
点击右上角即可分享
微信分享提示