函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:__create_xol_area

函数原型:static struct xol_area *__create_xol_area(unsigned long vaddr)

返回类型:struct xol_area

参数:

类型参数名称
unsigned longvaddr
1485  mm等于mm
1486  insn等于UPROBE_SWBP_INSN
1489  area等于开辟内存
1490  如果此条件成立可能性小(为编译器优化)(!area)则转到:out
1493  0 = free slot 等于分配数组内存并置零
1495  如果非0 = free slot 则转到:free_area
1498  The name, e.g. "[vdso]". 等于"[uprobes]"
1499  fault = NULL
1500  * If .fault is not provided, this points to a * NULL-terminated array of pages that back the special mapping. * This must not be NULL unless .fault is provided.等于pages
1501  pages[0]等于alloc_page(GFP_HIGHUSER)
1502  如果非pages[0]则转到:free_bitmap
1504  pages[1] = NULL
1506  Page(s) of instruction slots 等于vaddr
1507  init_waitqueue_head( & all slots are busy )
1509  设置内存位
1510  atomic_set( & umber of in-use slots , 1)
1511  arch_uprobe_copy_ixol(pages[0], 0, & insn, UPROBE_SWBP_INSN_SIZE)
1513  如果非Slot allocation for XOL 则返回:area
1516  __free_page(pages[0])
1517  free_bitmap :
1518  kfree(0 = free slot )
1519  free_area :
1520  kfree(area)
1521  out :
1522  返回:NULL
调用者
名称描述
get_xol_areaget_xol_area - Allocate process's xol_area if necessary.* This area will be used for storing instructions for execution out of line.* Returns the allocated area or NULL.
dup_xol_work