CIO.DEF 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * CIO.DEF - Modula-2 interface to IO.H *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# project("#set tsc='on'") *)
  11. (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *)
  12. (*# module(implementation=>off, init_code=>off) *)
  13. (*# name(prefix=>c) *)
  14. DEFINITION MODULE cio;
  15. CONST
  16. HANDLE_MAX = 20;
  17. SEEK_SET = 0;
  18. SEEK_CUR = 1;
  19. SEEK_END = 2;
  20. TYPE
  21. ftime = RECORD
  22. ft_tsec : CARDINAL; (* Two second interval *)
  23. ft_min : CARDINAL; (* Minutes *)
  24. ft_hour : CARDINAL; (* Hours *)
  25. ft_day : CARDINAL; (* Days *)
  26. ft_month : CARDINAL; (* Months *)
  27. ft_year : CARDINAL; (* Year *)
  28. END;
  29. VAR
  30. _openfd :ARRAY[0..HANDLE_MAX] OF CARDINAL;
  31. PROCEDURE access(path:ARRAY OF CHAR;access:CARDINAL):INTEGER;
  32. PROCEDURE chmod(path:ARRAY OF CHAR;mode:CARDINAL):INTEGER;
  33. PROCEDURE _chmod(path:ARRAY OF CHAR;func,mode:CARDINAL):INTEGER;
  34. PROCEDURE chsize(handle:CARDINAL;size:LONGCARD):INTEGER;
  35. PROCEDURE _close(handle:CARDINAL):INTEGER;
  36. PROCEDURE close(handle:CARDINAL):INTEGER;
  37. PROCEDURE _creat(path:ARRAY OF CHAR;permission:CARDINAL):INTEGER;
  38. PROCEDURE _creat_new(path:ARRAY OF CHAR;permission:CARDINAL):INTEGER;
  39. PROCEDURE _creat_trunc(path:ARRAY OF CHAR;permission:CARDINAL):INTEGER;
  40. PROCEDURE creat(path:ARRAY OF CHAR;access:CARDINAL):INTEGER;
  41. PROCEDURE dup(handle:CARDINAL):INTEGER;
  42. PROCEDURE dup2(handle,newhandle:CARDINAL):INTEGER;
  43. PROCEDURE eof(handle:CARDINAL):INTEGER;
  44. PROCEDURE _dup(handle:CARDINAL):INTEGER;
  45. PROCEDURE _dup2(handle,newhandle:CARDINAL):INTEGER;
  46. PROCEDURE _eof(handle:CARDINAL):INTEGER;
  47. PROCEDURE filelength(handle:CARDINAL):LONGINT;
  48. PROCEDURE _filedrive(handle:CARDINAL):INTEGER;
  49. PROCEDURE isatty(handle:CARDINAL):INTEGER;
  50. PROCEDURE locking(handle,mode:CARDINAL;numgth:LONGCARD):INTEGER;
  51. PROCEDURE lock(handle: INTEGER; offset: LONGINT; length: LONGINT):INTEGER;
  52. PROCEDURE unlock(handle: INTEGER; offset: LONGINT; length: LONGINT):INTEGER;
  53. PROCEDURE lseek(handle:CARDINAL;offset:LONGCARD;fromwhere:CARDINAL):LONGINT;
  54. (* **** this procedure returns a pointer to an open array of char *)
  55. PROCEDURE mktemp(base:ARRAY OF CHAR):ADDRESS;
  56. PROCEDURE _open(path:ARRAY OF CHAR;oflags:CARDINAL):INTEGER;
  57. (* **** this procedure has a variable parameter list *)
  58. (*# save *)
  59. (*# call(c_conv=>on, var_arg=>on, reg_param=>()) *)
  60. PROCEDURE open(path:ARRAY OF CHAR;access:CARDINAL(*...*)):INTEGER;
  61. (*# restore *)
  62. PROCEDURE _read(handle:CARDINAL;buf:ADDRESS;num:CARDINAL):INTEGER;
  63. PROCEDURE read(handle:CARDINAL;buf:ADDRESS;num:CARDINAL):INTEGER;
  64. PROCEDURE setmode(handle,mode:CARDINAL):INTEGER;
  65. PROCEDURE tell(handle:CARDINAL):LONGINT;
  66. PROCEDURE umask(cmask:CARDINAL):CARDINAL;
  67. PROCEDURE unlink(path:ARRAY OF CHAR):INTEGER;
  68. PROCEDURE _write(handle:CARDINAL;buf:ADDRESS;num:CARDINAL):INTEGER;
  69. PROCEDURE write(handle:CARDINAL;buf:ADDRESS;num:CARDINAL):INTEGER;
  70. PROCEDURE creatnew(path:ARRAY OF CHAR; mode:CARDINAL):INTEGER; (* DOS 3.0 or later *)
  71. PROCEDURE getftime(handle:CARDINAL;VAR ftimep:ftime):INTEGER;
  72. (* **** this procedure has a variable parameter list *)
  73. (*# save *)
  74. (*# call(c_conv=>on, var_arg=>on, reg_param=>()) *)
  75. PROCEDURE ioctl(handle,func:CARDINAL(*...*)):INTEGER;
  76. (*# restore *)
  77. PROCEDURE setftime(handle:CARDINAL;VAR ftimep:ftime):INTEGER;
  78. END cio.