【问题标题】:What is the difference between T and t in /proc/kallsyms/proc/kallsyms 中的 T 和 t 有什么区别
【发布时间】:2016-12-31 10:36:20
【问题描述】:

这是来自 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 不能从内核模块调用。

让我知道它们之间的确切含义和区别。

【问题讨论】:

标签: linux linux-kernel export symbols kernel-module


【解决方案1】:

文件 /proc/kallsyms 包含内核知道的所有符号,因此您的模块可以访问这些符号,因为它们共享内核的代码空间。

来自man nm

符号值,由选项选择的基数(见下文),或默认为十六进制。 符号类型。至少使用以下类型;其他的也取决于目标文件格式。如果是小写,符号通常是本地的;如果是大写,则符号是全局的(外部的)。然而,对于特殊的全局符号(u、v 和 w),显示了一些小写符号。

T 吨 该符号位于文本(代码)部分。

T 表示该符号是全局可见的,可以在其他内核代码中使用。

【讨论】:

    猜你喜欢
    • 2012-03-10
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 2011-09-01
    相关资源
    最近更新 更多