LogicMemoryManager working.
git-svn-id: https://spexeah.com:8443/svn/Asuro@159 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+8
-17
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user