Support for SOCKS wrappers in Unix.i3. Also add some missing system call declarations. Also fix misdirected entries for "open" and "fcntl" which bypassed the VM wrappers. --- m3/m3core/src/unix/freebsd-2/Unix.i3.orig Sat Jan 7 14:41:42 1995 +++ m3/m3core/src/unix/freebsd-2/Unix.i3 Thu Apr 23 22:09:54 1998 @@ -84,9 +84,10 @@ <*EXTERNAL*> PROCEDURE fchmod (fd, mode: mode_t): int; (* ok *) -(*** chown, fchown - change owner and group of a file ***) +(*** chown, fchown, lchown - change owner and group of a file ***) <*EXTERNAL*> PROCEDURE chown (path: char_star; owner: uid_t; group: gid_t): int; <*EXTERNAL*> PROCEDURE fchown (fd: int; owner: uid_t; group: gid_t): int; +<*EXTERNAL*> PROCEDURE lchown (path: char_star; owner: uid_t; group: gid_t): int; (* ok *) (*** chroot - change root directory ***) @@ -94,7 +95,7 @@ (* ok *) (*** close - delete a descriptor ***) -<*EXTERNAL*> PROCEDURE close (d: int): int; +<*EXTERNAL "m3_close"*> PROCEDURE close (d: int): int; (* ok *) (*** creat - create a new file ***) @@ -102,8 +103,8 @@ (* ok, but obsolete *) (*** dup, dup2 - duplicate an open file descriptor ***) -<*EXTERNAL*> PROCEDURE dup (oldd: int): int; -<*EXTERNAL*> PROCEDURE dup2 (oldd, newd: int): int; +<*EXTERNAL "m3_dup"*> PROCEDURE dup (oldd: int): int; +<*EXTERNAL "m3_dup2"*> PROCEDURE dup2 (oldd, newd: int): int; (* ok *) (*** execve - execute a file ***) @@ -156,10 +157,7 @@ F_WRLCK = 3; (* Write lock *) F_UNLCK = 2; (* Remove lock(s) *) -(* with vm use this <*EXTERNAL "ufcntl"*> PROCEDURE fcntl (fd, request, arg: int): int; -*) -<*EXTERNAL "m3_fcntl"*> PROCEDURE fcntl (fd, request, arg: int): int; (* ok *) (*** flock - apply or remove an advisory lock on an open file ***) @@ -773,6 +771,9 @@ PROCEDURE lseek (d: int; offset: off_t; whence: int): off_t; (* ok *) +(*** mkfifo - make a FIFO (named pipe) ***) +<*EXTERNAL*> PROCEDURE mkfifo (path: char_star; mode: mode_t): int; + (*** mkdir - make a directory file ***) <*EXTERNAL*> PROCEDURE mkdir (path: char_star; mode: mode_t): int; (* ok *) @@ -827,12 +828,8 @@ M3_NONBLOCK = O_NONBLOCK; (* -1 => would block, 0 => EOF *) -(* with vm use this <*EXTERNAL "uopen" *> PROCEDURE open (name: char_star; flags, mode: int): int; -*) -<*EXTERNAL "m3_open" *> PROCEDURE open (name: char_star; - flags, mode: int): int; (* ok *) (*** pipe - create an interprocess channel ***) @@ -892,7 +889,7 @@ TYPE FDSet = SET OF [0 .. MAX_FDSET - 1]; -<*EXTERNAL*> PROCEDURE select (nfds: int; +<*EXTERNAL "m3_select"*> PROCEDURE select (nfds: int; readfds, writefds, exceptfds: UNTRACED REF FDSet; timeout: UNTRACED REF struct_timeval): int; (* ok *)