dos_compilers/Logitech Modula-2 v1/STORAGE.DEF

54 lines
1.5 KiB
Plaintext
Raw Normal View History

2024-07-01 00:16:10 +02:00
DEFINITION MODULE Storage;
(*
Standard dynamic storage management
Derived from the Lilith Modula-2 system developed by the
group of Prof. N. Wirth at ETH Zurich, Switzerland.
Storage management for dynamic variables. Calls to the
Modula-2 standard procedures NEW and DISPOSE are translated
into calls to ALLOCATE and DEALLOCATE. The standard way to
provide these two procedures is to import them from this
module 'Storage'.
*)
FROM SYSTEM IMPORT ADDRESS;
EXPORT QUALIFIED
ALLOCATE, DEALLOCATE, Available, InstallHeap, RemoveHeap;
PROCEDURE ALLOCATE (VAR a: ADDRESS; size: CARDINAL);
(*- Allocate some dynamic storage.
in: size number of bytes to allocate,
out: a ADDRESS of allocated storage.
The actual number of bytes allocated may be slightly greater
than 'size', due to administrative overhead.
If not enough space is available, the calling program is
terminated with the status 'heapovf'.
*)
PROCEDURE DEALLOCATE (VAR a: ADDRESS; size: CARDINAL);
(*- Release some dynamic storage.
in: a ADDRESS of the area to release,
size number of bytes to be released,
out: a set to NIL.
*)
PROCEDURE Available (size: CARDINAL) : BOOLEAN;
(*- Test whether some number of bytes could be allocated.
in: size number of bytes
out: TRUE if ALLOCATE(p,size) would succeed.
*)
PROCEDURE InstallHeap;
(*- Used by the loader -*)
PROCEDURE RemoveHeap;
(*- Used by the loader -*)
END Storage.