Posix.def 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. DEFINITION MODULE FOR "C" Posix ;
  2. (* Thin ISO-friendly bindings to libc for the TP3 shell.
  3. Foreign (FOR "C") module: maps directly onto C symbols. *)
  4. FROM SYSTEM IMPORT ADDRESS ;
  5. TYPE
  6. Dir = ADDRESS ;
  7. dirent = RECORD
  8. d_ino : LONGCARD ;
  9. d_off : LONGINT ;
  10. d_reclen : ARRAY [0..1] OF CHAR ;
  11. d_type : CHAR ;
  12. d_name : ARRAY [0..255] OF CHAR ;
  13. END ;
  14. statvfsbuf = RECORD
  15. f_bsize : LONGCARD ;
  16. f_frsize : LONGCARD ;
  17. f_blocks : LONGCARD ;
  18. f_bfree : LONGCARD ;
  19. f_bavail : LONGCARD ;
  20. f_files : LONGCARD ;
  21. f_ffree : LONGCARD ;
  22. f_favail : LONGCARD ;
  23. f_fsid : LONGCARD ;
  24. f_flag : LONGCARD ;
  25. f_namemax : LONGCARD ;
  26. END ;
  27. PROCEDURE read (fd : INTEGER ; buf : ADDRESS ; nbytes : LONGCARD) : LONGINT ;
  28. PROCEDURE write (fd : INTEGER ; buf : ADDRESS ; nbytes : LONGCARD) : LONGINT ;
  29. PROCEDURE open (path : ADDRESS ; oflag : INTEGER ; mode : LONGCARD) : INTEGER ;
  30. PROCEDURE close (fd : INTEGER) : INTEGER ;
  31. PROCEDURE unlink (path : ADDRESS) : INTEGER ;
  32. PROCEDURE rename (oldp, newp : ADDRESS) : INTEGER ;
  33. PROCEDURE getcwd (buf : ADDRESS ; size : LONGCARD) : ADDRESS ;
  34. PROCEDURE chdir (path : ADDRESS) : INTEGER ;
  35. PROCEDURE opendir (path : ADDRESS) : Dir ;
  36. PROCEDURE readdir (d : Dir) : ADDRESS ;
  37. PROCEDURE closedir (d : Dir) : INTEGER ;
  38. PROCEDURE statvfs (path : ADDRESS ; buf : ADDRESS) : INTEGER ;
  39. (* termios (linux): *)
  40. PROCEDURE tcgetattr (fd : INTEGER ; t : ADDRESS) : INTEGER ;
  41. PROCEDURE tcsetattr (fd : INTEGER ; opt : INTEGER ; t : ADDRESS) : INTEGER ;
  42. PROCEDURE cfmakeraw (t : ADDRESS) ;
  43. (* poll(2): wait for readiness on pollfds (POLLIN = 1) *)
  44. PROCEDURE poll (fds : ADDRESS ; nfds : LONGCARD ; timeout : INTEGER) : INTEGER ;
  45. END Posix.