函数逻辑报告 |
Source Code:kernel\livepatch\core.c |
Create Date:2022-07-27 11:30:43 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:klp_module_coming
函数原型:int klp_module_coming(struct module *mod)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct module * | mod |
| 1139 | 如果WARN_ON(state != MODULE_STATE_COMING)则返回:负EINVAL |
| 1148 | klp_alive = true |
| 1150 | klp_for_each_patch(patch) |
| 1151 | klp_for_each_object(patch, obj) |
| 1152 | 如果非klp_is_module(obj)或字符串比较则继续下一循环 |
| 1158 | 如果ret则 |
| 1159 | 打印警告信息("failed to initialize patch '%s' for module '%s' (%d)\n", Unique handle for this module , Unique handle for this module , ret) |
| 1161 | 转到:err |
| 1164 | 打印注释信息("applying patch '%s' to loading module '%s'\n", Unique handle for this module , Unique handle for this module ) |
| 1167 | ret等于klp_pre_patch_callback(obj) |
| 1168 | 如果ret则 |
| 1174 | ret等于klp_patch_object(obj) |
| 1175 | 如果ret则 |
| 1176 | 打印警告信息("failed to apply patch '%s' to module '%s' (%d)\n", Unique handle for this module , Unique handle for this module , ret) |
| 1179 | klp_post_unpatch_callback(obj) |
| 1180 | 转到:err |
| 1183 | 如果patch不等于klp_transition_patch则klp_post_patch_callback(obj) |
| 1186 | 退出 |
| 1192 | 返回:0 |
| 1194 | err : |
| 1199 | 打印警告信息("patch '%s' failed for module '%s', refusing to load module '%s'\n", Unique handle for this module , Unique handle for this module , Unique handle for this module ) |
| 1201 | klp_alive = false |
| 1202 | mod = NULL |
| 1206 | 返回:ret |
| 名称 | 描述 |
|---|---|
| prepare_coming_module |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |