sysstorage.mod 706 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. IMPLEMENTATION MODULE SysStorage;
  2. (* Direct libc heap bindings. *)
  3. FROM SYSTEM IMPORT ADDRESS;
  4. PROCEDURE malloc (size : CARDINAL) : ADDRESS;
  5. EXTERNAL;
  6. PROCEDURE free (p : ADDRESS);
  7. EXTERNAL;
  8. PROCEDURE realloc (p : ADDRESS; size : CARDINAL) : ADDRESS;
  9. EXTERNAL;
  10. PROCEDURE ALLOCATE (VAR a : ADDRESS; size : CARDINAL);
  11. BEGIN
  12. a := malloc(size)
  13. END ALLOCATE;
  14. PROCEDURE DEALLOCATE (VAR a : ADDRESS; size : CARDINAL);
  15. BEGIN
  16. free(a);
  17. a := NIL
  18. END DEALLOCATE;
  19. PROCEDURE REALLOCATE (VAR a : ADDRESS; size : CARDINAL);
  20. BEGIN
  21. a := realloc(a, size)
  22. END REALLOCATE;
  23. PROCEDURE Available (size : CARDINAL) : BOOLEAN;
  24. BEGIN
  25. RETURN TRUE
  26. END Available;
  27. PROCEDURE Init;
  28. BEGIN
  29. END Init;
  30. END SysStorage.