169 Commits

Author SHA1 Message Date
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
80cc165957 Read memory map tags from multiboot 2018-03-20 14:11:21 +01:00
0b3648de7c Chapter 8: Exceptions - COMPLETE 2018-03-20 14:11:21 +01:00
73a33c23a4 Clean up header file for interrupts 2018-03-20 14:11:21 +01:00
6f0a745adc Ability to bind handler functions to interrupts 2018-03-20 14:11:21 +01:00
c1c3842ace Functions for reading/writing some special registers 2018-03-20 14:11:21 +01:00
96d2ebd977 Collect the cpu specific stuff 2018-03-20 14:11:21 +01:00
b801c7cf3c Make tests unassuming 2018-03-20 14:11:21 +01:00
86808bce0d Breakpoint in int_handler. Function for checking fault in gdb 2018-03-20 14:11:21 +01:00