(* Release 3.10 *) (*-------------------------------------------------------------------------* * * * CIO.DEF - Modula-2 interface to IO.H * * * * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. * * All Rights Reserved * * * *--------------------------------------------------------------------------*) (*# project("#set tsc='on'") *) (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *) (*# module(implementation=>off, init_code=>off) *) (*# name(prefix=>c) *) DEFINITION MODULE cio; CONST HANDLE_MAX = 20; SEEK_SET = 0; SEEK_CUR = 1; SEEK_END = 2; TYPE ftime = RECORD ft_tsec : CARDINAL; (* Two second interval *) ft_min : CARDINAL; (* Minutes *) ft_hour : CARDINAL; (* Hours *) ft_day : CARDINAL; (* Days *) ft_month : CARDINAL; (* Months *) ft_year : CARDINAL; (* Year *) END; VAR _openfd :ARRAY[0..HANDLE_MAX] OF CARDINAL; PROCEDURE access(path:ARRAY OF CHAR;access:CARDINAL):INTEGER; PROCEDURE chmod(path:ARRAY OF CHAR;mode:CARDINAL):INTEGER; PROCEDURE _chmod(path:ARRAY OF CHAR;func,mode:CARDINAL):INTEGER; PROCEDURE chsize(handle:CARDINAL;size:LONGCARD):INTEGER; PROCEDURE _close(handle:CARDINAL):INTEGER; PROCEDURE close(handle:CARDINAL):INTEGER; PROCEDURE _creat(path:ARRAY OF CHAR;permission:CARDINAL):INTEGER; PROCEDURE _creat_new(path:ARRAY OF CHAR;permission:CARDINAL):INTEGER; PROCEDURE _creat_trunc(path:ARRAY OF CHAR;permission:CARDINAL):INTEGER; PROCEDURE creat(path:ARRAY OF CHAR;access:CARDINAL):INTEGER; PROCEDURE dup(handle:CARDINAL):INTEGER; PROCEDURE dup2(handle,newhandle:CARDINAL):INTEGER; PROCEDURE eof(handle:CARDINAL):INTEGER; PROCEDURE _dup(handle:CARDINAL):INTEGER; PROCEDURE _dup2(handle,newhandle:CARDINAL):INTEGER; PROCEDURE _eof(handle:CARDINAL):INTEGER; PROCEDURE filelength(handle:CARDINAL):LONGINT; PROCEDURE _filedrive(handle:CARDINAL):INTEGER; PROCEDURE isatty(handle:CARDINAL):INTEGER; PROCEDURE locking(handle,mode:CARDINAL;numgth:LONGCARD):INTEGER; PROCEDURE lock(handle: INTEGER; offset: LONGINT; length: LONGINT):INTEGER; PROCEDURE unlock(handle: INTEGER; offset: LONGINT; length: LONGINT):INTEGER; PROCEDURE lseek(handle:CARDINAL;offset:LONGCARD;fromwhere:CARDINAL):LONGINT; (* **** this procedure returns a pointer to an open array of char *) PROCEDURE mktemp(base:ARRAY OF CHAR):ADDRESS; PROCEDURE _open(path:ARRAY OF CHAR;oflags:CARDINAL):INTEGER; (* **** this procedure has a variable parameter list *) (*# save *) (*# call(c_conv=>on, var_arg=>on, reg_param=>()) *) PROCEDURE open(path:ARRAY OF CHAR;access:CARDINAL(*...*)):INTEGER; (*# restore *) PROCEDURE _read(handle:CARDINAL;buf:ADDRESS;num:CARDINAL):INTEGER; PROCEDURE read(handle:CARDINAL;buf:ADDRESS;num:CARDINAL):INTEGER; PROCEDURE setmode(handle,mode:CARDINAL):INTEGER; PROCEDURE tell(handle:CARDINAL):LONGINT; PROCEDURE umask(cmask:CARDINAL):CARDINAL; PROCEDURE unlink(path:ARRAY OF CHAR):INTEGER; PROCEDURE _write(handle:CARDINAL;buf:ADDRESS;num:CARDINAL):INTEGER; PROCEDURE write(handle:CARDINAL;buf:ADDRESS;num:CARDINAL):INTEGER; PROCEDURE creatnew(path:ARRAY OF CHAR; mode:CARDINAL):INTEGER; (* DOS 3.0 or later *) PROCEDURE getftime(handle:CARDINAL;VAR ftimep:ftime):INTEGER; (* **** this procedure has a variable parameter list *) (*# save *) (*# call(c_conv=>on, var_arg=>on, reg_param=>()) *) PROCEDURE ioctl(handle,func:CARDINAL(*...*)):INTEGER; (*# restore *) PROCEDURE setftime(handle:CARDINAL;VAR ftimep:ftime):INTEGER; END cio.