ack/lang/m2/libm2/Storage.def

38 lines
1 KiB
Modula-2
Raw Normal View History

1987-05-13 14:36:45 +00:00
DEFINITION MODULE Storage;
1988-02-19 15:54:01 +00:00
(*
Module: Dynamic storage allocation
From: "Programming in Modula-2", 3rd, corrected edition, by N. Wirth
Version: $Header$
*)
1987-05-13 14:36:45 +00:00
1988-03-16 09:20:36 +00:00
(*
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.
*)
1987-05-13 14:36:45 +00:00
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.
*)
1988-03-16 09:20:36 +00:00
PROCEDURE Allocate(VAR a : ADDRESS; size : CARDINAL);
(* Identical to ALLOCATE *)
1987-05-13 14:36:45 +00:00
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.
*)
1988-03-16 09:20:36 +00:00
PROCEDURE Deallocate(VAR a : ADDRESS; size : CARDINAL);
(* Identical to DEALLOCATE *)
1987-05-13 14:36:45 +00:00
PROCEDURE Available(size : CARDINAL) : BOOLEAN;
(* Return TRUE if an area with the given size could be allocated.
*)
END Storage.