Commit Graph

2173 Commits

Author SHA1 Message Date
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 71800d2b73 Fix spurious ign signal. 2024-07-09 15:00:56 +02:00
4lDO2 f28fe4a387 Use fetch_add instead of CAS when setting sigmask.
This makes sigprocmask, the way it is currently implemented, wait-free
(technically I think x86 only guarantees LOCK XADD is lock-free and
fair, but still).
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 568fc09277 Reset sighandler in fexec before switching addrsp. 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
4lDO2 2d66993b3f Adapt to now-inverted signal mask (allowset). 2024-07-09 15:00:55 +02:00
4lDO2 157d9fb2ba Set sigmask to sa_mask inside handler. 2024-07-09 15:00:55 +02:00
4lDO2 630bf2ae3d Fix popf operand size. 2024-07-09 15:00:55 +02:00
4lDO2 590ad70a9f Fix trampoline for i686. Ctrl-C now works. 2024-07-09 15:00:55 +02:00
4lDO2 c93b43b4b7 Build on i686, remove unnecessary #[no_mangle]. 2024-07-09 15:00:55 +02:00
4lDO2 18b5c73b61 Compile on the other arches. 2024-07-09 15:00:55 +02:00
4lDO2 f37bb3cb16 Fix sigaction test on Linux, and rustfmt. 2024-07-09 15:00:55 +02:00
4lDO2 0ea2b5d45f Fix compilation on Linux. 2024-07-09 15:00:55 +02:00
4lDO2 3db425fef6 Correctly find signal number and check action. 2024-07-09 15:00:54 +02:00
4lDO2 98a2a566d9 Almost succeed at repeatedly accepting signals. 2024-07-09 15:00:54 +02:00
4lDO2 d6588668e2 Fix pre-Rust part of trampoline!. 2024-07-09 15:00:54 +02:00
4lDO2 a1e1a159ae Initialize altstack properly. 2024-07-09 15:00:54 +02:00
4lDO2 a265c8b7a0 Reimplement libredox sig{procmask,action}. 2024-07-09 15:00:54 +02:00
4lDO2 b6eb7dcf0f Impl From<Errno> for syscall::Error. 2024-07-09 15:00:54 +02:00
4lDO2 c217745524 Mark sig{add,del}set unsafe, rather than unsound. 2024-07-09 15:00:54 +02:00
4lDO2 8f66730d37 Set child sighandler *after* cloning address space. 2024-07-09 15:00:54 +02:00
4lDO2 20284eb2b2 Fix rlct_clone. 2024-07-09 15:00:54 +02:00
4lDO2 42c24dd755 Successfully run more userspace. 2024-07-09 15:00:53 +02:00
4lDO2 7fcf5a1aca Ignore special bits when selecting signal. 2024-07-09 15:00:53 +02:00
4lDO2 a2ab86d253 Implement signal selection in asm, for SA_ONSTACK. 2024-07-09 15:00:53 +02:00
4lDO2 d45adade1d Remove obsolete proc usage, now reaches init. 2024-07-09 15:00:53 +02:00
4lDO2 4e93f68324 Implement hack to ensure TCB exists in bootstrap. 2024-07-09 15:00:53 +02:00
4lDO2 a60710c597 Add missing signal arch offsets. 2024-07-09 15:00:53 +02:00
4lDO2 58d1153536 Split part of TCB into generic-rt 2024-07-09 15:00:53 +02:00
4lDO2 736a445af6 Use new proc control struct too. 2024-07-09 15:00:53 +02:00
4lDO2 edfe46c60b Write x86-64 signal trampoline asm stub. 2024-07-09 15:00:52 +02:00
4lDO2 5177ca3926 Remove memoffset dependency. 2024-07-09 15:00:52 +02:00
4lDO2 7d562920c2 Add sigaction boilerplate. 2024-07-09 15:00:52 +02:00
4lDO2 98ac085c5d Add sigprocmask stub to rt. 2024-07-09 15:00:52 +02:00
4lDO2 e1d3bf475a Increase SIGRTMIN to 35. 2024-07-09 15:00:52 +02:00
4lDO2 53ed7aae59 Move rlct_clone, sigprocmask, sigaction, to rt. 2024-07-09 15:00:52 +02:00
4lDO2 0440df142a Patch redox-syscall to fork. 2024-07-09 15:00:52 +02:00
4lDO2 4eb20628f3 Move some of signal config to redox-rt. 2024-07-09 15:00:52 +02:00
4lDO2 a800693266 Refactor: move redox-exec into redox-rt::proc. 2024-07-09 15:00:52 +02:00
Jeremy Soller e6f94291be Merge branch 'derick/fixes' into 'master'
Four distinct fixes for significant incorrectness bugs, as three small commits

See merge request redox-os/relibc!481
2024-07-09 12:57:23 +00:00
Derick Eddington 572f211be0 Fix getgrgid_r. 2024-07-06 22:47:55 -07:00
Derick Eddington 7c81de68b8 Fix header::grp::parse_grp. 2024-07-06 22:47:55 -07:00
Derick Eddington 802748b611 Fix Rwlock::acquire_write_lock to avoid blocking indefinitely.
Without this fix, `tests/bins_static/pthread/rwlock_randtest` would sometimes get stuck blocking
forever with only 1+ threads all doing `pthread_rwlock_wrlock()` but all the other threads
having finished.
2024-07-06 22:47:55 -07:00
Jeremy Soller 90af01986c Merge branch 'improve-instructions' into 'master'
Improve the testing instructions on the README

See merge request redox-os/relibc!477
2024-06-24 16:58:53 +00:00
Ribbon 482d094614 Improve the testing instructions on the README 2024-06-24 16:35:57 +00:00