函数逻辑报告 |
Source Code:mm\gup.c |
Create Date:2022-07-27 16:01:00 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:xup_user_fault() - manually resolve a user page fault*@tsk: the task_struct to use for page fault accounting, or* NULL if faults are not to be recorded
函数原型:int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, unsigned long address, unsigned int fault_flags, bool *unlocked)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct task_struct * | tsk | |
struct mm_struct * | mm | |
unsigned long | address | |
unsigned int | fault_flags | |
bool * | unlocked |
959 | major等于0 |
966 | retry : |
967 | vma等于find_extend_vma(mm, address) |
968 | 如果非vma或address小于Our start address within vm_mm. 则返回:负EFAULT |
971 | 如果非vma_permits_fault(vma, fault_flags)则返回:负EFAULT |
974 | ret等于handle_mm_fault(vma, address, fault_flags) |
975 | major或等于ret按位与VM_FAULT_MAJOR |
976 | 如果ret按位与VM_FAULT_ERROR则 |
977 | err等于NOTE on FOLL_LONGTERM:* FOLL_LONGTERM indicates that the page will be held for an indefinite time* period _often_ under userspace control |
981 | BUG() |
984 | 如果ret按位与VM_FAULT_RETRY则 |
985 | lock for reading |
986 | 如果非fault_flags按位与Second try 的值则 |
987 | * unlocked = true |
988 | fault_flags与等于Retry fault if blocking 的反 |
989 | fault_flags或等于Second try |
990 | 转到:retry |
994 | 如果tsk则 |
1000 | 返回:0 |
名称 | 描述 |
---|---|
fault_in_user_writeable | ault_in_user_writeable() - Fault in user address and verify RW access*@uaddr: pointer to faulting user space address* Slow path to fixup the fault we just took in the atomic write* access to @uaddr |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |