From 869b0ecc854be8402e803a93032d146deabbfb6a Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 25 Oct 2004 15:38:59 +0000 Subject: [PATCH] * compiler defined HEAP and HEAPSIZE removed --- rtl/beos/system.pp | 19 ++------ rtl/bsd/osmain.inc | 28 ++--------- rtl/emx/system.pas | 19 ++------ rtl/inc/heap.inc | 9 ++-- rtl/inc/heaptrc.pp | 24 +++++++++- rtl/linux/osmain.inc | 29 ++--------- rtl/macos/system.pp | 103 ++++++++++++++++----------------------- rtl/morphos/system.pp | 94 ++++++++++++++---------------------- rtl/netware/system.pp | 23 ++------- rtl/netwlibc/system.pp | 21 ++------ rtl/os2/system.pas | 106 +++-------------------------------------- rtl/posix/sysposix.inc | 31 ++---------- rtl/template/system.pp | 43 +++-------------- rtl/watcom/system.pp | 38 ++++----------- rtl/win32/system.pp | 21 ++------ 15 files changed, 161 insertions(+), 447 deletions(-) diff --git a/rtl/beos/system.pp b/rtl/beos/system.pp index 37d9dbbe19..830ca0afb2 100644 --- a/rtl/beos/system.pp +++ b/rtl/beos/system.pp @@ -143,18 +143,6 @@ var myheapstart:pointer; heap_handle:longint; zero:longint; -{ first address of heap } -function getheapstart:pointer; -begin - getheapstart:=myheapstart; -end; - -{ current length of heap } -function getheapsize:longint; -begin - getheapsize:=myheapsize; -end; - { function to allocate size bytes more for the program } { must return the first address of new data space or nil if fail } function Sbrk(size : longint):pointer; @@ -177,7 +165,7 @@ begin end; {***************************************************************************** - OS Memory allocation / deallocation + OS Memory allocation / deallocation ****************************************************************************} function SysOSAlloc(size: ptrint): pointer; @@ -550,7 +538,10 @@ begin end. { $Log$ - Revision 1.16 2004-09-18 11:18:44 hajny + Revision 1.17 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.16 2004/09/18 11:18:44 hajny * handle type changed to thandle in do_isdevice Revision 1.15 2004/09/03 19:25:32 olle diff --git a/rtl/bsd/osmain.inc b/rtl/bsd/osmain.inc index eaaab10e1e..e1508bdd2f 100644 --- a/rtl/bsd/osmain.inc +++ b/rtl/bsd/osmain.inc @@ -80,29 +80,6 @@ Begin randseed:=longint(Fptime(nil)); End; -{***************************************************************************** - Heap Management -*****************************************************************************} - -var - _HEAP : longint;external name 'HEAP'; - _HEAPSIZE : longint;external name 'HEAPSIZE'; - -{$ifndef SYSTEM_HAS_GETHEAPSTART} -function getheapstart:pointer; -begin - getheapstart := @_HEAP; -end; -{$endif} - - -{$ifndef SYSTEM_HAS_GETHEAPSIZE} -function getheapsize:longint; -begin - getheapsize := _HEAPSIZE; -end; -{$endif} - {***************************************************************************** Low Level File Routines @@ -593,7 +570,10 @@ end; { $Log$ - Revision 1.15 2004-07-17 15:20:55 jonas + Revision 1.16 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.15 2004/07/17 15:20:55 jonas * don't use O_CREATE when opening a file for appending (fixes tw1744) Revision 1.14 2004/05/16 18:51:20 peter diff --git a/rtl/emx/system.pas b/rtl/emx/system.pas index 894acea5ba..3bc15d8615 100644 --- a/rtl/emx/system.pas +++ b/rtl/emx/system.pas @@ -289,7 +289,7 @@ function sbrk(size:longint):pointer; var L: longword; begin - WriteLn ('Trying to grow heap by ', Size, ' to ', HeapSize + Size); + WriteLn ('Trying to grow heap by ', Size); {$IFDEF CONTHEAP} WriteLn ('BrkLimit is ', BrkLimit); {$ENDIF CONTHEAP} @@ -323,18 +323,6 @@ asm end {['eax', 'edx']}; {$ENDIF DUMPGROW} -function getheapstart:pointer;assembler; - -asm - movl heap_base,%eax -end {['EAX']}; - -function getheapsize:longint;assembler; -asm - movl heap_brk,%eax -end {['EAX']}; - - function SysOSAlloc (Size: ptrint): pointer; begin SysOSAlloc := Sbrk (Size); @@ -1333,7 +1321,10 @@ begin end. { $Log$ - Revision 1.28 2004-09-18 11:12:49 hajny + Revision 1.29 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.28 2004/09/18 11:12:49 hajny * handle type changed to thandle in do_isdevice Revision 1.27 2004/09/03 19:25:41 olle diff --git a/rtl/inc/heap.inc b/rtl/inc/heap.inc index b2570b38b9..df51096a1a 100644 --- a/rtl/inc/heap.inc +++ b/rtl/inc/heap.inc @@ -1329,13 +1329,16 @@ begin freelist_var := nil; freeoslist := nil; freeoslistcount := 0; - internal_heapsize := GetHeapSize; - internal_memavail := internal_heapsize; + internal_heapsize := 0; + internal_memavail := 0; end; { $Log$ - Revision 1.36 2004-08-10 18:58:36 jonas + Revision 1.37 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.36 2004/08/10 18:58:36 jonas * changed formatting to conform to the rest of the compiler/rtl * fixed SysMaxAvail so it also looks at the free fixed size blocks diff --git a/rtl/inc/heaptrc.pp b/rtl/inc/heaptrc.pp index 94918bde04..1330b8f691 100644 --- a/rtl/inc/heaptrc.pp +++ b/rtl/inc/heaptrc.pp @@ -722,6 +722,12 @@ var edata : longword; external name 'edata'; {$endif go32v2} +{$ifdef linux} +var + etext: ptruint; external name '_etext'; + edata : ptruint; external name '_edata'; +{$endif} + procedure CheckPointer(p : pointer);{$ifndef NOSAVEREGISTERS}saveregisters;{$endif}[public, alias : 'FPC_CHECKPOINTER']; var @@ -766,6 +772,19 @@ begin goto _exit; {$endif win32} +{$ifdef linux} + { inside stack ? } + asm + movl %ebp,get_ebp + end; + if (ptruint(p)>get_ebp) and + (ptruint(p)<$c0000000) then //todo: 64bit! + goto _exit; + { inside data ? } + if (ptruint(p)>=ptruint(@etext)) and (ptruint(p) 0 then exit; - + p:= PChar(fullPath); - + if FileRec(f).mode in [fmoutput, fminout, fmappend] then begin - {Since opening of an existing file will not change filetype and creator, + {Since opening of an existing file will not change filetype and creator, it is set here. Otherwise overwritten darwin files will not get filetype TEXT. This is not done when only opening file for reading.} FSpGetFInfo(spec, finderInfo); @@ -790,7 +769,7 @@ begin If (s='') or (InOutRes <> 0) then exit; - res:= PathArgToFSSpec(s, spec); + res:= PathArgToFSSpec(s, spec); if (res = 0) or (res = 2) then begin err:= FSpDirCreate(spec, smSystemScript, createdDirID); @@ -806,7 +785,7 @@ var spec: FSSpec; err: OSErr; res: Integer; - + begin If (s='') or (InOutRes <> 0) then exit; @@ -836,10 +815,10 @@ begin if (s='') or (InOutRes <> 0) then exit; - res:= PathArgToFSSpec(s, spec); + res:= PathArgToFSSpec(s, spec); if (res = 0) or (res = 2) then begin - { The fictive file x is appended to the directory name to make + { The fictive file x is appended to the directory name to make FSMakeFSSpec return a FSSpec to a file in the directory. Then by clearing the name, the FSSpec then points to the directory. It doesn't matter whether x exists or not.} @@ -873,8 +852,8 @@ begin if Length(fullPath) <= 255 then {because dir is ShortString} InOutRes := 0 else - InOutRes := 1; //TODO Exchange to something better - + InOutRes := 1; //TODO Exchange to something better + dir:= fullPath; end; @@ -904,8 +883,8 @@ procedure setup_arguments; procedure setup_environment; begin end; - - + + { FindSysFolder returns the (real) vRefNum, and the DirID of the current system folder. It uses the Folder Manager if present, otherwise it falls back to SysEnvirons. It returns zero on success, otherwise a standard @@ -1012,10 +991,10 @@ begin macosHasCFM := false; macosHasAppleEvents := false; macosHasAliasMgr := false; - + macosHasFSSpec := false; macosHasFindFolder := false; - + macosHasAppearance := false; macosHasAppearance101 := false; macosHasAppearance11 := false; @@ -1043,7 +1022,7 @@ begin macosHasSysDebugger := BitIsSet(response, gestaltSysDebuggerSupport) else macosHasSysDebugger := false; - + if Gestalt(FourCharCodeToLongword(gestaltQuickdrawVersion), response) = noErr then macosHasColorQD := (response >= $0100) else @@ -1058,16 +1037,16 @@ begin macosHasCFM := BitIsSet(response, gestaltCFMPresent) else macosHasCFM := false; - + macosHasAppleEvents := Gestalt(FourCharCodeToLongword(gestaltAppleEventsAttr), response) = noErr; macosHasAliasMgr := Gestalt(FourCharCodeToLongword(gestaltAliasMgrAttr), response) = noErr; - + if Gestalt(FourCharCodeToLongword(gestaltFSAttr), response) = noErr then macosHasFSSpec := BitIsSet(response, gestaltHasFSSpecCalls) else macosHasFSSpec := false; macosHasFindFolder := Gestalt(FourCharCodeToLongword(gestaltFindFolderAttr), response) = noErr; - + if macosHasScriptMgr then begin err := Gestalt(FourCharCodeToLongword(gestaltScriptCount), response); @@ -1112,7 +1091,7 @@ begin else {Be quiet} end; - + {$ifndef MACOS_USE_STDCLIB} if StandAlone <> 0 then ExitToShell; @@ -1138,10 +1117,10 @@ var dirStr: string[2]; err: OSErr; dummySysFolderDirID: Longint; - + begin InvestigateSystem; {Must be first} - + {Check requred features for system.pp to work.} if not macosHasFSSpec then Halt(3); //exit code 3 according to MPW @@ -1161,7 +1140,7 @@ begin IsConsole := (resHdl <> nil); {A SIOW app is also a console} ReleaseResource(resHdl); end; - + { To be set if this is a library and not a program } IsLibrary := FALSE; @@ -1176,26 +1155,21 @@ begin end else begin - { The fictive file x is used to make + { The fictive file x is used to make FSMakeFSSpec return a FSSpec to a file in the directory. Then by clearing the name, the FSSpec then points to the directory. It doesn't matter whether x exists or not.} dirStr:= ':x'; - err:= ResolveFolderAliases(0, 0, @dirStr, true, + err:= ResolveFolderAliases(0, 0, @dirStr, true, workingDirectorySpec, isFolder, hadAlias, leafIsAlias); workingDirectorySpec.name:=''; if (err <> noErr) and (err <> fnfErr) then Halt(3); //exit code 3 according to MPW end; - + { Setup heap } if StandAlone <> 0 then MaxApplZone; - if Mac_FreeMem - intern_heapsize < 30000 then - Halt(3); //exit code 3 according to MPW - theHeap:= NewPtr(intern_heapsize); - if theHeap = nil then - Halt(3); //exit code 3 according to MPW InitHeap; SysInitExceptions; @@ -1225,7 +1199,10 @@ end. { $Log$ - Revision 1.23 2004-10-19 19:56:59 olle + Revision 1.24 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.23 2004/10/19 19:56:59 olle * Interface to StdLibC moved from system to macostp Revision 1.22 2004/09/30 19:58:42 olle diff --git a/rtl/morphos/system.pp b/rtl/morphos/system.pp index 13a4cc4d05..fc449cdfdb 100644 --- a/rtl/morphos/system.pp +++ b/rtl/morphos/system.pp @@ -4,11 +4,11 @@ Copyright (c) 2004 by Karoly Balogh for Genesi S.a.r.l. System unit for MorphOS/PowerPC - - Uses parts of the Commodore Amiga/68k port by Carl Eric Codere + + Uses parts of the Commodore Amiga/68k port by Carl Eric Codere and Nils Sjoholm - MorphOS port was done on a free Pegasos II/G4 machine + MorphOS port was done on a free Pegasos II/G4 machine provided by Genesi S.a.r.l. See the file COPYING.FPC, included in this distribution, @@ -28,7 +28,7 @@ interface {$I systemh.inc} -type +type THandle = LongInt; {$I heaph.inc} @@ -62,10 +62,10 @@ var MOS_heapPool : Pointer; { pointer for the OS pool for growing the heap } MOS_origDir : LongInt; { original directory on startup } - MOS_ambMsg : Pointer; + MOS_ambMsg : Pointer; MOS_ConName : PChar ='CON:10/30/620/100/FPC Console Output/AUTO/CLOSE/WAIT'; MOS_ConHandle: LongInt; - + argc: LongInt; argv: PPChar; envp: PPChar; @@ -121,7 +121,7 @@ var { Function to be called at program shutdown, to close all opened files } procedure CloseList(l: PFileList); -var +var tmpNext : PFileList; tmpHandle : LongInt; begin @@ -131,13 +131,13 @@ begin tmpNext:=l^.next; while tmpNext<>nil do begin tmpHandle:=tmpNext^.handle; - if (tmpHandle<>StdInputHandle) and (tmpHandle<>StdOutputHandle) + if (tmpHandle<>StdInputHandle) and (tmpHandle<>StdOutputHandle) and (tmpHandle<>StdErrorHandle) then begin dosClose(tmpHandle); end; tmpNext:=tmpNext^.next; end; - + { Next, erase the linked list } while l<>nil do begin tmpNext:=l; @@ -279,7 +279,7 @@ begin end; end; -{ Generates correct argument array on startup } +{ Generates correct argument array on startup } procedure GenerateArgs; var argvlen : longint; @@ -318,7 +318,7 @@ begin argv[0][length(temp)]:=#0; { check if we're started from Ambient } - if MOS_ambMsg<>nil then + if MOS_ambMsg<>nil then begin argc:=0; exit; @@ -408,7 +408,7 @@ function paramstr(l : longint) : string; var s1: String; begin - paramstr:=''; + paramstr:=''; if MOS_ambMsg<>nil then exit; if l=0 then begin @@ -430,39 +430,12 @@ end; {***************************************************************************** - Heap Management -*****************************************************************************} - -var - int_heap : LongInt; external name 'HEAP'; - int_heapsize : LongInt; external name 'HEAPSIZE'; - -{ first address of heap } -function getheapstart:pointer; -begin - getheapstart:=@int_heap; -end; - -{ current length of heap } -function getheapsize:longint; -begin - getheapsize:=int_heapsize; -end; - -{ function to allocate size bytes more for the program } -{ must return the first address of new data space or nil if fail } -function Sbrk(size : longint):pointer; -begin - Sbrk:=AllocPooled(MOS_heapPool,size); -end; - -{***************************************************************************** - OS Memory allocation / deallocation + OS Memory allocation / deallocation ****************************************************************************} function SysOSAlloc(size: ptrint): pointer; begin - result := sbrk(size); + result := AllocPooled(MOS_heapPool,size); end; {$define HAS_SYSOSFREE} @@ -560,7 +533,7 @@ begin FIB:=nil; new(FIB); - + if (Examine(alock,FIB)=True) and (FIB^.fib_DirEntryType>0) then begin alock := CurrentDir(alock); if MOS_OrigDir=0 then begin @@ -594,7 +567,7 @@ end; procedure do_close(handle : longint); begin RemoveFromList(MOS_fileList,handle); - { Do _NOT_ check CTRL_C on Close, because it will conflict + { Do _NOT_ check CTRL_C on Close, because it will conflict with System_Exit! } if not dosClose(handle) then dosError2InOut(IoErr); @@ -618,9 +591,9 @@ function do_write(h:longint; addr: pointer; len: longint) : longint; var dosResult: LongInt; begin checkCTRLC; - do_write:=0; - if len<=0 then exit; - + do_write:=0; + if len<=0 then exit; + dosResult:=dosWrite(h,addr,len); if dosResult<0 then begin dosError2InOut(IoErr); @@ -633,9 +606,9 @@ function do_read(h:longint; addr: pointer; len: longint) : longint; var dosResult: LongInt; begin checkCTRLC; - do_read:=0; - if len<=0 then exit; - + do_read:=0; + if len<=0 then exit; + dosResult:=dosRead(h,addr,len); if dosResult<0 then begin dosError2InOut(IoErr); @@ -649,7 +622,7 @@ var dosResult: LongInt; begin checkCTRLC; do_filepos:=0; - + { Seeking zero from OFFSET_CURRENT to find out where we are } dosResult:=dosSeek(handle,0,OFFSET_CURRENT); if dosResult<0 then begin @@ -672,7 +645,7 @@ var dosResult: LongInt; begin checkCTRLC; do_seekend:=0; - + { Seeking to OFFSET_END } dosResult:=dosSeek(handle,0,OFFSET_END); if dosResult<0 then begin @@ -752,7 +725,7 @@ begin buffer[length(path)]:=#0; { close first if opened } - if ((flags and $10000)=0) then + if ((flags and $10000)=0) then begin case filerec(f).mode of fminput,fmoutput,fminout : Do_Close(filerec(f).handle); @@ -781,10 +754,10 @@ begin if (flags and $1000)<>0 then openflags := 1006; { empty name is special } - if p[0]=#0 then + if p[0]=#0 then begin case filerec(f).mode of - fminput : + fminput : filerec(f).handle:=StdInputHandle; fmappend, fmoutput : begin @@ -794,9 +767,9 @@ begin end; exit; end; - + i:=Open(buffer,openflags); - if i=0 then + if i=0 then begin dosError2InOut(IoErr); end else begin @@ -879,7 +852,7 @@ begin OpenStdIO(Input,fmInput,StdInputHandle); OpenStdIO(Output,fmOutput,StdOutputHandle); OpenStdIO(StdOut,fmOutput,StdOutputHandle); - + { * MorphOS doesn't have a separate stderr, just like AmigaOS (???) * } StdErrorHandle:=StdOutputHandle; // OpenStdIO(StdErr,fmOutput,StdErrorHandle); @@ -918,7 +891,10 @@ end. { $Log$ - Revision 1.19 2004-09-03 19:26:15 olle + Revision 1.20 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.19 2004/09/03 19:26:15 olle + added maxExitCode to all System.pp * constrained error code to be below maxExitCode in RunError et. al. @@ -971,7 +947,7 @@ end. Revision 1.3 2004/05/01 15:09:47 karoly * first working system unit (very limited yet) - Revision 1.2  2004/04/08 06:28:29  karoly + Revision 1.2  2004/04/08 06:28:29  karoly * first steps to have a morphos system unit Revision 1.1 2004/02/13 07:19:53 karoly diff --git a/rtl/netware/system.pp b/rtl/netware/system.pp index cce806ff42..51587abbdc 100644 --- a/rtl/netware/system.pp +++ b/rtl/netware/system.pp @@ -251,24 +251,6 @@ end; Heap Management *****************************************************************************} -var - heap : longint;external name 'HEAP'; - intern_heapsize : longint;external name 'HEAPSIZE'; - -{ first address of heap } -function getheapstart:pointer; -assembler; -asm - leal HEAP,%eax -end ['EAX']; - -{ current length of heap } -function getheapsize:longint; -assembler; -asm - movl intern_HEAPSIZE,%eax -end ['EAX']; - {$ifdef autoHeapRelease} const HeapInitialMaxBlocks = 32; @@ -985,7 +967,10 @@ Begin End. { $Log$ - Revision 1.27 2004-09-26 19:25:49 armin + Revision 1.28 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.27 2004/09/26 19:25:49 armin * exiting threads at nlm unload Revision 1.26 2004/09/17 18:29:07 armin diff --git a/rtl/netwlibc/system.pp b/rtl/netwlibc/system.pp index c8cf7b5751..e4472ec254 100644 --- a/rtl/netwlibc/system.pp +++ b/rtl/netwlibc/system.pp @@ -242,22 +242,6 @@ end; Heap Management *****************************************************************************} -var - int_heap : pointer;external name 'HEAP'; - int_heapsize : longint;external name 'HEAPSIZE'; - -{ first address of heap } -function getheapstart:pointer; -begin - getheapstart := int_heap; -end; - -{ current length of heap } -function getheapsize:longint; -begin - getheapsize := int_heapsize; -end; - {$ifdef autoHeapRelease} const HeapInitialMaxBlocks = 32; @@ -1194,7 +1178,10 @@ Begin End. { $Log$ - Revision 1.4 2004-09-26 19:23:34 armin + Revision 1.5 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.4 2004/09/26 19:23:34 armin * exiting threads at nlm unload * renamed some libc functions diff --git a/rtl/os2/system.pas b/rtl/os2/system.pas index 7bbd5616df..699f179e0e 100644 --- a/rtl/os2/system.pas +++ b/rtl/os2/system.pas @@ -487,98 +487,10 @@ function DosFreeMem (P: pointer): cardinal; cdecl; external 'DOSCALLS' index 304; var -{ Int_Heap_End: pointer;} - Int_Heap: pointer; -{$IFNDEF VER1_0} - external name 'HEAP'; -{$ENDIF VER1_0} - Int_HeapSize: cardinal; external name 'HEAPSIZE'; HighMemSupported: boolean; -{ PreviousHeap: cardinal; - AllocatedMemory: cardinal; + Int_Heap : Pointer; + Int_heapSize : longint; - -function GetHeapSize: longint; -begin - GetHeapSize := PreviousHeap + longint (Int_Heap_End) - longint (Int_Heap); -end; -} - -function GetHeapSize: longint; assembler; -asm - movl Int_HeapSize, %eax -end ['EAX']; - -(* -function Sbrk (Size: longint): pointer; -var - P: pointer; - RC: cardinal; -const - MemAllocBlock = 4 * 1024 * 1024; -begin -{ $IFDEF DUMPGROW} - WriteLn ('Trying to grow heap by ', Size, ' to ', HeapSize + Size); -{ $ENDIF} - // commit memory - RC := DosSetMem (Int_Heap_End, Size, $13); - - if RC <> 0 then - -( * Not enough memory was allocated - let's try to allocate more - (4 MB steps or as much as requested if more than 4 MB needed). * ) - - begin - if Size > MemAllocBlock then - begin - RC := DosAllocMem (P, Size, 3); - if RC = 0 then Inc (AllocatedMemory, Size); - end - else - begin - RC := DosAllocMem (P, MemAllocBlock, 3); - if RC = 0 then Inc (AllocatedMemory, MemAllocBlock); - end; - if RC = 0 then - begin - PreviousHeap := GetHeapSize; - Int_Heap := P; - Int_Heap_End := P; - RC := DosSetMem (Int_Heap_End, Size, $13); - end - else - begin - Sbrk := nil; -{ $IFDEF DUMPGROW} - WriteLn ('Error ', RC, ' during additional memory allocation!'); - WriteLn ('Total allocated memory is ', cardinal (AllocatedMemory), ', ', - GetHeapSize, ' committed.'); -{ $ENDIF DUMPGROW} - Exit; - end; - end; - - if RC <> 0 then - begin -{ $IFDEF DUMPGROW} - WriteLn ('Error ', RC, ' while trying to commit more memory!'); - WriteLn ('Current memory object starts at ', cardinal (Int_Heap), - ' and committed until ', cardinal (Int_Heap_End)); - WriteLn ('Total allocated memory is ', cardinal (AllocatedMemory), ', ', - GetHeapSize, ' committed.'); -{ $ENDIF DUMPGROW} - Sbrk := nil; - end - else - begin - Sbrk := Int_Heap_End; -{ $IFDEF DUMPGROW} - WriteLn ('New heap at ', cardinal (Int_Heap_End)); -{ $ENDIF DUMPGROW} - Inc (Int_Heap_End, Size); - end; -end; -*) {$IFDEF DUMPGROW} {$DEFINE EXTDUMPGROW} {$ENDIF DUMPGROW} @@ -589,8 +501,7 @@ var RC: cardinal; begin {$IFDEF EXTDUMPGROW} - WriteLn ('Trying to grow heap by ', Size, ' to ', Int_HeapSize - + cardinal (Size)); + WriteLn ('Trying to grow heap by ', Size); {$ENDIF} if HighMemSupported then @@ -663,12 +574,6 @@ begin {$ENDIF EXTDUMPGROW} end; -function GetHeapStart: pointer; -begin - GetHeapStart := Int_Heap; -end; - - {$i heap.inc} @@ -1621,7 +1526,10 @@ begin end. { $Log$ - Revision 1.74 2004-09-18 11:12:09 hajny + Revision 1.75 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.74 2004/09/18 11:12:09 hajny * handle type changed to thandle in do_isdevice Revision 1.73 2004/09/11 19:43:11 hajny diff --git a/rtl/posix/sysposix.inc b/rtl/posix/sysposix.inc index cb18b0c652..d34fcc3468 100644 --- a/rtl/posix/sysposix.inc +++ b/rtl/posix/sysposix.inc @@ -108,30 +108,6 @@ Begin End; -{***************************************************************************** - Heap Management -*****************************************************************************} - -var - _HEAP : longint;external name 'HEAP'; - _HEAPSIZE : longint;external name 'HEAPSIZE'; - -{$ifndef SYSTEM_HAS_GETHEAPSTART} -function getheapstart:pointer; -begin - getheapstart := @_HEAP; -end; -{$endif} - - -{$ifndef SYSTEM_HAS_GETHEAPSIZE} -function getheapsize:longint; -begin - getheapsize := _HEAPSIZE; -end; -{$endif} - - {***************************************************************************** Low Level File Routines *****************************************************************************} @@ -450,7 +426,7 @@ var begin {$ifdef usegetcwd} sys_getcwd(@tmp[1],255); - dir:=tmp; + dir:=tmp; {$else} dir:=''; thedir:=''; @@ -655,7 +631,10 @@ End. *) { $Log$ - Revision 1.7 2002-11-14 12:18:03 marco + Revision 1.8 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.7 2002/11/14 12:18:03 marco * fixed sys_time call to (NIL) Revision 1.6 2002/10/27 17:21:29 marco diff --git a/rtl/template/system.pp b/rtl/template/system.pp index fa0a8c7e76..e526067876 100644 --- a/rtl/template/system.pp +++ b/rtl/template/system.pp @@ -112,48 +112,14 @@ begin randseed:=0; end; -{***************************************************************************** - Heap Management -*****************************************************************************} - -{ first address of heap } -function getheapstart:pointer;{assembler; -asm - leal HEAP,%eax -end ['EAX'];} -begin - getheapstart:=0; -end; - -{ current length of heap } -function getheapsize:longint;{assembler; -asm - movl HEAPSIZE,%eax -end ['EAX'];} -begin - getheapsize:=0; -end; - -{ function to allocate size bytes more for the program } -{ must return the first address of new data space or nil if fail } -function Sbrk(size : longint):pointer;{assembler; -asm - movl size,%eax - pushl %eax - call ___sbrk - addl $4,%esp -end;} -begin - Sbrk:=nil; -end; {***************************************************************************** - OS Memory allocation / deallocation + OS Memory allocation / deallocation ****************************************************************************} function SysOSAlloc(size: ptrint): pointer; begin - result := sbrk(size); + // code to allocate memory block end; // If the OS is capable of freeing memory, define HAS_SYSOSFREE and implement @@ -320,7 +286,10 @@ Begin End. { $Log$ - Revision 1.12 2004-09-03 19:26:57 olle + Revision 1.13 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.12 2004/09/03 19:26:57 olle + added maxExitCode to all System.pp * constrained error code to be below maxExitCode in RunError et. al. diff --git a/rtl/watcom/system.pp b/rtl/watcom/system.pp index 9c15be155e..2da4caff2a 100644 --- a/rtl/watcom/system.pp +++ b/rtl/watcom/system.pp @@ -827,27 +827,14 @@ begin randseed:=hl*$10000+ lo(regs.realecx); end; + {***************************************************************************** - Heap Management -*****************************************************************************} - -var int_heapsize:longint; external name 'HEAPSIZE'; - int_heap:pointer; external name 'HEAP'; - -function getheapstart:pointer; -begin - getheapstart:=int_heap; -end; - - -function getheapsize:longint; -begin - getheapsize:=int_heapsize; -end; + OS Memory allocation / deallocation + ****************************************************************************} function ___sbrk(size:longint):pointer;cdecl; external name '___sbrk'; -function Sbrk(size : longint):pointer;assembler; +function SysOSAlloc(size: ptrint): pointer;assembler; asm {$ifdef SYSTEMDEBUG} cmpb $1,accept_sbrk @@ -865,20 +852,10 @@ asm {$endif} end; -{***************************************************************************** - OS Memory allocation / deallocation - ****************************************************************************} - -function SysOSAlloc(size: ptrint): pointer; -begin - result := sbrk(size); -end; - -{$define HAS_SYSOSFREE} +{ define HAS_SYSOSFREE} procedure SysOSFree(p: pointer; size: ptrint); begin - fpmunmap(p, size); end; { include standard heap management } @@ -1554,7 +1531,10 @@ End. { $Log$ - Revision 1.15 2004-09-03 19:27:16 olle + Revision 1.16 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.15 2004/09/03 19:27:16 olle + added maxExitCode to all System.pp * constrained error code to be below maxExitCode in RunError et. al. diff --git a/rtl/win32/system.pp b/rtl/win32/system.pp index 2174387015..2e53d1807b 100644 --- a/rtl/win32/system.pp +++ b/rtl/win32/system.pp @@ -265,22 +265,6 @@ end; stdcall;external 'kernel32' name 'HeapSize'; {$ENDIF} -var - heap : longint;external name 'HEAP'; - intern_heapsize : longint;external name 'HEAPSIZE'; - -function getheapstart:pointer; -assembler; -asm - leal HEAP,%eax -end ['EAX']; - - -function getheapsize:longint; -assembler; -asm - movl intern_HEAPSIZE,%eax -end ['EAX']; {***************************************************************************** OS Memory allocation / deallocation @@ -1622,7 +1606,10 @@ end. { $Log$ - Revision 1.61 2004-09-03 19:27:25 olle + Revision 1.62 2004-10-25 15:38:59 peter + * compiler defined HEAP and HEAPSIZE removed + + Revision 1.61 2004/09/03 19:27:25 olle + added maxExitCode to all System.pp * constrained error code to be below maxExitCode in RunError et. al.