函数逻辑报告 |
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 |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:__create_xol_area
函数原型:static struct xol_area *__create_xol_area(unsigned long vaddr)
返回类型:struct xol_area
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| unsigned long | vaddr |
| 1486 | insn等于UPROBE_SWBP_INSN |
| 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 |
| 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 : |
| 1521 | out : |
| 1522 | 返回:NULL |
| 名称 | 描述 |
|---|---|
| get_xol_area | get_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 |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |