Commit Graph

89 Commits

Author SHA1 Message Date
4lDO2 8f234edf69 Fix riscv64 fork asm. 2025-04-19 19:27:04 +02:00
4lDO2 2fe8dc8f6e Add (untested) riscv64 sighandler SYS_CALL asm. 2025-04-19 19:27:03 +02:00
4lDO2 aa034fccc8 Compile on riscv64gc. 2025-04-19 19:27:03 +02:00
4lDO2 0083043736 Write and fix waitpid_multiple test. 2025-04-19 19:27:02 +02:00
4lDO2 a293b02992 Fix aarch64 signal test. 2025-04-19 19:27:02 +02:00
4lDO2 403beeb9f6 Fix sigqueue test for aarch64. 2025-04-19 19:27:02 +02:00
4lDO2 d559450d69 Use abort() rather than unreachable! when exit fails. 2025-04-19 19:27:02 +02:00
4lDO2 1c6b3ad78b Fix aarch64 child_hook. 2025-04-19 19:27:01 +02:00
4lDO2 fb8e3cd751 Fix sigqueue on i686. 2025-04-19 19:27:01 +02:00
4lDO2 05481b36a6 Fix IPC size on i686. 2025-04-19 19:27:01 +02:00
4lDO2 2fbbdcc1c9 Aarch64 fix, make i686 compile. 2025-04-19 19:27:01 +02:00
4lDO2 0213ac2d15 Probably fix aarch.
Bootloader is currently panicking so a bit hard to test.
2025-04-19 19:27:01 +02:00
4lDO2 c773544906 Fix sigentry for realtime sigs, fixing sigqueue test. 2025-04-19 19:27:01 +02:00
4lDO2 f813f5a222 Fix sigtimedwait realtime signals, almost handler too. 2025-04-19 19:27:01 +02:00
4lDO2 ac7e0755f1 Fix SyncSigPctl invocation. 2025-04-19 19:26:59 +02:00
4lDO2 ad5efd0f11 Reach init fork 2025-04-19 19:26:57 +02:00
4lDO2 26399569de Reach init w/proc manager. 2025-04-19 19:26:57 +02:00
4lDO2 b851422214 WIP: use proc manager in non-init fork. 2025-04-19 19:26:57 +02:00
bjorn3 facc643e18 Couple of misc improvements
Fix a bunch of warnings and clarify that execve will never return Ok by
using Infallible
2025-03-30 20:18:01 +02:00
Andrey Turkin a4122753e6 Initial RISC-V64 support 2024-10-11 06:44:54 +03:00
4lDO2 79e1550215 Use only sig & 63 when checking SA_ONSTACK. 2024-09-24 19:34:53 +02:00
4lDO2 21d23092cd Mostly fix i686. 2024-09-24 19:34:52 +02:00
4lDO2 e82ced6e4e Fix non-edge-case signal handling on aarch64. 2024-09-24 19:34:52 +02:00
4lDO2 d6396cb4e8 Probably complete aarch64 asm.
It contains all signal logic x86_64 already has, although statistically
it will certainly have a few errors.
2024-09-24 19:34:52 +02:00
4lDO2 9a7cfaeaf1 Simplify aarch64 asm slightly. 2024-09-24 19:34:52 +02:00
4lDO2 e860a19e8f WIP: Update i686 signal asm. 2024-09-24 19:34:52 +02:00
4lDO2 09108634cf Set uc_stack properly.
POSIX does not appear to explicitly mention that this should be the
sigaltstack, but other Linux appears to treat it as the sigaltstack.
2024-09-24 19:34:52 +02:00
4lDO2 30caf55429 Set siginfo_t.si_{pid,uid} from kill signals too. 2024-09-24 19:34:51 +02:00
4lDO2 e5136e66c1 Draft of updated aarch64 signal trampoline. 2024-09-24 19:34:51 +02:00
4lDO2 d0db6a1ce0 Fix i686. 2024-09-24 19:34:51 +02:00
4lDO2 f6761407e5 Pass si_pid to all realtime signals. 2024-09-24 19:34:51 +02:00
4lDO2 6fe7c264f6 Pass si_code to siginfo_t struct. 2024-09-24 19:34:51 +02:00
4lDO2 cce268afbf Pass old stack pointer in uc_stack. 2024-09-24 19:34:51 +02:00
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 933b447c7a redox-rt: fix i686 pctl pending offset 2024-08-29 14:11:52 +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 44ec1676ae Activate new threads' TCBs early. 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 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 c286dd6d33 Use new-thread proc API 2024-07-18 23:59:47 +02:00