Drew Galbraith
815a603c1c
[Zion] Mark pages as not present before calling invlpg.
2023-12-05 16:11:37 -08:00
Drew Galbraith
1f8085f791
[Zion] Call invlpg when unmapping memory.
2023-12-05 15:53:42 -08:00
Drew Galbraith
46ae5de30a
[Zion] Free paging structures after process exit.
2023-11-24 17:19:32 -08:00
Drew Galbraith
164309eada
[zion] Add utility to zero out a page when allocating one.
2023-06-19 23:44:33 -07:00
Drew Galbraith
e246f28d9c
Get the second process elf from a MemoryObject instead of hardcoding.
...
Allows us to delete the CopyIntoNonResidentProcess function and simply
rely on the MemoryObject copy functions.
2023-06-07 00:19:15 -07:00
Drew Galbraith
23895b5c6c
Spawn Processes using memory primitives rather than and elf loader.
...
This allows us to remove the temporary syscall for that style of process
spawn.
2023-06-07 00:04:53 -07:00
Drew Galbraith
b06c76e477
Create a MemoryObject class and use it to load programs.
2023-06-06 21:44:10 -07:00
Drew Galbraith
ef8eb5d993
Add a threading syscall API.
2023-06-06 16:24:03 -07:00
Drew Galbraith
1db93e5b12
Move PML4 initialization into the VirtualMemory class.
2023-05-30 21:39:19 -07:00
Drew Galbraith
b9b45c5e45
Add the ability to copy memory to non resident process.
...
Use/Test this by loading the user space elf from the kernel process
before it starts rather than as a part of the first thread.
This simplifies thread start a fair bit.
2023-05-30 01:27:47 -07:00
Drew Galbraith
f6609983d2
Move away from using recursive mapping for page tables.
...
Having the HHDM-based mapping allows us to more easily map data into
non-resident processes.
2023-05-30 01:06:01 -07:00
Drew Galbraith
6f5b65de30
Map user pages in the proper mode.
...
This causes the user code to execute succesfully.
However now we don't differentiate between syscalls so we pass right
over the exit syscall and continue executing until we fault.
2023-05-29 13:06:08 -07:00
Drew Galbraith
d3024211a7
Cycle through multiple tasks in multiple processes
2023-05-18 13:56:54 -07:00
Drew Galbraith
de2c96b848
Internal many paging_util functions.
2023-05-18 11:40:13 -07:00
Drew Galbraith
2d719d0443
Add a bootstrap physical memory manager.
...
This will allow the real physical memory manager to use allocations.
2023-05-18 11:00:05 -07:00
Drew Galbraith
0b7e667368
Add a basic kernel heap object.
...
Currently allocation always fails because we don't
have a way to allocate a physical page.
2023-05-18 10:59:39 -07:00
Drew Galbraith
45b5817a36
Recursively map the PML4
2023-05-18 02:00:01 -07:00