2011-06-08 65 views

回答

1

(我无法找到任何LWN这是代码的部分分析。需要注意的是strmap存在作为一个单独的变量引入struct load_info之前。)

strtab包含了一堆空值的终止的字符串连接在一起。例如。它可能包含这一点,在那里.代表一个空字符:

foo.bar.quux.corge. 

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

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