| 函数逻辑报告 | 
| Source Code: kernel\trace\trace.c | Create Date:2022-07-27 13:09:19 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:tracing_buffers_splice_read
函数原型:static ssize_t tracing_buffers_splice_read(struct file *file, loff_t *ppos, struct pipe_inode_info *pipe, size_t len, unsigned int flags)
返回类型:ssize_t
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct file * | file | |
| loff_t * | ppos | |
| struct pipe_inode_info * | pipe | |
| size_t | len | |
| unsigned int | flags | 
| 7512 | ret等于0 | 
| 7528 | 如果r dynamic pipe sizing则返回:负ENOMEM | 
| 7531 | again : | 
| 7532 | trace_access_lock(cpu_file) | 
| 7533 | entries等于g_buffer_entries_cpu - get the number of entries in a cpu buffer*@buffer: The ring buffer*@cpu: The per CPU buffer to get the entries from. | 
| 7535 | 以i小于pages[] & partial[] arrays size 且len且entries循环 | 
| 7540 | 如果非ref则 | 
| 7547 | page等于g_buffer_alloc_read_page - allocate a page to read from buffer*@buffer: the buffer to allocate for | 
| 7548 | 如果是错误则 | 
| 7558 | 如果r小于0则 | 
| 7562 | 退出 | 
| 7565 | page等于virt_to_page(kaddr) returns a valid pointer if and only if* virt_addr_valid(kaddr) returns true.(page) | 
| 7569 | offset等于0 | 
| 7571 | umber of populated pages in map 自加 | 
| 7577 | trace_access_unlock(cpu_file) | 
| 7578 | umber of populated pages in map 等于i | 
| 7581 | 如果非umber of populated pages in map 则 | 
| 7586 | 如果f_flags按位与O_NONBLOCK或flags按位与don't block on the pipe splicing (but 则转到:out | 
| 7589 | ret等于wait_on_pipe(iter, buffer_percent) | 
| 7593 | 转到:again | 
| 7597 | out : | 
| 7598 | splice_shrink_spd( & spd) | 
| 7600 | 返回:ret | 
| 源代码转换工具 开放的插件接口 | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |