123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- (*$Foreign language module *)
- DEFINITION MODULE Unix;
- (*
- Module: interface to some Unix systemcalls
- Author: Ceriel J.H. Jacobs
- Version: $Id$
- *)
- FROM SYSTEM IMPORT WORD, ADDRESS;
- (* Type needed for Signal *)
- TYPE SignalPrc = PROCEDURE(INTEGER);
- CONST
- SIGDFL = SignalPrc(NIL);
- SIGIGN = SignalPrc(NIL+1);
- ILLBREAK = ADDRESS(NIL-1);
- VAR errno: INTEGER;
- (* Possible values of errno: *)
- CONST
- EPERM = 1; (* Not owner *)
- ENOENT = 2; (* No such file or directory *)
- ESRCH = 3; (* No such process *)
- EINTR = 4; (* Interrupted system call *)
- EIO = 5; (* I/O error *)
- ENXIO = 6; (* No such device or address *)
- E2BIG = 7; (* Arg list too long *)
- ENOEXEC = 8; (* Exec format error *)
- EBADF = 9; (* Bad file number *)
- ECHILD = 10; (* No child processes *)
- EAGAIN = 11; (* No more processes *)
- ENOMEM = 12; (* Not enough space *)
- EACCES = 13; (* Permission denied *)
- EFAULT = 14; (* Bad address *)
- ENOTBLK = 15; (* Block device required *)
- EBUSY = 16; (* Mount device busy *)
- EEXIST = 17; (* File exists *)
- EXDEV = 18; (* Cross-device link *)
- ENODEV = 19; (* No such device *)
- ENOTDIR = 20; (* Not a directory *)
- EISDIR = 21; (* Is a directory *)
- EINVAL = 22; (* Invalid argument *)
- ENFILE = 23; (* File table overflow *)
- EMFILE = 24; (* Too many open files *)
- ENOTTY = 25; (* Not a typewriter *)
- ETXTBSY = 26; (* Text file busy *)
- EFBIG = 27; (* File too large *)
- ENOSPC = 28; (* No space left on device *)
- ESPIPE = 29; (* Illegal seek *)
- EROFS = 30; (* Read-only file system *)
- EMLINK = 31; (* Too many links *)
- EPIPE = 32; (* Broken pipe *)
- EDOM = 33; (* Math argument *)
- ERANGE = 34; (* Result too large *)
- PROCEDURE access(path: ADDRESS; amode : INTEGER) : INTEGER;
- PROCEDURE acct(path: ADDRESS) : INTEGER;
- PROCEDURE alarm(sec: CARDINAL) : CARDINAL;
- PROCEDURE brk(endds: ADDRESS) : INTEGER;
- PROCEDURE sbrk(incr: INTEGER) : ADDRESS;
- PROCEDURE chdir(path: ADDRESS) : INTEGER;
- PROCEDURE chmod(path: ADDRESS; mode: INTEGER) : INTEGER;
- PROCEDURE chown(path: ADDRESS; owner, group: INTEGER) : INTEGER;
- PROCEDURE chroot(path: ADDRESS) : INTEGER;
- PROCEDURE close(fildes: INTEGER) : INTEGER;
- PROCEDURE creat(path: ADDRESS;
- mode: INTEGER) : INTEGER;
- PROCEDURE dup(fildes: INTEGER) : INTEGER;
- PROCEDURE execve(path: ADDRESS;
- argv: ADDRESS;
- envp: ADDRESS) : INTEGER;
- PROCEDURE exit(status: INTEGER);
- (* Sys5 *) PROCEDURE fcntl(fildes, request, arg: INTEGER) : INTEGER;
- PROCEDURE ftime(bufp:ADDRESS) : INTEGER;
- PROCEDURE fork() : INTEGER;
- PROCEDURE getpid() : INTEGER;
- PROCEDURE getppid() : INTEGER;
- PROCEDURE getuid() : INTEGER;
- PROCEDURE geteuid() : INTEGER;
- PROCEDURE getgid() : INTEGER;
- PROCEDURE getegid() : INTEGER;
- PROCEDURE ioctl(fildes, request: INTEGER; arg: ADDRESS) : INTEGER;
- PROCEDURE stty(fildes: INTEGER; buf: ADDRESS) : INTEGER;
- PROCEDURE gtty(fildes: INTEGER; buf: ADDRESS) : INTEGER;
- PROCEDURE kill(pid, sig: INTEGER) : INTEGER;
- PROCEDURE link(path1, path2: ADDRESS) : INTEGER;
- PROCEDURE lseek(fildes: INTEGER; offset: LONGINT; whence: INTEGER) : LONGINT;
- PROCEDURE mknod(path: ADDRESS; mode, dev: INTEGER) : INTEGER;
- PROCEDURE mount(spec, dir: ADDRESS; rwflag: INTEGER) : INTEGER;
- PROCEDURE nice(incr: INTEGER) : INTEGER;
- PROCEDURE open(path: ADDRESS; oflag: INTEGER) : INTEGER;
- PROCEDURE pause();
- PROCEDURE pipe(fildes: ADDRESS) : INTEGER;
- PROCEDURE profil(buff: ADDRESS;
- bufsiz, offset, scale: INTEGER);
- PROCEDURE ptrace(request, pid, addr, data: WORD) : INTEGER;
- PROCEDURE read(fildes: INTEGER;
- buf: ADDRESS;
- nbyte: CARDINAL) : INTEGER;
- PROCEDURE setuid(uid: INTEGER) : INTEGER;
- PROCEDURE setgid(gid: INTEGER) : INTEGER;
- PROCEDURE signal(sig: INTEGER;
- func: SignalPrc) : SignalPrc;
- PROCEDURE sigtrp(trapno, signo: INTEGER) : INTEGER;
- (* Let Unix signal signo cause EM trap trapno to occur *)
- PROCEDURE stat(path: ADDRESS; statbuf: ADDRESS) : INTEGER;
- PROCEDURE fstat(fildes: INTEGER; statbuf: ADDRESS) : INTEGER;
- PROCEDURE stime(t: LONGINT) : INTEGER;
- PROCEDURE sync();
- PROCEDURE time(tloc: ADDRESS) : LONGINT;
- PROCEDURE times(buffer: ADDRESS) : LONGINT;
- PROCEDURE umask(cmask: INTEGER) : INTEGER;
- PROCEDURE umount(spec: ADDRESS) : INTEGER;
- PROCEDURE unlink(path: ADDRESS) : INTEGER;
- PROCEDURE utime(path: ADDRESS; times: ADDRESS) : INTEGER;
- PROCEDURE wait(VAR statloc: INTEGER): INTEGER;
- PROCEDURE write(fildes: INTEGER;
- buf: ADDRESS;
- nbyte: CARDINAL) : INTEGER;
- END Unix.
|