SHTHEAP.DEF 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * SHTHEAP.DEF - Modula-2 small heap manager *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# call(o_a_copy => on,
  11. o_a_size => on) *)
  12. (*# module(init_code => on) *)
  13. (*%F _fdata *)
  14. (*# call(seg_name => null) *)
  15. (*# data(seg_name => null) *)
  16. (*%E *)
  17. (*# module(implementation=>off) *)
  18. DEFINITION MODULE ShtHeap ;
  19. TYPE Segment = CARDINAL;
  20. Size = CARDINAL;
  21. Pointer = SHORTADDR;
  22. VAR Clear: BOOLEAN; (* Clear allocated storage *)
  23. Check: BOOLEAN; (* Stop if Allocate fails *)
  24. Debug: BOOLEAN; (* Test heap consistency at every call *)
  25. CONST Nil = Pointer ( -1 ); (* Returned if Allocate fails *)
  26. Align = 4; (* Pointer alignment *)
  27. PROCEDURE Initialize ( H: Segment; Z: Size );
  28. PROCEDURE Increase ( H: Segment; Z: Size );
  29. PROCEDURE Allocate ( H: Segment; VAR P: Pointer; Z: Size );
  30. PROCEDURE Free ( H: Segment; VAR P: Pointer; Z: Size );
  31. PROCEDURE Largest ( H: Segment ): Size;
  32. PROCEDURE Total ( H: Segment ): Size;
  33. PROCEDURE Test ( H: Segment );
  34. END ShtHeap.
  35.