Commit Graph

86 Commits

Author SHA1 Message Date
4lDO2 cdae79c129 Fix i686 compilation. 2024-09-24 19:34:51 +02:00
4lDO2 abc2ec7bb5 Add prototype ucontext_t support. 2024-09-24 19:34:51 +02:00
4lDO2 b48da5622d Add rtsig to i686 trampoline too. 2024-09-24 19:34:50 +02:00
4lDO2 13e7b77643 Implement basic support for (kernel) rt signals. 2024-09-24 19:34:50 +02:00
4lDO2 47e07654cb WIP: use rt signal constants from sigabi 2024-09-24 19:34:50 +02:00
4lDO2 75b2dcaa45 WIP: implement sigqueue 2024-09-24 19:34:23 +02:00
Kamil Koczurek 408a7b2ab6 Add capability to set the default scheme 2024-09-23 14:36:45 +00:00
4lDO2 933b447c7a redox-rt: fix i686 pctl pending offset 2024-08-29 14:11:52 +02:00
Peter Limkilde Svendsen 3193656f22 Put random() state behind mutex 2024-08-15 23:26:16 +00:00
bjorn3 49c708f537 Remove all uses of the legacy scheme syntax" 2024-08-04 13:49:10 +02:00
4lDO2 5f62c30539 Update aarch64's child_hook. 2024-07-20 22:18:25 +02:00
4lDO2 f7d9f4e21e Fix infinite loop & spurious signals for i686. 2024-07-20 19:41:04 +02:00
4lDO2 b71c34dd2d Fix i686 fork. 2024-07-20 14:42:51 +02:00
4lDO2 35c9485701 WIP: Implement process signals for i686 trampoline. 2024-07-20 13:01:30 +02:00
4lDO2 232f6e9ade Fix hardcoding of SUPPORTS_AVX. 2024-07-19 18:44:21 +02:00
4lDO2 518ba4c884 Raise unblocked signals in setmask, restore control flag. 2024-07-19 18:41:00 +02:00
4lDO2 44ec1676ae Activate new threads' TCBs early. 2024-07-18 23:59:48 +02:00
4lDO2 1067295d65 Fix signal restart logic. 2024-07-18 23:59:48 +02:00
4lDO2 6dd9332af2 WIP: Handle spurious signals properly.
These can occur in the following scenario:

- thread 1 has blocked signal A
- thread 2 has not blocked signal A
- signal A is sent to a process with thread 1 and thread 2
- thread 1 is simultaneously unblocking signal A, and thus jumps to the
  trampoline
- thread 2 is awoken, but thread 1 won the "fetch_andn" to clear the
  signal bit.

If the signal asm is jumped to automatically after each timer interrupt,
this scenario will also be relatively common due to that.
2024-07-18 23:59:48 +02:00
4lDO2 ff7eace6a7 Obtain offset of sig pctl more sanely. 2024-07-18 23:59:48 +02:00
4lDO2 ac5ac928f2 Implement raise() using pthread_kill. 2024-07-18 23:59:48 +02:00
4lDO2 4354bc94e8 Fix process-targeted signals. 2024-07-18 23:59:47 +02:00
4lDO2 15cdc4e0aa Fix (modified) audiod. 2024-07-18 23:59:47 +02:00
4lDO2 d00ec085e1 WIP: Support receiving process-targeted signals. 2024-07-18 23:59:47 +02:00
4lDO2 0b3be2d190 Write correct value to kernel when exiting thread. 2024-07-18 23:59:47 +02:00
4lDO2 4cb6644181 Implement exit_this_thread on Redox. 2024-07-18 23:59:47 +02:00
4lDO2 c286dd6d33 Use new-thread proc API 2024-07-18 23:59:47 +02:00
4lDO2 dfb234079e Fix signal fxrstor offset. 2024-07-16 14:46:09 +02:00
4lDO2 22cab7ca8d Fix errors on non-x86_64. 2024-07-16 13:32:18 +02:00
4lDO2 17cb748217 Implement syscall restart for waitpid. 2024-07-16 12:48:14 +02:00
4lDO2 4c20a9abb2 Enable syscall restart in futex_wait. 2024-07-16 11:55:06 +02:00
4lDO2 bcce7e18db Implement SA_RESTART for read and write. 2024-07-15 23:24:41 +02:00
4lDO2 e97f26c763 Use crates.io syscall dependency. 2024-07-15 17:31:12 +02:00
4lDO2 67976e759e Switch to upstream syscall dependency. 2024-07-15 17:19:42 +02:00
4lDO2 b64b0ebe18 Handle kill and killpg EINTR. 2024-07-09 15:00:58 +02:00
4lDO2 78247c8525 Pass signal correctly to SYS_KILL. 2024-07-09 15:00:58 +02:00
4lDO2 4ee878c474 Always use fxsave, store 'YMM_UPPER' manually. 2024-07-09 15:00:58 +02:00
4lDO2 2fe1d614f8 Fix aarch64 EINTR handler. 2024-07-09 15:00:58 +02:00
4lDO2 5916b94707 Fix aarch64 fork_ret. 2024-07-09 15:00:58 +02:00
4lDO2 618643b299 Work around aarch64 bootstrap crash. 2024-07-09 15:00:58 +02:00
4lDO2 5277f2f640 Fix typo in currently_pending. 2024-07-09 15:00:58 +02:00
4lDO2 c9d22e484b Write draft aarch64 trampoline that compiles. 2024-07-09 15:00:58 +02:00
4lDO2 8298417dee Implement sigpending on Redox. 2024-07-09 15:00:58 +02:00
4lDO2 c639fd37ba Implement sigaltstack. 2024-07-09 15:00:57 +02:00
4lDO2 6d5d0eb61e Set initial sigactions to SIG_DFL and correct bits. 2024-07-09 15:00:57 +02:00
4lDO2 6a3d247a90 Clear the signal bit in the handler. 2024-07-09 15:00:57 +02:00
4lDO2 a446ac1945 Fix (rare) stack corruption on x86_64. 2024-07-09 15:00:57 +02:00
4lDO2 c0e079132a AND rather than set sigmask inside signal. 2024-07-09 15:00:57 +02:00
4lDO2 126daaa186 Improve i686 trampoline and fix PIC. 2024-07-09 15:00:57 +02:00
4lDO2 5460ffc4c9 Jump to trampoline after SYS_{READ,WRITE} EINTR. 2024-07-09 15:00:57 +02:00