| 函数逻辑报告 | 
| Source Code: block\ioprio.c | Create Date:2022-07-27 18:59:14 | 
| Last Modify:2020-03-17 23:21:05 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:SYSCALL_DEFINE2
函数原型:SYSCALL_DEFINE2(ioprio_get, int, which, int, who)
返回类型:
参数:无
| 197 | 当:which恒等于IOPRIO_WHO_PROCESS | 
| 205 | 当:which恒等于IOPRIO_WHO_PGRP | 
| 210 | 循环 | 
| 210 | typeof(({typeof(( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[PIDTYPE_PGID])->first))))________p1 = ({union{typeof(( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[PIDTYPE_PGID])->first))))__val;char __c[1];}__u;if (1)__read_once_size( & (( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[PIDTYPE_PGID])->first)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[PIDTYPE_PGID])->first)))));否则 __read_once_size_nocheck( & (( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[PIDTYPE_PGID])->first)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[PIDTYPE_PGID])->first)))));循环{}while (0);__u.__val;});((typeof( * ( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[PIDTYPE_PGID])->first)))) * )(________p1));}))____ptr = (({ | 
| 210 | typeof(( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[PIDTYPE_PGID])->first))))________p1 = ({ | 
| 210 | union{typeof(( * ((structhlist_node * * )( & first)))) __val;char __c[1];}__u | 
| 210 | 如果1则__read_once_size( & (( * ((structhlist_node * * )( & first)))), __c, *first的长度) | 
| 210 | 否则__read_once_size_nocheck( & (( * ((structhlist_node * * )( & first)))), __c, *first的长度) | 
| 210 | 循环 | 
| 210 | 当0循环 | 
| 210 | __val | 
| 210 | }) | 
| 210 | })) | 
| 210 | ____ptr ? ({ | 
| 210 | }) : NULL | 
| 210 | typeof(({typeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[PIDTYPE_PGID])->next))))________p1 = ({union{typeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[PIDTYPE_PGID])->next))))__val;char __c[1];}__u;if (1)__read_once_size( & (( * ((struct hlist_node * * )( & ( & ((p))->pid_links[PIDTYPE_PGID])->next)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[PIDTYPE_PGID])->next)))));否则 __read_once_size_nocheck( & (( * ((struct hlist_node * * )( & ( & ((p))->pid_links[PIDTYPE_PGID])->next)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[PIDTYPE_PGID])->next)))));循环{}while (0);__u.__val;});((typeof( * ( * ((struct hlist_node * * )( & ( & ((p))->pid_links[PIDTYPE_PGID])->next)))) * )(________p1));}))____ptr = (({ | 
| 210 | typeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[PIDTYPE_PGID])->next))))________p1 = ({ | 
| 210 | union{typeof(( * ((structhlist_node * * )( & next)))) __val;char __c[1];}__u | 
| 210 | 如果1则__read_once_size( & (( * ((structhlist_node * * )( & next)))), __c, *next的长度) | 
| 210 | 否则__read_once_size_nocheck( & (( * ((structhlist_node * * )( & next)))), __c, *next的长度) | 
| 210 | 循环 | 
| 210 | 当0循环 | 
| 210 | __val | 
| 210 | }) | 
| 210 | })) | 
| 210 | ____ptr ? ({ | 
| 210 | }) : NULL | 
| 210 | })) | 
| 210 | void * __mptr = (void * )(({ | 
| 210 | 如果1则__read_once_size( & (next), __c, next的长度) | 
| 210 | 否则__read_once_size_nocheck( & (next), __c, next的长度) | 
| 210 | 循环 | 
| 210 | 当0循环 | 
| 210 | __val | 
| 210 | })) | 
| 210 | 循环 | 
| 210 | 当0循环 | 
| 210 | __mptr减__builtin_offsetof(typeof( * p), thread_node) | 
| 210 | 循环(({}), p = ({}); & p->thread_node != ( & ((tg___)->signal)->thread_head);p = ({ | 
| 210 | void * __mptr = (void * )(({ | 
| 210 | 如果1则__read_once_size( & (next), __c, next的长度) | 
| 210 | 否则__read_once_size_nocheck( & (next), __c, next的长度) | 
| 210 | 循环 | 
| 210 | 当0循环 | 
| 210 | __val | 
| 210 | })) | 
| 210 | 循环 | 
| 210 | 当0循环 | 
| 210 | __mptr减__builtin_offsetof(typeof( * p), thread_node) | 
| 210 | })) | 
| 218 | 如果PIDTYPE_PGID恒等于PIDTYPE_PID则退出 | 
| 218 | 当0循环 | 
| 219 | 退出 | 
| 220 | 当:which恒等于IOPRIO_WHO_USER | 
| 222 | 如果非who则user等于current_user() | 
| 224 | 否则user等于Locate the user_struct for the passed UID. If found, take a ref on it. The* caller must undo that ref with free_uid().* If the user_struct could not be found, return NULL. | 
| 245 | 退出 | 
| 246 | 默认 | 
| 251 | 返回:ret | 
| 源代码转换工具 开放的插件接口 | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |