4lDO2
593e21d95e
Support schemes.
2023-07-25 10:52:19 +02:00
4lDO2
0a5b6ce656
Reach proc:memory access in userspace.
2023-07-25 10:52:19 +02:00
4lDO2
11fdb3bb46
Copy on writes to CoW pages.
2023-07-25 10:52:19 +02:00
4lDO2
565db7694f
Add cow_refcount.
2023-07-25 10:52:19 +02:00
4lDO2
276f051d19
Further userspace progress, fix RMM bug.
2023-07-25 10:52:18 +02:00
4lDO2
8cfbc39b9f
Get further in userspace.
2023-07-25 10:52:18 +02:00
4lDO2
490e1b2777
WIP: Track grant ownership.
2023-07-25 10:52:18 +02:00
4lDO2
e7d94ddff5
WIP: Lazy zeroed mapping and page fault handler.
2023-07-25 10:52:18 +02:00
4lDO2
8dfa73db35
Post-refactor fixes.
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
4lDO2
d4b5899c53
Remove allocator_owned hack.
2023-07-25 10:49:55 +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
Jeremy Soller
8e0f54cb31
Clippy fixes
2022-11-11 13:19:14 -07:00
Jeremy Soller
6753251af3
Do not allow mmap with page_count 0
2022-08-31 16:14:27 -06:00
Jeremy Soller
44d5e6573a
Updated utable switching code for aarch64
2022-08-20 13:31:20 -06:00
Jeremy Soller
01df1c20da
Use TableKind everywhere
2022-08-20 13:06:52 -06:00
Jeremy Soller
2191308d15
setup_new_utable for aarch64
2022-07-29 18:58:19 -06:00
Jeremy Soller
5d55d4eb87
Fix warnings
2022-07-29 18:33:54 -06:00
Jeremy Soller
be12d0f1bd
Add initial i686 arch module
2022-07-29 18:12:49 -06:00
Jeremy Soller
0c80643077
Make graphical_debug arch independent and fix lots of warnings
2022-07-29 15:56:44 -06:00
4lDO2
f3faf33e3f
Add a workaround to treat bootstrap mem as owned.
2022-07-28 14:17:02 +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
dc8ce1c22b
Partial: migrate context handling code 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
4aea0cfd0c
Fix AddrSpace memory leak.
2022-07-27 10:52:22 +02:00
4lDO2
59d74689dc
Copy filetable more efficiently.
2022-07-27 10:52:22 +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
23f49414bd
Fix phys offset, lock grants correctly.
2022-07-27 10:51:45 +02:00
4lDO2
e6e1348072
Implement exec, and change UserGrant allocator.
2022-07-27 10:51:44 +02:00
4lDO2
846318e716
WIP: Attempt implementing fexec in userspace.
2022-07-27 10:51:43 +02:00
4lDO2
4d7da495f5
Fix "clone grant using fmap"
...
This does the same as the previous MR, but fixes the issue where the
parent process got the mapping (and at the wrong address) and not the
child process.
2022-04-11 21:31:36 +02:00
4lDO2
e72fd5a0e4
Fix a kernel deadlock in empty().
...
For more information, see https://gitlab.redox-os.org/4lDO2/kernel/-/commit/b3b5d1b864eec030d53ccd2ab907c68958f140aa
2022-04-09 13:38:59 +02:00
Jeremy Soller
87b3bef06c
Revert "Merge branch 'clone_grant_using_fmap' into 'master'"
...
This reverts merge request !190
2022-03-30 14:54:49 +00:00
4lDO2
a3356c3fdd
Clone grant using fmap
2021-12-30 11:27:44 +01:00
Jeremy Soller
77b8215a66
Getter for Grant region, remove set_mapped, and make region_mut private
2021-11-30 20:06:45 -07:00
4lDO2
307fcf3ad7
Remove now unused TLS struct.
2021-08-11 17:46:40 +02:00
4lDO2
d6e1797620
Make Mapper::map fallible.
2021-08-11 17:46:40 +02:00
4lDO2
465c461b60
WIP: Stop using recursive mapping.
...
Note that this is very preliminary, and I merely got my already freezing
kernel branch not to triple fault, but I would probably apply this patch
to upstream.
What is changed here, is that rather than relying on recursive mapping
for accessing page table frames, it now uses linear translation
(virt=phys+KERNEL_OFFSET). The only problem is that the paging code now
makes assumptions that the entire physical address space remains mapped,
which is not necessarily the case on x86_64 architecturally, even though
systems with RAM more than a PML4 are very rare. We'd probably lazily
(but linearly) map physical address space using huge pages.
2021-08-11 17:46:33 +02:00
Jeremy Soller
0c3542ff51
Store funmap data with the context's grants
2021-08-10 20:46:30 -06:00
Jeremy Soller
8d61c79b23
Use RMM TableKind and fix x86_64 compilation
2021-05-03 21:15:46 -06:00
Jeremy Soller
2aa4d8caf5
Merge remote-tracking branch 'origin/aarch64-rebase' into riscv64
2021-05-03 20:52:59 -06:00
Jeremy Soller
b9448274fc
Switch to using RMM PageFlags
2021-05-03 17:28:08 -06:00