函数逻辑报告 |
Source Code:kernel\kprobes.c |
Create Date:2022-07-27 12:38:30 |
Last Modify:2022-05-22 18:14:58 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:__get_insn_slot() - Find a slot on an executable page for an instruction.* We allocate an executable page if there's no room on existing ones.
函数原型:kprobe_opcode_t *__get_insn_slot(struct kprobe_insn_cache *c)
返回类型:kprobe_opcode_t
参数:
类型 | 参数 | 名称 |
---|---|---|
struct kprobe_insn_cache * | c |
134 | kprobe_opcode_t * slot = NULL |
137 | mutex_lock( & mutex) |
138 | retry : |
141 | 如果nused小于slots_per_page(c)则 |
143 | 以i小于slots_per_page(c)循环 |
144 | 如果slot_used[i]恒等于SLOT_CLEAN则 |
153 | nused等于slots_per_page(c) |
154 | WARN_ON(1) |
160 | 如果nr_garbage且collect_garbage_slots(c)恒等于0则转到:retry |
173 | Page of instruction slots 等于alloc() |
174 | 如果非Page of instruction slots 则 |
178 | 初始化链表头 |
179 | memset(slot_used, SLOT_CLEAN, slots_per_page(c)) |
181 | nused等于1 |
182 | ngarbage等于0 |
184 | 添加RCU保护项 |
186 | out : |
188 | 返回:slot |
名称 | 描述 |
---|---|
get_insn_slot | |
get_optinsn_slot |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |