函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\module.c Create Date:2022-07-27 11:58:52
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Change all symbols so that st_value encodes the pointer directly.

函数原型:static int simplify_symbols(struct module *mod, const struct load_info *info)

返回类型:int

参数:

类型参数名称
struct module *mod
const struct load_info *info
2298  Elf_Shdrsymsec等于sechdrs[sym]
2299  Elf_Symsym等于sh_addr
2302  ret等于0
2305 i小于sh_sizeElf_Sym的长度循环
2306  name等于strtabst_name
2309  :st_shndx恒等于SHN_COMMON
2316  pr_debug("Common symbol: %s\n", name)
2317  打印警告信息("%s: please compile with -fno-common\n", Unique handle for this module )
2319  ret等于负ENOEXEC
2320  退出
2322  :st_shndx恒等于SHN_ABS
2324  pr_debug("Absolute symbol: 0x%08lx\n", (long)st_value)
2326  退出
2328  :st_shndx恒等于SHN_LIVEPATCH
2330  退出
2335  如果ksym且非是错误
2337  退出
2341  如果非ksymELF_ST_BIND(st_info)恒等于STB_WEAK退出
2344  ret等于如果错误否则负ENOENT
2345  打印警告信息("%s: Unknown symbol %s (err %d)\n", Unique handle for this module , name, ret)
2347  退出
2349  默认
2351  如果st_shndx恒等于pcpusecbase等于mod_percpu(mod)
2353  否则secbase等于sh_addr
2355  st_value加等于secbase
2356  退出
2360  返回:ret
调用者
名称描述
load_moduleAllocate and load the module: note that size of section 0 is alwayszero, and we rely on this for optional sections.