Commit Graph

55 Commits

Author SHA1 Message Date
c3ade864d9 fix PTRACE_PEEKUSER, PTRACE_POKEUSER, PTRACE_GETREGS.
support PTRACE_SETREGS.
  In struct process, add 'unsigned long *ptrace_debugreg', instead of 'struct user *userp'.
  debug registers are read/written from/to ptrace_debugreg, save/restore in schedule().
  most general registers are proc->uctx.
  fs_base is proc->thread.tlsblock_base.
  gs_base,ds,es,fs,gs and orig_rax are uncompleted.
  other members in 'struct user' are ignored, same as Linux implementation.

refs #257
refs #373
refs #263
2015-01-29 14:08:38 +09:00
912b8a886c do_kill distinguish PTRACE_CONT from kill. 2014-12-26 15:23:11 +09:00
0942bf0ce0 make dkprintf() evaluate its parameters always
Parameters of dkprintf() should be evaluated even if dkprintf() is
disabled.  Because this enables to find expression of parameter obsolete
and to avoid unnecessary compiler warnings such as "unused variable".
2014-12-22 16:58:03 +09:00
cc9d30efbf do_signal(): support for SIGSYS
as of POSIX.1-2001:
Signal  Value       Action  Comment
---------------------------------------------------
SIGSYS  12,31,12    Core    Bad argument to routine
2014-12-04 18:10:10 +09:00
a5889fb5df sigaction check signal number (LTP sigaction02) 2014-12-04 11:31:50 +09:00
8f30e16976 when mcexec is killed by SIGKILL, terminate mckernel process (BUG#259) 2014-11-27 16:13:52 +09:00
ab7aa3354f repair signal implementation.
- Don't intrrupt syscall with the ignored signal.
2014-11-07 07:55:30 +09:00
c4e0b84792 repair signal implementation.
- can not interrupt syscall
- can not recieve SIGKILL
2014-10-31 16:34:59 +09:00
3fe7e39607 some variables definition are gathered to fork_tree_node from process.
- remove both-defined: pid, pgid, status
- move to fork_tree_node: tid
- make dummy fork_tree_node for idle_process.
2014-10-29 16:54:09 +09:00
8460a7d93e siginfo.si_status was invalid 2014-10-15 15:27:32 +09:00
fef946e5ff support PTRACE_GETREGS 2014-10-15 14:55:49 +09:00
4b46330624 support ptrace(PTRACE_PEEKUSER, ...) 2014-10-15 14:54:33 +09:00
759ceac769 Fix deafult signal actions 2014-10-15 14:42:34 +09:00
013d3e95c2 Fix manipulation of fork_tree_node for ptrace 2014-10-15 14:42:17 +09:00
658b88fd7b Modify spacing 2014-10-15 14:40:47 +09:00
dbecaa2fc8 Add ptrace functions of job-control and signal
Note that a forked process automatically becomes ptraced state in this
commit.
2014-10-15 14:28:55 +09:00
ef52ba7607 kill system call returned bad number 2014-09-25 14:09:07 +09:00
39f36120c1 support sigqueue 2014-09-23 23:17:53 +09:00
35dc8a3368 Issue IPI if needed when sending SIGSTOP 2014-09-10 21:21:17 +09:00
c78be27442 Support SIGSTOP and SIGCONT 2014-09-10 18:19:39 +09:00
7ca4ca4d37 Revert "Support SIGSTOP and SIGCONT"
This reverts commit 2325d47952.
2014-09-10 18:19:17 +09:00
2325d47952 Support SIGSTOP and SIGCONT 2014-09-10 17:01:21 +09:00
b50e205a61 Support pid of zero when calling waitpid
Make waitpid wait any process with the same pgid of the caller when
setting zero to the pid argument.
2014-09-10 17:01:05 +09:00
7b825c0a65 fix coredump (ltp abort01) 2014-09-03 10:56:41 +09:00
f535670100 fix pipe02 2014-08-27 16:50:01 +09:00
bc8b441358 process table traversing must be under interrupt inhibition
add finding process table function (findthread_and_lock/process_unlock)
2014-08-25 13:24:06 +09:00
f4818e9c09 don't force terminate, when SIGTERM recieved 2014-08-21 17:22:11 +09:00
dd8b2a8f15 sigaction returns -EINVAL, when sig == SIGKILL or SIGSTOP 2014-08-21 14:04:38 +09:00
78d10cce80 support process group 2014-08-18 17:08:28 +09:00
663c121308 interrupt syscall sufficient threads 2014-08-18 16:49:49 +09:00
6dd5407b5f Return error when no core is available
clone returns -EAGAIN when there is no vacant core.
In addition, clone tries to use the next vacant hyper-threading
core instead of trying to use next vacant hyper-threading core
of the next vacant physical core.
2014-07-31 19:50:41 +09:00
8f78b3085c Sending SIGKILL/SIGTERM resulting in SIGSEGV delivered (Redmine#194) 2014-07-29 11:04:46 +09:00
5e6ed852cb Kill child threads when receiving terminating signals(redmine#63)
Create process table (child is missing when sending a signal to a child process just after forking it)(redmine#61)
2014-07-13 12:51:28 +09:00
770eae0186 support sigaltstack 2014-06-25 13:45:33 +09:00
bbb7f77706 interrupt syscall of signal recieved process 2014-06-11 21:06:52 +09:00
2f4f3628f9 support tgkill 2014-06-10 10:42:29 +09:00
3e830521c1 move rt_sigaction to device dependent
fix call kill(getpid(), ) after sigaction aborted
2014-05-16 09:50:06 +09:00
55817e9e83 use "struct x86_regs *" to access stack frames
The intention of this fix is to cope with a recent change of
PUSH_ALL_REGS.
2014-04-03 15:33:35 +09:00
7eeafb0d85 change parameter types of arch-regs to "void *" 2014-04-03 15:33:34 +09:00
26d68d391d signal part 4 (sigsuspend etc) 2014-01-24 10:14:49 +09:00
0465cc16b9 signal (part 2) sigpending 2014-01-07 19:52:06 +09:00
a8c249ddaf signal (part 1) 2014-01-07 11:57:57 +09:00
96576aaee7 fix general protection fault caused by SIGALARM 2013-12-16 13:45:45 +09:00
03521e9c2c add copyrights 2013-11-14 16:49:40 +09:00
98fb5bf091 check cpu_local_var initialized 2013-11-13 23:06:11 +09:00
392357e9d2 catch signal when before kernel init 2013-11-13 15:43:49 +09:00
1d69225532 mcexec forward signal to MIC process. 2013-08-19 12:17:23 +09:00
a4973307bd deliver signum to sighandler 2013-07-26 12:50:32 +09:00
af1c0b1352 correct sighandler breaks registers 2013-07-26 12:24:00 +09:00
221f2c0517 support SIGSEGV(page fault) and SIGILL(general protection error) 2013-07-26 11:53:00 +09:00