gpt4 book ai didi

linux - struct load_info 中的字段strmap 是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:48 28 4
gpt4 key购买 nike

我正在研究 linux 内核中的模块加载机制,我卡在结构 load_info 中的字段 strmap 的含义上。

结构定义in kernel/module.c并且该字段已填充 in kernel/module.c .我知道它是位图,但我无法弄清楚各个位的含义。

最佳答案

(我在 LWN 上找不到任何东西。这是对代码的部分分析。请注意,strmap 作为单独的变量存在于 struct load_info 之前被介绍了。)

strtab 包含一堆连接在一起的以 null 结尾的字符串。例如。它可能包含这个,其中 . 代表一个空字符:

foo.bar.quux.corge.
0123456789012345678

layout_symtab 中, strmap 用于确定 strtab 的哪些 block 对应于 core symbols 。只要第 j 个字符是核心符号名称的一部分,loop 就会设置 strtab 的第 j 位。例如,给定上表,如果 barcorge 是核心符号,则位 4-7 和 13-18 设置为 1。

add_kallsyms 中,second loop 计算核心符号名称的总长度,third loop 通过仅复制 的字节将核心符号复制到新表 mod->symtab >strtab 为其设置了 strmap 中的相应位。在上面的示例中,新表将包含 bar.corge..

关于linux - struct load_info 中的字段strmap 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6287703/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com