函数逻辑报告 | 
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 插件可实现:逻辑报告 代码生成和批量转换代码  |