* Fucking K&R syntax!

git-svn-id: svn://svn.zoy.org/elk/trunk@89 55e467fa-43c5-0310-a8a2-de718669efc6
This commit is contained in:
sam 2003-09-04 13:29:16 +00:00
parent df7cace828
commit 28fb5f0f30
13 changed files with 100 additions and 82 deletions

View File

@ -94,7 +94,7 @@ static SYMDESCR Errno_Syms[] = {
Object Unix_Errobj, V_Call_Errhandler;
static Object P_Errorp(x) Object x; {
static Object P_Errorp(Object x) {
return EQ(x, Unix_Errobj) ? True : False;
}
@ -105,7 +105,7 @@ static Object P_Errno() {
return Nullp(sym) ? Make_Integer(Saved_Errno) : sym;
}
elk_init_unix_error() {
void elk_init_unix_error() {
Unix_Errobj = Intern("*unix-error-object*");
Unix_Errobj = Const_Cons(Unix_Errobj, Null);
Global_GC_Link(Unix_Errobj);

View File

@ -30,6 +30,8 @@
#include "unix.h"
#include <string.h>
static SYMDESCR Open_Syms[] = {
{ "read", 1 },
{ "write", 2 },
@ -82,13 +84,13 @@ SYMDESCR Lseek_Syms[] = {
/* Dangerous: may be used to close the filedescriptor of a port.
*/
static Object P_Close(fd) Object fd; {
static Object P_Close(Object fd) {
if (close(Get_Integer(fd)) == -1)
Raise_System_Error("~E");
return Void;
}
static Object P_Close_On_Exec(argc, argv) int argc; Object *argv; {
static Object P_Close_On_Exec(int argc, Object *argv) {
int flags, fd;
fd = Get_Integer(argv[0]);
@ -102,7 +104,7 @@ static Object P_Close_On_Exec(argc, argv) int argc; Object *argv; {
return flags & 1 ? True : False;
}
static Object P_Dup(argc, argv) int argc; Object *argv; {
static Object P_Dup(int argc, Object *argv) {
int fd = Get_Integer(argv[0]), ret;
if ((ret = (argc == 1 ? dup(fd) : dup2(fd, Get_Integer(argv[1])))) == -1)
@ -110,7 +112,7 @@ static Object P_Dup(argc, argv) int argc; Object *argv; {
return Make_Integer(ret);
}
static Object P_Filedescriptor_Flags(argc, argv) int argc; Object *argv; {
static Object P_Filedescriptor_Flags(int argc, Object *argv) {
int flags, fd;
fd = Get_Integer(argv[0]);
@ -123,7 +125,7 @@ static Object P_Filedescriptor_Flags(argc, argv) int argc; Object *argv; {
return Bits_To_Symbols((unsigned long)flags, 1, Fcntl_Flags);
}
static Object P_Fildescriptor_Port(fd, mode) Object fd, mode; {
static Object P_Fildescriptor_Port(Object fd, Object mode) {
int n, flags;
FILE *fp;
Object ret;
@ -153,7 +155,7 @@ static Object P_Fildescriptor_Port(fd, mode) Object fd, mode; {
return ret;
}
static Object P_Isatty(fd) Object fd; {
static Object P_Isatty(Object fd) {
return isatty(Get_Integer(fd)) ? True : False;
}
@ -167,7 +169,7 @@ static Object P_List_Open_Modes() {
/* Bad assumption: off_t fits into an unsigned int.
*/
static Object P_Lseek(fd, off, whence) Object fd, off, whence; {
static Object P_Lseek(Object fd, Object off, Object whence) {
off_t ret;
if ((ret = lseek(Get_Integer(fd), (off_t)Get_Long(off),
@ -201,7 +203,7 @@ static Object P_Num_Filedescriptors() {
return Make_Integer(Num_Filedescriptors());
}
static Object P_Open(argc, argv) int argc; Object *argv; {
static Object P_Open(int argc, Object *argv) {
Object fn;
int mode, n;
@ -226,14 +228,14 @@ static Object P_Pipe() {
return Integer_Pair(fd[0], fd[1]);
}
static Object P_Port_Filedescriptor(port) Object port; {
static Object P_Port_Filedescriptor(Object port) {
Check_Type(port, T_Port);
if ((PORT(port)->flags & (P_STRING|P_OPEN)) != P_OPEN)
Primitive_Error("~s: invalid port", port);
return Make_Integer(fileno(PORT(port)->file));
}
static Object Read_Write(argc, argv, readflg) int argc; Object *argv; {
static Object Read_Write(int argc, Object *argv, int readflg) {
struct S_String *sp;
int len, fd;
@ -255,15 +257,15 @@ static Object Read_Write(argc, argv, readflg) int argc; Object *argv; {
/* Avoid name clash with P_Read/P_Write of interpreter kernel
*/
static Object P_Readx(argc, argv) int argc; Object *argv; {
static Object P_Readx(int argc, Object *argv) {
return Read_Write(argc, argv, 1);
}
static Object P_Writex(argc, argv) int argc; Object *argv; {
static Object P_Writex(int argc, Object *argv) {
return Read_Write(argc, argv, 0);
}
static Object P_Ttyname(fd) Object fd; {
static Object P_Ttyname(Object fd) {
char *ret;
extern char *ttyname();

View File

@ -30,6 +30,8 @@
#include "unix.h"
#include <string.h>
#ifdef HAVE_UTIME_H
# include <utime.h>
#else
@ -55,7 +57,7 @@ static SYMDESCR Access_Syms[] = {
{ 0, 0 }
};
static Object P_Accessp(fn, mode) Object fn, mode; {
static Object P_Accessp(Object fn, Object mode) {
if (access(Get_Strsym(fn), (int)Symbols_To_Bits(mode, 1, Access_Syms))
== 0)
return True;
@ -63,37 +65,37 @@ static Object P_Accessp(fn, mode) Object fn, mode; {
return False;
}
static Object P_Chdir(fn) Object fn; {
static Object P_Chdir(Object fn) {
if (chdir(Get_Strsym(fn)) == -1)
Raise_System_Error1("~s: ~E", fn);
return Void;
}
static Object P_Chmod(fn, mode) Object fn, mode; {
static Object P_Chmod(Object fn, Object mode) {
if (chmod(Get_Strsym(fn), Get_Integer(mode)) == -1)
Raise_System_Error1("~s: ~E", fn);
return Void;
}
static Object P_Chown(fn, uid, gid) Object fn, uid, gid; {
static Object P_Chown(Object fn, Object uid, Object gid) {
if (chown(Get_Strsym(fn), Get_Integer(uid), Get_Integer(gid)) == -1)
Raise_System_Error1("~s: ~E", fn);
return Void;
}
static Object P_Link(fn1, fn2) Object fn1, fn2; {
static Object P_Link(Object fn1, Object fn2) {
if (link(Get_Strsym(fn1), Get_Strsym(fn2)) == -1)
Raise_System_Error2("(~s ~s): ~E", fn1, fn2);
return Void;
}
static Object P_Mkdir(fn, mode) Object fn, mode; {
static Object P_Mkdir(Object fn, Object mode) {
if (mkdir(Get_Strsym(fn), Get_Integer(mode)) == -1)
Raise_System_Error1("~s: ~E", fn);
return Void;
}
static Object P_Read_Directory(fn) Object fn; {
static Object P_Read_Directory(Object fn) {
DIR *d;
#ifdef HAVE_DIRENT
struct dirent *dp;
@ -125,7 +127,7 @@ static Object P_Read_Directory(fn) Object fn; {
return ret;
}
static Object P_Rename(fromfn, tofn) Object fromfn, tofn; {
static Object P_Rename(Object fromfn, Object tofn) {
#ifdef HAVE_RENAME
if (rename(Get_Strsym(fromfn), Get_Strsym(tofn)) == -1)
Raise_System_Error2("(~s ~s): ~E", fromfn, tofn);
@ -149,7 +151,7 @@ static Object P_Rename(fromfn, tofn) Object fromfn, tofn; {
return Void;
}
static Object General_Stat(obj, ret, l) Object obj, ret; int l; {
static Object General_Stat(Object obj, Object ret, int l) {
Object x;
struct stat st;
char *s, *fn = 0;
@ -212,16 +214,16 @@ static Object General_Stat(obj, ret, l) Object obj, ret; int l; {
return Void;
}
static Object P_Stat(obj, ret) Object obj, ret; {
static Object P_Stat(Object obj, Object ret) {
return General_Stat(obj, ret, 0);
}
#ifdef SYMLINKS
static Object P_Lstat(obj, ret) Object obj, ret; {
static Object P_Lstat(Object obj, Object ret) {
return General_Stat(obj, ret, 1);
}
static Object P_Readlink(fn) Object fn; {
static Object P_Readlink(Object fn) {
char *buf;
int len;
Object ret;
@ -238,26 +240,26 @@ static Object P_Readlink(fn) Object fn; {
return ret;
}
static Object P_Rmdir(fn) Object fn; {
static Object P_Rmdir(Object fn) {
if (rmdir(Get_Strsym(fn)) == -1)
Raise_System_Error1("~s: ~E", fn);
return Void;
}
static Object P_Symlink(fn1, fn2) Object fn1, fn2; {
static Object P_Symlink(Object fn1, Object fn2) {
if (symlink(Get_Strsym(fn1), Get_Strsym(fn2)) == -1)
Raise_System_Error2("(~s ~s): ~E", fn1, fn2);
return Void;
}
#endif
static Object P_Unlink(fn) Object fn; {
static Object P_Unlink(Object fn) {
if (unlink(Get_Strsym(fn)) == -1)
Raise_System_Error1("~s: ~E", fn);
return Void;
}
static Object P_Utime(argc, argv) int argc; Object *argv; {
static Object P_Utime(int argc, Object *argv) {
struct utimbuf ut;
if (argc == 2)
@ -272,7 +274,7 @@ static Object P_Utime(argc, argv) int argc; Object *argv; {
return Void;
}
elk_init_unix_file() {
void elk_init_unix_file() {
Def_Prim(P_Accessp, "unix-access?", 2, 2, EVAL);
Def_Prim(P_Chdir, "unix-chdir", 1, 1, EVAL);
Def_Prim(P_Chmod, "unix-chmod", 2, 2, EVAL);

View File

@ -43,8 +43,8 @@
#ifdef LOCKS
static Object P_Internal_Lock_Operation(fd, lck, block, what, ret)
Object fd, lck, block, what, ret; {
static Object P_Internal_Lock_Operation(Object fd, Object lck, Object block,
Object what, Object ret) {
#ifdef RECORD_LOCKS
struct flock fl;
#else
@ -108,7 +108,7 @@ static Object P_Internal_Lock_Operation(fd, lck, block, what, ret)
#endif
elk_init_unix_lock() {
void elk_init_unix_lock() {
#ifdef LOCKS
Def_Prim(P_Internal_Lock_Operation, "unix-internal-lock-operation",
5, 5, EVAL);

View File

@ -30,7 +30,9 @@
#include "unix.h"
static Object P_Getpass(prompt) Object prompt; {
#include <string.h>
static Object P_Getpass(Object prompt) {
char *ret;
extern char *getpass();
@ -42,6 +44,6 @@ static Object P_Getpass(prompt) Object prompt; {
return Make_String(ret, strlen(ret));
}
elk_init_unix_misc() {
void elk_init_unix_misc() {
Def_Prim(P_Getpass, "unix-getpass", 1, 1, EVAL);
}

View File

@ -30,10 +30,11 @@
#include "unix.h"
#include <string.h>
#include <pwd.h>
#include <grp.h>
static Object P_Get_Passwd(argc, argv) int argc; Object *argv; {
static Object P_Get_Passwd(int argc, Object *argv) {
struct passwd *p;
Object arg, x;
@ -93,7 +94,7 @@ static Object P_End_Passwd() {
return Void;
}
static Object P_Get_Group(argc, argv) int argc; Object *argv; {
static Object P_Get_Group(int argc, Object *argv) {
char **pp;
struct group *p;
Object arg, member, x;
@ -156,7 +157,7 @@ static Object P_End_Group() {
return Void;
}
elk_init_unix_passwd() {
void elk_init_unix_passwd() {
Def_Prim(P_Get_Passwd, "unix-get-passwd-vector-fill!", 1, 2, VARARGS);
Def_Prim(P_Rewind_Passwd, "unix-rewind-passwd", 0, 0, EVAL);
Def_Prim(P_End_Passwd, "unix-end-passwd", 0, 0, EVAL);

View File

@ -30,6 +30,8 @@
#include "unix.h"
#include <string.h>
#include <stdio.h>
#include <sys/times.h>
/* "extern" in front of the next declaration causes the Ultrix 4.2 linker
@ -48,7 +50,8 @@ static Object P_Environ() {
GC_Link2(ret, cell);
for (ep = environ; *ep; ep++) {
cell = Cons(Null, Null);
if (p = index(*ep, '='))
p = index(*ep, '=');
if (p)
*p++ = 0;
else p = c+1;
str = Make_String(p, strlen(p));
@ -116,11 +119,11 @@ static Object General_Exec(argc, argv, path) int argc; Object *argv;
Raise_System_Error1("~s: ~E", fn);
}
static Object P_Exec(argc, argv) int argc; Object *argv; {
static Object P_Exec(int argc, Object *argv) {
return General_Exec(argc, argv, 0);
}
static Object P_Exec_Path(argc, argv) int argc; Object *argv; {
static Object P_Exec_Path(int argc, Object *argv) {
if (argc == 3) /* There is no execvpe (yet?). */
Primitive_Error("environment argument not supported");
return General_Exec(argc, argv, 1);
@ -138,7 +141,7 @@ static Object P_Fork() {
return Make_Integer(pid);
}
static Object P_Getenv(e) Object e; {
static Object P_Getenv(Object e) {
extern char *getenv();
char *s;
@ -195,7 +198,7 @@ static Object P_Getgroups() {
return ret;
}
static Object P_Nice(incr) Object incr; {
static Object P_Nice(Object incr) {
int ret;
errno = 0;
@ -204,10 +207,9 @@ static Object P_Nice(incr) Object incr; {
return Make_Integer(ret);
}
static Object Open_Pipe(cmd, flags) Object cmd; int flags; {
static Object Open_Pipe(Object cmd, int flags) {
FILE *fp;
Object ret;
extern pclose();
Disable_Interrupts;
if ((fp = popen(Get_String(cmd), flags == P_INPUT ? "r" : "w")) == 0) {
@ -221,16 +223,16 @@ static Object Open_Pipe(cmd, flags) Object cmd; int flags; {
return ret;
}
static Object P_Open_Input_Pipe(cmd) Object cmd; {
static Object P_Open_Input_Pipe(Object cmd) {
return Open_Pipe(cmd, P_INPUT);
}
static Object P_Open_Output_Pipe(cmd) Object cmd; {
static Object P_Open_Output_Pipe(Object cmd) {
return Open_Pipe(cmd, 0);
}
static Object P_Process_Resources(ret1, ret2) Object ret1, ret2; {
static hzval;
static Object P_Process_Resources(Object ret1, Object ret2) {
static int hzval;
struct tms tms;
Object x;
GC_Node2;
@ -266,12 +268,12 @@ static Object P_Process_Resources(ret1, ret2) Object ret1, ret2; {
return Make_Integer(hzval);
}
static Object P_Sleep(s) Object s; {
static Object P_Sleep(Object s) {
(void)sleep(Get_Unsigned(s));
return Void;
}
static Object P_System(cmd) Object cmd; {
static Object P_System(Object cmd) {
int n, pid, status;
char *s = Get_String(cmd);
@ -297,12 +299,13 @@ static Object P_System(cmd) Object cmd; {
if (n == -1)
return False;
*/
if (n = (status & 0377))
n = status & 0377;
if (n)
return Cons(Make_Integer(n), Null);
return Make_Integer((status >> 8) & 0377);
}
static Object P_Umask(mask) Object mask; {
static Object P_Umask(Object mask) {
return Make_Integer(umask(Get_Integer(mask)));
}
@ -351,7 +354,7 @@ err:
return ret;
}
elk_init_unix_process() {
void elk_init_unix_process() {
Def_Prim(P_Environ, "unix-environ", 0, 0, EVAL);
Def_Prim(P_Exec, "unix-exec", 2, 3, VARARGS);
Def_Prim(P_Exec_Path, "unix-exec-path", 2, 3, VARARGS);

View File

@ -178,7 +178,7 @@ static SYMDESCR Signal_Syms[] = {
{ 0, 0 }
};
static Object P_Kill(pid, sig) Object pid, sig; {
static Object P_Kill(Object pid, Object sig) {
int t, s;
if ((t = TYPE(sig)) == T_Fixnum || t == T_Bignum)
@ -209,12 +209,12 @@ static Object P_Pause() {
static Object Handlers;
static Object P_Alarm(s) Object s; {
static Object P_Alarm(Object s) {
return Make_Unsigned(alarm(Get_Unsigned(s)));
}
/*ARGSUSED*/
void General_Handler(sig) int sig; {
void General_Handler(int sig) {
Object fun, args;
#ifndef BSD_SIGNALS
@ -233,7 +233,7 @@ void General_Handler(sig) int sig; {
/*NOTREACHED*/
}
static Object Action_To_Sym(act) void (*act)(); {
static Object Action_To_Sym(void (*act)()) {
char *sym;
if (act == Signal_Exit)
@ -247,7 +247,7 @@ static Object Action_To_Sym(act) void (*act)(); {
return Intern(sym);
}
void Add_To_Mask(sig) int sig; {
void Add_To_Mask(int sig) {
#ifdef POSIX_SIGNALS
sigaddset(&Sigset_Block, sig);
#else
@ -257,7 +257,7 @@ void Add_To_Mask(sig) int sig; {
Force_Disable_Interrupts;
}
void Remove_From_Mask(sig) int sig; {
void Remove_From_Mask(int sig) {
#ifdef POSIX_SIGNALS
sigdelset(&Sigset_Block, sig);
#else
@ -265,7 +265,7 @@ void Remove_From_Mask(sig) int sig; {
#endif
}
static Object P_Signal(argc, argv) int argc; Object *argv; {
static Object P_Signal(int argc, Object *argv) {
int sig;
Object handler, old;
void (*disp)();
@ -321,7 +321,7 @@ static Object P_Signal(argc, argv) int argc; Object *argv; {
}
#endif /* RELIABLE_SIGNALS */
elk_init_unix_signal() {
void elk_init_unix_signal() {
Define_Symbol(&Sym_Exit, "exit");
Define_Symbol(&Sym_Default, "default");
Define_Symbol(&Sym_Ignore, "ignore");

View File

@ -30,6 +30,8 @@
#include "unix.h"
#include <string.h>
#if defined(HAVE_UNAME) && !defined(HAVE_GETHOSTNAME)
# include <sys/utsname.h>
#endif
@ -49,7 +51,7 @@ static SYMDESCR Limit_Syms[] = {
{ 0, 0 }
};
static Object P_File_Limit(lim, f) Object lim, f; {
static Object P_File_Limit(Object lim, Object f) {
int op, fd;
long ret;
char *fn = 0;
@ -163,7 +165,7 @@ static Object P_Job_Controlp() {
#endif
}
static Object P_System_Info(ret) Object ret; {
static Object P_System_Info(Object ret) {
#ifdef HAVE_GETHOSTNAME
char hostname[MAXHOSTNAMELEN];
char *p = hostname;
@ -198,7 +200,7 @@ static Object P_System_Info(ret) Object ret; {
return Void;
}
elk_init_unix_system() {
void elk_init_unix_system() {
Def_Prim(P_File_Limit, "unix-file-limit", 2, 2, EVAL);
Def_Prim(P_List_File_Limits, "unix-list-file-limits", 0, 0, EVAL);
Def_Prim(P_Job_Controlp, "unix-job-control?", 0, 0, EVAL);

View File

@ -30,6 +30,8 @@
#include "unix.h"
#include <string.h>
#ifdef HAVE_TEMPNAM /* Make sure only one of these is defined (if any) */
# undef HAVE_TMPNAM /* Order of preference: tempnam, mktemp, tmpnam */
# undef HAVE_MKTEMP
@ -43,7 +45,7 @@
# undef HAVE_MKTEMP
#endif
static Object P_Tempname(argc, argv) int argc; Object *argv; {
static Object P_Tempname(int argc, Object *argv) {
char *name, *dir = 0, *pref = 0;
Object ret;
#ifdef HAVE_TMPNAM
@ -117,6 +119,6 @@ fail: ;
return ret;
}
elk_init_unix_temp() {
void elk_init_unix_temp() {
Def_Prim(P_Tempname, "unix-tempname", 0, 2, VARARGS);
}

View File

@ -30,6 +30,8 @@
#include "unix.h"
#include <string.h>
#if !defined(HAVE_GETTIMEOFDAY) && defined(HAVE_FTIME)
# include <sys/timeb.h>
#endif
@ -40,7 +42,7 @@
extern time_t time();
static Object P_Decode_Time(t, ret, utc) Object t, ret, utc; {
static Object P_Decode_Time(Object t, Object ret, Object utc) {
time_t tt;
struct tm *tp;
Object *op;
@ -62,7 +64,7 @@ static Object P_Decode_Time(t, ret, utc) Object t, ret, utc; {
return Void;
}
static Object P_Nanotime(ret) Object ret; {
static Object P_Nanotime(Object ret) {
Object x, y;
#ifdef HAVE_GETTIMEOFDAY
struct timeval tv;
@ -114,7 +116,7 @@ static Object P_Time() {
return Make_Unsigned_Long((unsigned long)t);
}
static struct tm *Get_Tm(v) Object v; {
static struct tm *Get_Tm(Object v) {
static struct tm tm;
int i, n;
Object *op;
@ -146,7 +148,7 @@ static struct tm *Get_Tm(v) Object v; {
return &tm;
}
static Object P_Time_To_String(t) Object t; {
static Object P_Time_To_String(Object t) {
time_t tt;
char *ret;
@ -165,7 +167,7 @@ static Object P_Time_To_String(t) Object t; {
return Make_String(ret, strlen(ret));
}
elk_init_unix_time() {
void elk_init_unix_time() {
Def_Prim(P_Time, "unix-time", 0, 0, EVAL);
Def_Prim(P_Decode_Time, "unix-decode-time-vector-fill!", 3, 3, EVAL);
Def_Prim(P_Time_To_String, "unix-time->string-internal", 1, 1, EVAL);

View File

@ -30,7 +30,7 @@
#include "unix.h"
Object Integer_Pair(a, b) int a, b; {
Object Integer_Pair(int a, int b) {
Object x, y;
GC_Node2;
@ -43,7 +43,7 @@ Object Integer_Pair(a, b) int a, b; {
return x;
}
Object Syms_To_List(p) SYMDESCR *p; {
Object Syms_To_List(SYMDESCR *p) {
Object ret, mode;
GC_Node;
@ -57,12 +57,12 @@ Object Syms_To_List(p) SYMDESCR *p; {
return P_Reverse(ret);
}
void Check_Result_Vector(x, len) Object x; {
void Check_Result_Vector(Object x, int len) {
Check_Type(x, T_Vector);
if (VECTOR(x)->size != len)
Primitive_Error("argument vector has the wrong length");
}
elk_init_unix_unix() {
void elk_init_unix_unix() {
P_Provide(Intern("unix.so"));
}

View File

@ -34,6 +34,8 @@
#include "unix.h"
#include <string.h>
#if defined(HAVE_WAITPID) || defined(HAVE_WAIT4)
# define WAIT_PROCESS
#endif
@ -110,7 +112,7 @@ static Object General_Wait(ret, ruret, haspid, pid, options)
status = "none";
st = code = 0;
#ifdef WAIT_RUSAGE
bzero((char *)&ru, sizeof(ru));
memset((char *)&ru, 0, sizeof(ru));
#endif
} else if (WIFSTOPPED(st)) {
status = "stopped"; code = WSTOPSIG(st);
@ -138,7 +140,7 @@ static Object General_Wait(ret, ruret, haspid, pid, options)
return Void;
}
static Object P_Wait(argc, argv) int argc; Object *argv; {
static Object P_Wait(int argc, Object *argv) {
int flags = 0;
if (argc == 3)
@ -154,13 +156,13 @@ static Object P_Wait(argc, argv) int argc; Object *argv; {
/* If WAIT_PROCESS is supported, then WAIT_OPTIONS is supported as well,
* because both waitpid() and wait4() accept options.
*/
static Object P_Wait_Process(argc, argv) int argc; Object *argv; {
static Object P_Wait_Process(int argc, Object *argv) {
return General_Wait(argv[0], argv[1], 1, Get_Integer(argv[2]),
argc == 4 ? (int)Symbols_To_Bits(argv[3], 1, Wait_Flags) : 0);
}
#endif
elk_init_unix_wait() {
void elk_init_unix_wait() {
Def_Prim(P_Wait, "unix-wait-vector-fill!", 2, 3, VARARGS);
#ifdef WAIT_PROCESS
Def_Prim(P_Wait_Process, "unix-wait-process-vector-fill!", 3, 4, VARARGS);