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