2011-06-08 79 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.