函数逻辑报告 |
Source Code:mm\mempolicy.c |
Create Date:2022-07-27 17:04:50 |
| Last Modify:2020-03-17 22:28:11 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:do_mbind
函数原型:static long do_mbind(unsigned long start, unsigned long len, unsigned short mode, unsigned short mode_flags, nodemask_t *nmask, unsigned long flags)
返回类型:long
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| unsigned long | start | |
| unsigned long | len | |
| unsigned short | mode | |
| unsigned short | mode_flags | |
| nodemask_t * | nmask | |
| unsigned long | flags |
| 1243 | 如果flags按位与MPOL_MF_VALID的反则返回:负EINVAL |
| 1245 | 如果flags按位与Move every page to conform to policy 且非操作权限检查则返回:负EPERM |
| 1251 | 如果mode恒等于MPOL_DEFAULT则flags与等于Verify existing pages in the mapping 的反 |
| 1262 | new等于This function just creates a new policy, does some check and simple* initialization. You must invoke mpol_set_nodemask() to set nodes. |
| 1266 | 如果flags按位与Modifies '_MOVE: lazy migrate on fault 则See set_mempolicy() MPOL_F_* above 或等于his policy wants migrate on fault |
| 1273 | 如果非new则flags或等于Skip checks for continuous vmas |
| 1276 | pr_debug("mbind %lx-%lx mode:%d flags:%d nodes:%lx\n", start, start + len, mode, mode_flags, nmask ? nodes_addr( * nmask)[0] : NUMA_NO_NODE) |
| 1287 | NODEMASK_SCRATCH(scratch) |
| 1288 | 如果scratch则 |
| 1289 | lock for writing |
| 1292 | task_unlock(当前进程) |
| 1293 | 如果err则lease a write lock |
| 1297 | NODEMASK_SCRATCH_FREE(scratch) |
| 1305 | 如果ret小于0则 |
| 1312 | 如果非err则 |
| 1313 | nr_failed等于0 |
| 1315 | 如果非链表为空则 |
| 1325 | 否则 |
| 1326 | up_out : |
| 1331 | lease a write lock |
| 1332 | mpol_out : |
| 1334 | 返回:err |
| 名称 | 描述 |
|---|---|
| kernel_mbind |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |