Linux kernel exported symbols

linux, linux-kernel

Solution

The characters in the second column have the same meaning they do in the output from `nm`:

`D` `d` The symbol is in the initialized data section.

`S` `s` The symbol is in an uninitialized data section for small objects.

`T` `t` The symbol is in the text (code) section.

Uppercase symbols are global/exported; lowercase are local unexported symbols.

Problem

I want to check the list of symbol exported by the Linux kernel. So I fire the command, ``` # cat /proc/kallsyms 0000000000000000 D per_cpu__irq_stack_union 0000000000000000 D __per_cpu_start 0000000000004000 D per_cpu__gdt_page 0000000000005000 d per_cpu__exception_stacks 000000000000b000 d per_cpu__idt_desc 000000000000b010 d per_cpu__xen_cr0_value 000000000000b018 D per_cpu__xen_vcpu 000000000000b020 D per_cpu__xen_vcpu_info 000000000000b060 d per_cpu__mc_buffer 000000000000c570 D per_cpu__xen_mc_irq_flags ``` This is the output I got. My question is that, what is the meaning of each field in this output? The first field looks like the address, I didn't get any reference for second field. Can anybody explain to me the meaning of the values, D,d,t,T,s in second field?

Original source

Related problems