DEFINITION MODULE FOR "C" Posix ; (* Thin ISO-friendly bindings to libc for the TP3 shell. Foreign (FOR "C") module: maps directly onto C symbols. *) FROM SYSTEM IMPORT ADDRESS ; TYPE Dir = ADDRESS ; dirent = RECORD d_ino : LONGCARD ; d_off : LONGINT ; d_reclen : ARRAY [0..1] OF CHAR ; d_type : CHAR ; d_name : ARRAY [0..255] OF CHAR ; END ; statvfsbuf = RECORD f_bsize : LONGCARD ; f_frsize : LONGCARD ; f_blocks : LONGCARD ; f_bfree : LONGCARD ; f_bavail : LONGCARD ; f_files : LONGCARD ; f_ffree : LONGCARD ; f_favail : LONGCARD ; f_fsid : LONGCARD ; f_flag : LONGCARD ; f_namemax : LONGCARD ; END ; PROCEDURE read (fd : INTEGER ; buf : ADDRESS ; nbytes : LONGCARD) : LONGINT ; PROCEDURE write (fd : INTEGER ; buf : ADDRESS ; nbytes : LONGCARD) : LONGINT ; PROCEDURE open (path : ADDRESS ; oflag : INTEGER ; mode : LONGCARD) : INTEGER ; PROCEDURE close (fd : INTEGER) : INTEGER ; PROCEDURE unlink (path : ADDRESS) : INTEGER ; PROCEDURE rename (oldp, newp : ADDRESS) : INTEGER ; PROCEDURE getcwd (buf : ADDRESS ; size : LONGCARD) : ADDRESS ; PROCEDURE chdir (path : ADDRESS) : INTEGER ; PROCEDURE opendir (path : ADDRESS) : Dir ; PROCEDURE readdir (d : Dir) : ADDRESS ; PROCEDURE closedir (d : Dir) : INTEGER ; PROCEDURE statvfs (path : ADDRESS ; buf : ADDRESS) : INTEGER ; (* termios (linux): *) PROCEDURE tcgetattr (fd : INTEGER ; t : ADDRESS) : INTEGER ; PROCEDURE tcsetattr (fd : INTEGER ; opt : INTEGER ; t : ADDRESS) : INTEGER ; PROCEDURE cfmakeraw (t : ADDRESS) ; (* poll(2): wait for readiness on pollfds (POLLIN = 1) *) PROCEDURE poll (fds : ADDRESS ; nfds : LONGCARD ; timeout : INTEGER) : INTEGER ; END Posix.