Commit Graph

93 Commits

Author SHA1 Message Date
4lDO2 f7bffacef0 Implement Drop for AddrSpace. 2023-07-25 10:52:20 +02:00
4lDO2 593e21d95e Support schemes. 2023-07-25 10:52:19 +02:00
4lDO2 f53a1ffd53 Remove proc:pid/memory. 2023-07-25 10:52:19 +02:00
4lDO2 490e1b2777 WIP: Track grant ownership. 2023-07-25 10:52:18 +02:00
4lDO2 34b4512dbd Refactor Grants.
Page alignment is now verified at compile time, for example.
2023-07-25 10:52:13 +02:00
bjorn3 7500ffaa5a Remove uses of the arbitrary_self_types feature 2023-07-10 17:03:36 +02:00
4lDO2 3ded84c945 Simplify x86_64 percpu and GSBASE calculation 2023-07-10 14:13:12 +00:00
4lDO2 56f88e80c2 Usercopy migration 2023-07-06 13:03:21 +00:00
4lDO2 58c0c5d040 Remove one level of indirection for Context::name. 2023-05-27 14:27:34 +02:00
4lDO2 45f031b50d Improve clone_entry lock granularity. 2023-04-30 17:54:05 +02:00
4lDO2 62eab8a2fe Retry rather than panic if clone_entry is unset. 2023-04-09 12:04:08 +02:00
4lDO2 8d14d54fa9 Support scheduler CPU affinity. 2023-02-15 14:50:01 +01:00
Jeremy Soller 8e0f54cb31 Clippy fixes 2022-11-11 13:19:14 -07:00
Jeremy Soller 91b5d64c22 Use current address space for proc kfmap workaround 2022-08-27 18:05:20 -06:00
Jeremy Soller 2278fd7fe1 Workaround to ensure proc kfmap does not try to map kernel memory 2022-08-27 10:55:52 -06:00
Jeremy Soller b3b5bb8a91 Simplify handling of aarch64 env regs 2022-08-25 08:12:07 -06:00
Jeremy Soller f7e8026494 Set aarch64 thread pointers 2022-08-24 19:21:36 -06:00
Jeremy Soller 84704353af Support address space change on aarch64 2022-08-24 18:54:42 -06:00
Jeremy Soller 6d3fa8b374 Enable clone_handler on aarch64 2022-08-24 15:50:10 -06:00
Jeremy Soller 310a0dda08 Some aarch64 register struct updates 2022-08-24 08:56:57 -06:00
Jeremy Soller 538ad9e57f Remove debug message when writing x86 EnvRegisters 2022-08-21 13:22:58 -06:00
Jeremy Soller c750ee26a8 Implement setting FS/GS offset on x86 2022-08-20 21:21:32 -06:00
Jeremy Soller d3f42989c9 Fix compilation on x86_64 2022-08-20 14:51:05 -06:00
Jeremy Soller 9dd069c8ca Support proc partially with aarch64 2022-08-20 14:45:45 -06:00
Jeremy Soller 38361661e6 Add proc scheme stubs for aarch64 2022-08-19 16:00:35 -06:00
Jeremy Soller bd9ee98ba9 Use same code for clone_handler on 32-bit and 64-bit x86 2022-08-17 14:40:30 -06:00
Jeremy Soller d47ba636a0 Support x86 in proc scheme 2022-08-17 14:32:12 -06:00
4lDO2 431407aff0 Remove SYS_CHMOD and cwd related syscalls/files. 2022-08-13 19:44:44 +02:00
Jeremy Soller 5d55d4eb87 Fix warnings 2022-07-29 18:33:54 -06:00
Jeremy Soller 0c80643077 Make graphical_debug arch independent and fix lots of warnings 2022-07-29 15:56:44 -06:00
Jeremy Soller bf9e630f65 Fix building proc scheme on non-x86_64 2022-07-29 09:25:17 -06:00
4lDO2 ca4525462d Return right number of bytes written for addrspace. 2022-07-28 14:16:07 +02:00
4lDO2 99362f98d2 Add a better interface for modifying addrspaces. 2022-07-27 10:52:52 +02:00
4lDO2 5bbfdcda6b Add mmap-min-addr and support unmapping parent PTs. 2022-07-27 10:52:45 +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 6589083238 Partial: Migrate schemes 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 351d77ad9b Improve floating point handling. 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 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 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 de28cc4918 Add a Scheme supertrait for kernel-only methods. 2022-07-27 10:51:45 +02:00