在/proc/kallsyms中,T和t有什么区别?

7
这是来自System.map和/proc/kallsyms的文本文件的一部分。
ffffffff8106c260 T leave_mm
ffffffff8106c340 t do_flush_tlb_all
ffffffff8106c390 t flush_tlb_func
ffffffff8106c510 T native_flush_tlb_others
ffffffff8106c540 T flush_tlb_current_task
ffffffff8106c600 T flush_tlb_mm_range
ffffffff8106c770 T flush_tlb_page
ffffffff8106c820 T flush_tlb_all
ffffffff8106c840 T flush_tlb_kernel_range

什么是Tt之间的区别? 我知道Tt用于文本(代码)部分。我猜想T可以从内核模块调用,而t无法从内核模块调用。请告诉我它们的确切含义和区别。

https://dev59.com/2V4b5IYBdhLWcg3wlihP#28938043 - smalinux
1个回答

10
文件/proc/kallsyms包含内核知道的所有符号,因此可以访问它们并与内核代码空间共享。根据man nm中的说法,符号值采用选项选择的进制(默认为十六进制)。符号类型:至少使用以下类型; 其他也可能取决于对象文件格式。如果小写,则该符号通常是本地的;如果大写,则该符号是全局的(外部的)。但是有一些小写符号显示为特殊的全局符号(u、v和w)。
T t表示该符号在文本(代码)部分中。T表示该符号是全局可见的,可以在其他内核代码中使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接