Commit Graph

1304 Commits

Author SHA1 Message Date
Jeremy Soller 059f2a0d07 Support ContextList::spawn on i686 2022-07-29 09:27:35 -06:00
Jeremy Soller a1d9edee52 Use Mutex<u64> instead of AtomicU64 for user scheme packet ID 2022-07-29 09:25:40 -06:00
Jeremy Soller bf9e630f65 Fix building proc scheme on non-x86_64 2022-07-29 09:25:17 -06:00
Jeremy Soller f0d3e3281c Use acpi on i686 2022-07-28 08:22:55 -06:00
Jeremy Soller 8db4596f73 Use x86 crate on i686 as well 2022-07-28 08:22:26 -06:00
Jeremy Soller fdb4ad8e88 Only build debugger on x86_64 for now 2022-07-28 08:21:31 -06:00
Jeremy Soller 8d5ca62499 Add linker and target for i686 2022-07-28 08:20:49 -06:00
Jeremy Soller a45a7c696e Merge branch 'fix-bootstrap' into 'master'
Fix bootstrap

See merge request redox-os/kernel!196
2022-07-28 13:38:27 +00:00
4lDO2 f3faf33e3f Add a workaround to treat bootstrap mem as owned. 2022-07-28 14:17:02 +02:00
4lDO2 ca4525462d Return right number of bytes written for addrspace. 2022-07-28 14:16:07 +02:00
4lDO2 2d935ca6d3 Update cargo.lock 2022-07-27 18:01:58 +02:00
Jeremy Soller 7fcdd8f6e2 Merge branch 'userspace_fexec' into 'master'
Userspace fexec

See merge request redox-os/kernel!195
2022-07-27 15:40:58 +00:00
4lDO2 e58bf714d8 Update rmm and syscall 2022-07-27 17:39:16 +02:00
4lDO2 99362f98d2 Add a better interface for modifying addrspaces. 2022-07-27 10:52:52 +02:00
4lDO2 939feacdc5 Add fn for validating user memory range bounds. 2022-07-27 10:52:46 +02:00
4lDO2 5bbfdcda6b Add mmap-min-addr and support unmapping parent PTs. 2022-07-27 10:52:45 +02:00
4lDO2 0720db2265 Remove SYS_EXEC debug code. 2022-07-27 10:52:29 +02:00
4lDO2 308c2cc711 Support modifying processes' sigactions.
This is, other than vfork, the last piece of functionality that the
previous clone() offered (CLONE_SIGHAND) which previously was not
implemented.
2022-07-27 10:52:29 +02:00
4lDO2 b766501896 Fix deadlock while starting APs. 2022-07-27 10:52:29 +02:00
4lDO2 bf82387f3b Fix KernelMapper unlocking code. 2022-07-27 10:52:29 +02:00
4lDO2 e60321d4a0 Partial: migrate remaining parts to RMM. 2022-07-27 10:52:23 +02:00
4lDO2 dc8ce1c22b Partial: migrate context handling code to RMM. 2022-07-27 10:52:23 +02:00
4lDO2 c912d9e0db Partial: migrate syscall handling code to RMM. 2022-07-27 10:52:23 +02:00
4lDO2 6589083238 Partial: Migrate schemes to RMM. 2022-07-27 10:52:23 +02:00
4lDO2 486d296d6d Remove old x86_64 paging code, migrate to RMM. 2022-07-27 10:52:23 +02:00
4lDO2 302e55098c Migrate misc x86_64 parts to RMM. 2022-07-27 10:52:23 +02:00
4lDO2 2bb019bc44 Partial: migrate debugger, add consistency check. 2022-07-27 10:52:23 +02:00
4lDO2 648b0edb41 Partial: migrate allocator to RMM. 2022-07-27 10:52:23 +02:00
4lDO2 0aec4d3341 Partial: migrate ACPI to RMM. 2022-07-27 10:52:23 +02:00
4lDO2 8970ce1fe7 Benefit from addrspace abstraction in switch. 2022-07-27 10:52:22 +02:00
4lDO2 1cdd462244 Move the initfs scheme to userspace. 2022-07-27 10:52:22 +02:00
4lDO2 351d77ad9b Improve floating point handling. 2022-07-27 10:52:22 +02:00
4lDO2 94578efd1e Use alloc_zeroed when allocating FX. 2022-07-27 10:52:22 +02:00
4lDO2 db3b834f19 Also inherit pgid, umask, sigmask. 2022-07-27 10:52:22 +02:00
4lDO2 4aea0cfd0c Fix AddrSpace memory leak. 2022-07-27 10:52:22 +02:00
4lDO2 b141cdaad2 Fail if funmap's length isn't page size divisible. 2022-07-27 10:52:22 +02:00
4lDO2 60e3e0af34 Flush less frequently in funmap. 2022-07-27 10:52:22 +02:00
4lDO2 549c023398 Return correct bytes written in proc:X/addrspace. 2022-07-27 10:52:22 +02:00
4lDO2 59d74689dc Copy filetable more efficiently. 2022-07-27 10:52:22 +02:00
4lDO2 0b67997c7b Fix "id == current" check in set_addr_space. 2022-07-27 10:52:21 +02:00
4lDO2 240d91f951 Set address space/files when closing, not writing.
This fixes file descriptor leaks. Suppose relibc is just about to set
the address space. For this, it needs to write the address space fd to
the selection fd. To avoid having to close them in the kernel, it rather
memorizes what the file descriptors refer to internally, and then do the
actual operation when they are gone, i.e. when closing.
2022-07-27 10:52:19 +02:00
4lDO2 fa48c7aa97 Deduplicate code for transferring/creating grants. 2022-07-27 10:52:11 +02:00
4lDO2 cb40eb3792 Support reading all grants and transferring grants. 2022-07-27 10:52:10 +02:00
4lDO2 b50495bfa5 WIP: Support clone in userspace
Everything seems to work for the most part, but now there are tons of
daemons which rely on syscall::clone, which is now implemented in relibc
:(
2022-07-27 10:52:04 +02:00
4lDO2 283ada82a0 WIP: Remove SYS_CLONE (to be done in userspace). 2022-07-27 10:52:03 +02:00
4lDO2 563121596d Fix running on multi_core.
Turns out the problem all along was that the ActivePageTable was never
dropped in usermode_bootstrap. So as soon as any other hardware thread
tried to do page table business, it deadlocked!
2022-07-27 10:51:45 +02:00
4lDO2 6e5015dcab WIP: Add necessary interfaces for setuid/setgid. 2022-07-27 10:51:45 +02:00
4lDO2 37f9b292f1 Add kfmap to fix properly reobtaining grants. 2022-07-27 10:51:45 +02:00
4lDO2 de28cc4918 Add a Scheme supertrait for kernel-only methods. 2022-07-27 10:51:45 +02:00
4lDO2 31c4bc8a1c Remove kernel support for fmap_old and funmap_old. 2022-07-27 10:51:45 +02:00