diff --git a/Asuro.iso b/Asuro.iso index c989de90..6df257fc 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 49a71228..65c93a9c 100755 Binary files a/bin/kernel.bin and b/bin/kernel.bin differ diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 49a71228..65c93a9c 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index dbcf60d7..605e8b7a 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 5720ab9c..d773c64b 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index e2d62fcf..a9259244 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 709f32ee..b2554822 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/lists.ppu b/lib/lists.ppu index eb4e3d37..b8871da3 100644 Binary files a/lib/lists.ppu and b/lib/lists.ppu differ diff --git a/src/lists.pas b/src/lists.pas index 9c2f7ce1..cb0eb237 100644 --- a/src/lists.pas +++ b/src/lists.pas @@ -29,6 +29,7 @@ function LL_Delete(LinkedList : PLinkedListBase; idx : uint32) : boolean; function LL_Size(LinkedList : PLinkedListBase) : uint32; function LL_Insert(LinkedList : PLinkedListBase; idx : uint32) : Void; function LL_Get(LinkedList : PLinkedListBase; idx : uint32) : Void; +procedure LL_Free(LinkedList : PLinkedListBase); procedure LL_TEST(); implementation @@ -166,6 +167,14 @@ begin LL_Get:= Base^.Data; end; +procedure LL_Free(LinkedList : PLinkedListBase); +begin + while LL_Size(LinkedList) > 0 do begin + LL_Delete(LinkedList, 0); + end; + kfree(void(LinkedList)); +end; + procedure LL_Test(); var i : uint32; @@ -211,6 +220,8 @@ begin for i:=0 to LL_Size(LList)-1 do begin console.writestringln(PChar(LL_Get(LList, i))); end; + + LL_Free(LList); end; end. \ No newline at end of file