From 3977329475262c54c42529691dd10590ac113709 Mon Sep 17 00:00:00 2001 From: Norayr Chilingarian Date: Fri, 13 Feb 2015 13:49:28 +0400 Subject: [PATCH] freebsd work mostly -- noch --- src/lib/system/freebsd/clang/Files.Mod | 21 +++-- src/lib/system/freebsd/clang/Files0.Mod | 21 +++-- src/lib/system/freebsd/clang/x86_64/Unix.Mod | 96 ++++++++++---------- src/lib/system/linux/clang/x86_64/Unix.Mod | 4 +- src/lib/system/linux/gcc/x86_64/Unix.Mod | 4 +- 5 files changed, 74 insertions(+), 72 deletions(-) diff --git a/src/lib/system/freebsd/clang/Files.Mod b/src/lib/system/freebsd/clang/Files.Mod index 6307407d..c8f42ca5 100644 --- a/src/lib/system/freebsd/clang/Files.Mod +++ b/src/lib/system/freebsd/clang/Files.Mod @@ -33,7 +33,8 @@ MODULE Files; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files workName, registerName: FileName; tempFile: BOOLEAN; dev, ino, mtime: LONGINT; - fd-, len, pos: LONGINT; + fd-: INTEGER; + len, pos: LONGINT; bufs: ARRAY nofbufs OF Buffer; swapper, state: INTEGER END ; @@ -125,12 +126,12 @@ MODULE Files; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files f.workName := f.registerName; f.registerName := ""; f.tempFile := FALSE END ; errno := Unix.Unlink(f.workName); (*unlink first to avoid stale NFS handles and to avoid reuse of inodes*) - f.fd := Unix.Open(f.workName, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8}); + f.fd := Unix.Open(f.workName, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr + Unix.creat + Unix.trunc)), SHORT(SYSTEM.VAL(LONGINT, {2, 4,5, 7,8}))); done := f.fd >= 0; errno := Unix.errno(); IF (~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE))) OR (done & (f.fd >= fileTabSize)) THEN IF done & (f.fd >= fileTabSize) THEN errno := Unix.Close(f.fd) END ; Kernel.GC(TRUE); - f.fd := Unix.Open(f.workName, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8}); + f.fd := Unix.Open(f.workName, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr + Unix.creat + Unix.trunc)), SHORT(SYSTEM.VAL(LONGINT, {2, 4,5, 7,8}))); done := f.fd >= 0 END ; IF done THEN @@ -233,7 +234,7 @@ MODULE Files; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files END CacheEntry; PROCEDURE Old* (name: ARRAY OF CHAR): File; - VAR f: File; fd, res, errno: LONGINT; pos: INTEGER; done: BOOLEAN; + VAR f: File; fd: INTEGER; res, errno: LONGINT; pos: INTEGER; done: BOOLEAN; dir, path: ARRAY 256 OF CHAR; stat: Unix.Status; BEGIN @@ -245,17 +246,17 @@ MODULE Files; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files (*ScanPath(pos, dir);*) (*MakeFileName(dir, name, path);*) (*ScanPath(pos, dir)*) END ; LOOP - fd := Unix.Open(path, Unix.rdwr, {}); done := fd >= 0; errno := Unix.errno(); + fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr)), SHORT(SYSTEM.VAL(LONGINT, {}))); done := fd >= 0; errno := Unix.errno(); IF (~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE))) OR (done & (fd >= fileTabSize)) THEN IF done & (fd >= fileTabSize) THEN res := Unix.Close(fd) END ; Kernel.GC(TRUE); - fd := Unix.Open(path, Unix.rdwr, {}); + fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr)), SHORT(SYSTEM.VAL(LONGINT, {}))); done := fd >= 0; errno := Unix.errno(); IF ~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE)) THEN Err("too many files open", f, errno) END END ; IF ~done & ((errno = Unix.EACCES) OR (errno = Unix.EROFS) OR (errno = Unix.EAGAIN)) THEN (* errno EAGAIN observed on Solaris 2.4 *) - fd := Unix.Open(path, Unix.rdonly, {}); done := fd >= 0; errno := Unix.errno() + fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdonly)), SHORT(SYSTEM.VAL(LONGINT, {}))); done := fd >= 0; errno := Unix.errno() END ; IF (~done) & (errno # Unix.ENOENT) THEN Console.String("warning Files.Old "); Console.String(name); @@ -463,7 +464,7 @@ Especially Length would become fairly complex. END Delete; PROCEDURE Rename* (old, new: ARRAY OF CHAR; VAR res: INTEGER); - VAR fdold, fdnew, n, errno, r: LONGINT; + VAR fdold, fdnew: INTEGER; n, errno, r: LONGINT; ostat, nstat: Unix.Status; buf: ARRAY 4096 OF CHAR; BEGIN @@ -476,9 +477,9 @@ Especially Length would become fairly complex. r := Unix.Rename(old, new); IF r < 0 THEN res := SHORT(Unix.errno()); IF res = Unix.EXDEV THEN (* cross device link, move the file *) - fdold := Unix.Open(old, Unix.rdonly, {}); + fdold := Unix.Open(old, SHORT(SYSTEM.VAL(LONGINT, Unix.rdonly)), SHORT(SYSTEM.VAL(LONGINT, {}))); IF fdold < 0 THEN res := 2; RETURN END ; - fdnew := Unix.Open(new, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8}); + fdnew := Unix.Open(new, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr + Unix.creat + Unix.trunc)), SHORT(SYSTEM.VAL(LONGINT, {2, 4,5, 7,8}))); IF fdnew < 0 THEN r := Unix.Close(fdold); res := 3; RETURN END ; n := Unix.Read(fdold, SYSTEM.ADR(buf), bufsize); WHILE n > 0 DO diff --git a/src/lib/system/freebsd/clang/Files0.Mod b/src/lib/system/freebsd/clang/Files0.Mod index 4f021ede..1d9cd953 100644 --- a/src/lib/system/freebsd/clang/Files0.Mod +++ b/src/lib/system/freebsd/clang/Files0.Mod @@ -36,7 +36,8 @@ MODULE Files0; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files workName, registerName: FileName; tempFile: BOOLEAN; dev, ino, mtime: LONGINT; - fd-, len, pos: LONGINT; + fd-: INTEGER; + len, pos: LONGINT; bufs: ARRAY nofbufs OF Buffer; swapper, state: INTEGER END ; @@ -128,12 +129,12 @@ MODULE Files0; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files f.workName := f.registerName; f.registerName := ""; f.tempFile := FALSE END ; errno := Unix.Unlink(f.workName); (*unlink first to avoid stale NFS handles and to avoid reuse of inodes*) - f.fd := Unix.Open(f.workName, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8}); +f.fd := Unix.Open(f.workName, SHORT(SYSTEM.VAL(LONGINT, (Unix.rdwr + Unix.creat + Unix.trunc))), SHORT(SYSTEM.VAL(LONGINT, ({2, 4,5, 7,8})))); done := f.fd >= 0; errno := Unix.errno(); IF (~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE))) OR (done & (f.fd >= fileTabSize)) THEN IF done & (f.fd >= fileTabSize) THEN errno := Unix.Close(f.fd) END ; Kernel.GC(TRUE); - f.fd := Unix.Open(f.workName, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8}); + f.fd := Unix.Open(f.workName, SHORT(SYSTEM.VAL(LONGINT, (Unix.rdwr + Unix.creat + Unix.trunc))), SHORT(SYSTEM.VAL(LONGINT, {2, 4,5, 7,8}))); done := f.fd >= 0 END ; IF done THEN @@ -236,7 +237,7 @@ MODULE Files0; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files END CacheEntry; PROCEDURE Old* (name: ARRAY OF CHAR): File; - VAR f: File; fd, res, errno: LONGINT; pos: INTEGER; done: BOOLEAN; + VAR f: File; fd: INTEGER; res, errno: LONGINT; pos: INTEGER; done: BOOLEAN; dir, path: ARRAY 256 OF CHAR; stat: Unix.Status; BEGIN @@ -245,17 +246,17 @@ MODULE Files0; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files ELSE pos := 0; ScanPath(pos, dir); MakeFileName(dir, name, path); ScanPath(pos, dir) END ; LOOP - fd := Unix.Open(path, Unix.rdwr, {}); done := fd >= 0; errno := Unix.errno(); + fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr)), SHORT(SYSTEM.VAL(LONGINT, {}))); done := fd >= 0; errno := Unix.errno(); IF (~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE))) OR (done & (fd >= fileTabSize)) THEN IF done & (fd >= fileTabSize) THEN res := Unix.Close(fd) END ; Kernel.GC(TRUE); - fd := Unix.Open(path, Unix.rdwr, {}); + fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr)), SHORT(SYSTEM.VAL(LONGINT, {}))); done := fd >= 0; errno := Unix.errno(); IF ~done & ((errno = Unix.ENFILE) OR (errno = Unix.EMFILE)) THEN Err("too many files open", f, errno) END END ; IF ~done & ((errno = Unix.EACCES) OR (errno = Unix.EROFS) OR (errno = Unix.EAGAIN)) THEN (* errno EAGAIN observed on Solaris 2.4 *) - fd := Unix.Open(path, Unix.rdonly, {}); done := fd >= 0; errno := Unix.errno() + fd := Unix.Open(path, SHORT(SYSTEM.VAL(LONGINT, Unix.rdonly)), SHORT(SYSTEM.VAL(LONGINT, {}))); done := fd >= 0; errno := Unix.errno() END ; IF (~done) & (errno # Unix.ENOENT) THEN Console.String("warning Files0.Old "); Console.String(name); @@ -456,7 +457,7 @@ Especially Length would become fairly complex. END Delete; PROCEDURE Rename* (old, new: ARRAY OF CHAR; VAR res: INTEGER); - VAR fdold, fdnew, n, errno, r: LONGINT; + VAR fdold, fdnew: INTEGER; n, errno, r: LONGINT; ostat, nstat: Unix.Status; buf: ARRAY 4096 OF CHAR; BEGIN @@ -469,9 +470,9 @@ Especially Length would become fairly complex. r := Unix.Rename(old, new); IF r < 0 THEN res := SHORT(Unix.errno()); IF res = Unix.EXDEV THEN (* cross device link, move the file *) - fdold := Unix.Open(old, Unix.rdonly, {}); + fdold := Unix.Open(old, SHORT(SYSTEM.VAL(LONGINT, Unix.rdonly)), SHORT(SYSTEM.VAL(LONGINT, {}))); IF fdold < 0 THEN res := 2; RETURN END ; - fdnew := Unix.Open(new, Unix.rdwr + Unix.creat + Unix.trunc, {2, 4,5, 7,8}); + fdnew := Unix.Open(new, SHORT(SYSTEM.VAL(LONGINT, Unix.rdwr + Unix.creat + Unix.trunc)), SHORT(SYSTEM.VAL(LONGINT, {2, 4,5, 7,8}))); IF fdnew < 0 THEN r := Unix.Close(fdold); res := 3; RETURN END ; n := Unix.Read(fdold, SYSTEM.ADR(buf), bufsize); WHILE n > 0 DO diff --git a/src/lib/system/freebsd/clang/x86_64/Unix.Mod b/src/lib/system/freebsd/clang/x86_64/Unix.Mod index b1382eb2..d792e956 100644 --- a/src/lib/system/freebsd/clang/x86_64/Unix.Mod +++ b/src/lib/system/freebsd/clang/x86_64/Unix.Mod @@ -369,78 +369,78 @@ from man gettimeofday PROCEDURE -includeFcntl() "#include "; - PROCEDURE -err(): LONGINT + PROCEDURE -err(): INTEGER "errno"; - PROCEDURE errno*(): LONGINT; + PROCEDURE errno*(): INTEGER; BEGIN RETURN err() END errno; - PROCEDURE -Exit*(n: LONGINT) + PROCEDURE -Exit*(n: INTEGER) "exit(n)"; - PROCEDURE -Fork*(): LONGINT + PROCEDURE -Fork*(): INTEGER "fork()"; - PROCEDURE -Wait*(VAR status: LONGINT): LONGINT + PROCEDURE -Wait*(VAR status: INTEGER): INTEGER "wait(status)"; - PROCEDURE -Select*(width: LONGINT; VAR readfds, writefds, exceptfds: FdSet; VAR timeout: Timeval): LONGINT + PROCEDURE -Select*(width: INTEGER; VAR readfds, writefds, exceptfds: FdSet; VAR timeout: Timeval): INTEGER "select(width, readfds, writefds, exceptfds, timeout)"; - PROCEDURE -Gettimeofday* (VAR tv: Timeval; VAR tz: Timezone) : LONGINT + PROCEDURE -Gettimeofday* (VAR tv: Timeval; VAR tz: Timezone) : INTEGER "gettimeofday(tv, tz)"; - PROCEDURE -Read* (fd, buf, nbyte: LONGINT): LONGINT + PROCEDURE -Read* (fd: INTEGER; buf, nbyte: LONGINT): LONGINT "read(fd, buf, nbyte)"; - PROCEDURE -ReadBlk* (fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT + PROCEDURE -ReadBlk* (fd: INTEGER; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT "read(fd, buf, buf__len)"; - PROCEDURE -Write* (fd, buf, nbyte: LONGINT): LONGINT + PROCEDURE -Write* (fd: INTEGER; buf, nbyte: LONGINT): LONGINT "write(fd, buf, nbyte)"; - PROCEDURE -WriteBlk* (fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT + PROCEDURE -WriteBlk* (fd: INTEGER; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT "write(fd, buf, buf__len)"; - PROCEDURE -Dup*(fd: LONGINT): LONGINT + PROCEDURE -Dup*(fd: INTEGER): INTEGER "dup(fd)"; - PROCEDURE -Dup2*(fd1, fd2: LONGINT): LONGINT + PROCEDURE -Dup2*(fd1, fd2: INTEGER): INTEGER "dup(fd1, fd2)"; - PROCEDURE -Pipe*(fds : LONGINT): LONGINT + PROCEDURE -Pipe*(fds : LONGINT): INTEGER "pipe(fds)"; - PROCEDURE -Getpid*(): LONGINT + PROCEDURE -Getpid*(): INTEGER "getpid()"; - PROCEDURE -Getuid*(): LONGINT + PROCEDURE -Getuid*(): INTEGER "getuid()"; - PROCEDURE -Geteuid*(): LONGINT + PROCEDURE -Geteuid*(): INTEGER "geteuid()"; - PROCEDURE -Getgid*(): LONGINT + PROCEDURE -Getgid*(): INTEGER "getgid()"; - PROCEDURE -Getegid*(): LONGINT + PROCEDURE -Getegid*(): INTEGER "getegid()"; - PROCEDURE -Unlink*(name: Name): LONGINT + PROCEDURE -Unlink*(name: Name): INTEGER "unlink(name)"; - PROCEDURE -Open*(name: Name; flag, mode: SET): LONGINT + PROCEDURE -Open*(name: Name; flag: INTEGER; mode: LONGINT): INTEGER "open(name, flag, mode)"; - PROCEDURE -Close*(fd: LONGINT): LONGINT + PROCEDURE -Close*(fd: INTEGER): INTEGER "close(fd)"; - PROCEDURE -stat(name: Name; VAR statbuf: Status): LONGINT + PROCEDURE -stat(name: Name; VAR statbuf: Status): INTEGER "stat((const char*)name, (struct stat*)statbuf)"; - PROCEDURE Stat*(name: Name; VAR statbuf: Status): LONGINT; + PROCEDURE Stat*(name: Name; VAR statbuf: Status): INTEGER; VAR res: LONGINT; BEGIN res := stat(name, statbuf); @@ -451,10 +451,10 @@ from man gettimeofday RETURN res; END Stat; - PROCEDURE -fstat(fd: LONGINT; VAR statbuf: Status): LONGINT + PROCEDURE -fstat(fd: INTEGER; VAR statbuf: Status): INTEGER "fstat(fd, (struct stat*)statbuf)"; - PROCEDURE Fstat*(fd: LONGINT; VAR statbuf: Status): LONGINT; + PROCEDURE Fstat*(fd: INTEGER; VAR statbuf: Status): INTEGER; VAR res: LONGINT; BEGIN res := fstat(fd, statbuf); @@ -464,43 +464,43 @@ from man gettimeofday RETURN res; END Fstat; - PROCEDURE -Fchmod*(fd, mode: LONGINT): LONGINT + PROCEDURE -Fchmod*(fd, mode: INTEGER): INTEGER "fchmod(fd, mode)"; - PROCEDURE -Chmod*(path: Name; mode: LONGINT): LONGINT + PROCEDURE -Chmod*(path: Name; mode: INTEGER): INTEGER "chmod(path, mode)"; - PROCEDURE -Lseek*(fd, offset, origin: LONGINT): LONGINT + PROCEDURE -Lseek*(fd: INTEGER; offset: LONGINT; origin: INTEGER): LONGINT "lseek(fd, offset, origin)"; - PROCEDURE -Fsync*(fd: LONGINT): LONGINT + PROCEDURE -Fsync*(fd: INTEGER): INTEGER "fsync(fd)"; - PROCEDURE -Fcntl*(fd, cmd, arg: LONGINT ): LONGINT + PROCEDURE -Fcntl*(fd: INTEGER; cmd: INTEGER; arg: LONGINT ): INTEGER "fcntl(fd, cmd, arg)"; - PROCEDURE -Flock*(fd, operation: LONGINT): LONGINT + PROCEDURE -Flock*(fd, operation: INTEGER): INTEGER "flock(fd, operation)"; - PROCEDURE -Ftruncate*(fd, length: LONGINT): LONGINT + PROCEDURE -Ftruncate*(fd: INTEGER; length: LONGINT): INTEGER "ftruncate(fd, length)"; - PROCEDURE -Readblk*(fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE; len: LONGINT): LONGINT + PROCEDURE -Readblk*(fd: INTEGER; VAR buf: ARRAY OF SYSTEM.BYTE; len: LONGINT): LONGINT "read(fd, buf, len)"; - PROCEDURE -Rename*(old, new: Name): LONGINT + PROCEDURE -Rename*(old, new: Name): INTEGER "rename(old, new)"; - PROCEDURE -Chdir*(path: Name): LONGINT + PROCEDURE -Chdir*(path: Name): INTEGER "chdir(path)"; - PROCEDURE -Ioctl*(fd, request, arg: LONGINT): LONGINT + PROCEDURE -Ioctl*(fd: INTEGER; request, arg: LONGINT): LONGINT "ioctl(fd, request, arg)"; - PROCEDURE -Kill*(pid, sig: LONGINT): LONGINT + PROCEDURE -Kill*(pid, sig: INTEGER): INTEGER "kill(pid, sig)"; - PROCEDURE -Sigsetmask*(mask: LONGINT): LONGINT + PROCEDURE -Sigsetmask*(mask: INTEGER): INTEGER "sigsetmask(mask)"; PROCEDURE -Sleep*(ms : INTEGER): INTEGER @@ -514,31 +514,31 @@ from man gettimeofday PROCEDURE -Gethostbyname*(name: Name): HostEntry "(Unix_HostEntry)gethostbyname(name)"; - PROCEDURE -Gethostname*(VAR name: Name): LONGINT + PROCEDURE -Gethostname*(VAR name: Name): INTEGER "gethostname(name, name__len)"; - PROCEDURE -Socket*(af, type, protocol: LONGINT): LONGINT + PROCEDURE -Socket*(af, type, protocol: INTEGER): INTEGER "socket(af, type, protocol)"; - PROCEDURE -Connect*(socket: LONGINT; name: Sockaddr; namelen: LONGINT): LONGINT + PROCEDURE -Connect*(socket: INTEGER; name: Sockaddr; namelen: INTEGER): INTEGER "connect(socket, &(name), namelen)"; - PROCEDURE -Getsockname*(socket: LONGINT; VAR name: Sockaddr; VAR namelen: LONGINT): LONGINT + PROCEDURE -Getsockname*(socket: INTEGER; VAR name: Sockaddr; VAR namelen: INTEGER): INTEGER "getsockname(socket, name, namelen)"; - PROCEDURE -Bind*(socket: LONGINT; name: Sockaddr; namelen: LONGINT): LONGINT + PROCEDURE -Bind*(socket: INTEGER; name: Sockaddr; namelen: INTEGER): INTEGER "bind(socket, &(name), namelen)"; - PROCEDURE -Listen*(socket, backlog: LONGINT): LONGINT + PROCEDURE -Listen*(socket, backlog: INTEGER): INTEGER "listen(socket, backlog)"; - PROCEDURE -Accept*(socket: LONGINT; VAR addr: Sockaddr; VAR addrlen: LONGINT): LONGINT + PROCEDURE -Accept*(socket: INTEGER; VAR addr: Sockaddr; VAR addrlen: INTEGER): LONGINT "accept(socket, addr, addrlen)"; - PROCEDURE -Recv*(socket, bufadr, buflen, flags: LONGINT): LONGINT + PROCEDURE -Recv*(socket: INTEGER; bufadr, buflen: LONGINT; flags: INTEGER): LONGINT "recv(socket, bufadr, buflen, flags)"; - PROCEDURE -Send*(socket, bufadr, buflen, flags: LONGINT): LONGINT + PROCEDURE -Send*(socket: INTEGER; bufadr, buflen: LONGINT; flags: INTEGER): LONGINT "send(socket, bufadr, buflen, flags)"; PROCEDURE -sys(str: ARRAY OF CHAR): INTEGER (* need this to call external tools like gcc or gas; noch *) diff --git a/src/lib/system/linux/clang/x86_64/Unix.Mod b/src/lib/system/linux/clang/x86_64/Unix.Mod index 195bb41d..e44840d0 100644 --- a/src/lib/system/linux/clang/x86_64/Unix.Mod +++ b/src/lib/system/linux/clang/x86_64/Unix.Mod @@ -331,10 +331,10 @@ from man gettimeofday PROCEDURE -includeSelect() "#include "; - PROCEDURE -err(): LONGINT + PROCEDURE -err(): INTEGER "errno"; - PROCEDURE errno*(): LONGINT; + PROCEDURE errno*(): INTEGER; BEGIN RETURN err() END errno; diff --git a/src/lib/system/linux/gcc/x86_64/Unix.Mod b/src/lib/system/linux/gcc/x86_64/Unix.Mod index 195bb41d..e44840d0 100644 --- a/src/lib/system/linux/gcc/x86_64/Unix.Mod +++ b/src/lib/system/linux/gcc/x86_64/Unix.Mod @@ -331,10 +331,10 @@ from man gettimeofday PROCEDURE -includeSelect() "#include "; - PROCEDURE -err(): LONGINT + PROCEDURE -err(): INTEGER "errno"; - PROCEDURE errno*(): LONGINT; + PROCEDURE errno*(): INTEGER; BEGIN RETURN err() END errno;