Browse Source

* i8086 near heap renamed 'tiny heap', moved to the inc/ directory

git-svn-id: branches/i8086@24082 -
nickysn 12 years ago
parent
commit
c44f760015
3 changed files with 47 additions and 47 deletions
  1. 1 1
      .gitattributes
  2. 43 43
      rtl/inc/tinyheap.inc
  3. 3 3
      rtl/msdos/system.pp

+ 1 - 1
.gitattributes

@@ -7789,7 +7789,6 @@ rtl/i8086/i8086.inc svneol=native#text/plain
 rtl/i8086/int64p.inc svneol=native#text/plain
 rtl/i8086/int64p.inc svneol=native#text/plain
 rtl/i8086/makefile.cpu svneol=native#text/plain
 rtl/i8086/makefile.cpu svneol=native#text/plain
 rtl/i8086/math.inc svneol=native#text/plain
 rtl/i8086/math.inc svneol=native#text/plain
-rtl/i8086/nearheap.inc svneol=native#text/plain
 rtl/i8086/set.inc svneol=native#text/plain
 rtl/i8086/set.inc svneol=native#text/plain
 rtl/i8086/setjump.inc svneol=native#text/plain
 rtl/i8086/setjump.inc svneol=native#text/plain
 rtl/i8086/setjumph.inc svneol=native#text/plain
 rtl/i8086/setjumph.inc svneol=native#text/plain
@@ -7881,6 +7880,7 @@ rtl/inc/textrec.inc svneol=native#text/plain
 rtl/inc/thread.inc svneol=native#text/plain
 rtl/inc/thread.inc svneol=native#text/plain
 rtl/inc/threadh.inc svneol=native#text/plain
 rtl/inc/threadh.inc svneol=native#text/plain
 rtl/inc/threadvr.inc svneol=native#text/plain
 rtl/inc/threadvr.inc svneol=native#text/plain
+rtl/inc/tinyheap.inc svneol=native#text/plain
 rtl/inc/typefile.inc svneol=native#text/plain
 rtl/inc/typefile.inc svneol=native#text/plain
 rtl/inc/ucomplex.pp svneol=native#text/plain
 rtl/inc/ucomplex.pp svneol=native#text/plain
 rtl/inc/ufloat128.pp svneol=native#text/plain
 rtl/inc/ufloat128.pp svneol=native#text/plain

+ 43 - 43
rtl/i8086/nearheap.inc → rtl/inc/tinyheap.inc

@@ -2,7 +2,7 @@
     This file is part of the Free Pascal run time library.
     This file is part of the Free Pascal run time library.
     Copyright (c) 2011 by the Free Pascal development team.
     Copyright (c) 2011 by the Free Pascal development team.
 
 
-    Near heap manager for i8086, based on the FPC embedded target heap
+    Tiny heap manager for the i8086 near heap, embedded targets, etc.
 
 
     See the file COPYING.FPC, included in this distribution,
     See the file COPYING.FPC, included in this distribution,
     for details about the copyright.
     for details about the copyright.
@@ -14,34 +14,34 @@
  **********************************************************************}
  **********************************************************************}
 
 
     const
     const
-      NearHeapMinBlock = 16;
+      TinyHeapMinBlock = 16;
 
 
     type
     type
-      PNearHelpBlock = ^TNearHeapBlock;
-      TNearHeapBlock = record
+      PTinyHeapBlock = ^TTinyHeapBlock;
+      TTinyHeapBlock = record
         Size: ptruint;
         Size: ptruint;
-        Next: PNearHelpBlock;
+        Next: PTinyHeapBlock;
         EndAddr: pointer;
         EndAddr: pointer;
       end;
       end;
 
 
     var
     var
-      NearHeapBlocks: PNearHelpBlock = nil;
+      TinyHeapBlocks: PTinyHeapBlock = nil;
 
 
-    procedure InternalFreeMem(Addr: Pointer; Size: ptruint); forward;
+    procedure InternalTinyFreeMem(Addr: Pointer; Size: ptruint); forward;
 
 
     function FindSize(p: pointer): ptruint;
     function FindSize(p: pointer): ptruint;
       begin
       begin
         FindSize := PPtrUInt(p)[-1];
         FindSize := PPtrUInt(p)[-1];
       end;
       end;
 
 
-    function SysNearGetMem(Size: ptruint): pointer;
+    function SysTinyGetMem(Size: ptruint): pointer;
       var
       var
-        p, prev: PNearHelpBlock;
+        p, prev: PTinyHeapBlock;
         AllocSize, RestSize: ptruint;
         AllocSize, RestSize: ptruint;
       begin
       begin
         AllocSize := align(size+sizeof(ptruint), sizeof(pointer));
         AllocSize := align(size+sizeof(ptruint), sizeof(pointer));
 
 
-        p := NearHeapBlocks;
+        p := TinyHeapBlocks;
         prev := nil;
         prev := nil;
         while assigned(p) and (p^.Size < AllocSize) do
         while assigned(p) and (p^.Size < AllocSize) do
           begin
           begin
@@ -53,7 +53,7 @@
           begin
           begin
             result := @pptruint(p)[1];
             result := @pptruint(p)[1];
 
 
-            if p^.Size-AllocSize >= NearHeapMinBlock then
+            if p^.Size-AllocSize >= TinyHeapMinBlock then
               RestSize := p^.Size-AllocSize
               RestSize := p^.Size-AllocSize
             else
             else
               begin
               begin
@@ -62,19 +62,19 @@
               end;
               end;
 
 
             if prev = nil then
             if prev = nil then
-              NearHeapBlocks := p^.Next
+              TinyHeapBlocks := p^.Next
             else
             else
               prev^.next := p^.next;
               prev^.next := p^.next;
 
 
             pptruint(p)^ := size;
             pptruint(p)^ := size;
 
 
-            InternalFreemem(pointer(ptruint(p)+AllocSize), RestSize);
+            InternalTinyFreeMem(pointer(ptruint(p)+AllocSize), RestSize);
           end
           end
         else
         else
           Result := nil;
           Result := nil;
       end;
       end;
 
 
-    function GetAlignedMem(Size, Alignment: ptruint): pointer;
+    function TinyGetAlignedMem(Size, Alignment: ptruint): pointer;
       var
       var
         mem: Pointer;
         mem: Pointer;
         memp: ptruint;
         memp: ptruint;
@@ -85,14 +85,14 @@
           begin
           begin
             mem := GetMem(Size+Alignment-1);
             mem := GetMem(Size+Alignment-1);
             memp := align(ptruint(mem), Alignment);
             memp := align(ptruint(mem), Alignment);
-            InternalFreemem(mem, ptruint(memp)-ptruint(mem));
+            InternalTinyFreeMem(mem, ptruint(memp)-ptruint(mem));
             result := pointer(memp);
             result := pointer(memp);
           end;
           end;
       end;
       end;
 
 
-    procedure InternalFreeMem(Addr: Pointer; Size: ptruint);
+    procedure InternalTinyFreeMem(Addr: Pointer; Size: ptruint);
       var 
       var 
-        b, p, prev: PNearHelpBlock;
+        b, p, prev: PTinyHeapBlock;
         concatenated: boolean;
         concatenated: boolean;
       begin
       begin
         concatenated := true;
         concatenated := true;
@@ -101,15 +101,15 @@
             concatenated := false;
             concatenated := false;
             b := addr;
             b := addr;
 
 
-            b^.Next := NearHeapBlocks;
+            b^.Next := TinyHeapBlocks;
             b^.Size := Size;
             b^.Size := Size;
             b^.EndAddr := pointer(ptruint(addr)+size);
             b^.EndAddr := pointer(ptruint(addr)+size);
 
 
-            if NearHeapBlocks = nil then
-              NearHeapBlocks := b
+            if TinyHeapBlocks = nil then
+              TinyHeapBlocks := b
             else
             else
               begin
               begin
-                p := NearHeapBlocks;
+                p := TinyHeapBlocks;
                 prev := nil;
                 prev := nil;
 
 
                 while assigned(p) do
                 while assigned(p) do
@@ -119,7 +119,7 @@
                         addr:=p;
                         addr:=p;
                         size:=p^.size+size;
                         size:=p^.size+size;
                         if prev = nil then
                         if prev = nil then
-                          NearHeapBlocks:=p^.next
+                          TinyHeapBlocks:=p^.next
                         else
                         else
                           prev^.next:=p^.next;
                           prev^.next:=p^.next;
                         concatenated:=true;
                         concatenated:=true;
@@ -129,7 +129,7 @@
                       begin
                       begin
                         size:=p^.size+size;
                         size:=p^.size+size;
                         if prev = nil then
                         if prev = nil then
-                          NearHeapBlocks:=p^.next
+                          TinyHeapBlocks:=p^.next
                         else
                         else
                           prev^.next:=p^.next;
                           prev^.next:=p^.next;
                         concatenated:=true;
                         concatenated:=true;
@@ -142,7 +142,7 @@
 
 
                 if not concatenated then
                 if not concatenated then
                   begin
                   begin
-                    p := NearHeapBlocks;
+                    p := TinyHeapBlocks;
                     prev := nil;
                     prev := nil;
 
 
                     while assigned(p) and (p^.Size < size) do
                     while assigned(p) and (p^.Size < size) do
@@ -157,41 +157,41 @@
                         prev^.Next := b;
                         prev^.Next := b;
                       end
                       end
                     else
                     else
-                      NearHeapBlocks := b;
+                      TinyHeapBlocks := b;
                   end;
                   end;
               end;
               end;
           end;
           end;
       end;
       end;
 
 
-    function SysNearFreeMem(Addr: Pointer): ptruint;
+    function SysTinyFreeMem(Addr: Pointer): ptruint;
       var
       var
         sz: ptruint;
         sz: ptruint;
       begin
       begin
         sz := Align(FindSize(addr)+SizeOf(ptruint), sizeof(pointer));
         sz := Align(FindSize(addr)+SizeOf(ptruint), sizeof(pointer));
 
 
-        InternalFreeMem(@pptruint(addr)[-1], sz);
+        InternalTinyFreeMem(@pptruint(addr)[-1], sz);
         
         
         result := sz;
         result := sz;
       end;
       end;
 
 
-    function SysNearFreeMemSize(Addr: Pointer; Size: Ptruint): ptruint;
+    function SysTinyFreeMemSize(Addr: Pointer; Size: Ptruint): ptruint;
       begin
       begin
-        result := SysNearFreeMem(addr);
+        result := SysTinyFreeMem(addr);
       end;
       end;
 
 
-    function SysNearMemSize(p: pointer): ptruint;
+    function SysTinyMemSize(p: pointer): ptruint;
       begin
       begin
         result := findsize(p);
         result := findsize(p);
       end;
       end;
 
 
-    function SysNearAllocMem(size: ptruint): pointer;
+    function SysTinyAllocMem(size: ptruint): pointer;
       begin
       begin
-        result := SysNearGetMem(size);
+        result := SysTinyGetMem(size);
         if result<>nil then
         if result<>nil then
-          FillChar(result^,SysNearMemSize(result),0);
+          FillChar(result^,SysTinyMemSize(result),0);
       end;
       end;
 
 
-    function SysNearReAllocMem(var p: pointer; size: ptruint):pointer;
+    function SysTinyReAllocMem(var p: pointer; size: ptruint):pointer;
       var
       var
         sz: ptruint;
         sz: ptruint;
       begin
       begin
@@ -206,11 +206,11 @@
                 move(pbyte(p)^, pbyte(result)^, sz);
                 move(pbyte(p)^, pbyte(result)^, sz);
               end;
               end;
           end;
           end;
-        SysNearFreeMem(p);
+        SysTinyFreeMem(p);
         p := result;
         p := result;
       end;
       end;
 
 
-    procedure RegisterNearHeapBlock(AAddress: pointer; ASize: ptruint);
+    procedure RegisterTinyHeapBlock(AAddress: pointer; ASize: ptruint);
       begin
       begin
         if (ptruint(AAddress) and 1) = 0 then
         if (ptruint(AAddress) and 1) = 0 then
           begin
           begin
@@ -222,14 +222,14 @@
       end;
       end;
 
 
     const
     const
-      NearHeapMemoryManager: TMemoryManager = (
+      TinyHeapMemoryManager: TMemoryManager = (
         NeedLock: false;  // Obsolete
         NeedLock: false;  // Obsolete
-        GetMem: @SysNearGetMem;
-        FreeMem: @SysNearFreeMem;
-        FreeMemSize: @SysNearFreeMemSize;
-        AllocMem: @SysNearAllocMem;
-        ReAllocMem: @SysNearReAllocMem;
-        MemSize: @SysNearMemSize;
+        GetMem: @SysTinyGetMem;
+        FreeMem: @SysTinyFreeMem;
+        FreeMemSize: @SysTinyFreeMemSize;
+        AllocMem: @SysTinyAllocMem;
+        ReAllocMem: @SysTinyReAllocMem;
+        MemSize: @SysTinyMemSize;
         InitThread: nil;
         InitThread: nil;
         DoneThread: nil;
         DoneThread: nil;
         RelocateHeap: nil;
         RelocateHeap: nil;

+ 3 - 3
rtl/msdos/system.pp

@@ -87,7 +87,7 @@ procedure MsDos_Carry(var Regs: Registers); external name 'FPC_MSDOS_CARRY';
 
 
 {$I system.inc}
 {$I system.inc}
 
 
-{$I nearheap.inc}
+{$I tinyheap.inc}
 
 
 procedure DebugWrite(const S: string);
 procedure DebugWrite(const S: string);
 begin
 begin
@@ -168,8 +168,8 @@ end;
 
 
 procedure InitNearHeap;
 procedure InitNearHeap;
 begin
 begin
-  SetMemoryManager(NearHeapMemoryManager);
-  RegisterNearHeapBlock(__nearheap_start, ptruint(__nearheap_end) - ptruint(__nearheap_start));
+  SetMemoryManager(TinyHeapMemoryManager);
+  RegisterTinyHeapBlock(__nearheap_start, ptruint(__nearheap_end) - ptruint(__nearheap_start));
 end;
 end;
 
 
 function CheckLFN:boolean;
 function CheckLFN:boolean;