#
7a187cd6 |
|
09-Apr-2016 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
_user_debug_thread(): Use new signal SIGNAL_DEBUG_THREAD This resolves a TODO: We used thread_interrupt() to wake up the thread from an interruptable wait. However, if the thread was already in the kernel and about to start waiting, that would have no effect and the thread would wait anyway. Now there's the new non-blockable signal SIGNAL_DEBUG_THREAD, which is sent to the thread instead, making sure that thread doesn't start waiting.
|
#
4ad7d95b |
|
09-Aug-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
Revert "Add sys/ucontext.h" This reverts commit 6ddf93bfbec1ecec76cf119c50327f93f6d4fef8. As pointed out by Ingo, those were moved to sugnal.h in the latest issue (issue 7) of the POSIX spec. Sorry!
|
#
6ddf93bf |
|
09-Aug-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
Add sys/ucontext.h * Move ucontext_t and mcontext_t there as that's where POSIX says they should be.
|
#
e85e399f |
|
17-Mar-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
commpage: randomize position of commpage This patch introduces randomization of commpage position. From now on commpage table contains offsets from begining to of the commpage to the particular commpage entry. Similary addresses of symbols in ELF memory image "commpage" are just offsets from the begining of the commpage. This patch also updates KDL so that commpage entries are recognized and shown correctly in stack trace. An update of Debugger is yet to be done.
|
#
24df6592 |
|
11-Jun-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged signals-merge branch into trunk with the following changes: * Reorganized the kernel locking related to threads and teams. * We now discriminate correctly between process and thread signals. Signal handlers have been moved to teams. Fixes #5679. * Implemented real-time signal support, including signal queuing, SA_SIGINFO support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition of the real-time signal range. Closes #1935 and #2695. * Gave SIGBUS a separate signal number. Fixes #6704. * Implemented <time.h> clock and timer support, and fixed/completed alarm() and [set]itimer(). Closes #5682. * Implemented support for thread cancellation. Closes #5686. * Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554. * Lots over smaller more or less related changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4535495d |
|
10-Jan-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged the signals branch into trunk, with these changes: * The team and thread kernel structures have been renamed to Team and Thread respectively and moved into the new BKernel namespace. * Several (kernel add-on) sources have been converted from C to C++ since private kernel headers are included that are no longer C compatible. Changes after merging: * Fixed gcc 2 build (warnings mainly in the scary firewire bus manager). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
10f0fc8f |
|
31-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented sigwait(). * Not sure if it works as intended, as the specs are a bit vague. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24717 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bc2001bb |
|
22-Feb-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
We have to update the pending signals thread flag when restoring the signal block mask when returning from a signal handler. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24064 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0dd3108c |
|
21-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added SIGNAL_FLAG_DONT_RESTART_SYSCALL for send_signal_etc() which utilizes the THREAD_FLAG_DONT_RESTART_SYSCALL (but only in SIGCONT for now). * resume_thread() is now using that flag to be compatible with BeOS. * This fixes the Terminal hanging on close. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24045 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
df716df5 |
|
05-Sep-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added is_signal_blocked() convenience function. * Defined flag SIGNAL_FLAG_TEAMS_LOCKED for send_signal_etc(), so it can be called with the team lock being held. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22186 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
33f0dbe4 |
|
03-Sep-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Resolved TODO: waitpid() clears pending SIGCHLD, if the signal is blocked and no other child status is available. * Respect SA_NOCLDWAIT and ignored SIGCHLD in waitpid(): Unless a child status is available immediately, the thread shall block until all children are gone. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22161 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b70ea59 |
|
16-Aug-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented sigaltstack() and set_signal_stack(), thus closing bug #1401. * On exec() the new function thread_reset_for_exec() is called which clears the signals and cancels an eventually set alarm. Both things weren't done before... * Some minor cleanups. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21989 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
50374cbd |
|
20-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Changed the signal handling code so that handle_signals() can be called without having the thread lock held and interrupts disabled. Cleaned up the signal handling code, and fixed some minor bugs with blockable vs. non-blockable signals. thread_debug_info was using uint64 for signals sets instead of sigset_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14457 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab38c904 |
|
13-Sep-2005 |
Jérôme Duval <korli@users.berlios.de> |
added a libroot sigpending, kernel support isn't implemented (fixed partly bug #49) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14181 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
96e65794 |
|
07-Sep-2005 |
Jérôme Duval <korli@users.berlios.de> |
added a libroot sigsuspend, kernel support isn't implemented (fixed partly bug #48) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14129 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d4112f6b |
|
29-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Applied some changes suggested by mmu_man, more to come, though: - has_signals_pending() is not declared in Be headers, and it isn't declared in our KernelExport.h anymore, too - removed snooze_etc() from KernelExport.h, as it's already defined in OS.h (and really exported by libroot.so). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12506 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
20b656f0 |
|
12-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Check the thread debug signal ignore masks before notifying the debugger of a signal. * Added sigaction_etc(). It's just a sigaction() for which the thread in question can be specified. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11704 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
db75a08b |
|
08-Mar-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Solved the big mystery in Ingo's life: in C, func(); and func(void); is not the same. This fixes the "missing prototype" warnings. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11627 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
782c98af |
|
25-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added KILL_SIGNALS, a signal mask for SIGKILL + SIGKILLTHR. * Removed SIGKILLTHR from BLOCKABLE_SIGS. * Made header C++ safe. * Added function is_kill_signal_pending(), returning true, if a SIGKILL[THR] is pending for the current thread. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11487 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1ec1e118 |
|
09-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
handle_signals() now takes a pointer to a cpu_state, so that after restoring and re-disabling interrupts the state can be propagated back to the caller. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11309 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
46365cce |
|
31-Aug-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Added new syscall _kern_sigprocmask(), renamed other signal syscalls to the new naming scheme. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8768 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
383cdedb |
|
28-Aug-2004 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Several follow-up changes required by the changes either to the VFS syscalls or to the syscall mechanism (which exposed naming and parameter inconsistencies). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8703 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a9731b41 |
|
26-Jan-2003 |
Axel Dörfler <axeld@pinc-software.de> |
Housekeeping changes and small bug-fixes: Added new syscall for set_thread_priority(). Replaced the userland syscall snooze_until() with snooze_etc() (the latter has to be exported to userland and realize snooze() and snooze_until()). Cleaned the sources - scheduler functions now have the scheduler_ prefix. Moved signal related stuff into ksignal.h (out of thread.h). Replaced public kernel API with direct exports (i.e. resume_thread() instead of thread_resume_thread()). Removed the thread_create_XXX_thread*() calls, and replaced them with a BeOS compatible set. Made some fields of struct thread a bit prettier. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2569 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4ad7d95bac481ad2c29b5ba200adceb18cf1575a |
|
09-Aug-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
Revert "Add sys/ucontext.h" This reverts commit 6ddf93bfbec1ecec76cf119c50327f93f6d4fef8. As pointed out by Ingo, those were moved to sugnal.h in the latest issue (issue 7) of the POSIX spec. Sorry!
|
#
6ddf93bfbec1ecec76cf119c50327f93f6d4fef8 |
|
09-Aug-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
Add sys/ucontext.h * Move ucontext_t and mcontext_t there as that's where POSIX says they should be.
|
#
e85e399fd7b229b8bc92f28928a059876d7216d3 |
|
17-Mar-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
commpage: randomize position of commpage This patch introduces randomization of commpage position. From now on commpage table contains offsets from begining to of the commpage to the particular commpage entry. Similary addresses of symbols in ELF memory image "commpage" are just offsets from the begining of the commpage. This patch also updates KDL so that commpage entries are recognized and shown correctly in stack trace. An update of Debugger is yet to be done.
|
#
24df65921befcd0ad0c5c7866118f922da61cb96 |
|
11-Jun-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged signals-merge branch into trunk with the following changes: * Reorganized the kernel locking related to threads and teams. * We now discriminate correctly between process and thread signals. Signal handlers have been moved to teams. Fixes #5679. * Implemented real-time signal support, including signal queuing, SA_SIGINFO support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition of the real-time signal range. Closes #1935 and #2695. * Gave SIGBUS a separate signal number. Fixes #6704. * Implemented <time.h> clock and timer support, and fixed/completed alarm() and [set]itimer(). Closes #5682. * Implemented support for thread cancellation. Closes #5686. * Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554. * Lots over smaller more or less related changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4535495d80c86e19e2610e7444a4fcefe3e0f8e6 |
|
10-Jan-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged the signals branch into trunk, with these changes: * The team and thread kernel structures have been renamed to Team and Thread respectively and moved into the new BKernel namespace. * Several (kernel add-on) sources have been converted from C to C++ since private kernel headers are included that are no longer C compatible. Changes after merging: * Fixed gcc 2 build (warnings mainly in the scary firewire bus manager). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
10f0fc8f2063591b21f7fcd699cde574ec1c68ca |
|
31-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented sigwait(). * Not sure if it works as intended, as the specs are a bit vague. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24717 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bc2001bb3999da0cde5b83b5f448de628cdc5f08 |
|
22-Feb-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
We have to update the pending signals thread flag when restoring the signal block mask when returning from a signal handler. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24064 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0dd3108ca08b4ebac77328b089f0c4394438bac8 |
|
21-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added SIGNAL_FLAG_DONT_RESTART_SYSCALL for send_signal_etc() which utilizes the THREAD_FLAG_DONT_RESTART_SYSCALL (but only in SIGCONT for now). * resume_thread() is now using that flag to be compatible with BeOS. * This fixes the Terminal hanging on close. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24045 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
df716df51dd01317209b9523c7230307d3531f3b |
|
05-Sep-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added is_signal_blocked() convenience function. * Defined flag SIGNAL_FLAG_TEAMS_LOCKED for send_signal_etc(), so it can be called with the team lock being held. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22186 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
33f0dbe40a37eee0ead3a4522d78197ff1d1e747 |
|
03-Sep-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Resolved TODO: waitpid() clears pending SIGCHLD, if the signal is blocked and no other child status is available. * Respect SA_NOCLDWAIT and ignored SIGCHLD in waitpid(): Unless a child status is available immediately, the thread shall block until all children are gone. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22161 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b70ea5992e7913f4ce19c4bc2ab75273364ff06 |
|
16-Aug-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented sigaltstack() and set_signal_stack(), thus closing bug #1401. * On exec() the new function thread_reset_for_exec() is called which clears the signals and cancels an eventually set alarm. Both things weren't done before... * Some minor cleanups. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21989 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
50374cbdcac9fc96ae187fff7b7a75151a508d65 |
|
20-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Changed the signal handling code so that handle_signals() can be called without having the thread lock held and interrupts disabled. Cleaned up the signal handling code, and fixed some minor bugs with blockable vs. non-blockable signals. thread_debug_info was using uint64 for signals sets instead of sigset_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14457 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab38c90461c6b8cf21169e0e25f6fd9b9b8a612a |
|
13-Sep-2005 |
Jérôme Duval <korli@users.berlios.de> |
added a libroot sigpending, kernel support isn't implemented (fixed partly bug #49) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14181 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
96e6579454d896c92b04926766fc14c98fdf9249 |
|
07-Sep-2005 |
Jérôme Duval <korli@users.berlios.de> |
added a libroot sigsuspend, kernel support isn't implemented (fixed partly bug #48) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14129 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d4112f6bc56784206024c5731f829f1e68e9e52a |
|
29-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Applied some changes suggested by mmu_man, more to come, though: - has_signals_pending() is not declared in Be headers, and it isn't declared in our KernelExport.h anymore, too - removed snooze_etc() from KernelExport.h, as it's already defined in OS.h (and really exported by libroot.so). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12506 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
20b656f066536c7423b4e6d1969297eb45b25f9b |
|
12-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Check the thread debug signal ignore masks before notifying the debugger of a signal. * Added sigaction_etc(). It's just a sigaction() for which the thread in question can be specified. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11704 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
db75a08b982b5471ca529d6d3b6f7e32f1108158 |
|
08-Mar-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Solved the big mystery in Ingo's life: in C, func(); and func(void); is not the same. This fixes the "missing prototype" warnings. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11627 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
782c98afd9b856369fe39dae8b1abf8c7a1ea4f3 |
|
25-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added KILL_SIGNALS, a signal mask for SIGKILL + SIGKILLTHR. * Removed SIGKILLTHR from BLOCKABLE_SIGS. * Made header C++ safe. * Added function is_kill_signal_pending(), returning true, if a SIGKILL[THR] is pending for the current thread. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11487 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1ec1e1185bb45198f59c6d1e6e645677f3318986 |
|
09-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
handle_signals() now takes a pointer to a cpu_state, so that after restoring and re-disabling interrupts the state can be propagated back to the caller. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11309 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
46365ccea618326def79310864f7a26364f6ba09 |
|
31-Aug-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Added new syscall _kern_sigprocmask(), renamed other signal syscalls to the new naming scheme. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8768 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
383cdedbd2f1de98851f38bf12d8edef67346ffd |
|
28-Aug-2004 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Several follow-up changes required by the changes either to the VFS syscalls or to the syscall mechanism (which exposed naming and parameter inconsistencies). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8703 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a9731b41c119ec606f9585d2370c0d5d5539eb53 |
|
26-Jan-2003 |
Axel Dörfler <axeld@pinc-software.de> |
Housekeeping changes and small bug-fixes: Added new syscall for set_thread_priority(). Replaced the userland syscall snooze_until() with snooze_etc() (the latter has to be exported to userland and realize snooze() and snooze_until()). Cleaned the sources - scheduler functions now have the scheduler_ prefix. Moved signal related stuff into ksignal.h (out of thread.h). Replaced public kernel API with direct exports (i.e. resume_thread() instead of thread_resume_thread()). Removed the thread_create_XXX_thread*() calls, and replaced them with a BeOS compatible set. Made some fields of struct thread a bit prettier. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2569 a95241bf-73f2-0310-859d-f6bbb57e9c96
|