From c595bfb819579765b5c7aec5b5ed13c8ec10a8a3 Mon Sep 17 00:00:00 2001 From: kieron Date: Thu, 18 May 2017 14:44:13 +0000 Subject: [PATCH] Memory Manager Started. git-svn-id: https://spexeah.com:8443/svn/Asuro@103 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5083136 -> 5083136 bytes iso/boot/asuro.bin | Bin 28900 -> 28900 bytes lib/libpconsole.a | Bin 64564 -> 64564 bytes lib/libpmultiboot.a | Bin 27222 -> 27222 bytes lib/libpsystem.a | Bin 124006 -> 124006 bytes src/kernel.pas | 9 +++++++++ src/memorymanager.pas | 38 +++++++++++++++++++++++++++++++++++--- 7 files changed, 44 insertions(+), 3 deletions(-) diff --git a/Asuro.iso b/Asuro.iso index 99ab082f794d5b10797d986033bc4da49f950777..d32d4b1f24016731cd54503c3cf486ab10a0acf4 100644 GIT binary patch delta 14911 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 delta 14094 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 HsDl3hs>V|* diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index eba019b45129a8a5bf21f6d2204f225b86fed87b..0193c5469029e10c834f2bd2263d3005f5f77c36 100755 GIT binary patch delta 5708 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 diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 235d523b3e35529cbeb7c6667165ec785bae8f15..3a6b7319d612bac40cb03118d272e260340ad780 100644 GIT binary patch delta 509 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 diff --git a/src/kernel.pas b/src/kernel.pas index e8b46669..46e9f3e9 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -26,6 +26,7 @@ var mbm : uint32; z : uint32; dds : uint32; + pint : puint32; begin mbi:= mbinfo; @@ -46,6 +47,14 @@ begin isr.init(); irq.init(); + memorymanager.init(); + pint:= kalloc(sizeof(uint32)); + if pint = nil then console.writestringln('!'); + pint^:= 1234; + console.writeintln(pint^); + pint:= kalloc(18); + util.halt_and_catch_fire; + STI; isr32.hook(uint32(@bios_data_area.tick_update)); diff --git a/src/memorymanager.pas b/src/memorymanager.pas index 16431e2a..e397d37f 100644 --- a/src/memorymanager.pas +++ b/src/memorymanager.pas @@ -3,7 +3,8 @@ unit memorymanager; interface uses - util; + util, + console; const ALLOC_SPACE = 8; //64-Bit Allocations @@ -17,16 +18,47 @@ implementation var Memory_Start : uint32; - Memory_Manager : bitpacked array[1..MAX_ENTRIES] of Boolean; + Memory_Manager : packed array[1..MAX_ENTRIES] of Boolean; procedure init; +var + i : uint32; + begin + For i:=0 to MAX_ENTRIES-1 do begin + Memory_Manager[i]:= false; + end; Memory_Start:= uint32(@util.endptr); end; function kalloc(size : uint32) : void; +var + blocks : uint32; + rem : uint32; + i,j : uint32; + miss : boolean; + begin - kalloc:= void(0); + blocks:= size div 8; + rem:= size - (blocks * 8); + if rem > 0 then blocks:= blocks + 1; + kalloc:= nil; + for i:=0 to MAX_ENTRIES-1 do begin + miss:= false; + for j:=0 to blocks-1 do begin + if Memory_Manager[i+j] then miss:= true; + end; + if not miss then begin + kalloc:= void(Memory_Start+(i * 8)); + for j:=0 to blocks-1 do begin + Memory_Manager[i+j]:= true; + end; + console.writestring('Allocated '); + console.writeint(blocks); + console.writestringln(' Block(s).'); + break; + end; + end; end; procedure kfree(area : void);