home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Global Amiga Experience
/
globalamigaexperience.iso
/
compressed
/
development
/
clusterdemo.dms
/
clusterdemo.adf
/
Modules.lha
/
modules
/
txt
/
Heap.def
< prev
next >
Wrap
Text File
|
1994-05-25
|
4KB
|
88 lines
|##########|
|#MAGIC #|CLABLMEL
|#PROJECT #|"ImportHelp"
|#PATHS #|"StdProject"
|#FLAGS #|-x---x--x----xx-----------------
|#USERSW #|--------------------------------
|#USERMASK#|--------------------------------
|#SWITCHES#|xx---xxxxx------
|##########|
DEFINITION MODULE Heap;
(* $A- *)
FROM Resources IMPORT NotEnoughMemory,MemoryNotAllocated,
NILDisposed;
(*----------------------------------------------------------------------------*)
(* Funktion : Alloziert ein Speicherstück, in der Größe des Typs von p. *)
(* Parameter : p -> Zeigervariable, der die Adresse des allozierten *)
(* Speicherstücks zugewießen wird. *)
(* Bemerkung : p darf kein offener Typ sein, war Allozierung nicht möglich, *)
(* wird ein Laufzeitfehler ausgelößt *)
(*----------------------------------------------------------------------------*)
PROCEDURE New(VAR p : ANYPTR);
(*----------------------------------------------------------------------------*)
(* Funktion : Wie New, jedoch erhält man einen Boolean-Wert zurück, ob die- *)
(* Allozierung möglich war, oder nicht. *)
(*----------------------------------------------------------------------------*)
PROCEDURE CheckNew(VAR p : ANYPTR):BOOLEAN;
(*----------------------------------------------------------------------------*)
(* Funktion : Gibt ein Speicherstück wieder frei. *)
(* Parameter : p <- Zieger auf das Speicherstück, das Freigegeben werden soll.*)
(*----------------------------------------------------------------------------*)
PROCEDURE Dispose(VAR p : ANYPTR);
(*----------------------------------------------------------------------------*)
(* Funktion : Gibt alle mit Heap allozierten Speicherstück wieder frei. *)
(* Parameter : p <- Zeiger auf das Speicherstück, das Freigegeben werden soll.*)
(*----------------------------------------------------------------------------*)
PROCEDURE DisposeAll;
(*----------------------------------------------------------------------------*)
(* Funktion : Alloziert ein Speicherstück der Länge size. *)
(* Parameter : p -> Zeiger auf allozierte Speicherstück. *)
(* size <- Anzahl Bytes, die alloziert werden sollen. *)
(*----------------------------------------------------------------------------*)
PROCEDURE Allocate(VAR p : ANYPTR;size : LONGINT);
(*----------------------------------------------------------------------------*)
(* Funktion : Wie Allocate, jedoch mit Rückgabewert ob ein Fehler auftrat. *)
(*----------------------------------------------------------------------------*)
PROCEDURE CheckAllocate(VAR p : ANYPTR;size : LONGINT):BOOLEAN;
(*----------------------------------------------------------------------------*)
(* Funktion : Wie Allocate, jedoch muß das allozierte Speicherstück im *)
(* Chipmem liegen. *)
(*----------------------------------------------------------------------------*)
PROCEDURE AllocChip(VAR p : ANYPTR;size : LONGINT);
(*----------------------------------------------------------------------------*)
(* Funktion : Wie AllocChip, jedoch mit Rückgabewert ob ein Fehler auftrat. *)
(*----------------------------------------------------------------------------*)
PROCEDURE CheckAllocChip(VAR p : ANYPTR;size : LONGINT):BOOLEAN;
(*----------------------------------------------------------------------------*)
(* Funktion : Ermittelt den noch freien Speicherplatz. *)
(* Parameter : -> Freier Speicher in Bytes. *)
(*----------------------------------------------------------------------------*)
PROCEDURE Avail():LONGINT;
GROUP
All = New,CheckNew,Dispose,DisposeAll,Allocate,CheckAllocate,AllocChip,
CheckAllocChip,Avail;
END Heap.