diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-20 16:33:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-20 16:33:21 -0400 |
commit | 3ed4c0583daa34dedb568b26ff99e5a7b58db612 (patch) | |
tree | a531d4cc94acaa58fe0600cf83da9fb8b77f6e50 /include/linux/sched.h | |
parent | ad9471752ebae25daa133b4e5d9299809c35e155 (diff) | |
parent | bd715d9a4f13f87bad5526c2cd41370949473b16 (diff) |
Merge branch 'ptrace' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc
* 'ptrace' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc: (41 commits)
signal: trivial, fix the "timespec declared inside parameter list" warning
job control: reorganize wait_task_stopped()
ptrace: fix signal->wait_chldexit usage in task_clear_group_stop_trapping()
signal: sys_sigprocmask() needs retarget_shared_pending()
signal: cleanup sys_sigprocmask()
signal: rename signandsets() to sigandnsets()
signal: do_sigtimedwait() needs retarget_shared_pending()
signal: introduce do_sigtimedwait() to factor out compat/native code
signal: sys_rt_sigtimedwait: simplify the timeout logic
signal: cleanup sys_rt_sigprocmask()
x86: signal: sys_rt_sigreturn() should use set_current_blocked()
x86: signal: handle_signal() should use set_current_blocked()
signal: sigprocmask() should do retarget_shared_pending()
signal: sigprocmask: narrow the scope of ->siglock
signal: retarget_shared_pending: optimize while_each_thread() loop
signal: retarget_shared_pending: consider shared/unblocked signals only
signal: introduce retarget_shared_pending()
ptrace: ptrace_check_attach() should not do s/STOPPED/TRACED/
signal: Turn SIGNAL_STOP_DEQUEUED into GROUP_STOP_DEQUEUED
signal: do_signal_stop: Remove the unneeded task_clear_group_stop_pending()
...
Diffstat (limited to 'include/linux/sched.h')
-rw-r--r-- | include/linux/sched.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index 12211e1666e2..885c4f242ad7 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -653,9 +653,8 @@ struct signal_struct { | |||
653 | * Bits in flags field of signal_struct. | 653 | * Bits in flags field of signal_struct. |
654 | */ | 654 | */ |
655 | #define SIGNAL_STOP_STOPPED 0x00000001 /* job control stop in effect */ | 655 | #define SIGNAL_STOP_STOPPED 0x00000001 /* job control stop in effect */ |
656 | #define SIGNAL_STOP_DEQUEUED 0x00000002 /* stop signal dequeued */ | 656 | #define SIGNAL_STOP_CONTINUED 0x00000002 /* SIGCONT since WCONTINUED reap */ |
657 | #define SIGNAL_STOP_CONTINUED 0x00000004 /* SIGCONT since WCONTINUED reap */ | 657 | #define SIGNAL_GROUP_EXIT 0x00000004 /* group exit in progress */ |
658 | #define SIGNAL_GROUP_EXIT 0x00000008 /* group exit in progress */ | ||
659 | /* | 658 | /* |
660 | * Pending notifications to parent. | 659 | * Pending notifications to parent. |
661 | */ | 660 | */ |
@@ -1251,6 +1250,7 @@ struct task_struct { | |||
1251 | int exit_state; | 1250 | int exit_state; |
1252 | int exit_code, exit_signal; | 1251 | int exit_code, exit_signal; |
1253 | int pdeath_signal; /* The signal sent when the parent dies */ | 1252 | int pdeath_signal; /* The signal sent when the parent dies */ |
1253 | unsigned int group_stop; /* GROUP_STOP_*, siglock protected */ | ||
1254 | /* ??? */ | 1254 | /* ??? */ |
1255 | unsigned int personality; | 1255 | unsigned int personality; |
1256 | unsigned did_exec:1; | 1256 | unsigned did_exec:1; |
@@ -1771,6 +1771,17 @@ extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t * | |||
1771 | #define tsk_used_math(p) ((p)->flags & PF_USED_MATH) | 1771 | #define tsk_used_math(p) ((p)->flags & PF_USED_MATH) |
1772 | #define used_math() tsk_used_math(current) | 1772 | #define used_math() tsk_used_math(current) |
1773 | 1773 | ||
1774 | /* | ||
1775 | * task->group_stop flags | ||
1776 | */ | ||
1777 | #define GROUP_STOP_SIGMASK 0xffff /* signr of the last group stop */ | ||
1778 | #define GROUP_STOP_PENDING (1 << 16) /* task should stop for group stop */ | ||
1779 | #define GROUP_STOP_CONSUME (1 << 17) /* consume group stop count */ | ||
1780 | #define GROUP_STOP_TRAPPING (1 << 18) /* switching from STOPPED to TRACED */ | ||
1781 | #define GROUP_STOP_DEQUEUED (1 << 19) /* stop signal dequeued */ | ||
1782 | |||
1783 | extern void task_clear_group_stop_pending(struct task_struct *task); | ||
1784 | |||
1774 | #ifdef CONFIG_PREEMPT_RCU | 1785 | #ifdef CONFIG_PREEMPT_RCU |
1775 | 1786 | ||
1776 | #define RCU_READ_UNLOCK_BLOCKED (1 << 0) /* blocked while in RCU read-side. */ | 1787 | #define RCU_READ_UNLOCK_BLOCKED (1 << 0) /* blocked while in RCU read-side. */ |