模块API之__module_text_address
来源:互联网 发布:数据库置疑修复 编辑:程序博客网 时间:2024/05/15 00:45
__module_text_addres函数根据位于模块代码段的地址,返回这个模块具体例子在kernel/jump_label.cstruct module *mod;preempt_disable();mod = __module_text_address((unsigned long)start);WARN_ON_ONCE(__module_text_address((unsigned long)end) != mod);preempt_enable();可见使用前要通过preempt_disable禁止内核抢占。struct module *__module_text_address(unsigned long addr){struct module *mod = __module_address(addr);if (mod) {/* Make sure it's within the text section. */if (!within(addr, mod->init_layout.base, mod->init_layout.text_size) && !within(addr, mod->core_layout.base, mod->core_layout.text_size))mod = NULL;}return mod;}这个函数就是__module_address的一个子函数。其中在__module_address 已经通过within_module 判断这个地址在init_layout或者core_layout 中,不知道在__module_text_address中为啥还要判断一次。和__module_address想比,__module_address只要是这个模块中的地址就行,而__module_text_address必须是在这个模块中,且必须在text段。条件比__module_address更严格
阅读全文
0 0
- 模块API之__module_text_address
- 模块API之__module_address
- 模块API之find_module
- 模块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
- 分形神经网络
- 驾龄不满1年将不能开共享汽车
- 六大设计原则之迪米特原则
- Linux 控制进程
- 深度学习在推荐系统中的应用
- 模块API之__module_text_address
- NOIP 2017.10.27 总结+心得
- meta_ws使用教程
- Python练习册
- 汽车里有味怎么治?
- 1.线性表的顺序表示
- 枪械攻略-绝地求生大逃杀
- 实验四
- FCC算法:二、Factorialize a Number--计算一个整数的阶乘