LogicMemoryManager working.

git-svn-id: https://spexeah.com:8443/svn/Asuro@159 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
kieron
2017-05-20 22:53:27 +00:00
parent 0a26e076b9
commit 87094a7afd
10 changed files with 118 additions and 74 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
+8 -17
View File
@@ -14,8 +14,9 @@ uses
bios_data_area, bios_data_area,
keyboard, keyboard,
vmemorymanager, vmemorymanager,
pmemorymanager; pmemorymanager,
//scheduler; lmemorymanager,
scheduler;
procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall;
@@ -50,32 +51,22 @@ begin
isr.init(); isr.init();
irq.init(); irq.init();
pmemorymanager.init(); pmemorymanager.init();
//while true do begin end;
vmemorymanager.init(); vmemorymanager.init();
lmemorymanager.init();
vmemorymanager.new_page(0); scheduler.init();
pint:= puint32(0);
console.writestringln('Writing 1234 to Logical Address $00000000');
pint^:= 1234;
if pint^ = 1234 then begin
console.writestringln('Read 1234 back from Logical Address $00000000!!!');
end;
//scheduler.init();
STI; STI;
isr32.hook(uint32(@bios_data_area.tick_update)); isr32.hook(uint32(@bios_data_area.tick_update));
{z:= 1; {z:= 1;
while true do begin while true do begin
console.writeword(z); console.writehex(z);
console.writestring(': '); console.writestring(': ');
pint:= kalloc(1024*4); pint:= kalloc(1024*4);
console.writewordln(uint32(pint)); console.writehexln(uint32(pint));
if pint = nil then while true do begin end else pint^:= 1234; if pint = nil then while true do begin end else pint^:= 1234;
//kfree(pint);
z:=z+1; z:=z+1;
end;} end;}
+109 -57
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -60,6 +60,7 @@ begin
PageDirectory:= load_current_page_directory; PageDirectory:= load_current_page_directory;
map_page(KERNEL_PAGE_NUMBER + 1, 1); map_page(KERNEL_PAGE_NUMBER + 1, 1);
map_page(KERNEL_PAGE_NUMBER + 2, 2); map_page(KERNEL_PAGE_NUMBER + 2, 2);
map_page(KERNEL_PAGE_NUMBER + 3, 3);
console.writestringln('VMM: INIT END.'); console.writestringln('VMM: INIT END.');
end; end;