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