133 Commits

Author SHA1 Message Date
1fca5af522 Change interface for getting and setting current thread 2018-03-21 23:12:43 +01:00
c26434f814 Some threading code cleanup 2018-03-21 23:12:43 +01:00
251b5f71c9 Simple scheduler 2018-03-21 23:12:43 +01:00
1e2f81a5d8 Very simple threading and context switching. 2018-03-21 23:12:43 +01:00
fc6c7f3bc7 VMM -- Interface cleanup 2018-03-21 09:21:40 +01:00
4011b5f12f VMM -- Use a simple uint64 for page table entries 2018-03-20 15:41:27 +01:00
cb09833ebc VMM -- Know what? Let's ignore huge pages for simplicity 2018-03-20 14:11:22 +01:00
ae2de799f3 VMM -- Various cleanup 2018-03-20 14:11:22 +01:00
e86857dca4 PMM -- simplification of code 2018-03-20 14:11:22 +01:00
9bc1abceff VMM -- Touch and set page in one operation 2018-03-20 14:11:22 +01:00
df0df93da7 Don't put multiboot data in page stack 2018-03-20 14:11:22 +01:00
36c517dd82 Use a direct address for P4 rather than a pointer 2018-03-20 14:11:22 +01:00
8711fee390 Interface cleanup 2018-03-20 14:11:22 +01:00
9a479b1132 Add a PAGE_GLOBAL flag for kernel pages 2018-03-20 14:11:22 +01:00
470eb5e9f9 Also map non-free memory areas into kernel space 2018-03-20 14:11:22 +01:00
3a4136c225 PMM -- calloc function for getting cleared pages 2018-03-20 14:11:22 +01:00
5dc4e27392 Map all free memory pages and add to page stack 2018-03-20 14:11:22 +01:00
cf1b631461 VMM -- making sure things will work with virtual memory 2018-03-20 14:11:22 +01:00
8ac8bc7b6c VMM -- adding interface to header file 2018-03-20 14:11:22 +01:00
ce937c8088 VMM - free_page does not unset P2 entry if P1 is not empty 2018-03-20 14:11:22 +01:00
96a877c95b VMM - touch_page stops at P2 for huge pages 2018-03-20 14:11:22 +01:00
e68698ff80 VMM - set_page does not overwrite 4kb pages with 2mb 2018-03-20 14:11:22 +01:00
518eaf73c3 VMM - set_page sets 2Mb pages 2018-03-20 14:11:22 +01:00
f81e5cd8b0 VMM - get_page gets 2mb pages 2018-03-20 14:11:22 +01:00
69022cadd5 VMM -- refactoring, break out test for page presence 2018-03-20 14:11:22 +01:00
d54a206f82 VMM - free_page returns P1 to PMM if empty 2018-03-20 14:11:22 +01:00
46e27fb817 VMM - free_page deos not unset P2 entry if P1 is not empty 2018-03-20 14:11:22 +01:00
992930d293 VMM - free_page deos not unset P2 entry if not asked to 2018-03-20 14:11:22 +01:00
3134a1d6ad VMM - free_page unsets P2 entry if P1 is empty 2018-03-20 14:11:22 +01:00
e62c167494 VMM -- refactor page table setup in tests 2018-03-20 14:11:22 +01:00
063c065d2f VMM - free_page unsets page 2018-03-20 14:11:22 +01:00
bbd220a395 VMM -- test refactoring 2018-03-20 14:11:22 +01:00
f78500d603 PMM -- Make sure stuff works even with V2P and P2V 2018-03-20 14:11:22 +01:00
acf9a43980 VMM - touch_page fails if out of pages 2018-03-20 14:11:22 +01:00
59ffd9d5f5 VMM - touch_page sets flags 2018-03-20 14:11:22 +01:00
86d8aea9ea VMM - touch_page adds P2 and P1 2018-03-20 14:11:22 +01:00
1d4b689215 VMM - touch_page adds P3 2018-03-20 14:11:22 +01:00
28c8afe3c5 VMM - set_page with tests 2018-03-20 14:11:21 +01:00
cd7ed38a40 VMM -- get_page should include flags 2018-03-20 14:11:21 +01:00
57482136ae VMM - get_page fails if PTE not present 2018-03-20 14:11:21 +01:00
d32e93b72b VMM - get_page works for different address 2018-03-20 14:11:21 +01:00
1ad156902a VMM - get_page ignores flags -- also restructuring - bad Thomas! 2018-03-20 14:11:21 +01:00
1b928b3c97 VMM - get_page returns correct address 2018-03-20 14:11:21 +01:00
1a7852de4d PMM -- finishing up and changing names, types 2018-03-20 14:11:21 +01:00
28916257f1 PMM -- Fix type for pointer to next block 2018-03-20 14:11:21 +01:00
82fbafc38e PMM -- Convert between virtual and physical address 2018-03-20 14:11:21 +01:00
1daf8ed47b PMM - alloc two pages 2018-03-20 14:11:21 +01:00
e7bdea771b PMM - alloc zero after all free pages 2018-03-20 14:11:21 +01:00
9b930ae5d3 PMM - alloc return 0 if no free pages 2018-03-20 14:11:21 +01:00
776fd87862 PMM - alloc returns freed page 2018-03-20 14:11:21 +01:00