| Function report | 
| Source Code: fs\fcntl.c | Create Date:2022-07-28 20:05:59 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:send_sigio
Proto:void send_sigio(struct fown_struct *fown, int fd, int band)
Type:void
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct fown_struct * | fown | |
| int | fd | |
| int | band | 
| 784 | read_lock( & protects pid, uid, euid fields ) | 
| 788 | If Not pid Then Go to out_unlock_fown | 
| 791 | If type <= PIDTYPE_TGID Then | 
| 793 | p = pid_task(pid, PIDTYPE_PID) | 
| 797 | Else | 
| 798 | read_lock( & tasklist_lock) | 
| 799 | Do | 
| 799 | typeof(({typeof(( * ((struct hlist_node * * )( & ( & (pid)-> lists of tasks that use this pid [type])->first))))________p1 = ({union{typeof(( * ((struct hlist_node * * )( & ( & (pid)-> lists of tasks that use this pid [type])->first))))__val;char __c[1];}__u;if (1)__read_once_size( & (( * ((struct hlist_node * * )( & ( & (pid)-> lists of tasks that use this pid [type])->first)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & (pid)-> lists of tasks that use this pid [type])->first)))));Else __read_once_size_nocheck( & (( * ((struct hlist_node * * )( & ( & (pid)-> lists of tasks that use this pid [type])->first)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & (pid)-> lists of tasks that use this pid [type])->first)))));Do{}while (0);__u.__val;});((typeof( * ( * ((struct hlist_node * * )( & ( & (pid)-> lists of tasks that use this pid [type])->first)))) * )(________p1));}))____ptr = (({ | 
| 799 | typeof(( * ((struct hlist_node * * )( & ( & (pid)-> lists of tasks that use this pid [type])->first))))________p1 = ({ | 
| 799 | union{typeof(( * ((structhlist_node * * )( & first)))) __val;char __c[1];}__u | 
| 799 | If 1 Then __read_once_size( & (( * ((structhlist_node * * )( & first)))), __c, size of *first ) | 
| 799 | Else __read_once_size_nocheck( & (( * ((structhlist_node * * )( & first)))), __c, size of *first ) | 
| 799 | Do | 
| 799 | When 0 cycle | 
| 799 | __val | 
| 799 | }) | 
| 799 | })) | 
| 799 | ____ptr ? ({ | 
| 799 | }) : NULL | 
| 799 | typeof(({typeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[type])->next))))________p1 = ({union{typeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[type])->next))))__val;char __c[1];}__u;if (1)__read_once_size( & (( * ((struct hlist_node * * )( & ( & ((p))->pid_links[type])->next)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[type])->next)))));Else __read_once_size_nocheck( & (( * ((struct hlist_node * * )( & ( & ((p))->pid_links[type])->next)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[type])->next)))));Do{}while (0);__u.__val;});((typeof( * ( * ((struct hlist_node * * )( & ( & ((p))->pid_links[type])->next)))) * )(________p1));}))____ptr = (({ | 
| 799 | typeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[type])->next))))________p1 = ({ | 
| 799 | union{typeof(( * ((structhlist_node * * )( & next)))) __val;char __c[1];}__u | 
| 799 | If 1 Then __read_once_size( & (( * ((structhlist_node * * )( & next)))), __c, size of *next ) | 
| 799 | Else __read_once_size_nocheck( & (( * ((structhlist_node * * )( & next)))), __c, size of *next ) | 
| 799 | Do | 
| 799 | When 0 cycle | 
| 799 | __val | 
| 799 | }) | 
| 799 | })) | 
| 799 | ____ptr ? ({ | 
| 799 | }) : NULL | 
| 799 | })) | 
| 801 | If type == PIDTYPE_PID Then Break | 
| 801 | When 0 cycle | 
| 802 | read_unlock( & tasklist_lock) | 
| 804 | out_unlock_fown : | 
| Name | Describe | 
|---|---|
| kill_fasync_rcu | _read_lock() is held | 
| dnotify_handle_event | Mains fsnotify call where events are delivered to dnotify.* Find the dnotify mark on the relevant inode, run the list of dnotify structs* on that mark and determine which of them has expressed interest in receiving* events of this type | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |