*参照元 [#o8893239]
#backlinks

*説明 [#n76315fc]
-パス: [[linux-2.6.33/include/linux/sched.h]]

-FIXME: これは何?
--説明


**参考 [#m6cf72fc]


*実装 [#fe83ddb6]
 /*
  * NOTE! "signal_struct" does not have it's own
  * locking, because a shared signal_struct always
  * implies a shared sighand_struct, so locking
  * sighand_struct is always a proper superset of
  * the locking of signal_struct.
  */
 struct signal_struct {
 	atomic_t		count;
 	atomic_t		live;
 
-
--[[linux-2.6.33/atomic_t]]

 	wait_queue_head_t	wait_chldexit;	/* for wait4() */
 
-
--[[linux-2.6.33/wait_queue_head_t]]

 	/* current thread group signal load-balancing target: */
 	struct task_struct	*curr_target;
 
-
--[[linux-2.6.33/task_struct]]

 	/* shared signal handling: */
 	struct sigpending	shared_pending;
 
-
--[[linux-2.6.33/shared_pending]]

 	/* thread group exit support */
 	int			group_exit_code;
 	/* overloaded:
 	 * - notify group_exit_task when ->count is equal to notify_count
 	 * - everyone except group_exit_task is stopped during signal delivery
 	 *   of fatal signals, group_exit_task processes the signal.
 	 */
 	int			notify_count;
 	struct task_struct	*group_exit_task;
 
 	/* thread group stop support, overloads group_exit_code too */
 	int			group_stop_count;
 	unsigned int		flags; /* see SIGNAL_* flags below */
 
 	/* POSIX.1b Interval Timers */
 	struct list_head posix_timers;
 
-
--[[linux-2.6.33/list_head]]

 	/* ITIMER_REAL timer for the process */
 	struct hrtimer real_timer;
-
--[[linux-2.6.33/hrtimer]]

 	struct pid *leader_pid;
-
--[[linux-2.6.33/pid]]

 	ktime_t it_real_incr;
 
-
--[[linux-2.6.33/ktime_t]]

 	/*
 	 * ITIMER_PROF and ITIMER_VIRTUAL timers for the process, we use
 	 * CPUCLOCK_PROF and CPUCLOCK_VIRT for indexing array as these
 	 * values are defined to 0 and 1 respectively
 	 */
 	struct cpu_itimer it[2];
 
-
--[[linux-2.6.33/cpu_itimer]]

 	/*
 	 * Thread group totals for process CPU timers.
 	 * See thread_group_cputimer(), et al, for details.
 	 */
 	struct thread_group_cputimer cputimer;
 
-
--[[linux-2.6.33/thread_group_cputimer]]

 	/* Earliest-expiration cache. */
 	struct task_cputime cputime_expires;
 
-
--[[linux-2.6.33/task_cputime]]

 	struct list_head cpu_timers[3];
 
 	struct pid *tty_old_pgrp;
 
 	/* boolean value for session group leader */
 	int leader;
 
 	struct tty_struct *tty; /* NULL if no tty */
 
-
--[[linux-2.6.33/tty_struct]]

 	/*
 	 * Cumulative resource counters for dead threads in the group,
 	 * and for reaped dead child processes forked by this group.
 	 * Live threads maintain their own counters and add to these
 	 * in __exit_signal, except for the group leader.
 	 */
 	cputime_t utime, stime, cutime, cstime;
 	cputime_t gtime;
 	cputime_t cgtime;
-
--[[linux-2.6.33/cputime_t]]

 #ifndef CONFIG_VIRT_CPU_ACCOUNTING
-
--[[linux-2.6.33/CONFIG_VIRT_CPU_ACCOUNTING]]

 	cputime_t prev_utime, prev_stime;
 #endif
 	unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw;
 	unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
 	unsigned long inblock, oublock, cinblock, coublock;
 	unsigned long maxrss, cmaxrss;
 	struct task_io_accounting ioac;
 
-
--[[linux-2.6.33/task_io_accounting]]

 	/*
 	 * Cumulative ns of schedule CPU time fo dead threads in the
 	 * group, not including a zombie group leader, (This only differs
 	 * from jiffies_to_ns(utime + stime) if sched_clock uses something
 	 * other than jiffies.)
 	 */
 	unsigned long long sum_sched_runtime;
 
 	/*
 	 * We don't bother to synchronize most readers of this at all,
 	 * because there is no reader checking a limit that actually needs
 	 * to get both rlim_cur and rlim_max atomically, and either one
 	 * alone is a single word that can safely be read normally.
 	 * getrlimit/setrlimit use task_lock(current->group_leader) to
 	 * protect this instead of the siglock, because they really
 	 * have no need to disable irqs.
 	 */
 	struct rlimit rlim[RLIM_NLIMITS];
 
-
--[[linux-2.6.33/rlimit]]

 #ifdef CONFIG_BSD_PROCESS_ACCT
-
--[[linux-2.6.33/CONFIG_BSD_PROCESS_ACCT]]

 	struct pacct_struct pacct;	/* per-process accounting information */
-
--[[linux-2.6.33/pacct_struct]]

 #endif
 #ifdef CONFIG_TASKSTATS
-
--[[linux-2.6.33/CONFIG_TASKSTATS]]

 	struct taskstats *stats;
-
--[[linux-2.6.33/taskstats]]

 #endif
 #ifdef CONFIG_AUDIT
-
--[[linux-2.6.33/CONFIG_AUDIT]]

 	unsigned audit_tty;
 	struct tty_audit_buf *tty_audit_buf;
-
--[[linux-2.6.33/tty_audit_buf]]

 #endif
 
 	int oom_adj;	/* OOM kill score adjustment (bit shift) */
 };


*コメント [#uea24550]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS