linux kernel - Where is code refers to /proc/PID/maps? -
i observe kernel code print /proc/pid/maps can't find this. tell me code located
the procfs code can found in fs/proc/ subdirectory. if open fs/proc/base.c, can find 2 similar arrays - tgid_base_stuff , tid_base_stuff. both register file operations functions files inside of /proc/pid/ , /proc/pid/tid/ respectivly. you're more interested in first one. find 1 registers "maps" file, looks this:
reg("maps", s_irugo, proc_pid_maps_operations), so structure describing file operations on file called proc_pid_maps_operations. function defined in 2 places - fs/proc/task_mmu.c , fs/proc/task_nommu.c. 1 used depends on kernel configuration it's first one.
inside of task_mmu.c, can find structure definition:
const struct file_operations proc_pid_maps_operations = { .open = pid_maps_open, .read = seq_read, .llseek = seq_lseek, .release = proc_map_release, }; so when /proc/pid/maps opened, kernel use pid_maps_open function, registers set of operations:
static const struct seq_operations proc_pid_maps_op = { .start = m_start, .next = m_next, .stop = m_stop, .show = show_pid_map }; so you're interested in show_pid_map function, calls show_map function in turn calls show_map_vma (all in same file).
Comments
Post a Comment