ack/lang/m2/libm2/Storage.def
1988-03-16 09:20:36 +00:00

38 lines
1 KiB
Modula-2

DEFINITION MODULE Storage;
(*
Module: Dynamic storage allocation
From: "Programming in Modula-2", 3rd, corrected edition, by N. Wirth
Version: $Header$
*)
(*
Wirth's 3rd edition certainly is confusing: mostly it uses Allocate, but
the module at the end of the book defines ALLOCATE. To avoid problems,
I included them both.
*)
FROM SYSTEM IMPORT ADDRESS;
PROCEDURE ALLOCATE(VAR a : ADDRESS; size : CARDINAL);
(* Allocate an area of the given size and return the address
in "a". If no space is available, the calling program is
killed.
*)
PROCEDURE Allocate(VAR a : ADDRESS; size : CARDINAL);
(* Identical to ALLOCATE *)
PROCEDURE DEALLOCATE(VAR a : ADDRESS; size : CARDINAL);
(* Free the area at address "a" with the given size. The area
must have been allocated by "ALLOCATE", with the same size.
*)
PROCEDURE Deallocate(VAR a : ADDRESS; size : CARDINAL);
(* Identical to DEALLOCATE *)
PROCEDURE Available(size : CARDINAL) : BOOLEAN;
(* Return TRUE if an area with the given size could be allocated.
*)
END Storage.