SysShim.def 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. DEFINITION MODULE SysShim;
  2. (* Low-level bridge from V3 Modula-2 to the C runtime shim
  3. (runtime/syslib/shim.c). Descriptor-aware: ARRAY OF CHAR is
  4. passed as its descriptor address, matching V3's string layout.
  5. This is the self-hosted counterpart of the host FileIO. *)
  6. FROM SYSTEM IMPORT ADDRESS;
  7. PROCEDURE fopenread (VAR name : ARRAY OF CHAR) : ADDRESS;
  8. (* Opens name for reading; NIL on failure. *)
  9. PROCEDURE fopenwrite (VAR name : ARRAY OF CHAR) : ADDRESS;
  10. (* Creates/truncates name for writing; NIL on failure. *)
  11. PROCEDURE fclose (h : ADDRESS);
  12. PROCEDURE fread (h : ADDRESS; VAR buf : ARRAY OF CHAR;
  13. max : CARDINAL) : CARDINAL;
  14. (* Reads up to max bytes into buf; buf's length is set to the
  15. number read, which is also returned. *)
  16. PROCEDURE fputc (h : ADDRESS; c : CHAR);
  17. PROCEDURE fputs (h : ADDRESS; VAR s : ARRAY OF CHAR);
  18. PROCEDURE fwriteln (h : ADDRESS);
  19. PROCEDURE fwriteintw (h : ADDRESS; v : INTEGER; wid : CARDINAL);
  20. PROCEDURE stdout () : ADDRESS;
  21. PROCEDURE stderr () : ADDRESS;
  22. PROCEDURE arg (i : CARDINAL; VAR s : ARRAY OF CHAR;
  23. cap : CARDINAL) : BOOLEAN;
  24. (* Copies command-line argument i into s (capacity cap); FALSE when
  25. no such argument. *)
  26. END SysShim.