/*
 *  This file is part of ixemul.library for the Amiga.
 *  Copyright (C) 1991, 1992  Markus M. Wild
 *  Changed to avoid buffer overflows by J. Hoehle and
 *  restricted output length for: str(n)cat, strlen
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Library General Public
 *  License as published by the Free Software Foundation; either
 *  version 2 of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Library General Public License for more details.
 *
 *  You should have received a copy of the GNU Library General Public
 *  License along with this library; if not, write to the Free
 *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <sys/tracecntl.h>

#define LWS  ".35"	/* output Limited argument Width */
			/* Requires compiler string concatenation (ANSI-C) */

struct call {
  int  interesting;	
  char *name;		/* Function Name */

  void (*func)(char *, int, struct call *, struct trace_packet *);

  char *fmt;		/* Input format */
  char *rfmt;		/* Return format */
};

static void vp (char *buf, int len, struct call *c, struct trace_packet *tp);
static void vp_fcntl (char *buf, int len, struct call *c, struct trace_packet *tp);
static void vp_ioctl (char *buf, int len, struct call *c, struct trace_packet *tp);
static void vp_open (char *buf, int len, struct call *c, struct trace_packet *tp);
static void vp_pipe (char *buf, int len, struct call *c, struct trace_packet *tp);

static struct call call_table[] = {
  { 1, "bad call",	vp,	"",		""},
  { 1, "abort",	vp,	"()",		"",		},
  { 1, "abs",	vp,	"(%d)",		"%d",		},
  { 1, "access",	vp,	"(\"%s\", %d)",	"%d",		},
  { 1, "alarm",	vp,	"(%d)",		"%d",		},
  { 1, "atexit",	vp,	"($%lx)",	"%d",		},
  { 1, "atof",	vp,	"(\"%s\")",		"%g",		},
  { 1, "atoi",	vp,	"(\"%s\")",		"%d",		},
  { 1, "atol",	vp,	"(\"%s\")",		"%d",		},
  { 1, "bcmp",	vp,	"($%lx, $%lx, %d)",	"%d",		},
  { 1, "bcopy",	vp,	"($%lx, $%lx, %d)",	"",		},
  { 1, "bsearch",	vp,	"($%lx, $%lx, %d, %d, $%lx)", 	"$%lx",		},
  { 1, "bzero",	vp,	"($%lx, %d)",	"",		},
  { 1, "calloc",	vp,	"(%d, %d)",	"$%lx",		},
  { 1, "cfgetispeed",vp,	"($%lx)",	"%d",		},
  { 1, "cfgetospeed",vp,	"($%lx)",	"%d",		},
  { 1, "cfmakeraw",	vp,	"($%lx)",	"%d",		},
  { 1, "cfree",	vp,	"($%lx)",	"",		},
  { 1, "cfsetispeed",vp,	"($%lx)",	"%d",		},
  { 1, "cfsetospeed",vp,	"($%lx)",	"%d",		},
  { 1, "cfsetspeed",	vp,	"($%lx)",	"%d",		},
  { 1, "chdir",	vp,	"(\"%s\")",		"%d",		},
  { 1, "chmod",	vp,	"(\"%s\", %o)",	"%d",		},
  { 1, "chown",	vp,	"(\"%s\", %d, %d)",	"%d",		},
  { 1, "clock",	vp,	"()",		"%d",		},
  { 1, "close",	vp,	"(%d)",		"%d",		},
  { 1, "creat",	vp,	"(\"%s\", %o)",	"%d",		},
  { 1, "CreateExtIO",vp,	"($%lx, %d)",	"$%lx",		},
  { 1, "CreatePort",	vp,	"(\"%s\", %d)",	"$%lx",		},
  { 1, "CreateStdIO",vp,	"($%lx)",	"$%lx",		},
  { 1, "CreateTask",	vp,	"(\"%s\", %d, $%lx, %d)",	"$%lx",		},
  { 1, "DeleteExtIO",vp,	"($%lx)",	"",		},
  { 1, "DeletePort",	vp,	"($%lx)",	"",		},
  { 1, "DeleteStdIO",vp,	"($%lx)",	"",		},
  { 1, "DeleteTask",	vp,	"($%lx)",	"",		},
  { 1, "difftime",	vp,	"(%d, %d)",	"%d",		},
  { 1, "div",	vp,	"(%d, %d)",	"%d",		},
  { 1, "dup",	vp,	"(%d)",		"%d",		},
  { 1, "dup2",	vp,	"(%d, %d)",	"%d",		},
  { 1, "exit",	vp,	"(%d)",		"",		},
  { 1, "fchmod",	vp,	"(%d, %o)",	"%d",		},
  { 1, "fcntl",	vp_fcntl,	"(%d, \"%s\", %d)", "%d",		},
  { 1, "ffs",	vp,	"(%d)",		"%d",		},
  { 1, "flock",	vp,	"(%d, %d)",	"%d",		},
  { 1, "free",	vp,	"($%lx)",	"",		},
  { 1, "frexp",	vp,	"(%g, %g)",	"%g",		},
  { 1, "fstat",	vp, 	"(%d, $%lx)",	"%d",		},
  { 1, "fsync",	vp,	"(%d)",		"%d",		},
  { 1, "ftime",	vp,	"(%d)",		"%d",		},
  { 1, "ftruncate",	vp,	"(%d, %d)",	"%d",		},
  { 1, "getcwd",	vp,	"(\"%s\", %d)",	"%d",		},
  { 1, "getdtablesize",vp,	"()",		"%d",		},
  { 1, "getegid",	vp,	"(%d)",		"%d",		},
  { 1, "getenv",	vp,	"(\"%s\")",		"\"%s\"",		},
  { 1, "geteuid",	vp,	"()",		"%d",		},
  { 1, "getgid",	vp,	"()",		"%d",		},
  { 1, "getgrgid",	vp,	"()",		"%d",		},
  { 1, "getgroups",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "gethostname",vp,	"(\"%s\", %d)",	"%d",		},
  { 1, "getitimer",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "getpagesize",vp,	"()",		"%d",		},
  { 1, "getpgrp",	vp,	"(%d)",		"%d",		},
  { 1, "getpid",	vp,	"()",		"$%lx",		},
  { 1, "getppid",	vp,	"()",		"$%lx",		},
  { 1, "getpriority",vp,	"(%d, %d)",	"%d",		},
  { 1, "getpwnam",	vp,	"(\"%s\")",		"$%lx",		},
  { 1, "getpwuid",	vp,	"(%d)",		"$%lx",		},
  { 1, "getrlimit",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "getrusage",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "gettimeofday",vp,	"($%lx, $%lx)",	"%d",		},
  { 1, "getuid",	vp,	"()",		"%d",		},
  { 1, "getwd",	vp,	"(\"%s\")",		"%d",		},
  { 1, "index",	vp,	"(\"%s\", %c)",	"$%lx",		},
  { 1, "initgroups",	vp,	"(\"%s\", %d)",	"%d",		},
  { 1, "insque",	vp,	"($%lx, $%lx)",	"",		},
  { 1, "ioctl",		vp_ioctl,	"(%d, $%lx, $%lx)", "%d",		},
  { 1, "isalnum",	vp,	"(%c)",		"%d",		},
  { 1, "isalpha",	vp,	"(%c)",		"%d",		},
  { 1, "isatty",	vp,	"(%d)",		"%d",		},
  { 1, "iscntrl",	vp,	"(%c)",		"%d",		},
  { 1, "isdigit",	vp,	"(%c)",		"%d",		},
  { 1, "isgraph",	vp,	"(%c)",		"%d",		},
  { 1, "islower",	vp,	"(%c)",		"%d",		},
  { 1, "isprint",	vp,	"(%c)",		"%d",		},
  { 1, "ispunct",	vp,	"(%c)",		"%d",		},
  { 1, "isspace",	vp,	"(%c)",		"%d",		},
  { 1, "isupper",	vp,	"(%c)",		"%d",		},
  { 1, "isxdigit",	vp,	"(%c)",		"%d",		},
  { 1, "ix_startup",	vp,	"(\"%s\", %d, %d, \"%s\", $%lx, $%lx)", "%d",		},
  { 1, "kill",	vp,	"($%lx, %d)",	"%d",		},
  { 1, "killpg",	vp,	"($%lx, %d)",	"%d",		},
  { 1, "labs",	vp,	"(%d)",		"%d",		},
  { 1, "ldiv",	vp,	"(%d, %d)",	"%d",		},
  { 1, "link",	vp,	"(\"%s\", \"%s\")",	"%d",		},
  { 1, "longjmp",	vp,	"($%lx, %d)",	"%d",		},
  { 1, "longjmperror",vp,	"()",		"",		},
  { 1, "lseek",	vp,	"(%d, %d, %d)",	"%d",		},
  { 1, "lstat",	vp,	"(\"%s\", $%lx)",		"%d",		},
  { 1, "malloc",	vp,	"(%d)",		"$%lx",		},
  { 1, "memalign",	vp,	"(%d, %d)",	"$%lx",		},
  { 1, "memccpy",	vp,	"($%lx, $%lx, %d, %d)", "$%lx",		},
  { 1, "memchr",	vp,	"($%lx, %d, %d)",	"$%lx",		},
  { 1, "memcmp",	vp,	"($%lx, $%lx, %d)",	"%d",		},
  { 1, "memcpy",	vp,	"($%lx, $%lx, %d)",	"$%lx",		},
  { 1, "memmove",	vp,	"($%lx, $%lx, %d)",	"$%lx",		},
  { 1, "memset",	vp,	"($%lx, %d, %d)",	"$%lx",		},
  { 1, "mkdir",	vp,	"(\"%s\", %o)",	"%d",		},
  { 1, "mkstemp",	vp,	"(\"%s\")",		"%d",		},
  { 1, "mktemp",	vp,	"(\"%s\")",		"\"%s\"",		},
  { 1, "open",	vp_open,	"(\"%s\", \"%s\", %o)",	"%d",		},
  { 1, "pause",	vp,	"()",	"%d",		},
  { 1, "perror",	vp,	"(\"%s\")",	"%d",		},
  { 1, "pipe",	vp_pipe,	"([%d, %d])",	"%d",		},
  { 1, "psig",	vp,	"bad call",	"",		},
  { 1, "psignal",	vp,	"(%d, \"%s\")",	"",		},
  { 1, "putenv",	vp,	"(\"%s\")",		"",		},
  { 1, "qsort",	vp,	"($%lx, %d, %d, $%lx)",	"",		},
  { 1, "rand",	vp,	"()",	"%d",		},
  { 1, "random",	vp,	"()",	"%d",		},
  { 1, "read",	vp,	"(%d, $%lx, %d)",	"%d",		},
  { 1, "readlink",	vp,	"(\"%s\", \"%s\", %d)",		"%d",		},
  { 1, "readv",	vp,	"(%d, $%lx, %d)",	"%d",		},
  { 1, "realloc",	vp,	"($%lx, %d)",	"$%lx",		},
  { 1, "remove",	vp,	"(\"%s\")",	"%d",		},
  { 1, "remque",	vp,	"($%lx)",	"",		},
  { 1, "rename",	vp,	"(\"%s\", \"%s\")",	"%d",		},
  { 1, "rindex",	vp,	"(\"%s\", %c)",	"$%lx",		},
  { 1, "rmdir",	vp,	"(\"%s\")",	"%d",		},
  { 1, "select",	vp,	"(%d, $%lx, $%lx, $%lx, $%lx)",	"%d",		},
  { 1, "setenv",	vp,	"(\"%s\", \"%s\", %d)",	"%d",		},
  { 1, "setgroups",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "sethostname",vp,	"(\"%s\", %d)",	"%d",		},
  { 1, "setitimer",	vp,	"(%d, $%lx, $%lx)",	"%d",		},
  { 1, "setjmp",	vp,	"($%lx, %d)",	"%d",		},
  { 1, "setpgrp",	vp,	"($%lx, $%lx)",	"%d",		},
  { 1, "setpriority",vp,	"(%d, %d, %d)",	"%d",		},
  { 1, "setrlimit",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "settimeofday",vp,	"($%lx, $%lx)",	"%d",		},
  { 1, "sigaction",	vp,	"(%d, $%lx, $%lx)",	"%d",		},
  { 1, "sigaddset",	vp,	"($%lx, %d)",	"%d",		},
  { 1, "sigblock",	vp,	"($%lx)",	"%d",		},
  { 1, "sigdelset",	vp,	"($%lx, %d)",	"%d",		},
  { 1, "sigemptyset",vp,	"($%lx)",	"%d",		},
  { 1, "sigfillset",	vp,	"($%lx)",	"%d",		},
  { 1, "siginterrupt",vp,	"(%d, %d)",	"%d",		},
  { 1, "sigismember",vp,	"($%lx, %d)",	"%d",		},
  { 1, "siglongjmp",	vp,	"($%lx, %d)",	"%d",		},
  { 1, "signal",	vp,	"(%d, $%lx)",	"$%lx",		},
  { 1, "sigpause",	vp,	"($%lx)",	"%d",		},
  { 1, "sigpending",	vp,	"($%lx)",	"%d",		},
  { 1, "sigprocmask",vp,	"(%d, $%lx, $%lx)",	 "%d",		},
  { 1, "sigreturn",	vp,	"($%lx)",	"%d",		},
  { 1, "sigsetjmp",	vp,	"($%lx, %d)",	"%d",		},
  { 1, "sigsetmask",	vp,	"($%lx)",	"$%lx",		},
  { 1, "sigstack",	vp,	"($%lx)",	"%d",		},
  { 1, "sigsuspend",	vp,	"($%lx)",	"%d",		},
  { 1, "sigvec",	vp,	"(%d, $%lx, $%lx)",	"%d",		},
  { 1, "sleep",	vp,	"(%d)",	"%d",		},
  { 1, "srand",	vp,	"(%d)",	"",		},
  { 1, "srandom",	vp,	"(%d)",	"",		},
  { 1, "stat",	vp,	"(\"%s\", $%lx)",	"%d",		},
  { 1, "strcasecmp",	vp,	"(\"%s\", \"%s\")",	"%d",		},
  { 1, "strcat",	vp,	"(\"%"LWS"s\", \"%"LWS"s\")",	"$%lx",		},
  { 1, "strchr",	vp,	"(\"%s\", %c)",	"$%lx",		},
  { 1, "strcmp",	vp,	"(\"%"LWS"s\", \"%"LWS"s\")",	"%d",		},
  { 1, "strcoll",	vp,	"(\"%s\", \"%s\")",	"%d",		},
  { 1, "strcpy",	vp,	"($%lx, \"%s\")",	"$%lx",		},
  { 1, "strcspn",	vp,	"(\"%s\", \"%s\")",	"%d",		},
  { 1, "strdup",	vp,	"(\"%s\")",		"$%lx",		},
  { 1, "strerror",	vp,	"(%d)",		"\"%s\"",		},
  { 1, "strftime",	vp,	"(\"%s\", %d, \"%s\", $%lx)", "%d",		},
  { 1, "strlen",	vp,	"(\"%s\")",	"%d",		},
  { 1, "strmode",	vp,	"(\"%s\", %o)",	"",		},
  { 1, "strncasecmp",vp,	"(\"%s\", \"%s\", %d)",	"%d",		},
  { 1, "strncat",	vp,	"(\"%s\", \"%s\", %d)",	"$%lx",		},
  { 1, "strncmp",	vp,	"(\"%"LWS"s\", \"%"LWS"s\", %d)",	"%d",		},
  { 1, "strncpy",	vp,	"($%lx, \"%s\", %d)", "$%lx",		},
  { 1, "strpbrk",	vp,	"(\"%s\", \"%s\")",	"$%lx",		},
  { 1, "strrchr",	vp,	"(\"%s\", %c)",	"$%lx",		},
  { 1, "strsep",	vp,	"($%lx, \"%s\")",	"\"%s\"",		},
  { 1, "strspn",	vp,	"(\"%s\", \"%s\")",	"%d",		},
  { 1, "strstr",	vp,	"(\"%s\", \"%s\")",	"\"%s\"",		},
  { 1, "strtok",	vp,	"(\"%s\", \"%s\")",	"\"%s\"",		},
  { 1, "strtol",	vp,	"(\"%s\", $%lx, %d)",	"%d",		},
  { 1, "strtoul",	vp,	"(\"%s\", $%lx, %d)",	"%d",		},
  { 1, "strunvis",	vp,	"(\"%s\", \"%s\")",	"%d",		},
  { 1, "strvis",	vp,	"(\"%s\", \"%s\")",	"%d",		},
  { 1, "strvisx",	vp,	"(\"%s\", \"%s\", %d, %d)",	"%d",		},
  { 1, "strxfrm",	vp,	"(\"%s\", \"%s\", %d)",	"%d",		},
  { 1, "swab",	vp,	"($%lx, $%lx, %d)",	"",		},
  { 1, "symlink",	vp,	"(\"%s\", \"%s\")",	"%d",		},
  { 1, "system",	vp,	"(\"%s\")",	"%d",		},
  { 1, "tcgetattr",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "tcgetpgrp",	vp,	"(%d)",	"$%lx",		},
  { 1, "tcsetattr",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "tcsetpgrp",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "time",	vp,	"($%lx)",	"%d",		},
  { 1, "tmpnam",	vp,	"(\"%s\")",	"\"%s\"",		},
  { 1, "tolower",	vp,	"(%c)",	"%c",		},
  { 1, "toupper",	vp,	"(%c)", "%c",		},
  { 1, "truncate",	vp,	"(\"%s\", %d)",	"%d",		},
  { 1, "ualarm",	vp,	"(%d, %d)",	"%d",		},
  { 1, "umask",	vp,	"(%o)",	"%d",		},
  { 1, "unlink",	vp,	"(\"%s\")",	"%d",		},
  { 1, "unvis",	vp,	"(\"%s\", %c, $%lx, %d)",	"%d",		},
  { 1, "usleep",	vp,	"(%d)",	"%d",		},
  { 1, "utime",	vp,	"(\"%s\", $%lx)",	"%d",		},
  { 1, "utimes",	vp,	"(\"%s\", $%lx)",	"%d",		},
  { 1, "valloc",	vp,	"(%d)",	"$%lx",		},
  { 1, "vis",	vp,	"(\"%s\", %c, $%lx, %d)",	"\"%s\"",		},
  { 1, "write",	vp,	"(%d, $%lx, %d)",	"%d",		},
  { 1, "writev",	vp,	"(%d, $%lx, %d)",	"%d",		},
  { 1, "_exit",	vp,	"(%d)",	"",		},
  { 1, "_longjmp",	vp,	"($%lx, %d)",	"",		},
  { 1, "_setjmp",	vp,	"($%lx)",	"%d",		},
  { 1, "_wb_parse",	vp,	"($%lx, $%lx, \"%s\")",	"%d",		},
  { 1, "_cli_parse",	vp,	"($%lx, %d, \"%s\", $%lx, $%lx)",	"%d",		},
  { 1, "_main",	vp,	"($%lx, $%lx, $%lx)",	"%d",		},
  { 0, "__adddf3",	vp,	"(%g, %g)",	"%g",		},
  { 0, "__addsf3",	vp,	"(%g, %g)",	"%g",		},
  { 1, "__must_recompile220", vp, "()", "__ashldi3() is obsolete, recompile",},
  { 1, "__must_recompile221", vp, "()", "__ashlsi3() is obsolete, recompile",},
  { 1, "__must_recompile222", vp, "()", "__ashrdi3() is obsolete, recompile",},
  { 1, "__must_recompile223", vp, "()", "__ashrsi3() is obsolete, recompile",},
  { 1, "__must_recompile224", vp, "()", "__clear_cache() is obsolete, recompile",},
  { 0, "__cmpdf2",	vp,	"(%g, %g)",	"%d",		},
  { 1, "__must_recompile226", vp, "()", "__cmpdi2() is obsolete, recompile",},
  { 0, "__cmpsf2",	vp,	"(%g, %g)",	"%d",		},
  { 0, "__divdf3",	vp,	"(%g, %g)",	"%g",		},
  { 1, "__must_recompile229", vp, "()", "__divdi3() is obsolete, recompile",},
  { 0, "__divsf3",	vp,	"(%g, %g)",	"%g",		},
  { 0, "__divsi3",	vp,	"(%d, %d)",	"%d",		},
  { 0, "__eqdf2",	vp,	"(%g, %g)",	"%d",		},
  { 0, "__eqsf2",	vp,	"(%g, %g)",	"%d",		},
  { 0, "__extendsfdf2",vp,	"(%g)",	"%g",		},
  { 1, "__must_recompile235", vp, "()", "__fixdfdi() is obsolete, recompile",},
  { 0, "__fixdfsi",	vp,	"(%g)",	"%g",		},
  { 1, "__must_recompile237", vp, "()", "__fixsfdi() is obsolete, recompile",},
  { 0, "__fixsfsi",	vp,	"(%g)",	"%d",		},
  { 1, "__must_recompile239", vp, "()", "__fixunsdfdi() is obsolete, recompile", },
  { 1, "__must_recompile240", vp, "()", "__fixunsdfsi() is obsolete, recompile", },
  { 1, "__must_recompile241", vp, "()", "__fixunssfdi() is obsolete, recompile", },
  { 1, "__must_recompile242", vp, "()", "__fixunssfsi() is obsolete, recompile", },
  { 1, "__must_recompile243", vp, "()", "__floatdidf() is obsolete, recompile", },
  { 1, "__must_recompile244", vp, "()", "__floatdisf() is obsolete, recompile", },
  { 0, "__floatsidf",vp,	"(%d)",	"%g",		},
  { 0, "__floatsisf",vp,	"(%d)",	"%g",		},
  { 0, "__gedf2",	vp,	"(%g, %g)",	"%d",		},
  { 0, "__gesf2",	vp,	"(%g, %g)",	"%d",		},
  { 0, "__gtdf2",	vp,	"(%g, %g)",	"%d",		},
  { 0, "__gtsf2",	vp,	"(%g, %g)",	"%d",		},
  { 0, "__ledf2",	vp,	"(%g, %g)",	"%d",		},
  { 0, "__lesf2",	vp,	"(%g, %g)",	"%d",		},
  { 1, "__must_recompile253", vp, "()", "__lshldi3() is obsolete, recompile", },
  { 1, "__must_recompile254", vp, "()", "__lshlsi3() is obsolete, recompile", },
  { 1, "__must_recompile255", vp, "()", "__lshrdi3() is obsolete, recompile", },
  { 1, "__must_recompile256", vp, "()", "__lshrsi3() is obsolete, recompile", },
  { 0, "__ltdf2",	vp,	"(%g, %g)",	"%d",		},
  { 0, "__ltsf2",	vp,	"(%g, %g)",	"%d",		},
  { 1, "__must_recompile259", vp, "()", "__moddi3() is obsolete, recompile", },
  { 0, "__modsi3",	vp,	"(%d, %d)",	"%d",		},
  { 0, "__muldf3",	vp,	"(%g, %g)",	"%g",		},
  { 1, "__must_recompile262", vp, "()", "__muldi3() is obsolete, recompile", },
  { 0, "__mulsf3",	vp,	"(%g, %g)",	"%g",		},
  { 0, "__mulsi3",	vp,	"(%d, %d)",	"%d",		},
  { 0, "__nedf2",	vp,	"(%g, %g)",	"%d",		},
  { 0, "__negdf2",	vp,	"(%g)",	"%g",		},
  { 1, "__must_recompile267", vp, "()", "__negdi2() is obsolete, recompile", },
  { 0, "__negsf2",	vp,	"(%g)",	"%g",		},
  { 0, "__nesf2",	vp,	"(%g)",	"%g",		},
  { 0, "__subdf3",	vp,	"(%g, %g)",	"%g",		},
  { 0, "__subsf3",	vp,	"(%g, %g)",	"%g",		},
  { 0, "__truncdfsf2",vp,	"(%g)",	"%g",		},
  { 1, "__must_recompile273", vp, "()", "__ucmpdi2() is obsolete, recompile", },
  { 1, "__must_recompile274", vp, "()", "__udivdi3() is obsolete, recompile", },
  { 1, "__must_recompile275", vp, "()", "__udivmoddi4() is obsolete, recompile", },
  { 0, "__udivsi3",	vp,	"(%d, %d)",	"%d",		},
  { 1, "__must_recompile277", vp, "()", "__umoddi3() is obsolete, recompile", },
  { 0, "__umodsi3",	vp,	"(%d, %d)",	"%d",		},
  { 1, "ix_get_vars",vp,	"($%lx, $%lx)",	"",		},
  { 1, "modf",	vp,	"(%g, $%lx)",	"%g",		},
  { 1, "opendir",	vp,	"(\"%s\")",	"$%lx",		},
  { 1, "readdir",	vp,	"($%lx)",	"$%lx",		},
  { 1, "rewinddir",	vp,	"($%lx)",	"",		},
  { 1, "closedir",	vp,	"($%lx)",	"",		},
  { 1, "telldir",	vp,	"($%lx)",	"%d",		},
  { 1, "seekdir",	vp,	"($%lx, %d)",	"%d",		},
  { 1, "ssystem",       vp,     "(\"%s\")",     "ssystem() is obsolete, recompile", },
  { 1, "isinf",	vp,	"(%g)",	"%d",		},
  { 1, "isnan",	vp,	"(%g)",	"%d",		},
  { 1, "ldexp",	vp,	"(%g, %d)",	"%g",		},
  { 1, "achmod",	vp,	"(\"%s\", $%lx)",	"%d",		},
  { 1, "stricmp",	vp,	"(\"%s\", \"%s\")",	"%d",		},
  { 1, "strnicmp",	vp,	"(\"%s\", \"%s\", %d)",	"%d",		},
  { 1, "atan",	vp,	"(%g)",	"%g",		},
  { 1, "sin",	vp,	"(%g)",	"%g",		},
  { 1, "cos",	vp,	"(%g)",	"%g",		},
  { 1, "tan",	vp,	"(%g)",	"%g",		},
  { 1, "sincos",	vp,	"($%lx, %g)",	"%g",		},
  { 1, "sinh",	vp,	"(%g)",	"%g",		},
  { 1, "cosh",	vp,	"(%g)",	"%g",		},
  { 1, "tanh",	vp,	"(%g)",	"%g",		},
  { 1, "exp",	vp,	"(%g)",	"%g",		},
  { 1, "log",	vp,	"(%g)",	"%g",		},
  { 1, "pow",	vp,	"(%g, %g)",	"%g",		},
  { 1, "sqrt",	vp,	"(%g)",	"%g",		},
  { 1, "asin",	vp,	"(%g)",	"%g",		},
  { 1, "acos",	vp,	"(%g)",	"%g",		},
  { 1, "log10",	vp,	"(%g)",	"%g",		},
  { 1, "fabs",	vp,	"(%g)",	"%g",		},
  { 1, "initstate",	vp,	"(%d, $%lx, %d)",	"$%lx",		},
  { 1, "setstate",	vp,	"($%lx)",	"$%lx",		},
  { 1, "ix_exec_entry",vp,	"(%d, $%lx, $%lx, $%lx, $%lx)",	"%d",		},
  { 1, "ix_get_vars2",vp,	"(%d, $%lx, $%lx, $%lx, $%lx, $%lx, $%lx)",	"",		},
  { 1, "execve",	vp,	"(\"%s\", $%lx, $%lx)",	"%d",		},
  { 1, "execl",	vp,	"(\"%s\", \"%s\", \"%s\", ...)",	"%d",		},
  { 1, "execv",	vp,	"(\"%s\", $%lx)",	"%d",		},
  { 1, "execle",	vp,	"(\"%s\", $%lx, $%lx)",	"%d",		},
  { 1, "execlp",	vp,	"(\"%s\", \"%s\", \"%s\", ...)",	"%d",		},
  { 1, "execvp",	vp,	"(\"%s\", $%lx)",	"%d",		},
  { 1, "vfork2",	vp,	"()",	"%d",		},
  { 1, "wait4",	vp,	"($%lx, $%lx, $%lx, $%lx)",	"%d",		},
  { 1, "wait",	vp,	"($%lx)",	"%d",		},
  { 1, "wait3",	vp,	"($%lx, $%lx, $%lx)",	"%d",		},
  { 1, "waitpid",	vp,	"($%lx, $%lx, $%lx)",	"%d",		},
  { 1, "vfork_resume",vp,	"()",	"",		},
  { 1, "profil",	vp,	"($%lx, %d, %d, $%lx)",	"%d",		},
  { 1, "ptrace",	vp,	"(%d, $%lx, $%lx, $%lx)",	"%d",		},
  { 1, "clearerr",	vp,	"($%lx)",	"",		},
  { 1, "fclose",	vp,	"($%lx)",	"%d",		},
  { 1, "fdopen",	vp,	"(%d, \"%s\")",	"$%lx",		},
  { 1, "feof",	vp,	"($%lx)",	"%d",		},
  { 1, "ferror",	vp,	"($%lx)",	"%d",		},
  { 1, "fflush",	vp,	"($%lx)",	"%d",		},
  { 1, "fgetc",	vp,	"($%lx)",	"%d",		},
  { 1, "fgetline",	vp,	"($%lx, $%lx)",	"\"%s\"",		},
  { 1, "fgetpos",	vp,	"($%lx, $%lx)",	"%d",		},
  { 1, "fgets",	vp,	"(\"%s\", %d, $%lx)",	"$%lx",		},
  { 1, "fileno",	vp,	"($%lx)",	"%d",		},
  { 1, "f_prealloc",	vp,	"()",	"",		},
  { 1, "fopen",	vp,	"(\"%s\", \"%s\")",	"$%lx",		},
  { 1, "fprintf",	vp,	"($%lx, \"%s\", ...)",	"%d",		},
  { 1, "fpurge",	vp,	"($%lx)",	"%d",		},
  { 1, "fputc",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "fputs",	vp,	"(\"%s\", $%lx)",	"%d",		},
  { 1, "fread",	vp,	"($%lx, %d, %d, $%lx)",	"%d",		},
  { 1, "freopen",	vp,	"(\"%s\", \"%s\", $%lx)",	"$%lx",		},
  { 1, "fscanf",	vp,	"($%lx, \"%s\", ...)",	"%d",		},
  { 1, "fseek",	vp,	"($%lx, %d, %d)",	"%d",		},
  { 1, "fsetpos",	vp,	"($%lx, $%lx)",	"%d",		},
  { 1, "ftell",	vp,	"($%lx)",	"%d",		},
  { 1, "funopen",	vp,	"($%lx, $%lx, $%lx, $%lx, $%lx)",	"%d",		},
  { 1, "fwrite",	vp,	"($%lx, %d, %d, $%lx)",	"%d",		},
  { 1, "getc",	vp,	"($%lx)",	"%d",		},
  { 1, "getchar",	vp,	"()",	"%d",		},
  { 1, "gets",	vp,	"(\"%s\")",	"\"%s\"",		},
  { 1, "getw",	vp,	"($%lx)",	"%d",		},
  { 1, "printf",	vp,	"(\"%s\", ...)",	"%d",		},
  { 1, "putc",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "putchar",	vp,	"(%d)",	"%d",		},
  { 1, "puts",	vp,	"(\"%s\")",	"%d",		},
  { 1, "putw",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "rewind",	vp,	"($%lx)",	"%d",		},
  { 1, "scanf",	vp,	"(\"%s\", ...)",	"%d",		},
  { 1, "setbuf",	vp,	"($%lx, $%lx)",	"",		},
  { 1, "setbuffer",	vp,	"($%lx, $%lx, %d)",	"",		},
  { 1, "setlinebuf",	vp,	"($%lx)",	"",		},
  { 1, "setvbuf",	vp,	"($%lx, $%lx, %d, %d)",	"%d",		},
  { 1, "snprintf",	vp,	"(\"%s\", %d, \"%s\", ...)",	"%d",		},
  { 1, "sprintf",	vp,	"($%lx, \"%s\", ...)",	"%d",		},
  { 1, "sscanf",	vp,	"(\"%s\", \"%s\", ...)",	"%d",		},
  { 1, "tempnam",	vp,	"(\"%s\", \"%s\")",	"\"%s\"",		},
  { 1, "tmpfile",	vp,	"()",	"$%lx",		},
  { 1, "ungetc",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "vfprintf",	vp,	"($%lx, \"%s\", $%lx)",	"%d",		},
  { 1, "vprintf",	vp,	"(\"%s\", $%lx)",	"%d",		},
  { 1, "vscanf",	vp,	"(\"%s\", $%lx)",	"%d",		},
  { 1, "vsnprintf",	vp,	"(\"%s\", %d, \"%s\", $%lx)",	"%d",		},
  { 1, "vsprintf",	vp,	"(\"%s\", $%lx)",	"%d",		},
  { 1, "vsscanf",	vp,	"(\"%s\", \"%s\", $%lx)",	"%d",		},
  { 1, "crypt",	vp,	"(\"%s\", \"%s\")",	"\"%s\"",		},
  { 1, "des_cipher",	vp,	"(\"%s\", \"%s\", %d, %d)",	"%d",		},
  { 1, "des_setkey",	vp,	"(\"%s\")",	"%d",		},
  { 1, "encrypt",	vp,	"(\"%s\", %d)", "%d",		},
  { 1, "setkey",	vp,	"(\"%s\")",	"%d",		},
  { 1, "fnmatch",	vp,	"(\"%s\", \"%s\", %d)",	"%d",		},
  { 1, "__must_recompile386", vp, "()", "fts_children() is obsolete, recompile", },
  { 1, "__must_recompile387", vp, "()", "fts_close() is obsolete, recompile", },
  { 1, "__must_recompile388", vp, "()", "fts_open() is obsolete, recompile", },
  { 1, "__must_recompile389", vp, "()", "fts_read() is obsolete, recompile", },
  { 1, "__must_recompile390", vp, "()", "fts_set() is obsolete, recompile", },
  { 1, "cuserid",	vp,	"(\"%s\")",	"\"%s\"",		},
  { 1, "getlogin",	vp,	"()",	"\"%s\"",		},
  { 1, "glob",	vp,	"(\"%s\", %d, $%lx, $%lx)",	"%d",		},
  { 1, "globfree",	vp,	"($%lx)",	"",		},
  { 1, "__amiga_filehandle",vp,	"(%d)",	"$%lx",		},
  { 1, "times",	vp,	"($%lx)",	"$%lx",		},
  { 1, "mblen",	vp,	"(\"%s\", %d)",	"%d",		},
  { 1, "mbstowcs",	vp,	"($%lx, \"%s\", %d)",	"%d",		},
  { 1, "mbtowc",	vp,	"($%lx, \"%s\", %d)",	"%d",		},
  { 1, "wcstombs",	vp,	"(\"%s\", $%lx, %d)",	"%d",		},
  { 1, "wctomb",	vp,	"(\"%s\", $%lx)",	"%d",		},
  { 1, "heapsort",	vp,	"($%lx, %d, %d, $%lx)",	"%d",		},
  { 1, "radixsort",	vp,	"($%lx, %d, \"%s\", %d)",	"%d",		},
  { 0, "__sflush",	vp,	"()",	"",		},
  { 0, "__slbexpand",vp,	"()",	"",		},
  { 0, "__sfp",	vp,	"()",	"",		},
  { 0, "__sflags",	vp,	"()",	"",		},
  { 0, "__sfvwrite",	vp,	"()",	"",		},
  { 0, "__smakebuf",	vp,	"()",	"",		},
  { 0, "__srefill",	vp,	"()",	"",		},
  { 0, "__srget",	vp,	"()",	"",		},
  { 0, "__sclose",	vp,	"()",	"",		},
  { 0, "__sread",	vp,	"()",	"",		},
  { 0, "__sseek",	vp,	"()",	"",		},
  { 0, "__swrite",	vp,	"()",	"",		},
  { 0, "__svfscanf",	vp,	"()",	"",		},
  { 0, "__swbuf",	vp,	"()",	"",		},
  { 0, "__swsetup",	vp,	"()",	"",		},
  { 1, "fchdir",	vp,	"(%d)",	"%d",		},
  { 1, "strtod",	vp,	"(\"%s\", $%lx)",	"%g",		},
  { 1, "setgrent",	vp,	"()",	"",		},
  { 1, "getgrent",	vp,	"()",	"",		},
  { 1, "endgrent",	vp,	"()",	"",		},
  { 1, "ix_resident",vp,	"(%d, $%lx, %d, $%lx)",	"",		},
  { 1, "ix_geta4",	vp,	"()",	"",		},
  { 1, "ix_check_cpu",vp,	"(%d)",	"",		},
  { 1, "tracecntl",	vp,	"(%d, $%lx)",	"%d",		},
  { 1, "sysconf",	vp,	"(%d)",	"%d",	},
  { 1, "pathconf",	vp,	"(\"%s\", %d)", "%d",	},
  { 1, "fpathconf",	vp,	"(%d, %d)",	"%d",	},
  { 1, "getfsstat",	vp,	"($%lx, %d, %d)", "%d",	},
  { 1, "fstatfs",	vp,	"(%d, $%lx)", "%d", },
  { 1, "statfs", 	vp, "(\"%s\", %d)", "%d", },
  { 1, "getmntinfo",	vp,	"($%lx, %d)",	"%d", },
  { 1, "getgrnam",	vp,	"(\"%s\")",	"%d", },
  { 1, "endpwent",	vp,	"()",	"", },
  { 1, "sync",		vp,	"()",	"", },
  { 1, "fork",		vp,	"()",	"%d", },
  { 1, "mkfifo",	vp,	"(\"%s\", %o)",	"%d", },
  { 1, "mknod",		vp,	"(\"%s\", %o)",	"%d", },
  { 1, "setuid",	vp,	"(%d)",	"%d", },
  { 1, "nice",		vp,	"(%d)",	"%d", },
  { 1, "floor",		vp,	"(%g)",	"%g", },
  { 1, "ceil",		vp,	"(%g)",	"%g", },
  { 1, "setgid",	vp,	"(%d)",	"%d", },
  { 1, "vfork",		vp,	"()",	"%d", },
  { 1, "__must_recompile447", vp, "()", "tcdrain() has moved", },
  { 1, "__must_recompile448", vp, "()", "tcflush() has moved", },
  { 1, "__must_recompile449", vp, "()", "tcflow() has moved", },
  { 1, "__must_recompile450", vp, "()", "tcsendbreak() has moved", },
  { 1, "connect",	vp,	"(%d, \"%s\", %d)", "%d", },
  { 1, "sendto",	vp,	"(%d, \"%s\", %d, %d, \"%s\", %d)",	"%d", },
  { 1, "send",	    vp,	"(%d, \"%s\", %d, %d)",	"%d", },
  { 1, "sendmsg",	vp,	"(%d, \"%s\", %d)",	"%d", },
  { 1, "recvfrom",	vp,	"(%d, \"%s\", %d, %d, \"%s\", %d)",	"%d", },
  { 1, "recv",  	vp,	"(%d, \"%s\", %d, %d)",	"%d", },
  { 1, "recvmsg",	vp,	"(%d, \"%s\", %d)",	"%d", },
  { 1, "shutdown",	vp,	"(%d, %d)",	"%d", },
  { 1, "setsockopt",vp,	"(%d, %d, %d, \"%s\", %d)",	"%d", },
  { 1, "getsockopt",vp, "(%d,, %d, %d, \"%s\", %d)", "%d",},
  { 1, "getsockname",vp,"(%d, \"%s\", %d)",			 "%d",},
  { 1, "getpeername",	vp,	"(%d, \"%s\", %d)",	"%d", },
  { 1, "unsetenv",	vp, "()", "",},
  { 1, "socket",	vp,	"(%d, %d, %d)",	"%d", },
  { 1, "bind"  ,	vp,	"(%d, \"%s\", %d)", "%d", },
  { 1, "listen",	vp,	"(%d, %d)",	"%d", },
  { 1, "accept",	vp,	"(%d, \"%s\", %d)", "%d", },
  { 1, "tcdrain",	 vp, "(%d)", "%d",},
  { 1, "tcflush",	 vp, "(%d, %d)", "%d",},
  { 1, "tcflow", 	vp, "(%d, %d)", "%d",},
  { 1, "tcsendbreak", vp, "(%d, %d)", "%d",},
  { 1, "raise", 	vp, "(%d)", "%d",},
  { 1, "ix_get_gmt_offset", vp, "()", "%lx",},
  { 1, "ix_set_gmt_offset", vp, "(%lx)", "",},
  { 1, "ix_get_default_settings", vp, "()", "",},
  { 1, "ix_get_settings", vp, "()", "",},
  { 1, "ix_set_settings", vp, "()", "",},
  { 1, "uname",vp, "()" , "%s",},
  { 1, "socketpair",vp, "(%d, %d)" , "%d",},
  { 0, "__init_stk_limit",vp, "(%lx, %lu)" , "",},
  { 0, "__stkovf",vp, "()" , "",},
  { 0, "__stkext",vp, "()" , "",},
  { 0, "__stkrst",vp, "()" , "",},
  { 1, "__",vp, "()" , "",},
  { 1, "inet_addr",vp, "(%s)" , "%lu",},
  { 1, "inet_aton",vp, "(%s, %lu)" , "%d",},
  { 1, "inet_lnaof",vp, "(%lu)" , "%lu",},
  { 1, "inet_makeaddr",vp, "(%lu, %lu)" , "%lu",},
  { 1, "inet_netof",vp, "(%lu)" , "%lu",},
  { 1, "inet_network",vp, "(%s)" , "%lu",},
  { 1, "inet_ntoa",vp, "(%lu)" , "%s",},
  { 1, "gethostbyname",vp, "(%s)" , "%lu",},
  { 1, "gethostbyaddr",vp, "(%lu, %d, %d)" , "%lu",},
  { 1, "getnetbyname",vp, "(%s)" , "%lu",},
  { 1, "getnetbyaddr",vp, "(%lu, %d)" , "%lu",},
  { 1, "setnetent",vp, "(%d)" , "",},
  { 1, "endnetent",vp, "()" , "",},
  { 1, "getnetent",vp, "()" , "",},
  { 1, "setservent",vp, "(%d)" , "",},
  { 1, "endservent",vp, "()" , "",},
  { 1, "getservent",vp, "()" , "%lu",},
  { 1, "getttynam",vp, "(%s)" , "%lu",},
  { 1, "getttyent",vp, "()" , "%lu",},
  { 1, "setttyent",vp, "()" , "",},
  { 1, "endttyent",vp, "()" , "%d",},
  { 1, "ttyname",vp, "(%d)" , "%s",},
  { 1, "ttyslot",vp, "()" , "%d",},
  { 1, "setgroupent",vp, "(%d)" , "%d",},
  { 1, "setpassent",vp, "(%d)" , "%d",},
  { 1, "herror",vp, "(%s)" , "",},
  { 1, "getservbyname",vp, "(%s, %s)" , "%lu",},
  { 1, "getservbyport",vp, "(%d, %s)" , "%lu",},
  { 1, "setpwent",vp, "()" , "%d",},
  { 1, "getpwent",vp, "()" , "%lu",},
  { 1, "getprotoent",vp, "()" , "%lu",},
  { 1, "getprotobyname",vp, "(%s)" , "%lu",},
  { 1, "getprotonumber",vp, "(%d)" , "%lu",},
  { 1, "setprotoent",vp, "(%ld)" , "",},
  { 1, "endprotoent",vp, "()" , "",},
  { 1, "rcmd",vp, "(%lu, %d, %s, %s, %s, %lu)" , "",},
  { 1, "rresvport",vp, "(%lu)" , "%d",},
  { 1, "getpass",vp, "(%s)" , "%s",},
  { 1, "dn_expand",vp, "(%s, %s, %s, %s, %d)" , "%d",},
  { 1, "dn_comp",vp, "(%s, %s, %d, %lu, %lu)" , "%d",},
  { 1, "res_init",vp, "()" , "%d",},
  { 1, "res_mkquery",vp, "(%d, %s, %d, %d, %s, %d, %lu, %s, %d)" , "%d",},
  { 1, "res_query",vp, "(%s, %d, %s, %d)" , "%d",},
  { 1, "res_search",vp, "(%s, %d, %d, %s, %d)" , "%d",},
  { 1, "res_querydomain",vp, "(%s, %s, %d, %d, %s, %d)" , "%d",},
  { 1, "res_send",vp, "(%s, %d, %s, %d)" , "%d",},
  { 1, "sethostent",vp, "(%d)" , "",},
  { 1, "endhostent",vp, "()" , "",},
  { 1, "gethostid",vp, "(%ld)" , "",},
  { 1, "vsyslog",vp, "(%d, %s, %lu)" , "",},
  { 1, "openlog",vp, "(%s, %d, %d)" , "",},
  { 1, "closelog",vp, "()" , "",},
  { 1, "syslog",vp, "(%d, %s, ...)" , "",},
  { 1, "setlogmask",vp, "(%d)" , "%d",},
  { 0, "issig",vp, "(%lu)" , "%d",},
  { 0, "setrun",vp, "(%lu)" , "",},
  { 1, "seteuid",vp, "(%d)" , "%d",},
  { 1, "setegid",vp, "(%d)" , "%d",},
  { 1, "setreuid",vp, "(%d, %d)" , "%d",},
  { 1, "setregid",vp, "(%d, %d)" , "%d",},
  { 1, "fchown", vp, "(%d, %d, %d)", "%d", },
  { 1, "chroot", vp,  "(%s)", "%d",},
  { 1, "getusershell", vp, "", "%s",},
  { 1, "endusershell", vp, "", "",},
  { 1, "setusershell", vp, "", "",},
  { 1, "_getlogin",vp, "(%s, %d)" , "%d",},
  { 0, "_psignal",vp, "(%lu, %d)" , "",},
  { 0, "falloc",vp, "(%lu, %lu)" , "%d",},
  { 0, "_set_socket_params",vp,"(%ld, %d)", "",}
};
