git-svn-id: https://spexeah.com:8443/svn/Asuro@486 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
1 parent
5201663d0b
commit
5b07f46d1b
15 files changed
+32
-21
No files matched your search
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+25
-10
File diff suppressed because it is too large.
Load diff
@@ -179,8 +179,6 @@ begin
|
||||
console.writestringln('');
|
||||
console.writestringln('Press any key to boot in to Asuro Terminal...');
|
||||
|
||||
//GPF;
|
||||
|
||||
keyboard.hook(@temphook);
|
||||
|
||||
util.halt_and_dont_catch_fire;
|
||||
|
||||
@@ -48,7 +48,7 @@ begin
|
||||
push_trace('pmemorymanager.set_memory_area_present');
|
||||
FirstBlock:= base SHR 22;
|
||||
LastBlock:= (base+length) SHR 22;
|
||||
if (FirstBlock > 1023) then exit;
|
||||
if not (FirstBlock > 1023) then begin
|
||||
while LastBlock > 1023 do begin
|
||||
LastBlock:= LastBlock-1;
|
||||
end;
|
||||
@@ -63,6 +63,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
pop_trace;
|
||||
end;
|
||||
|
||||
@@ -168,7 +169,7 @@ begin
|
||||
if not PhysicalMemory[i].Allocated then begin
|
||||
if alloc_block(i, caller) then begin
|
||||
new_block:= i;
|
||||
exit;
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@@ -181,19 +182,15 @@ begin
|
||||
push_trace('pmemorymanager.free_block');
|
||||
if block > 1023 then begin
|
||||
GPF;
|
||||
exit;
|
||||
end;
|
||||
if block < 2 then begin
|
||||
GPF;
|
||||
exit;
|
||||
end;
|
||||
if not PhysicalMemory[block].Present then begin
|
||||
GPF;
|
||||
exit;
|
||||
end;
|
||||
if PhysicalMemory[block].MappedTo <> caller then begin
|
||||
GPF;
|
||||
exit;
|
||||
end;
|
||||
PhysicalMemory[block].Allocated:= false;
|
||||
pop_trace;
|
||||
|
||||
@@ -190,15 +190,16 @@ var
|
||||
begin
|
||||
push_trace('vmemorymanager.new_page');
|
||||
new_page:= false;
|
||||
if PageDirectory^[page_number].Present then exit;
|
||||
if PageDirectory^[page_number].Reserved then exit;
|
||||
if not PageDirectory^[page_number].Present then begin
|
||||
if not PageDirectory^[page_number].Reserved then begin;
|
||||
block:= pmemorymanager.new_block(uint32(PageDirectory));
|
||||
if block < 2 then begin
|
||||
GPF;
|
||||
exit;
|
||||
end else begin
|
||||
new_page:= map_page(page_number, block);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
pop_trace;
|
||||
end;
|
||||
|
||||
|
||||
Reference in new issue
Block a user