函数逻辑报告 | 
Source Code:mm\frame_vector.c | 
Create Date:2022-07-27 18:10:12 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:get_vaddr_frames() - map virtual addresses to pfns*@start: starting user address*@nr_frames: number of pages / pfns from start to map*@gup_flags: flags modifying lookup behaviour*@vec: structure which receives pages / pfns of the addresses mapped.
函数原型:int get_vaddr_frames(unsigned long start, unsigned int nr_frames, unsigned int gup_flags, struct frame_vector *vec)
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| unsigned long | start | |
| unsigned int | nr_frames | |
| unsigned int | gup_flags | |
| struct frame_vector * | vec | 
| 39 | ret等于0 | 
| 43 | 如果nr_frames恒等于0则返回:0 | 
| 46 | 如果WARN_ON_ONCE(nr_frames > Number of frames we have space for )则nr_frames等于Number of frames we have space for | 
| 52 | locked等于1 | 
| 53 | vma等于Look up the first VMA which intersects the interval start_addr..end_addr-1,NULL if none. Assume start_addr < end_addr. | 
| 54 | 如果非vma则 | 
| 67 | 如果vma_is_fsdax(vma)则 | 
| 68 | ret等于负EOPNOTSUPP | 
| 69 | 转到:out | 
| 73 | Did we pin pages by getting page ref? = true | 
| 74 | Does array contain pages or pfns? = false | 
| 77 | 转到:out | 
| 80 | Did we pin pages by getting page ref? = false | 
| 81 | Does array contain pages or pfns? = true | 
| 82 | 循环 | 
| 83 | nums等于frame_vector_pfns(vec) | 
| 102 | 当vma且Flags, see mm.h. 按位与Memory mapped I/O or similar 按位或Page-ranges managed without "struct page", just pure PFN 的值循环 | 
| 103 | out : | 
| 104 | 如果locked则lease a read lock | 
| 108 | 如果ret大于0则Number of frames stored in ptrs array 等于ret | 
| 110 | 返回:ret | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |