模块API之module_is_live
来源:互联网 发布:网络机柜接线图视频 编辑:程序博客网 时间:2024/05/29 09:28
module_is_live 用于判断模块是否处于活动状态使用的实例如下所示:bool try_module_get(struct module *module){bool ret = true;if (module) {preempt_disable();/* Note: here, we can fail to get a reference */if (likely(module_is_live(module) && atomic_inc_not_zero(&module->refcnt) != 0))trace_module_get(module, _RET_IP_);elseret = false;preempt_enable();}return ret;}其源码在分析如下:static inline int module_is_live(struct module *mod){return mod->state != MODULE_STATE_GOING;}可见主要是通过判断模块的状态不是MODULE_STATE_GOING就认为模块处于活动状态,也就是说模块如果处于MODULE_STATE_GOING状态的话,模块已经不能正常工作了模块总共有四种状态,分别如下:enum module_state {MODULE_STATE_LIVE,/* Normal state. */MODULE_STATE_COMING,/* Full formed, running module_init. */MODULE_STATE_GOING,/* Going away. */MODULE_STATE_UNFORMED,/* Still setting it up. */};
阅读全文
0 0
- 模块API之module_is_live
- 模块API之__module_address
- 模块API之__module_text_address
- 模块API之find_module
- 模块API之module_refcount
- 模块API之try_module_get
- 模块API之module_address_lookup
- 模块API之lookup_module_symbol_name
- 模块API之lookup_module_symbol_attrs
- 模块API之module_get_kallsym
- 模块API之print_modules
- 模块API之ref_module
- 模块API之register_module_notifier
- 模块API之each_symbol_section
- 模块API之symbol_put_addr
- 模块API之sprint_symbol
- 模块API之print_symbol
- 模块API之module_put/__module_get
- Android适配及自定义弹窗
- Ubuntu12.04下Android Studio导入Android源码
- 求树的重心
- Android的自定义View浅析
- Visual Studio + Qt开发环境搭建
- 模块API之module_is_live
- springboot设置index页面
- 企业发展滞缓,还不是因为踩了这四个数据大坑!
- 2017-10-30
- 简单shell统计单词
- 【OpenCV】扫描图像、查找表、计时
- 高版本的CAD文件打不开了怎么办
- 前端框架angular学习笔记(一)
- 【云计算的1024种玩法】ECS和轻量应用服务器的远程控制入门