In this commit, we add eight signal-related syscalls * kill * tkill * tgkill * rt_sigaction * rt_sigreturn * rt_sigprocmask * rt_sigpending * exit_group We implement the following major features for signals: * Generate, mask, and deliver signals * Support user-defined signal handlers * Support nested invocation of signal handlers * Support passing arguments: signum, sigaction, and ucontext * Support both process-directed and thread-directed signals * Capture hardware exceptions and convert them to signals * Deliver fatal signals (like SIGKILL) to kill processes gracefully But we still have gaps, including but not limited to the points below: * Convert #PF (page fault) and #GP (general protection) exceptions to signals * Force delivery of signals via interrupt * Support simulation mode |
||
---|---|---|
.. | ||
main.c | ||
Makefile |