- 论坛徽章:
- 0
|
1. 重定位章节:
接着得刡当前重定位符号的最终目标地址:
u64 val = sym->st_value + rel.r_addend;
1)这个rel.r_addend是怎么计算出来的呢?在文章中没有找到?
2)难道所有的重定位后的地址都是加一个固定偏移?
我记得应用层的重定位有好几种情况。在内核加载模块这里,为什么只有这一种情况。
2. 模块参数那节
使读者对module_param宏建立一个具体的印象,module_param(dolphin, int, 0)展开后如下:
param_check_int(dolphin, &( dolphin));
static int __param_perm_check_dolphin __attribute__((unused)) = \
static const char __param_str_dolphin[] = " dolphin "; \
红色那行的宏展开明显错误。
===================================
重定位的问题这里我不想再多说了,参考ELF的重定位部分,这部分跟处理器关系比较大。 模块参数的展开,等下回头我看看,初略看一下没发现问题。你看得蛮仔细的。。。 |
|