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
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
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
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
c9d22e484b
Write draft aarch64 trampoline that compiles.
2024-07-09 15:00:58 +02:00
4lDO2
c639fd37ba
Implement sigaltstack.
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
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
4lDO2
a166a1ebb2
For now, put ptr to pctl in TCB.
2024-07-09 15:00:57 +02:00
4lDO2
63509e75ce
Use new signal ABI where 'actions' are in shmem.
2024-07-09 15:00:56 +02:00
4lDO2
39f45b0f67
Fix i686 trampoline.
2024-07-09 15:00:56 +02:00
4lDO2
5b8d53ddd3
Fix x86_64 trampoline.
2024-07-09 15:00:56 +02:00
4lDO2
cda5f18946
Change interrupt stack format, emulate atomicity.
2024-07-09 15:00:56 +02:00
4lDO2
9bb34901bf
Adjust trampolines, only ip and 'archdep' regs are saved.
2024-07-09 15:00:56 +02:00
4lDO2
442954915b
Fix x86_64 spurious signal jump condition.
2024-07-09 15:00:56 +02:00