函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\exit.c Create Date:2022-07-27 10:02:44
Last Modify:2020-03-17 11:17:32 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:has_stopped_jobs

函数原型:static bool has_stopped_jobs(struct pid *pgrp)

返回类型:bool

参数:

类型参数名称
struct pid *pgrp
304  循环
304  如果((pgrp) != NULL)则循环(({
304  循环(({}), (p) = ({
304  typeof(({typeof(( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[进程组])->first))))________p1 = ({union{typeof(( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[进程组])->first))))__val;char __c[1];}__u;if (1)__read_once_size( & (( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[进程组])->first)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[进程组])->first)))));否则 __read_once_size_nocheck( & (( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[进程组])->first)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[进程组])->first)))));循环{}while (0);__u.__val;});((typeof( * ( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[进程组])->first)))) * )(________p1));}))____ptr = (({
304  typeof(( * ((struct hlist_node * * )( & ( & (pgrp)->进程属性列[进程组])->first))))________p1 = ({
304  union{typeof(( * ((structhlist_node * * )( & first)))) __val;char __c[1];}__u
304  如果1则__read_once_size( & (( * ((structhlist_node * * )( & first)))), __c, *first的长度)
304  否则__read_once_size_nocheck( & (( * ((structhlist_node * * )( & first)))), __c, *first的长度)
304  循环
304  当0循环
304  __val
304  })
304  }))
304  ____ptr ? ({
304  __mptr等于____ptr
304  循环
304  当0循环
304  __mptr__builtin_offsetof(typeof( * ((p))), pid_links[进程组])
304  }) : NULL
304  循环(({}), (p) = ({});(p);(p) = ({
304  typeof(({typeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[进程组])->next))))________p1 = ({union{typeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[进程组])->next))))__val;char __c[1];}__u;if (1)__read_once_size( & (( * ((struct hlist_node * * )( & ( & ((p))->pid_links[进程组])->next)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[进程组])->next)))));否则 __read_once_size_nocheck( & (( * ((struct hlist_node * * )( & ( & ((p))->pid_links[进程组])->next)))), __u.__c, sizeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[进程组])->next)))));循环{}while (0);__u.__val;});((typeof( * ( * ((struct hlist_node * * )( & ( & ((p))->pid_links[进程组])->next)))) * )(________p1));}))____ptr = (({
304  typeof(( * ((struct hlist_node * * )( & ( & ((p))->pid_links[进程组])->next))))________p1 = ({
304  union{typeof(( * ((structhlist_node * * )( & next)))) __val;char __c[1];}__u
304  如果1则__read_once_size( & (( * ((structhlist_node * * )( & next)))), __c, *next的长度)
304  否则__read_once_size_nocheck( & (( * ((structhlist_node * * )( & next)))), __c, *next的长度)
304  循环
304  当0循环
304  __val
304  })
304  }))
304  ____ptr ? ({
304  __mptr等于____ptr
304  循环
304  当0循环
304  __mptr__builtin_offsetof(typeof( * ((p))), pid_links[进程组])
304  }) : NULL
304  }))
305  如果任务标志按位与job control stop in effect 则返回:true
307  如果进程组恒等于单一进程退出
307  当0循环
309  返回:false
调用者
名称描述
kill_orphaned_pgrpCheck to see if any process groups have become orphaned as* a result of our exiting, and if they have any stopped jobs,* send them a SIGHUP and then a SIGCONT. (POSIX 3.2.2.2)