bjorn3
a89f93ff00
Move all drawing code from Display to DebugDisplay
2024-07-22 14:22:15 +02:00
bjorn3
dc36d18812
Remove unnecessary discard of return value in debug::Writer
2024-07-22 14:15:20 +02:00
4lDO2
51c4be10e0
Allow waitpid to be interrupted.
2024-07-20 23:17:31 +02:00
4lDO2
005635083d
Fix thread cleanup during active file ops.
...
This fixes a bug where the window of `viewer` does not exit, due to a
leaked file descriptor.
2024-07-20 22:14:54 +02:00
4lDO2
29170ccbc7
Fix sigchld test.
2024-07-18 19:38:47 +02:00
4lDO2
05bde858f9
Fix SIGCONT deadlock.
2024-07-18 16:47:16 +02:00
4lDO2
daa11c911f
Fix syscall debug, more success in sigchld test.
2024-07-18 16:14:07 +02:00
4lDO2
c54195f10d
Ensure process signals can also interrupt.
2024-07-17 17:31:05 +02:00
4lDO2
2d50055dfb
WIP: support thread/process-specific kill.
2024-07-17 15:29:05 +02:00
4lDO2
3c540efb00
Support sending signals to individual threads.
2024-07-16 22:06:21 +02:00
4lDO2
8de850e7e9
Ensure all threads stop in exit().
2024-07-16 20:33:37 +02:00
4lDO2
79bbf79656
Fix some proc scheme FIXMEs.
2024-07-16 20:28:17 +02:00
4lDO2
cc465c008b
Remove rustc hack.
2024-07-16 19:52:18 +02:00
4lDO2
bda12fe55e
Print MXCSR in the SIMD exception handler.
2024-07-16 13:14:42 +02:00
4lDO2
cde108439c
Fix kill deadlock.
2024-07-16 13:05:42 +02:00
4lDO2
6bd01513c5
Simplify and improve thread/process cleanup.
2024-07-15 18:08:43 +02:00
4lDO2
a3dedb0639
Do proper resource cleanup for thread exit too.
2024-07-15 18:08:43 +02:00
4lDO2
8259ed281c
Boot to desktop with process/context changes.
2024-07-15 18:08:43 +02:00
4lDO2
40f5c01586
Flatten syscall match statement.
2024-07-15 18:08:43 +02:00
4lDO2
e67c040f69
WIP: Separate process status from context status.
2024-07-15 18:08:43 +02:00
4lDO2
7fbe5c72e9
Use strong references in context set.
2024-07-15 18:08:42 +02:00
4lDO2
80fe891c6e
WIP: Replace ContextId with direct Arcs.
2024-07-15 18:08:42 +02:00
4lDO2
038ff03996
Fix waitpid and improve debug.
2024-07-15 18:08:42 +02:00
4lDO2
0de23a1141
Use correct context for proc scheme 'new-thread'.
2024-07-15 18:08:42 +02:00
4lDO2
4202bc3ba0
WIP: add new-thread
2024-07-15 18:08:42 +02:00
4lDO2
208d74899a
Fix fork & process creation, now boots to desktop.
2024-07-15 18:08:42 +02:00
4lDO2
25974bec6e
It compiles.
2024-07-15 18:08:42 +02:00
4lDO2
de1bd46c84
Make proc scheme almost compile.
2024-07-15 18:08:42 +02:00
4lDO2
89d532a267
Fix half of proc scheme errors.
2024-07-15 18:08:42 +02:00
4lDO2
89d1d49a4e
Fix most code except proc scheme.
2024-07-15 18:08:41 +02:00
4lDO2
8f452b0b0f
WIP: continue the process transition
2024-07-15 18:08:41 +02:00
4lDO2
0da2fce64a
Separate context and process IDs.
2024-07-15 18:08:41 +02:00
4lDO2
74b824f40f
Add rustfmt to CI.
2024-07-15 17:54:27 +02:00
4lDO2
d94baa2712
Run rustfmt.
2024-07-15 17:50:18 +02:00
4lDO2
f3532f4549
Fix static mut ref warnings.
2024-07-15 17:48:46 +02:00
4lDO2
5e7db80285
Fix a bunch of warnings.
2024-07-15 17:48:45 +02:00
4lDO2
9259a36f5e
Run more of sigchld test correctly.
2024-07-15 17:20:58 +02:00
4lDO2
5abbcd8e34
Send SIGCHLD to parent after child stop/exit.
2024-07-15 17:20:57 +02:00
4lDO2
d70ad544e6
Fix SIGKILL and allow SYS_EXIT to pass 16 bits.
2024-07-15 17:20:57 +02:00
4lDO2
8f3e40a99e
Fix aarch64 compilation.
2024-07-15 17:20:57 +02:00
4lDO2
465128da26
Don't block nanosleep/futex <= signals are pending.
2024-07-15 17:20:57 +02:00
4lDO2
9198ee7e52
Reimplement shutdown and restart.
2024-07-15 17:20:57 +02:00
4lDO2
4dba818c83
Check pending unblocked signals before blocking.
...
This is not a perfect solution, since the kernel technically already has
all the information it needs to synchronize this between the kill()
invocation and the time WaitCondition::wait is called, but it should not
have any noticeable performance impact.
2024-07-15 17:20:57 +02:00
4lDO2
e9de24c097
Only return EINTR in kill() if self was killed.
2024-07-15 17:20:57 +02:00
4lDO2
965f5879b7
Never clear sig pending bits in the kernel.
2024-07-15 17:20:57 +02:00
4lDO2
ae8e13525f
Remove is_pending flag, read word directly instead.
2024-07-15 17:20:57 +02:00
4lDO2
f91b90445d
Force userspace to do post-syscall EINTR check.
2024-07-15 17:20:56 +02:00
4lDO2
e8060b259d
Only save ip and 'archdep' regs when signalling.
2024-07-15 17:20:56 +02:00
4lDO2
93a3401df4
Fix bug causing raise() to not deliver any signals.
2024-07-15 17:20:56 +02:00
4lDO2
13720f59d5
Make signals masked when clear rather than set.
2024-07-15 17:20:56 +02:00