函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:move_module

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

返回类型:int

参数:

类型参数名称
struct module *mod
struct load_info *info
3258  ptr等于module_alloc( Total size. )
3264  kmemleak_not_leak(ptr)
3265  如果非ptr则返回:负ENOMEM
3268  memset(ptr, 0, Total size. )
3269  The actual code + data. 等于ptr
3271  如果 Total size.
3272  ptr等于module_alloc( Total size. )
3279  kmemleak_ignore(ptr)
3280  如果非ptr
3282  返回:负ENOMEM
3284  memset(ptr, 0, Total size. )
3285  The actual code + data. 等于ptr
3286  否则 The actual code + data. = NULL
3290  pr_debug("final section addresses:\n")
3291 i小于e_shnum循环
3293  Elf_Shdrshdr等于sechdrs[i]
3295  如果非sh_flags按位与SHF_ALLOC的值则继续下一循环
3298  如果sh_entsize按位与If this is set, the section belongs in the init part of the module dest等于 The actual code + data. sh_entsize按位与If this is set, the section belongs in the init part of the module 的反的值
3301  否则dest等于 The actual code + data. sh_entsize
3304  如果sh_type不等于SHT_NOBITS内存复制(dest, (void * )sh_addr, sh_size)
3307  sh_addr等于dest
3308  pr_debug("\t0x%lx %s\n", (long)sh_addr, secstrings + sh_name)
3312  返回:0
调用者
名称描述
layout_and_allocate