storage.mod 573 B

1234567891011121314151617181920212223242526272829
  1. IMPLEMENTATION MODULE Storage;
  2. (* Binds libc heap functions directly. *)
  3. PROCEDURE malloc(size : CARDINAL) : ADDRESS;
  4. EXTERNAL;
  5. PROCEDURE free(p : ADDRESS);
  6. EXTERNAL;
  7. PROCEDURE realloc(p : ADDRESS; size : CARDINAL) : ADDRESS;
  8. EXTERNAL;
  9. PROCEDURE ALLOCATE(VAR p : ADDRESS; size : CARDINAL);
  10. BEGIN
  11. p := malloc(size)
  12. END ALLOCATE;
  13. PROCEDURE DEALLOCATE(VAR p : ADDRESS; size : CARDINAL);
  14. BEGIN
  15. free(p);
  16. p := NIL
  17. END DEALLOCATE;
  18. PROCEDURE REALLOCATE(VAR p : ADDRESS; oldSize, newSize : CARDINAL);
  19. BEGIN
  20. p := realloc(p, newSize)
  21. END REALLOCATE;
  22. END Storage.