模块API之find_module
来源:互联网 发布:如何编写小软件 编辑:程序博客网 时间:2024/05/29 08:14
find_module 函数根据模块的name返回指向这个模块的指针其用法如下:if (mutex_lock_interruptible(&module_mutex) != 0)return -EINTR;mod = find_module(name);if (!mod) {ret = -ENOENT;goto out;}mutex_unlock(&module_mutex);其使用时一般用module_mutex 这个mutex包起来find_module的源码在linux/kernel/module.cstruct module *find_module(const char *name){module_assert_mutex();return find_module_all(name, strlen(name), false);}EXPORT_SYMBOL_GPL(find_module);继续看find_module_allstatic struct module *find_module_all(const char *name, size_t len, bool even_unformed){struct module *mod;module_assert_mutex_or_preempt();//可见循环查找modules 这个list,这里的even_unformed 为false,如果这个模块还处于MODULE_STATE_UNFORMED//的话,则模块还没有加载好,就文卫没有找到list_for_each_entry_rcu(mod, &modules, list) {if (!even_unformed && mod->state == MODULE_STATE_UNFORMED)continue;//找到模块的标准是模块的name的size和内容完全相等if (strlen(mod->name) == len && !memcmp(mod->name, name, len))return mod;}return NULL;}
阅读全文
0 0
- 模块API之find_module
- 模块API之__module_address
- 模块API之__module_text_address
- 模块API之module_is_live
- 模块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的发展历史
- 遇到的那些可爱的面试题2017-10-30
- 15.2 Content-Length 实体的大小
- mi push userAccount 的透传
- 安装ubuntu系统时卡在开机logo的解决方案
- 模块API之find_module
- springcloud-熔断器Hystrix的原理
- sql语句分为三类(DML,DDL,DCL)-介绍
- 把python3小程序打包为exe文件
- Spring boot打包war、jar部署tomcat
- Android应用第一次安装成功点击“打开”后Home键切出应用后再点击桌面图标返回导致应用重启问题
- 合并两个排序的链表(代码的鲁棒性 链表)
- 226. Invert Binary Tree
- ReactNative—学习资源