Home | History | Annotate | Download | only in truss
      1      0    stevel /*
      2      0    stevel  * CDDL HEADER START
      3      0    stevel  *
      4      0    stevel  * The contents of this file are subject to the terms of the
      5   1676       jpk  * Common Development and Distribution License (the "License").
      6   1676       jpk  * You may not use this file except in compliance with the License.
      7      0    stevel  *
      8      0    stevel  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
      9      0    stevel  * or http://www.opensolaris.org/os/licensing.
     10      0    stevel  * See the License for the specific language governing permissions
     11      0    stevel  * and limitations under the License.
     12      0    stevel  *
     13      0    stevel  * When distributing Covered Code, include this CDDL HEADER in each
     14      0    stevel  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     15      0    stevel  * If applicable, add the following below this CDDL HEADER, with the
     16      0    stevel  * fields enclosed by brackets "[]" replaced with your own identifying
     17      0    stevel  * information: Portions Copyright [yyyy] [name of copyright owner]
     18      0    stevel  *
     19      0    stevel  * CDDL HEADER END
     20      0    stevel  */
     21   2248       raf 
     22      0    stevel /*
     23   9264     Roger  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
     24      0    stevel  * Use is subject to license terms.
     25      0    stevel  */
     26      0    stevel 
     27      0    stevel /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
     28      0    stevel /*	  All Rights Reserved  	*/
     29      0    stevel 
     30      0    stevel #include <stdio.h>
     31      0    stevel #include <stdlib.h>
     32      0    stevel #include <fcntl.h>
     33      0    stevel #include <unistd.h>
     34      0    stevel #include <string.h>
     35      0    stevel #include <signal.h>
     36      0    stevel #include <sys/types.h>
     37      0    stevel #include <libproc.h>
     38      0    stevel #include <sys/aio.h>
     39      0    stevel #include <sys/port_impl.h>
     40      0    stevel #include "ramdata.h"
     41      0    stevel #include "systable.h"
     42      0    stevel #include "print.h"
     43      0    stevel #include "proto.h"
     44      0    stevel 
     45      0    stevel /*
     46      0    stevel  * Tables of information about system calls - read-only data.
     47      0    stevel  */
     48      0    stevel 
     49      0    stevel const	char *const	errcode[] = {	/* error code names */
     50      0    stevel 	NULL,		/*  0 */
     51      0    stevel 	"EPERM",	/*  1 */
     52      0    stevel 	"ENOENT",	/*  2 */
     53      0    stevel 	"ESRCH",	/*  3 */
     54      0    stevel 	"EINTR",	/*  4 */
     55      0    stevel 	"EIO",		/*  5 */
     56      0    stevel 	"ENXIO",	/*  6 */
     57      0    stevel 	"E2BIG",	/*  7 */
     58      0    stevel 	"ENOEXEC",	/*  8 */
     59      0    stevel 	"EBADF",	/*  9 */
     60      0    stevel 	"ECHILD",	/* 10 */
     61      0    stevel 	"EAGAIN",	/* 11 */
     62      0    stevel 	"ENOMEM",	/* 12 */
     63      0    stevel 	"EACCES",	/* 13 */
     64      0    stevel 	"EFAULT",	/* 14 */
     65      0    stevel 	"ENOTBLK",	/* 15 */
     66      0    stevel 	"EBUSY",	/* 16 */
     67      0    stevel 	"EEXIST",	/* 17 */
     68      0    stevel 	"EXDEV",	/* 18 */
     69      0    stevel 	"ENODEV",	/* 19 */
     70      0    stevel 	"ENOTDIR",	/* 20 */
     71      0    stevel 	"EISDIR",	/* 21 */
     72      0    stevel 	"EINVAL",	/* 22 */
     73      0    stevel 	"ENFILE",	/* 23 */
     74      0    stevel 	"EMFILE",	/* 24 */
     75      0    stevel 	"ENOTTY",	/* 25 */
     76      0    stevel 	"ETXTBSY",	/* 26 */
     77      0    stevel 	"EFBIG",	/* 27 */
     78      0    stevel 	"ENOSPC",	/* 28 */
     79      0    stevel 	"ESPIPE",	/* 29 */
     80      0    stevel 	"EROFS",	/* 30 */
     81      0    stevel 	"EMLINK",	/* 31 */
     82      0    stevel 	"EPIPE",	/* 32 */
     83      0    stevel 	"EDOM",		/* 33 */
     84      0    stevel 	"ERANGE",	/* 34 */
     85      0    stevel 	"ENOMSG",	/* 35 */
     86      0    stevel 	"EIDRM",	/* 36 */
     87      0    stevel 	"ECHRNG",	/* 37 */
     88      0    stevel 	"EL2NSYNC",	/* 38 */
     89      0    stevel 	"EL3HLT",	/* 39 */
     90      0    stevel 	"EL3RST",	/* 40 */
     91      0    stevel 	"ELNRNG",	/* 41 */
     92      0    stevel 	"EUNATCH",	/* 42 */
     93      0    stevel 	"ENOCSI",	/* 43 */
     94      0    stevel 	"EL2HLT",	/* 44 */
     95      0    stevel 	"EDEADLK",	/* 45 */
     96      0    stevel 	"ENOLCK",	/* 46 */
     97      0    stevel 	"ECANCELED",	/* 47 */
     98      0    stevel 	"ENOTSUP",	/* 48 */
     99      0    stevel 	"EDQUOT",	/* 49 */
    100      0    stevel 	"EBADE",	/* 50 */
    101      0    stevel 	"EBADR",	/* 51 */
    102      0    stevel 	"EXFULL",	/* 52 */
    103      0    stevel 	"ENOANO",	/* 53 */
    104      0    stevel 	"EBADRQC",	/* 54 */
    105      0    stevel 	"EBADSLT",	/* 55 */
    106      0    stevel 	"EDEADLOCK",	/* 56 */
    107      0    stevel 	"EBFONT",	/* 57 */
    108      0    stevel 	"EOWNERDEAD",	/* 58 */
    109      0    stevel 	"ENOTRECOVERABLE",	/* 59 */
    110      0    stevel 	"ENOSTR",	/* 60 */
    111      0    stevel 	"ENODATA",	/* 61 */
    112      0    stevel 	"ETIME",	/* 62 */
    113      0    stevel 	"ENOSR",	/* 63 */
    114      0    stevel 	"ENONET",	/* 64 */
    115      0    stevel 	"ENOPKG",	/* 65 */
    116      0    stevel 	"EREMOTE",	/* 66 */
    117      0    stevel 	"ENOLINK",	/* 67 */
    118      0    stevel 	"EADV",		/* 68 */
    119      0    stevel 	"ESRMNT",	/* 69 */
    120      0    stevel 	"ECOMM",	/* 70 */
    121      0    stevel 	"EPROTO",	/* 71 */
    122      0    stevel 	"ELOCKUNMAPPED",	/* 72 */
    123      0    stevel 	"ENOTACTIVE",	/* 73 */
    124      0    stevel 	"EMULTIHOP",	/* 74 */
    125      0    stevel 	NULL,		/* 75 */
    126      0    stevel 	NULL,		/* 76 */
    127      0    stevel 	"EBADMSG",	/* 77 */
    128      0    stevel 	"ENAMETOOLONG",	/* 78 */
    129      0    stevel 	"EOVERFLOW",	/* 79 */
    130      0    stevel 	"ENOTUNIQ",	/* 80 */
    131      0    stevel 	"EBADFD",	/* 81 */
    132      0    stevel 	"EREMCHG",	/* 82 */
    133      0    stevel 	"ELIBACC",	/* 83 */
    134      0    stevel 	"ELIBBAD",	/* 84 */
    135      0    stevel 	"ELIBSCN",	/* 85 */
    136      0    stevel 	"ELIBMAX",	/* 86 */
    137      0    stevel 	"ELIBEXEC",	/* 87 */
    138      0    stevel 	"EILSEQ",	/* 88 */
    139      0    stevel 	"ENOSYS",	/* 89 */
    140      0    stevel 	"ELOOP",	/* 90 */
    141      0    stevel 	"ERESTART",	/* 91 */
    142      0    stevel 	"ESTRPIPE",	/* 92 */
    143      0    stevel 	"ENOTEMPTY",	/* 93 */
    144      0    stevel 	"EUSERS",	/* 94 */
    145      0    stevel 	"ENOTSOCK",	/* 95 */
    146      0    stevel 	"EDESTADDRREQ",	/* 96 */
    147      0    stevel 	"EMSGSIZE",	/* 97 */
    148      0    stevel 	"EPROTOTYPE",	/* 98 */
    149      0    stevel 	"ENOPROTOOPT",	/* 99 */
    150      0    stevel 	NULL,		/* 100 */
    151      0    stevel 	NULL,		/* 101 */
    152      0    stevel 	NULL,		/* 102 */
    153      0    stevel 	NULL,		/* 103 */
    154      0    stevel 	NULL,		/* 104 */
    155      0    stevel 	NULL,		/* 105 */
    156      0    stevel 	NULL,		/* 106 */
    157      0    stevel 	NULL,		/* 107 */
    158      0    stevel 	NULL,		/* 108 */
    159      0    stevel 	NULL,		/* 109 */
    160      0    stevel 	NULL,		/* 110 */
    161      0    stevel 	NULL,		/* 111 */
    162      0    stevel 	NULL,		/* 112 */
    163      0    stevel 	NULL,		/* 113 */
    164      0    stevel 	NULL,		/* 114 */
    165      0    stevel 	NULL,		/* 115 */
    166      0    stevel 	NULL,		/* 116 */
    167      0    stevel 	NULL,		/* 117 */
    168      0    stevel 	NULL,		/* 118 */
    169      0    stevel 	NULL,		/* 119 */
    170      0    stevel 	"EPROTONOSUPPORT",	/* 120 */
    171      0    stevel 	"ESOCKTNOSUPPORT",	/* 121 */
    172      0    stevel 	"EOPNOTSUPP",	/* 122 */
    173      0    stevel 	"EPFNOSUPPORT",	/* 123 */
    174      0    stevel 	"EAFNOSUPPORT",	/* 124 */
    175      0    stevel 	"EADDRINUSE",	/* 125 */
    176      0    stevel 	"EADDRNOTAVAIL", /* 126 */
    177      0    stevel 	"ENETDOWN",	/* 127 */
    178      0    stevel 	"ENETUNREACH",	/* 128 */
    179      0    stevel 	"ENETRESET",	/* 129 */
    180      0    stevel 	"ECONNABORTED",	/* 130 */
    181      0    stevel 	"ECONNRESET",	/* 131 */
    182      0    stevel 	"ENOBUFS",	/* 132 */
    183      0    stevel 	"EISCONN",	/* 133 */
    184      0    stevel 	"ENOTCONN",	/* 134 */
    185      0    stevel 	NULL,		/* 135 */
    186      0    stevel 	NULL,		/* 136 */
    187      0    stevel 	NULL,		/* 137 */
    188      0    stevel 	NULL,		/* 138 */
    189      0    stevel 	NULL,		/* 139 */
    190      0    stevel 	NULL,		/* 140 */
    191      0    stevel 	NULL,		/* 141 */
    192      0    stevel 	NULL,		/* 142 */
    193      0    stevel 	"ESHUTDOWN",	/* 143 */
    194      0    stevel 	"ETOOMANYREFS",	/* 144 */
    195      0    stevel 	"ETIMEDOUT",	/* 145 */
    196      0    stevel 	"ECONNREFUSED",	/* 146 */
    197      0    stevel 	"EHOSTDOWN",	/* 147 */
    198      0    stevel 	"EHOSTUNREACH",	/* 148 */
    199      0    stevel 	"EALREADY",	/* 149 */
    200      0    stevel 	"EINPROGRESS",	/* 150 */
    201      0    stevel 	"ESTALE"	/* 151 */
    202      0    stevel };
    203      0    stevel 
    204      0    stevel #define	NERRCODE	(sizeof (errcode) / sizeof (char *))
    205      0    stevel 
    206      0    stevel 
    207      0    stevel const char *
    208      0    stevel errname(int err)	/* return the error code name (NULL if none) */
    209      0    stevel {
    210      0    stevel 	const char *ename = NULL;
    211      0    stevel 
    212      0    stevel 	if (err >= 0 && err < NERRCODE)
    213      0    stevel 		ename = errcode[err];
    214      0    stevel 
    215      0    stevel 	return (ename);
    216      0    stevel }
    217      0    stevel 
    218      0    stevel 
    219      0    stevel const struct systable systable[] = {
    220      0    stevel { NULL,		8, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX},
    221      0    stevel {"_exit",	1, DEC, NOV, DEC},				/*   1 */
    222      0    stevel {"forkall",	0, DEC, NOV},					/*   2 */
    223      0    stevel {"read",	3, DEC, NOV, DEC, IOB, UNS},			/*   3 */
    224      0    stevel {"write",	3, DEC, NOV, DEC, IOB, UNS},			/*   4 */
    225      0    stevel {"open",	3, DEC, NOV, STG, OPN, OCT},			/*   5 */
    226      0    stevel {"close",	1, DEC, NOV, DEC},				/*   6 */
    227      0    stevel {"wait",	0, DEC, HHX},					/*   7 */
    228      0    stevel {"creat",	2, DEC, NOV, STG, OCT},				/*   8 */
    229      0    stevel {"link",	2, DEC, NOV, STG, STG},				/*   9 */
    230      0    stevel {"unlink",	1, DEC, NOV, STG},				/*  10 */
    231      0    stevel {"exec",	2, DEC, NOV, STG, DEC},				/*  11 */
    232      0    stevel {"chdir",	1, DEC, NOV, STG},				/*  12 */
    233      0    stevel {"time",	0, DEC, NOV},					/*  13 */
    234      0    stevel {"mknod",	3, DEC, NOV, STG, OCT, HEX},			/*  14 */
    235      0    stevel {"chmod",	2, DEC, NOV, STG, OCT},				/*  15 */
    236      0    stevel {"chown",	3, DEC, NOV, STG, DEC, DEC},			/*  16 */
    237      0    stevel {"brk",		1, DEC, NOV, HEX},				/*  17 */
    238      0    stevel {"stat",	2, DEC, NOV, STG, HEX},				/*  18 */
    239      0    stevel {"lseek",	3, DEC, NOV, DEC, DEX, WHN},			/*  19 */
    240      0    stevel {"getpid",	0, DEC, DEC},					/*  20 */
    241      0    stevel {"mount",	8, DEC, NOV, STG, STG, MTF, MFT, HEX, DEC, HEX, DEC},	/* 21 */
    242      0    stevel {"umount",	1, DEC, NOV, STG},				/*  22 */
    243   4321    casper {"setuid",	1, DEC, NOV, UNS},				/*  23 */
    244   4321    casper {"getuid",	0, UNS, UNS},					/*  24 */
    245      0    stevel {"stime",	1, DEC, NOV, DEC},				/*  25 */
    246      0    stevel {"pcsample",	2, DEC, NOV, HEX, DEC},				/*  26 */
    247      0    stevel {"alarm",	1, DEC, NOV, UNS},				/*  27 */
    248      0    stevel {"fstat",	2, DEC, NOV, DEC, HEX},				/*  28 */
    249      0    stevel {"pause",	0, DEC, NOV},					/*  29 */
    250      0    stevel {"utime",	2, DEC, NOV, STG, HEX},				/*  30 */
    251      0    stevel {"stty",	2, DEC, NOV, DEC, DEC},				/*  31 */
    252      0    stevel {"gtty",	2, DEC, NOV, DEC, DEC},				/*  32 */
    253      0    stevel {"access",	2, DEC, NOV, STG, ACC},				/*  33 */
    254      0    stevel {"nice",	1, DEC, NOV, DEC},				/*  34 */
    255      0    stevel {"statfs",	4, DEC, NOV, STG, HEX, DEC, DEC},		/*  35 */
    256      0    stevel {"sync",	0, DEC, NOV},					/*  36 */
    257      0    stevel {"kill",	2, DEC, NOV, DEC, SIG},				/*  37 */
    258      0    stevel {"fstatfs",	4, DEC, NOV, DEC, HEX, DEC, DEC},		/*  38 */
    259      0    stevel {"pgrpsys",	3, DEC, NOV, DEC, DEC, DEC},			/*  39 */
    260   2712   nn35248 {"uucopystr",	3, DEC, NOV, STG, RST, UNS},			/*  40 */
    261      0    stevel {"dup",		1, DEC, NOV, DEC},				/*  41 */
    262      0    stevel {"pipe",	0, DEC, DEC},					/*  42 */
    263      0    stevel {"times",	1, DEC, NOV, HEX},				/*  43 */
    264      0    stevel {"profil",	4, DEC, NOV, HEX, UNS, HEX, OCT},		/*  44 */
    265      0    stevel {"plock",	1, DEC, NOV, PLK},				/*  45 */
    266   4321    casper {"setgid",	1, DEC, NOV, UNS},				/*  46 */
    267   4321    casper {"getgid",	0, UNS, UNS},					/*  47 */
    268  10927     Roger { NULL,		8, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX},
    269      0    stevel {"msgsys",	6, DEC, NOV, DEC, DEC, DEC, DEC, DEC, DEC},	/*  49 */
    270      0    stevel {"sysi86",	4, HEX, NOV, S86, HEX, HEX, HEX, DEC, DEC},	/*  50 */
    271      0    stevel {"acct",	1, DEC, NOV, STG},				/*  51 */
    272      0    stevel {"shmsys",	4, DEC, NOV, DEC, HEX, HEX, HEX},		/*  52 */
    273      0    stevel {"semsys",	5, DEC, NOV, DEC, HEX, HEX, HEX, HEX},		/*  53 */
    274      0    stevel {"ioctl",	3, DEC, NOV, DEC, IOC, IOA},			/*  54 */
    275      0    stevel {"uadmin",	3, DEC, NOV, DEC, DEC, DEC},			/*  55 */
    276      0    stevel { NULL,		8, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX},
    277      0    stevel {"utssys",	4, DEC, NOV, HEX, DEC, UTS, HEX},		/*  57 */
    278      0    stevel {"fdsync",	2, DEC, NOV, DEC, FFG},				/*  58 */
    279      0    stevel {"execve",	3, DEC, NOV, STG, HEX, HEX},			/*  59 */
    280      0    stevel {"umask",	1, OCT, NOV, OCT},				/*  60 */
    281      0    stevel {"chroot",	1, DEC, NOV, STG},				/*  61 */
    282      0    stevel {"fcntl",	3, DEC, NOV, DEC, FCN, HEX},			/*  62 */
    283      0    stevel {"ulimit",	2, DEX, NOV, ULM, DEC},				/*  63 */
    284      0    stevel 
    285      0    stevel /*  The following 6 entries were reserved for the UNIX PC */
    286      0    stevel { NULL,		8, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX},
    287      0    stevel { NULL,		8, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX},
    288      0    stevel { NULL,		8, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX},
    289      0    stevel { NULL,		8, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX},
    290      0    stevel { NULL,		8, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX},
    291      0    stevel { NULL,		8, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX, HEX},
    292      0    stevel 
    293      0    stevel {"tasksys",	5, DEC, NOV, DEC, DEC, DEC, HEX, DEC},		/*  70 */
    294      0    stevel {"acctctl",	3, DEC, NOV, HEX, HEX, UNS},			/*  71 */
    295      0    stevel {"exacctsys",	6, DEC, NOV, DEC, IDT, DEC, HEX, DEC, HEX},	/*  72 */
    296      0    stevel {"getpagesizes", 2, DEC, NOV, HEX, DEC},			/*  73 */
    297   2447  nf202958 {"rctlsys",	6, DEC, NOV, RSC, STG, HEX, HEX, DEC, DEC},	/*  74 */
    298   4321    casper {"sidsys",	4, UNS, UNS, DEC, DEC, DEC, DEC},		/*  75 */
    299      0    stevel {"fsat",	6, DEC, NOV, HEX, HEX, HEX, HEX, HEX, HEX},	/*  76 */
    300      0    stevel {"lwp_park",	3, DEC, NOV, DEC, HEX, DEC},			/*  77 */
    301      0    stevel {"sendfilev",	5, DEC, NOV, DEC, DEC, HEX, DEC, HEX},		/*  78 */
    302      0    stevel {"rmdir",	1, DEC, NOV, STG},				/*  79 */
    303      0    stevel {"mkdir",	2, DEC, NOV, STG, OCT},				/*  80 */
    304      0    stevel {"getdents",	3, DEC, NOV, DEC, HEX, UNS},			/*  81 */
    305      0    stevel {"privsys",	5, HEX, NOV, DEC, DEC, DEC, HEX, DEC},		/*  82 */
    306      0    stevel {"ucredsys",	3, DEC, NOV, DEC, DEC, HEX},			/*  83 */
    307      0    stevel {"sysfs",	3, DEC, NOV, SFS, DEX, DEX},			/*  84 */
    308      0    stevel {"getmsg",	4, DEC, NOV, DEC, HEX, HEX, HEX},		/*  85 */
    309      0    stevel {"putmsg",	4, DEC, NOV, DEC, HEX, HEX, SMF},		/*  86 */
    310      0    stevel {"poll",	3, DEC, NOV, HEX, DEC, DEC},			/*  87 */
    311      0    stevel {"lstat",	2, DEC, NOV, STG, HEX},				/*  88 */
    312      0    stevel {"symlink",	2, DEC, NOV, STG, STG},				/*  89 */
    313      0    stevel {"readlink",	3, DEC, NOV, STG, RLK, UNS},			/*  90 */
    314      0    stevel {"setgroups",	2, DEC, NOV, DEC, HEX},				/*  91 */
    315      0    stevel {"getgroups",	2, DEC, NOV, DEC, HEX},				/*  92 */
    316      0    stevel {"fchmod",	2, DEC, NOV, DEC, OCT},				/*  93 */
    317      0    stevel {"fchown",	3, DEC, NOV, DEC, DEC, DEC},			/*  94 */
    318      0    stevel {"sigprocmask",	3, DEC, NOV, SPM, HEX, HEX},			/*  95 */
    319      0    stevel {"sigsuspend",	1, DEC, NOV, HEX},				/*  96 */
    320      0    stevel {"sigaltstack",	2, DEC, NOV, HEX, HEX},				/*  97 */
    321      0    stevel {"sigaction",	3, DEC, NOV, SIG, HEX, HEX},			/*  98 */
    322      0    stevel {"sigpendsys",	2, DEC, NOV, DEC, HEX},				/*  99 */
    323      0    stevel {"context",	2, DEC, NOV, DEC, HEX},				/* 100 */
    324      0    stevel {"evsys",	3, DEC, NOV, DEC, DEC, HEX},			/* 101 */
    325      0    stevel {"evtrapret",	0, DEC, NOV},					/* 102 */
    326      0    stevel {"statvfs",	2, DEC, NOV, STG, HEX},				/* 103 */
    327      0    stevel {"fstatvfs",	2, DEC, NOV, DEC, HEX},				/* 104 */
    328      0    stevel {"getloadavg",	2, DEC, NOV, HEX, DEC},				/* 105 */
    329      0    stevel {"nfssys",	2, DEC, NOV, DEC, HEX},				/* 106 */
    330      0    stevel {"waitid",	4, DEC, NOV, IDT, DEC, HEX, WOP},		/* 107 */
    331      0    stevel {"sigsendsys",	2, DEC, NOV, HEX, SIG},				/* 108 */
    332      0    stevel {"hrtsys",	5, DEC, NOV, DEC, HEX, HEX, HEX, HEX},		/* 109 */
    333  10440     Roger {"utimesys",	5, DEC, NOV, DEC, HEX, HEX, HEX, HEX},		/* 110 */
    334   4806       raf {"sigresend",	3, DEC, NOV, SIG, HEX, HEX},			/* 111 */
    335      0    stevel {"priocntlsys",	5, DEC, NOV, DEC, HEX, DEC, PC4, PC5},		/* 112 */
    336      0    stevel {"pathconf",	2, DEC, NOV, STG, PTC},				/* 113 */
    337      0    stevel {"mincore",	3, DEC, NOV, HEX, UNS, HEX},			/* 114 */
    338      0    stevel {"mmap",	6, HEX, NOV, HEX, UNS, MPR, MTY, DEC, DEC},	/* 115 */
    339      0    stevel {"mprotect",	3, DEC, NOV, HEX, UNS, MPR},			/* 116 */
    340      0    stevel {"munmap",	2, DEC, NOV, HEX, UNS},				/* 117 */
    341      0    stevel {"fpathconf",	2, DEC, NOV, DEC, PTC},				/* 118 */
    342      0    stevel {"vfork",	0, DEC, NOV},					/* 119 */
    343      0    stevel {"fchdir",	1, DEC, NOV, DEC},				/* 120 */
    344      0    stevel {"readv",	3, DEC, NOV, DEC, HEX, DEC},			/* 121 */
    345      0    stevel {"writev",	3, DEC, NOV, DEC, HEX, DEC},			/* 122 */
    346      0    stevel {"xstat",	3, DEC, NOV, DEC, STG, HEX},			/* 123 */
    347      0    stevel {"lxstat",	3, DEC, NOV, DEC, STG, HEX},			/* 124 */
    348      0    stevel {"fxstat",	3, DEC, NOV, DEC, DEC, HEX},			/* 125 */
    349      0    stevel {"xmknod",	4, DEC, NOV, DEC, STG, OCT, HEX},		/* 126 */
    350  10198       Ali {"mmapobj",	5, DEC, NOV, DEC, MOB, HEX, HEX, HEX},		/* 127 */
    351      0    stevel {"setrlimit",	2, DEC, NOV, RLM, HEX},				/* 128 */
    352      0    stevel {"getrlimit",	2, DEC, NOV, RLM, HEX},				/* 129 */
    353      0    stevel {"lchown",	3, DEC, NOV, STG, DEC, DEC},			/* 130 */
    354      0    stevel {"memcntl",	6, DEC, NOV, HEX, UNS, MCF, MC4, MC5, DEC},	/* 131 */
    355      0    stevel {"getpmsg",	5, DEC, NOV, DEC, HEX, HEX, HEX, HEX},		/* 132 */
    356      0    stevel {"putpmsg",	5, DEC, NOV, DEC, HEX, HEX, DEC, HHX},		/* 133 */
    357      0    stevel {"rename",	2, DEC, NOV, STG, STG},				/* 134 */
    358      0    stevel {"uname",	1, DEC, NOV, HEX},				/* 135 */
    359   4321    casper {"setegid",	1, DEC, NOV, UNS},				/* 136 */
    360      0    stevel {"sysconfig",	1, DEC, NOV, CNF},				/* 137 */
    361      0    stevel {"adjtime",	2, DEC, NOV, HEX, HEX},				/* 138 */
    362      0    stevel {"sysinfo",	3, DEC, NOV, INF, RST, DEC},			/* 139 */
    363   3957  th199096 {"sharefs",	3, DEC, NOV, DEC, HEX, DEC},			/* 140 */
    364   4321    casper {"seteuid",	1, DEC, NOV, UNS},				/* 141 */
    365   3235       raf {"forksys",	2, DEC, NOV, DEC, HHX},				/* 142 */
    366      0    stevel {"fork1",	0, DEC, NOV},					/* 143 */
    367      0    stevel {"sigtimedwait", 3, DEC, NOV, HEX, HEX, HEX},			/* 144 */
    368      0    stevel {"lwp_info",	1, DEC, NOV, HEX},				/* 145 */
    369      0    stevel {"yield",	0, DEC, NOV},					/* 146 */
    370      0    stevel {"lwp_sema_wait", 1, DEC, NOV, HEX},				/* 147 */
    371      0    stevel {"lwp_sema_post", 1, DEC, NOV, HEX},				/* 148 */
    372      0    stevel {"lwp_sema_trywait", 1, DEC, NOV, HEX},				/* 149 */
    373      0    stevel {"lwp_detach",	1, DEC, NOV, DEC},				/* 150 */
    374      0    stevel {"corectl",	4, DEC, NOV, DEC, HEX, HEX, HEX},		/* 151 */
    375      0    stevel {"modctl",	5, DEC, NOV, MOD, HEX, HEX, HEX, HEX},		/* 152 */
    376      0    stevel {"fchroot",	1, DEC, NOV, DEC},				/* 153 */
    377      0    stevel {"utimes",	2, DEC, NOV, STG, HEX},				/* 154 */
    378      0    stevel {"vhangup",	0, DEC, NOV},					/* 155 */
    379      0    stevel {"gettimeofday", 1, DEC, NOV, HEX},				/* 156 */
    380      0    stevel {"getitimer",	2, DEC, NOV, ITM, HEX},				/* 157 */
    381      0    stevel {"setitimer",	3, DEC, NOV, ITM, HEX, HEX},			/* 158 */
    382      0    stevel {"lwp_create",	3, DEC, NOV, HEX, LWF, HEX},			/* 159 */
    383      0    stevel {"lwp_exit",	0, DEC, NOV},					/* 160 */
    384      0    stevel {"lwp_suspend",	1, DEC, NOV, DEC},				/* 161 */
    385      0    stevel {"lwp_continue", 1, DEC, NOV, DEC},				/* 162 */
    386      0    stevel {"lwp_kill",	2, DEC, NOV, DEC, SIG},				/* 163 */
    387      0    stevel {"lwp_self",	0, DEC, NOV},					/* 164 */
    388      0    stevel {"lwp_sigmask",	3, HEX, HEX, SPM, HEX, HEX},			/* 165 */
    389      0    stevel {"lwp_private",	3, HEX, NOV, DEC, DEC, HEX},			/* 166 */
    390      0    stevel {"lwp_wait",	2, DEC, NOV, DEC, HEX},				/* 167 */
    391   4574       raf {"lwp_mutex_wakeup", 2, DEC, NOV, HEX, DEC},			/* 168 */
    392      0    stevel {"lwp_mutex_lock", 1, DEC, NOV, HEX},				/* 169 */
    393      0    stevel {"lwp_cond_wait", 4, DEC, NOV, HEX, HEX, HEX, DEC},		/* 170 */
    394      0    stevel {"lwp_cond_signal", 1, DEC, NOV, HEX},				/* 171 */
    395      0    stevel {"lwp_cond_broadcast", 1, DEC, NOV, HEX},			/* 172 */
    396      0    stevel {"pread",	4, DEC, NOV, DEC, IOB, UNS, DEX},		/* 173 */
    397      0    stevel {"pwrite",	4, DEC, NOV, DEC, IOB, UNS, DEX},		/* 174 */
    398      0    stevel {"llseek",	4, LLO, NOV, DEC, LLO, HID, WHN},		/* 175 */
    399      0    stevel {"inst_sync",	2, DEC, NOV, STG, DEC},				/* 176 */
    400   2712   nn35248 {"brand",	6, DEC, NOV, DEC, HEX, HEX, HEX, HEX, HEX},	/* 177 */
    401      0    stevel {"kaio",	7, DEC, NOV, AIO, HEX, HEX, HEX, HEX, HEX, HEX}, /* 178 */
    402      0    stevel {"cpc",		5, DEC, NOV, CPC, DEC, HEX, HEX, HEX},		/* 179 */
    403      0    stevel {"lgrpsys",	3, DEC, NOV, DEC, DEC, HEX},			/* 180 */
    404   3247  gjelinek {"rusagesys",	5, DEC, NOV, DEC, HEX, DEC, HEX, HEX},		/* 181 */
    405      0    stevel {"portfs",	6, HEX, HEX, DEC, HEX, HEX, HEX, HEX, HEX},	/* 182 */
    406      0    stevel {"pollsys",	4, DEC, NOV, HEX, DEC, HEX, HEX},		/* 183 */
    407   1676       jpk {"labelsys",	2, DEC, NOV, DEC, HEX},				/* 184 */
    408      0    stevel {"acl",		4, DEC, NOV, STG, ACL, DEC, HEX},		/* 185 */
    409      0    stevel {"auditsys",	4, DEC, NOV, AUD, HEX, HEX, HEX},		/* 186 */
    410      0    stevel {"processor_bind", 4, DEC, NOV, IDT, DEC, DEC, HEX},		/* 187 */
    411      0    stevel {"processor_info", 2, DEC, NOV, DEC, HEX},			/* 188 */
    412      0    stevel {"p_online",	2, DEC, NOV, DEC, DEC},				/* 189 */
    413   2248       raf {"sigqueue",	5, DEC, NOV, DEC, SIG, HEX, SQC, DEC},		/* 190 */
    414      0    stevel {"clock_gettime", 2, DEC, NOV, DEC, HEX},			/* 191 */
    415      0    stevel {"clock_settime", 2, DEC, NOV, DEC, HEX},			/* 192 */
    416      0    stevel {"clock_getres", 2, DEC, NOV, DEC, HEX},			/* 193 */
    417      0    stevel {"timer_create", 3, DEC, NOV, DEC, HEX, HEX},			/* 194 */
    418      0    stevel {"timer_delete", 1, DEC, NOV, DEC},				/* 195 */
    419      0    stevel {"timer_settime", 4, DEC, NOV, DEC, DEC, HEX, HEX},		/* 196 */
    420      0    stevel {"timer_gettime", 2, DEC, NOV, DEC, HEX},			/* 197 */
    421      0    stevel {"timer_getoverrun", 1, DEC, NOV, DEC},				/* 198 */
    422      0    stevel {"nanosleep",	2, DEC, NOV, HEX, HEX},				/* 199 */
    423      0    stevel {"facl",	4, DEC, NOV, DEC, ACL, DEC, HEX},		/* 200 */
    424      0    stevel {"door",	6, DEC, NOV, DEC, HEX, HEX, HEX, HEX, DEC},	/* 201 */
    425   4321    casper {"setreuid",	2, DEC, NOV, UN1, UN1},				/* 202 */
    426   4321    casper {"setregid",	2, DEC, NOV, UN1, UN1},				/* 203 */
    427      0    stevel {"install_utrap", 3, DEC, NOV, DEC, HEX, HEX},			/* 204 */
    428      0    stevel {"signotify",	3, DEC, NOV, DEC, HEX, HEX},			/* 205 */
    429      0    stevel {"schedctl",	0, HEX, NOV},					/* 206 */
    430      0    stevel {"pset",	5, DEC, NOV, DEC, HEX, HEX, HEX, HEX},		/* 207 */
    431      0    stevel {"sparc_utrap_install", 5, DEC, NOV, UTT, UTH, UTH, HEX, HEX},	/* 208 */
    432      0    stevel {"resolvepath",	3, DEC, NOV, STG, RLK, DEC},			/* 209 */
    433  10887     Roger {"lwp_mutex_timedlock", 3, DEC, NOV, HEX, HEX, HEX},		/* 210 */
    434      0    stevel {"lwp_sema_timedwait", 3, DEC, NOV, HEX, HEX, DEC},		/* 211 */
    435      0    stevel {"lwp_rwlock_sys", 3, DEC, NOV, DEC, HEX, HEX},			/* 212 */
    436      0    stevel {"getdents64",	3, DEC, NOV, DEC, HEX, UNS},			/* 213 */
    437      0    stevel {"mmap64",	7, HEX, NOV, HEX, UNS, MPR, MTY, DEC, LLO, HID}, /* 214 */
    438      0    stevel {"stat64",	2, DEC, NOV, STG, HEX},				/* 215 */
    439      0    stevel {"lstat64",	2, DEC, NOV, STG, HEX},				/* 216 */
    440      0    stevel {"fstat64",	2, DEC, NOV, DEC, HEX},				/* 217 */
    441      0    stevel {"statvfs64",	2, DEC, NOV, STG, HEX},				/* 218 */
    442      0    stevel {"fstatvfs64",	2, DEC, NOV, DEC, HEX},				/* 219 */
    443      0    stevel {"setrlimit64",	2, DEC, NOV, RLM, HEX},				/* 220 */
    444      0    stevel {"getrlimit64",	2, DEC, NOV, RLM, HEX},				/* 221 */
    445      0    stevel {"pread64",	5, DEC, NOV, DEC, IOB, UNS, LLO, HID},		/* 222 */
    446      0    stevel {"pwrite64",	5, DEC, NOV, DEC, IOB, UNS, LLO, HID},		/* 223 */
    447      0    stevel {"creat64",	2, DEC, NOV, STG, OCT},				/* 224 */
    448      0    stevel {"open64",	3, DEC, NOV, STG, OPN, OCT},			/* 225 */
    449      0    stevel {"rpcmod",	3, DEC, NOV, DEC, HEX},				/* 226 */
    450      0    stevel {"zone",	5, DEC, NOV, DEC, HEX, HEX, HEX, HEX},		/* 227 */
    451      0    stevel {"autofssys",	2, DEC, NOV, DEC, HEX},				/* 228 */
    452      0    stevel {"getcwd",	3, DEC, NOV, RST, DEC},				/* 229 */
    453      0    stevel {"so_socket",	5, DEC, NOV, PFM, SKT, SKP, STG, SKV},		/* 230 */
    454      0    stevel {"so_socketpair", 1, DEC, NOV, HEX},				/* 231 */
    455      0    stevel {"bind",	4, DEC, NOV, DEC, HEX, DEC, SKV},		/* 232 */
    456      0    stevel {"listen",	3, DEC, NOV, DEC, DEC, SKV},			/* 233 */
    457      0    stevel {"accept",	4, DEC, NOV, DEC, HEX, HEX, SKV},		/* 234 */
    458      0    stevel {"connect",	4, DEC, NOV, DEC, HEX, DEC, SKV},		/* 235 */
    459      0    stevel {"shutdown",	3, DEC, NOV, DEC, SHT, SKV},			/* 236 */
    460      0    stevel {"recv",	4, DEC, NOV, DEC, IOB, DEC, DEC},		/* 237 */
    461      0    stevel {"recvfrom",	6, DEC, NOV, DEC, IOB, DEC, DEC, HEX, HEX},	/* 238 */
    462      0    stevel {"recvmsg",	3, DEC, NOV, DEC, HEX, DEC},			/* 239 */
    463      0    stevel {"send",	4, DEC, NOV, DEC, IOB, DEC, DEC},		/* 240 */
    464      0    stevel {"sendmsg",	3, DEC, NOV, DEC, HEX, DEC},			/* 241 */
    465      0    stevel {"sendto",	6, DEC, NOV, DEC, IOB, DEC, DEC, HEX, DEC},	/* 242 */
    466      0    stevel {"getpeername", 4, DEC, NOV, DEC, HEX, HEX, SKV},		/* 243 */
    467      0    stevel {"getsockname", 4, DEC, NOV, DEC, HEX, HEX, SKV},		/* 244 */
    468      0    stevel {"getsockopt",	6, DEC, NOV, DEC, SOL, SON, HEX, HEX, SKV},	/* 245 */
    469      0    stevel {"setsockopt",	6, DEC, NOV, DEC, SOL, SON, HEX, DEC, SKV},	/* 246 */
    470      0    stevel {"sockconfig",	4, DEC, NOV, DEC, DEC, DEC, STG},		/* 247 */
    471      0    stevel {"ntp_gettime",	1, DEC, NOV, HEX},				/* 248 */
    472      0    stevel {"ntp_adjtime",	1, DEC, NOV, HEX},				/* 249 */
    473      0    stevel {"lwp_mutex_unlock", 1, DEC, NOV, HEX},				/* 250 */
    474  10887     Roger {"lwp_mutex_trylock", 2, DEC, NOV, HEX, HEX},			/* 251 */
    475   9264     Roger {"lwp_mutex_register", 2, DEC, NOV, HEX, HEX},			/* 252 */
    476      0    stevel {"cladm",	3, DEC, NOV, CLC, CLF, HEX},			/* 253 */
    477   2712   nn35248 {"uucopy",	3, DEC, NOV, HEX, HEX, UNS},			/* 254 */
    478      0    stevel {"umount2",	2, DEC, NOV, STG, MTF},				/* 255 */
    479      0    stevel { NULL, -1, DEC, NOV},
    480      0    stevel };
    481      0    stevel 
    482      0    stevel /* SYSEND == max syscall number + 1 */
    483      0    stevel #define	SYSEND	((sizeof (systable) / sizeof (struct systable))-1)
    484      0    stevel 
    485      0    stevel 
    486      0    stevel /*
    487      0    stevel  * The following are for interpreting syscalls with sub-codes.
    488      0    stevel  */
    489      0    stevel 
    490      0    stevel const	struct systable opentable[] = {
    491      0    stevel {"open",	2, DEC, NOV, STG, OPN},				/* 0 */
    492      0    stevel {"open",	3, DEC, NOV, STG, OPN, OCT},			/* 1 */
    493      0    stevel };
    494      0    stevel #define	NOPENCODE	(sizeof (opentable) / sizeof (struct systable))
    495      0    stevel 
    496      0    stevel const	struct systable open64table[] = {
    497      0    stevel {"open64",	2, DEC, NOV, STG, OPN},				/* 0 */
    498      0    stevel {"open64",	3, DEC, NOV, STG, OPN, OCT},			/* 1 */
    499      0    stevel };
    500      0    stevel #define	NOPEN64CODE	(sizeof (open64table) / sizeof (struct systable))
    501      0    stevel 
    502      0    stevel const	struct systable fcntltable[] = {
    503      0    stevel {"fcntl",	3, DEC, NOV, DEC, FCN, HEX},			/* 0: default */
    504      0    stevel {"fcntl",	2, DEC, NOV, DEC, FCN},				/* 1: no arg */
    505      0    stevel {"fcntl",	3, DEC, NOV, DEC, FCN, FFG},			/* 2: F_SETFL */
    506      0    stevel };
    507      0    stevel #define	NFCNTLCODE	(sizeof (fcntltable) / sizeof (struct systable))
    508      0    stevel 
    509      0    stevel const	struct systable msgtable[] = {
    510      0    stevel {"msgget",	3, DEC, NOV, HID, KEY, MSF},			/* 0 */
    511      0    stevel {"msgctl",	4, DEC, NOV, HID, DEC, MSC, HEX},		/* 1 */
    512      0    stevel {"msgrcv",	6, DEC, NOV, HID, DEC, HEX, UNS, DEC, MSF},	/* 2 */
    513      0    stevel {"msgsnd",	5, DEC, NOV, HID, DEC, HEX, UNS, MSF},		/* 3 */
    514      0    stevel {"msgids",	4, DEC, NOV, HID, HEX, UNS, HEX},		/* 4 */
    515      0    stevel {"msgsnap",	5, DEC, NOV, HID, DEC, HEX, UNS, DEC},		/* 5 */
    516      0    stevel };
    517      0    stevel #define	NMSGCODE	(sizeof (msgtable) / sizeof (struct systable))
    518      0    stevel 
    519      0    stevel const	struct systable semtable[] = {
    520      0    stevel {"semctl",	5, DEC, NOV, HID, DEC, DEC, SMC, DEX},		/* 0 */
    521      0    stevel {"semget",	4, DEC, NOV, HID, KEY, DEC, SEF},		/* 1 */
    522      0    stevel {"semop",	4, DEC, NOV, HID, DEC, HEX, UNS},		/* 2 */
    523      0    stevel {"semids",	4, DEC, NOV, HID, HEX, UNS, HEX},		/* 3 */
    524      0    stevel {"semtimedop",	5, DEC, NOV, HID, DEC, HEX, UNS, HEX},		/* 4 */
    525      0    stevel };
    526      0    stevel #define	NSEMCODE	(sizeof (semtable) / sizeof (struct systable))
    527      0    stevel 
    528      0    stevel const	struct systable shmtable[] = {
    529      0    stevel {"shmat",	4, HEX, NOV, HID, DEC, DEX, SHF},		/* 0 */
    530      0    stevel {"shmctl",	4, DEC, NOV, HID, DEC, SHC, DEX},		/* 1 */
    531      0    stevel {"shmdt",	2, DEC, NOV, HID, HEX},				/* 2 */
    532      0    stevel {"shmget",	4, DEC, NOV, HID, KEY, UNS, SHF},		/* 3 */
    533      0    stevel {"shmids",	4, DEC, NOV, HID, HEX, UNS, HEX},		/* 4 */
    534      0    stevel };
    535      0    stevel #define	NSHMCODE	(sizeof (shmtable) / sizeof (struct systable))
    536      0    stevel 
    537      0    stevel const	struct systable pidtable[] = {
    538      0    stevel {"getpgrp",	1, DEC, NOV, HID},				/* 0 */
    539      0    stevel {"setpgrp",	1, DEC, NOV, HID},				/* 1 */
    540      0    stevel {"getsid",	2, DEC, NOV, HID, DEC},				/* 2 */
    541      0    stevel {"setsid",	1, DEC, NOV, HID},				/* 3 */
    542      0    stevel {"getpgid",	2, DEC, NOV, HID, DEC},				/* 4 */
    543      0    stevel {"setpgid",	3, DEC, NOV, HID, DEC, DEC},			/* 5 */
    544      0    stevel };
    545      0    stevel #define	NPIDCODE	(sizeof (pidtable) / sizeof (struct systable))
    546      0    stevel 
    547      0    stevel const	struct systable sfstable[] = {
    548      0    stevel {"sysfs",	3, DEC, NOV, SFS, DEX, DEX},			/* 0 */
    549      0    stevel {"sysfs",	2, DEC, NOV, SFS, STG},				/* 1 */
    550      0    stevel {"sysfs",	3, DEC, NOV, SFS, DEC, RST},			/* 2 */
    551      0    stevel {"sysfs",	1, DEC, NOV, SFS},				/* 3 */
    552      0    stevel };
    553      0    stevel #define	NSFSCODE	(sizeof (sfstable) / sizeof (struct systable))
    554      0    stevel 
    555      0    stevel const	struct systable utstable[] = {
    556      0    stevel {"utssys",	3, DEC, NOV, HEX, DEC, UTS},			/* 0 */
    557      0    stevel {"utssys",	4, DEC, NOV, HEX, HEX, HEX, HEX},		/* err */
    558      0    stevel {"utssys",	3, DEC, NOV, HEX, HHX, UTS},			/* 2 */
    559      0    stevel {"utssys",	4, DEC, NOV, STG, FUI, UTS, HEX}		/* 3 */
    560      0    stevel };
    561      0    stevel #define	NUTSCODE	(sizeof (utstable) / sizeof (struct systable))
    562   2447  nf202958 
    563   2447  nf202958 const	struct systable rctltable[] = {
    564   2447  nf202958 {"getrctl",	6, DEC, NOV, HID, STG, HEX, HEX, HID, RGF},	/* 0 */
    565   2447  nf202958 {"setrctl",	6, DEC, NOV, HID, STG, HEX, HEX, HID, RSF},	/* 1 */
    566   2447  nf202958 {"rctlsys_lst",	6, DEC, NOV, HID, HID, HEX, HID, HEX, HID},	/* 2 */
    567   2447  nf202958 {"rctlsys_ctl",	6, DEC, NOV, HID, STG, HEX, HID, HID, RCF},	/* 3 */
    568   3684  rd117015 {"setprojrctl",	6, DEC, NOV, HID, STG, HID, HEX, HEX, SPF},	/* 4 */
    569   2447  nf202958 };
    570   2447  nf202958 #define	NRCTLCODE	(sizeof (rctltable) / sizeof (struct systable))
    571      0    stevel 
    572      0    stevel const	struct systable sgptable[] = {
    573      0    stevel {"sigpendsys",	2, DEC, NOV, DEC, HEX},				/* err */
    574      0    stevel {"sigpending",	2, DEC, NOV, HID, HEX},				/* 1 */
    575      0    stevel {"sigfillset",	2, DEC, NOV, HID, HEX},				/* 2 */
    576      0    stevel };
    577      0    stevel #define	NSGPCODE	(sizeof (sgptable) / sizeof (struct systable))
    578      0    stevel 
    579      0    stevel const	struct systable ctxtable[] = {
    580      0    stevel {"getcontext",	2, DEC, NOV, HID, HEX},				/* 0 */
    581      0    stevel {"setcontext",	2, DEC, NOV, HID, HEX},				/* 1 */
    582      0    stevel {"getustack",	2, DEC, NOV, HID, HEX},				/* 2 */
    583      0    stevel {"setustack",	2, DEC, NOV, HID, HEX},				/* 3 */
    584      0    stevel };
    585      0    stevel #define	NCTXCODE	(sizeof (ctxtable) / sizeof (struct systable))
    586      0    stevel 
    587      0    stevel const	struct systable hrttable[] = {
    588      0    stevel {"hrtcntl",	5, DEC, NOV, HID, DEC, DEC, HEX, HEX},		/* 0 */
    589      0    stevel {"hrtalarm",	3, DEC, NOV, HID, HEX, DEC},			/* 1 */
    590      0    stevel {"hrtsleep",	2, DEC, NOV, HID, HEX},				/* 2 */
    591      0    stevel {"hrtcancel",	3, DEC, NOV, HID, HEX, DEC},			/* 3 */
    592      0    stevel };
    593      0    stevel #define	NHRTCODE	(sizeof (hrttable) / sizeof (struct systable))
    594      0    stevel 
    595      0    stevel const	struct systable cortable[] = {
    596      0    stevel {"corectl",	4, DEC, NOV, COR, HEX, HEX, HEX},		/* 0 */
    597      0    stevel {"corectl",	2, DEC, NOV, COR, CCO},				/* 1 */
    598      0    stevel {"corectl",	1, HHX, NOV, COR},				/* 2 */
    599      0    stevel {"corectl",	3, DEC, NOV, COR, STG, DEC},			/* 3 */
    600      0    stevel {"corectl",	3, DEC, NOV, COR, RST, DEC},			/* 4 */
    601      0    stevel {"corectl",	4, DEC, NOV, COR, STG, DEC, DEC},		/* 5 */
    602      0    stevel {"corectl",	4, DEC, NOV, COR, RST, DEC, DEC},		/* 6 */
    603      0    stevel {"corectl",	2, DEC, NOV, COR, CCC},				/* 7 */
    604      0    stevel {"corectl",	2, DEC, NOV, COR, RCC},				/* 8 */
    605      0    stevel {"corectl",	3, DEC, NOV, COR, CCC, DEC},			/* 9 */
    606      0    stevel {"corectl",	3, DEC, NOV, COR, RCC, DEC},			/* 10 */
    607      0    stevel {"corectl",	3, DEC, NOV, COR, STG, DEC},			/* 11 */
    608      0    stevel {"corectl",	3, DEC, NOV, COR, RST, DEC},			/* 12 */
    609      0    stevel {"corectl",	2, DEC, NOV, COR, CCC},				/* 13 */
    610      0    stevel {"corectl",	2, DEC, NOV, COR, RCC},				/* 14 */
    611      0    stevel };
    612      0    stevel #define	NCORCODE	(sizeof (cortable) / sizeof (struct systable))
    613      0    stevel 
    614      0    stevel const	struct systable aiotable[] = {
    615      0    stevel {"kaio",	7, DEC, NOV, AIO, DEC, HEX, DEC, LLO, HID, HEX}, /* 0 */
    616      0    stevel {"kaio",	7, DEC, NOV, AIO, DEC, HEX, DEC, LLO, HID, HEX}, /* 1 */
    617      0    stevel {"kaio",	3, DEC, NOV, AIO, HEX, DEC},			/* 2 */
    618      0    stevel {"kaio",	3, DEC, NOV, AIO, DEC, HEX},			/* 3 */
    619      0    stevel {"kaio",	1, DEC, NOV, AIO},				/* 4 */
    620      0    stevel {"kaio",	1, DEC, NOV, AIO},				/* 5 */
    621      0    stevel {"kaio",	1, DEC, NOV, AIO},				/* 6 */
    622      0    stevel {"kaio",	5, DEC, NOV, AIO, LIO, HEX, DEC, HEX},		/* 7 */
    623      0    stevel {"kaio",	5, DEC, NOV, AIO, HEX, DEC, HEX, DEC},		/* 8 */
    624      0    stevel {"kaio",	2, DEC, NOV, AIO, HEX},				/* 9 */
    625      0    stevel {"kaio",	5, DEC, NOV, AIO, LIO, HEX, DEC, HEX},		/* 10 */
    626      0    stevel {"kaio",	2, DEC, NOV, AIO, HEX},				/* 11 */
    627      0    stevel {"kaio",	2, DEC, NOV, AIO, HEX},				/* 12 */
    628      0    stevel {"kaio",	5, DEC, NOV, AIO, LIO, HEX, DEC, HEX},		/* 13 */
    629      0    stevel {"kaio",	5, DEC, NOV, AIO, HEX, DEC, HEX, DEC},		/* 14 */
    630      0    stevel {"kaio",	2, DEC, NOV, AIO, HEX},				/* 15 */
    631      0    stevel {"kaio",	5, DEC, NOV, AIO, LIO, HEX, DEC, HEX},		/* 16 */
    632      0    stevel {"kaio",	2, DEC, NOV, AIO, HEX},				/* 17 */
    633      0    stevel {"kaio",	2, DEC, NOV, AIO, HEX},				/* 18 */
    634      0    stevel {"kaio",	3, DEC, NOV, AIO, DEC, HEX},			/* 19 */
    635      0    stevel {"kaio",	1, DEC, NOV, AIO},				/* 20 */
    636      0    stevel {"kaio",	5, DEC, NOV, AIO, HEX, DEC, HEX, HEX},		/* 21 */
    637      0    stevel };
    638      0    stevel #define	NAIOCODE	(sizeof (aiotable) / sizeof (struct systable))
    639      0    stevel 
    640      0    stevel const	struct systable doortable[] = {
    641      0    stevel {"door_create", 3, DEC, NOV, HEX, HEX, DFL},			/* 0 */
    642      0    stevel {"door_revoke", 1, DEC, NOV, DEC},				/* 1 */
    643      0    stevel {"door_info",	2, DEC, NOV, DEC, HEX},				/* 2 */
    644      0    stevel {"door_call",	2, DEC, NOV, DEC, HEX},				/* 3 */
    645      0    stevel {"door_return", 4, DEC, NOV, HEX, DEC, HEX, DEC},		/* 4 (old) */
    646      0    stevel {"door_cred",	1, DEC, NOV, HEX},				/* 5 (old) */
    647      0    stevel {"door_bind",	1, DEC, NOV, DEC},				/* 6 */
    648      0    stevel {"door_unbind", 0, DEC, NOV},					/* 7 */
    649      0    stevel {"door_unref",	0, DEC, NOV},					/* 8 */
    650      0    stevel {"door_ucred",	1, DEC, NOV, HEX},				/* 9 */
    651      0    stevel {"door_return", 5, DEC, NOV, HEX, DEC, HEX, HEX, DEC},		/* 10 */
    652      0    stevel {"door_getparam", 3, DEC, NOV, DEC, DPM, HEX},			/* 11 */
    653      0    stevel {"door_setparam", 3, DEC, NOV, DEC, DPM, DEC},			/* 12 */
    654      0    stevel };
    655      0    stevel #define	NDOORCODE	(sizeof (doortable) / sizeof (struct systable))
    656      0    stevel 
    657      0    stevel const	struct systable psettable[] = {
    658      0    stevel {"pset_create", 2, DEC, NOV, HID, HEX},				/* 0 */
    659      0    stevel {"pset_destroy", 2, DEC, NOV, HID, PST},			/* 1 */
    660      0    stevel {"pset_assign",	4, DEC, NOV, HID, PST, DEC, HEX},		/* 2 */
    661      0    stevel {"pset_info",	5, DEC, NOV, HID, PST, HEX, HEX, HEX},		/* 3 */
    662      0    stevel {"pset_bind",	5, DEC, NOV, HID, PST, IDT, DEC, HEX},		/* 4 */
    663      0    stevel {"pset_getloadavg", 4, DEC, NOV, HID, PST, HEX, DEC},		/* 5 */
    664      0    stevel {"pset_list",	3, DEC, NOV, HID, HEX, HEX},			/* 6 */
    665      0    stevel {"pset_setattr", 3, DEC, NOV, HID, PST, HEX},			/* 7 */
    666      0    stevel {"pset_getattr", 3, DEC, NOV, HID, PST, HEX},			/* 8 */
    667      0    stevel {"pset_assign_forced",	4, DEC, NOV, HID, PST, DEC, HEX},	/* 9 */
    668      0    stevel };
    669      0    stevel #define	NPSETCODE	(sizeof (psettable) / sizeof (struct systable))
    670      0    stevel 
    671      0    stevel const	struct systable lwpcreatetable[] = {
    672      0    stevel {"lwp_create",	3, DEC, NOV, HEX, LWF, HEX},			/* 0 */
    673      0    stevel {"lwp_create",	0, DEC, NOV},					/* 1 */
    674      0    stevel };
    675      0    stevel #define	NLWPCREATECODE	(sizeof (lwpcreatetable) / sizeof (struct systable))
    676      0    stevel 
    677      0    stevel static	const	struct systable tasksystable[] = {
    678      0    stevel {"settaskid",	3, DEC, NOV, HID, DEC, HEX},			/* 0 */
    679      0    stevel {"gettaskid",	1, DEC, NOV, HID},				/* 1 */
    680      0    stevel {"getprojid",	1, DEC, NOV, HID},				/* 2 */
    681      0    stevel };
    682      0    stevel #define	NTASKSYSCODE	(sizeof (tasksystable) / sizeof (struct systable))
    683      0    stevel 
    684      0    stevel static const	struct systable privsystable[] = {
    685      0    stevel {"setppriv",		4, DEC, NOV, HID, PRO, PRN, PRS},	/* 0 */
    686      0    stevel {"getppriv",		4, DEC, NOV, HID, HID, PRN, PRS},	/* 1 */
    687      0    stevel {"getprivimplinfo",	5, DEC, NOV, HID, HID, HID, HEX, DEC},	/* 2 */
    688      0    stevel {"setpflags",		3, DEC, NOV, HID, PFL, DEC},		/* 3 */
    689      0    stevel {"getpflags",		2, DEC, NOV, HID, PFL},			/* 4 */
    690   4321    casper {"issetugid",		0, DEC, NOV, HID},			/* 5 */
    691      0    stevel };
    692      0    stevel #define	NPRIVSYSCODE	(sizeof (privsystable) / sizeof (struct systable))
    693      0    stevel 
    694      0    stevel static	const	struct systable exacctsystable[] = {
    695      0    stevel {"getacct",	5, DEC, NOV, HID, IDT, DEC, HEX, UNS},		/* 0 */
    696      0    stevel {"putacct",	6, DEC, NOV, HID, IDT, DEC, HEX, UNS, HEX},	/* 1 */
    697      0    stevel {"wracct",	4, DEC, NOV, HID, IDT, DEC, HEX},		/* 2 */
    698      0    stevel };
    699      0    stevel #define	NEXACCTSYSCODE	(sizeof (exacctsystable) / sizeof (struct systable))
    700      0    stevel 
    701      0    stevel static const	struct systable fsatsystable[] = {
    702      0    stevel {"openat",	5, DEC, NOV, HID, ATC, STG, OPN, OCT},		/* 0 */
    703      0    stevel {"openat64",	5, DEC, NOV, HID, ATC, STG, OPN, OCT},		/* 1 */
    704      0    stevel {"fstatat64",	5, DEC, NOV, HID, ATC, STG, HEX, HEX},		/* 2 */
    705      0    stevel {"fstatat",	5, DEC, NOV, HID, ATC, STG, HEX, HEX},		/* 3 */
    706      0    stevel {"fchownat",	6, DEC, NOV, HID, ATC, STG, HEX, HEX, HEX},	/* 4 */
    707      0    stevel {"unlinkat",	4, DEC, NOV, HID, ATC, STG, HEX},		/* 5 */
    708      0    stevel {"futimesat",	4, DEC, NOV, HID, ATC, STG, HEX},		/* 6 */
    709      0    stevel {"renameat",	5, DEC, NOV, HID, ATC, STG, DEC, STG},		/* 7 */
    710   9880   Sumanth {"faccessat",	5, DEC, NOV, HID, ATC, STG, ACC, ACC},		/* 8 */
    711   5331       amw {"__openattrdirat", 3, DEC, NOV, HID, ATC, STG},		/* 9 */
    712   3855  sn199410 {"openat",	4, DEC, NOV, HID, ATC, STG, OPN},		/* N - 2 */
    713   3855  sn199410 {"openat64",	4, DEC, NOV, HID, ATC, STG, OPN},		/* N - 1 */
    714      0    stevel };
    715      0    stevel #define	NFSATSYSCODE	(sizeof (fsatsystable) / sizeof (struct systable))
    716      0    stevel 
    717      0    stevel static	const	struct systable lwpparktable[] = {
    718      0    stevel {"lwp_park",	3, DEC, NOV, HID, HEX, DEC},			/* 0 */
    719      0    stevel {"lwp_unpark",	2, DEC, NOV, HID, DEC},				/* 1 */
    720      0    stevel {"lwp_unpark_all", 3, DEC, NOV, HID, HEX, DEC},			/* 2 */
    721   4389  sl108498 {"lwp_unpark_cancel",	2, DEC, NOV, HID, DEC},			/* 3 */
    722   4389  sl108498 {"lwp_set_park",	3, DEC, NOV, HID, HEX, DEC},		/* 4 */
    723      0    stevel };
    724      0    stevel #define	NLWPPARKCODE	(sizeof (lwpparktable) / sizeof (struct systable))
    725      0    stevel 
    726      0    stevel static	const	struct systable lwprwlocktable[] = {
    727      0    stevel {"lwp_rwlock_rdlock", 3, DEC, NOV, HID, HEX, HEX},		/* 0 */
    728      0    stevel {"lwp_rwlock_wrlock", 3, DEC, NOV, HID, HEX, HEX},		/* 1 */
    729      0    stevel {"lwp_rwlock_tryrdlock", 2, DEC, NOV, HID, HEX},		/* 2 */
    730      0    stevel {"lwp_rwlock_trywrlock", 2, DEC, NOV, HID, HEX},		/* 3 */
    731      0    stevel {"lwp_rwlock_unlock", 2, DEC, NOV, HID, HEX},			/* 4 */
    732      0    stevel };
    733      0    stevel #define	NLWPRWLOCKCODE	(sizeof (lwprwlocktable) / sizeof (struct systable))
    734      0    stevel 
    735      0    stevel static	const	struct systable sendfilevsystable[] = {
    736      0    stevel {"sendfilev",	5, DEC, NOV, DEC, DEC, HEX, DEC, HEX},		/* 0 */
    737      0    stevel {"sendfilev64",	5, DEC, NOV, DEC, DEC, HEX, DEC, HEX},		/* 1 */
    738      0    stevel };
    739      0    stevel #define	NSENDFILESYSCODE \
    740      0    stevel 		(sizeof (sendfilevsystable) / sizeof (struct systable))
    741      0    stevel 
    742      0    stevel static	const	struct systable lgrpsystable[] = {
    743      0    stevel {"meminfo",		3, DEC, NOV, HID, NOV, MIF},		/* 0 */
    744      0    stevel {"_lgrpsys",		3, DEC, NOV, DEC, DEC, NOV},		/* 1 */
    745      0    stevel {"lgrp_version",	3, DEC, NOV, HID, DEC, NOV},		/* 2 */
    746      0    stevel {"_lgrpsys",		3, DEC, NOV, DEC, HEX, HEX},		/* 3 */
    747      0    stevel {"lgrp_affinity_get",	3, DEC, NOV, HID, NOV, LAF},		/* 4 */
    748      0    stevel {"lgrp_affinity_set",	3, DEC, NOV, HID, NOV, LAF},		/* 5 */
    749      0    stevel {"lgrp_latency",	3, DEC, NOV, HID, DEC, DEC},		/* 6 */
    750      0    stevel };
    751      0    stevel #define	NLGRPSYSCODE	(sizeof (lgrpsystable) / sizeof (struct systable))
    752      0    stevel 
    753      0    stevel static	const	struct systable rusagesystable[] = {
    754      0    stevel {"getrusage",		2, DEC, NOV, HID, HEX},			/* 0 */
    755      0    stevel {"getrusage_chld",	2, DEC, NOV, HID, HEX},			/* 1 */
    756      0    stevel {"getrusage_lwp",	2, DEC, NOV, HID, HEX},			/* 2 */
    757   3247  gjelinek {"getvmusage",		5, DEC, NOV, HID, HEX, DEC, HEX, HEX},	/* 3 */
    758      0    stevel };
    759      0    stevel #define	NRUSAGESYSCODE \
    760      0    stevel 		(sizeof (rusagesystable) / sizeof (struct systable))
    761      0    stevel 
    762      0    stevel static const	struct systable ucredsystable[] = {
    763      0    stevel {"ucred_get",	3, DEC, NOV, HID, DEC, HEX},
    764      0    stevel {"getpeerucred", 3, DEC, NOV, HID, DEC, HEX},
    765      0    stevel };
    766      0    stevel #define	NUCREDSYSCODE \
    767      0    stevel 		(sizeof (ucredsystable) / sizeof (struct systable))
    768      0    stevel 
    769      0    stevel const	struct systable portfstable[] = {
    770      0    stevel {"port_create",	2, DEC, NOV, HID, DEC},				/* 0 */
    771      0    stevel {"port_associate",	6, DEC, NOV, HID, DEC, DEC, HEX, HEX, HEX}, /* 1 */
    772      0    stevel {"port_dissociate",	4, DEC, NOV, HID, DEC, DEC, HEX}, 	/* 2 */
    773      0    stevel {"port_send",	4, DEC, NOV, HID, DEC, HEX, HEX},		/* 3 */
    774      0    stevel {"port_sendn",	6, DEC, DEC, HID, HEX, HEX, DEC, HEX, HEX},	/* 4 */
    775      0    stevel {"port_get",	4, DEC, NOV, HID, DEC, HEX, HEX},		/* 5 */
    776      0    stevel {"port_getn",	6, DEC, DEC, HID, DEC, HEX, DEC, DEC, HEX},	/* 6 */
    777      0    stevel {"port_alert",	5, DEC, NOV, HID, DEC, HEX, HEX, HEX},		/* 7 */
    778      0    stevel {"port_dispatch", 6, DEC, NOV, HID, DEC, DEC, HEX, HEX, HEX},	/* 8 */
    779      0    stevel };
    780      0    stevel #define	NPORTCODE	(sizeof (portfstable) / sizeof (struct systable))
    781      0    stevel 
    782      0    stevel static const struct systable zonetable[] = {
    783    813        dp {"zone_create",	2, DEC, NOV, HID, HEX},				/* 0 */
    784      0    stevel {"zone_destroy", 2, DEC, NOV, HID, DEC},			/* 1 */
    785      0    stevel {"zone_getattr", 5, DEC, NOV, HID, DEC, ZGA, HEX, DEC},		/* 2 */
    786      0    stevel {"zone_enter",	2, DEC, NOV, HID, DEC},				/* 3 */
    787      0    stevel {"zone_list",	3, DEC, NOV, HID, HEX, HEX},			/* 4 */
    788      0    stevel {"zone_shutdown", 2, DEC, NOV, HID, DEC},			/* 5 */
    789   3235       raf {"zone_lookup",	2, DEC, NOV, HID, STG},				/* 6 */
    790   3235       raf {"zone_boot",	2, DEC, NOV, HID, DEC},				/* 7 */
    791    813        dp {"zone_version", 2, HEX, NOV, HID, DEC},			/* 8 */
    792   2267        dp {"zone_setattr", 5, DEC, NOV, HID, DEC, ZGA, HEX, DEC},		/* 9 */
    793   3448  dh155122 {"zone_add_datalink", 3, DEC, NOV, HID, DEC, STG},		/* 10 */
    794   3448  dh155122 {"zone_remove_datalink", 3, DEC, NOV, HID, DEC, STG},		/* 11 */
    795   3448  dh155122 {"zone_check_datalink", 3, DEC, NOV, HID, HEX, STG},		/* 12 */
    796   3448  dh155122 {"zone_list_datalink", 4, DEC, NOV, HID, DEC, HEX, HEX},	/* 13 */
    797      0    stevel };
    798      0    stevel #define	NZONECODE	(sizeof (zonetable) / sizeof (struct systable))
    799      0    stevel 
    800   1676       jpk static const struct systable labeltable[] = {
    801   3235       raf {"labelsys",	3, DEC, NOV, HID, HEX, HEX},			/* 0 */
    802   1676       jpk {"is_system_labeled", 1, DEC, NOV, HID},			/* 1 */
    803   3235       raf {"tnrh",	3, DEC, NOV, HID, TND, HEX},			/* 2 */
    804   3235       raf {"tnrhtp",	3, DEC, NOV, HID, TND, HEX},			/* 3 */
    805   3235       raf {"tnmlp",	3, DEC, NOV, HID, TND, HEX},			/* 4 */
    806   3235       raf {"getlabel",	3, DEC, NOV, HID, STG, HEX},			/* 5 */
    807   3235       raf {"fgetlabel",	3, DEC, NOV, HID, DEC, HEX},			/* 6 */
    808   1676       jpk };
    809   1676       jpk #define	NLABELCODE	(sizeof (labeltable) / sizeof (struct systable))
    810   1676       jpk 
    811   3235       raf const	struct systable forktable[] = {
    812   3235       raf /* parent codes */
    813   3235       raf {"forkx",	2, DEC, NOV, HID, FXF},				/* 0 */
    814   3235       raf {"forkallx",	2, DEC, NOV, HID, FXF},				/* 1 */
    815   3235       raf {"vforkx",	2, DEC, NOV, HID, FXF},				/* 2 */
    816   3235       raf /* child codes */
    817   3235       raf {"forkx",	0, DEC, NOV},					/* 3 */
    818   3235       raf {"forkallx",	0, DEC, NOV},					/* 4 */
    819   3235       raf {"vforkx",	0, DEC, NOV},					/* 5 */
    820   3235       raf };
    821   3235       raf #define	NFORKCODE	(sizeof (forktable) / sizeof (struct systable))
    822   4321    casper 
    823   4321    casper const	struct systable sidsystable[] = {
    824   4321    casper {"allocids",	4, UNS, UNS, HID, DEC, DEC, DEC},		/* 0 */
    825   4321    casper {"idmap_reg",	2, DEC, NOV, HID, DEC},				/* 1 */
    826   4321    casper {"idmap_unreg",	2, DEC, NOV, HID, DEC},				/* 2 */
    827   4321    casper };
    828   4321    casper #define	NSIDSYSCODE	(sizeof (sidsystable) / sizeof (struct systable))
    829   3235       raf 
    830  10440     Roger const	struct systable utimesystable[] = {
    831  10440     Roger {"futimens",	3, DEC, NOV, HID, DEC, HEX},			/* 0 */
    832  10440     Roger {"utimensat",	5, DEC, NOV, HID, ATC, STG, HEX, UTF},		/* 1 */
    833  10440     Roger };
    834  10440     Roger #define	NUTIMESYSCODE	(sizeof (utimesystable) / sizeof (struct systable))
    835  10440     Roger 
    836      0    stevel const	struct sysalias sysalias[] = {
    837      0    stevel 	{ "exit",	SYS_exit	},
    838   3235       raf 	{ "fork",	SYS_forksys	},
    839   3235       raf 	{ "forkx",	SYS_forksys	},
    840   3235       raf 	{ "forkallx",	SYS_forksys	},
    841   3235       raf 	{ "vforkx",	SYS_forksys	},
    842      0    stevel 	{ "sbrk",	SYS_brk		},
    843      0    stevel 	{ "getppid",	SYS_getpid	},
    844      0    stevel 	{ "geteuid",	SYS_getuid	},
    845      0    stevel 	{ "getpgrp",	SYS_pgrpsys	},
    846      0    stevel 	{ "setpgrp",	SYS_pgrpsys	},
    847      0    stevel 	{ "getsid",	SYS_pgrpsys	},
    848      0    stevel 	{ "setsid",	SYS_pgrpsys	},
    849      0    stevel 	{ "getpgid",	SYS_pgrpsys	},
    850      0    stevel 	{ "setpgid",	SYS_pgrpsys	},
    851      0    stevel 	{ "getegid",	SYS_getgid	},
    852      0    stevel 	{ "msgget",	SYS_msgsys	},
    853      0    stevel 	{ "msgctl",	SYS_msgsys	},
    854      0    stevel 	{ "msgctl64",	SYS_msgsys	},
    855      0    stevel 	{ "msgrcv",	SYS_msgsys	},
    856      0    stevel 	{ "msgsnd",	SYS_msgsys	},
    857      0    stevel 	{ "msgids",	SYS_msgsys	},
    858      0    stevel 	{ "msgsnap",	SYS_msgsys	},
    859      0    stevel 	{ "msgop",	SYS_msgsys	},
    860      0    stevel 	{ "shmat",	SYS_shmsys	},
    861      0    stevel 	{ "shmctl",	SYS_shmsys	},
    862      0    stevel 	{ "shmctl64",	SYS_shmsys	},
    863      0    stevel 	{ "shmdt",	SYS_shmsys	},
    864      0    stevel 	{ "shmget",	SYS_shmsys	},
    865      0    stevel 	{ "shmids",	SYS_shmsys	},
    866      0    stevel 	{ "shmop",	SYS_shmsys	},
    867      0    stevel 	{ "semctl",	SYS_semsys	},
    868      0    stevel 	{ "semctl64",	SYS_semsys	},
    869      0    stevel 	{ "semget",	SYS_semsys	},
    870      0    stevel 	{ "semids",	SYS_semsys	},
    871      0    stevel 	{ "semop",	SYS_semsys	},
    872      0    stevel 	{ "semtimedop",	SYS_semsys	},
    873      0    stevel 	{ "uname",	SYS_utssys	},
    874      0    stevel 	{ "ustat",	SYS_utssys	},
    875      0    stevel 	{ "fusers",	SYS_utssys	},
    876      0    stevel 	{ "exec",	SYS_execve	},
    877      0    stevel 	{ "execl",	SYS_execve	},
    878      0    stevel 	{ "execv",	SYS_execve	},
    879      0    stevel 	{ "execle",	SYS_execve	},
    880      0    stevel 	{ "execlp",	SYS_execve	},
    881      0    stevel 	{ "execvp",	SYS_execve	},
    882      0    stevel 	{ "sigfillset",	SYS_sigpending	},
    883      0    stevel 	{ "getcontext",	SYS_context	},
    884      0    stevel 	{ "setcontext",	SYS_context	},
    885      0    stevel 	{ "getustack",	SYS_context	},
    886      0    stevel 	{ "setustack",	SYS_context	},
    887      0    stevel 	{ "hrtcntl",	SYS_hrtsys	},
    888      0    stevel 	{ "hrtalarm",	SYS_hrtsys	},
    889      0    stevel 	{ "hrtsleep",	SYS_hrtsys	},
    890      0    stevel 	{ "hrtcancel",	SYS_hrtsys	},
    891      0    stevel 	{ "aioread",	SYS_kaio	},
    892      0    stevel 	{ "aiowrite",	SYS_kaio	},
    893      0    stevel 	{ "aiowait",	SYS_kaio	},
    894      0    stevel 	{ "aiocancel",	SYS_kaio	},
    895      0    stevel 	{ "aionotify",	SYS_kaio	},
    896      0    stevel 	{ "audit",	SYS_auditsys	},
    897      0    stevel 	{ "door_create",	SYS_door	},
    898      0    stevel 	{ "door_revoke",	SYS_door	},
    899      0    stevel 	{ "door_info",		SYS_door	},
    900      0    stevel 	{ "door_call",		SYS_door	},
    901      0    stevel 	{ "door_return",	SYS_door	},
    902      0    stevel 	{ "door_bind",		SYS_door	},
    903      0    stevel 	{ "door_unbind",	SYS_door	},
    904      0    stevel 	{ "door_unref",		SYS_door	},
    905      0    stevel 	{ "door_ucred",		SYS_door	},
    906      0    stevel 	{ "door_getparam",	SYS_door	},
    907      0    stevel 	{ "door_setparam",	SYS_door	},
    908      0    stevel 	{ "pset_create",	SYS_pset	},
    909      0    stevel 	{ "pset_destroy",	SYS_pset	},
    910      0    stevel 	{ "pset_assign",	SYS_pset	},
    911      0    stevel 	{ "pset_info",		SYS_pset	},
    912      0    stevel 	{ "pset_bind",		SYS_pset	},
    913      0    stevel 	{ "pset_getloadavg",	SYS_pset	},
    914      0    stevel 	{ "pset_list",		SYS_pset	},
    915      0    stevel 	{ "pset_setattr",	SYS_pset	},
    916      0    stevel 	{ "pset_getattr",	SYS_pset	},
    917      0    stevel 	{ "pset_assign_forced",	SYS_pset	},
    918      0    stevel 	{ "settaskid",		SYS_tasksys	},
    919      0    stevel 	{ "gettaskid",		SYS_tasksys	},
    920      0    stevel 	{ "getprojid",		SYS_tasksys	},
    921      0    stevel 	{ "setppriv",		SYS_privsys	},
    922      0    stevel 	{ "getppriv",		SYS_privsys	},
    923      0    stevel 	{ "getprivimplinfo",	SYS_privsys	},
    924      0    stevel 	{ "setpflags",		SYS_privsys	},
    925      0    stevel 	{ "getpflags",		SYS_privsys	},
    926      0    stevel 	{ "getacct",		SYS_exacctsys	},
    927      0    stevel 	{ "putacct",		SYS_exacctsys	},
    928      0    stevel 	{ "wracct",		SYS_exacctsys	},
    929      0    stevel 	{ "lwp_cond_timedwait",	SYS_lwp_cond_wait },
    930      0    stevel 	{ "lwp_park",		SYS_lwp_park	},
    931      0    stevel 	{ "lwp_unpark",		SYS_lwp_park	},
    932      0    stevel 	{ "lwp_unpark_all",	SYS_lwp_park	},
    933      0    stevel 	{ "lwp_rwlock_rdlock",	SYS_lwp_rwlock_sys },
    934      0    stevel 	{ "lwp_rwlock_wrlock",	SYS_lwp_rwlock_sys },
    935      0    stevel 	{ "lwp_rwlock_tryrdlock", SYS_lwp_rwlock_sys },
    936      0    stevel 	{ "lwp_rwlock_trywrlock", SYS_lwp_rwlock_sys },
    937      0    stevel 	{ "lwp_rwlock_unlock",	SYS_lwp_rwlock_sys },
    938      0    stevel 	{ "sendfilev64",	SYS_sendfilev	},
    939      0    stevel 	{ "openat",		SYS_fsat	},
    940      0    stevel 	{ "openat64",		SYS_fsat	},
    941      0    stevel 	{ "fstatat64",		SYS_fsat	},
    942      0    stevel 	{ "fstatat",		SYS_fsat	},
    943      0    stevel 	{ "fchownat",		SYS_fsat	},
    944      0    stevel 	{ "unlinkat",		SYS_fsat	},
    945      0    stevel 	{ "futimesat",		SYS_fsat	},
    946      0    stevel 	{ "renameat",		SYS_fsat	},
    947   9880   Sumanth 	{ "faccessat",		SYS_fsat	},
    948   5331       amw 	{ "__openattrdirat",	SYS_fsat	},
    949      0    stevel 	{ "lgrpsys",		SYS_lgrpsys	},
    950      0    stevel 	{ "getrusage",		SYS_rusagesys	},
    951      0    stevel 	{ "getrusage_chld",	SYS_rusagesys	},
    952      0    stevel 	{ "getrusage_lwp",	SYS_rusagesys	},
    953   3247  gjelinek 	{ "getvmusage",		SYS_rusagesys	},
    954      0    stevel 	{ "getpeerucred",	SYS_ucredsys	},
    955      0    stevel 	{ "ucred_get",		SYS_ucredsys	},
    956      0    stevel 	{ "port_create",	SYS_port	},
    957      0    stevel 	{ "port_associate",	SYS_port	},
    958      0    stevel 	{ "port_dissociate",	SYS_port	},
    959      0    stevel 	{ "port_send",		SYS_port	},
    960      0    stevel 	{ "port_sendn",		SYS_port	},
    961      0    stevel 	{ "port_get",		SYS_port	},
    962      0    stevel 	{ "port_getn",		SYS_port	},
    963      0    stevel 	{ "port_alert",		SYS_port	},
    964      0    stevel 	{ "port_dispatch",	SYS_port	},
    965      0    stevel 	{ "zone_create",	SYS_zone	},
    966      0    stevel 	{ "zone_destroy",	SYS_zone	},
    967      0    stevel 	{ "zone_getattr",	SYS_zone	},
    968   3247  gjelinek 	{ "zone_setattr",	SYS_zone	},
    969      0    stevel 	{ "zone_enter",		SYS_zone	},
    970      0    stevel 	{ "getzoneid",		SYS_zone	},
    971      0    stevel 	{ "zone_list",		SYS_zone	},
    972      0    stevel 	{ "zone_shutdown",	SYS_zone	},
    973   3448  dh155122 	{ "zone_add_datalink",	SYS_zone	},
    974   3448  dh155122 	{ "zone_remove_datalink", SYS_zone	},
    975   3448  dh155122 	{ "zone_check_datalink", SYS_zone	},
    976   3448  dh155122 	{ "zone_list_datalink",	SYS_zone	},
    977   1676       jpk 	{ "is_system_labeled",	SYS_labelsys	},
    978   1676       jpk 	{ "tnrh",		SYS_labelsys	},
    979   1676       jpk 	{ "tnrhtp",		SYS_labelsys	},
    980   1676       jpk 	{ "tnmlp",		SYS_labelsys	},
    981   1676       jpk 	{ "getlabel",		SYS_labelsys	},
    982   1676       jpk 	{ "fgetlabel",		SYS_labelsys	},
    983   2447  nf202958 	{ "getrctl",		SYS_rctlsys	},
    984   2447  nf202958 	{ "setrctl",		SYS_rctlsys	},
    985   2447  nf202958 	{ "rctlsys_lst",	SYS_rctlsys	},
    986   2447  nf202958 	{ "rctlsys_ctl",	SYS_rctlsys	},
    987   4321    casper 	{ "allocids",		SYS_sidsys	},
    988  10440     Roger 	{ "futimens",		SYS_utimesys	},
    989  10440     Roger 	{ "utimensat",		SYS_utimesys	},
    990      0    stevel 	{  NULL,	0	}	/* end-of-list */
    991      0    stevel };
    992      0    stevel 
    993      0    stevel /*
    994      0    stevel  * Return structure to interpret system call with sub-codes.
    995      0    stevel  */
    996      0    stevel const struct systable *
    997      0    stevel subsys(int syscall, int subcode)
    998      0    stevel {
    999      0    stevel 	const struct systable *stp = NULL;
   1000      0    stevel 
   1001      0    stevel 	if (subcode != -1) {
   1002      0    stevel 		switch (syscall) {
   1003      0    stevel 		case SYS_open:
   1004      0    stevel 			if ((unsigned)subcode < NOPENCODE)
   1005      0    stevel 				stp = &opentable[subcode];
   1006      0    stevel 			break;
   1007      0    stevel 		case SYS_open64:
   1008      0    stevel 			if ((unsigned)subcode < NOPEN64CODE)
   1009      0    stevel 				stp = &open64table[subcode];
   1010      0    stevel 			break;
   1011      0    stevel 		case SYS_msgsys:	/* msgsys() */
   1012      0    stevel 			if ((unsigned)subcode < NMSGCODE)
   1013      0    stevel 				stp = &msgtable[subcode];
   1014      0    stevel 			break;
   1015      0    stevel 		case SYS_semsys:	/* semsys() */
   1016      0    stevel 			if ((unsigned)subcode < NSEMCODE)
   1017      0    stevel 				stp = &semtable[subcode];
   1018      0    stevel 			break;
   1019      0    stevel 		case SYS_shmsys:	/* shmsys() */
   1020      0    stevel 			if ((unsigned)subcode < NSHMCODE)
   1021      0    stevel 				stp = &shmtable[subcode];
   1022      0    stevel 			break;
   1023      0    stevel 		case SYS_pgrpsys:	/* pgrpsys() */
   1024      0    stevel 			if ((unsigned)subcode < NPIDCODE)
   1025      0    stevel 				stp = &pidtable[subcode];
   1026      0    stevel 			break;
   1027      0    stevel 		case SYS_utssys:	/* utssys() */
   1028      0    stevel 			if ((unsigned)subcode < NUTSCODE)
   1029      0    stevel 				stp = &utstable[subcode];
   1030      0    stevel 			break;
   1031      0    stevel 		case SYS_sysfs:		/* sysfs() */
   1032      0    stevel 			if ((unsigned)subcode < NSFSCODE)
   1033      0    stevel 				stp = &sfstable[subcode];
   1034      0    stevel 			break;
   1035      0    stevel 		case SYS_sigpending:	/* sigpending()/sigfillset() */
   1036      0    stevel 			if ((unsigned)subcode < NSGPCODE)
   1037      0    stevel 				stp = &sgptable[subcode];
   1038      0    stevel 			break;
   1039      0    stevel 		case SYS_context:	/* [get|set]context() */
   1040      0    stevel 			if ((unsigned)subcode < NCTXCODE)
   1041      0    stevel 				stp = &ctxtable[subcode];
   1042      0    stevel 			break;
   1043      0    stevel 		case SYS_hrtsys:	/* hrtsys() */
   1044      0    stevel 			if ((unsigned)subcode < NHRTCODE)
   1045      0    stevel 				stp = &hrttable[subcode];
   1046      0    stevel 			break;
   1047      0    stevel 		case SYS_corectl:	/* corectl() */
   1048      0    stevel 			if ((unsigned)subcode < NCORCODE)
   1049      0    stevel 				stp = &cortable[subcode];
   1050      0    stevel 			break;
   1051      0    stevel 		case SYS_kaio:		/* kaio() */
   1052      0    stevel 			if ((unsigned)subcode < NAIOCODE)
   1053      0    stevel 				stp = &aiotable[subcode];
   1054      0    stevel 			break;
   1055      0    stevel 		case SYS_door:		/* doors */
   1056      0    stevel 			if ((unsigned)subcode < NDOORCODE)
   1057      0    stevel 				stp = &doortable[subcode];
   1058      0    stevel 			break;
   1059      0    stevel 		case SYS_pset:		/* pset() */
   1060      0    stevel 			if ((unsigned)subcode < NPSETCODE)
   1061      0    stevel 				stp = &psettable[subcode];
   1062      0    stevel 			break;
   1063      0    stevel 		case SYS_lwp_create:	/* lwp_create() */
   1064      0    stevel 			if ((unsigned)subcode < NLWPCREATECODE)
   1065      0    stevel 				stp = &lwpcreatetable[subcode];
   1066      0    stevel 			break;
   1067      0    stevel 		case SYS_tasksys:	/* tasks */
   1068      0    stevel 			if ((unsigned)subcode < NTASKSYSCODE)
   1069      0    stevel 				stp = &tasksystable[subcode];
   1070      0    stevel 			break;
   1071      0    stevel 		case SYS_exacctsys:	/* exacct */
   1072      0    stevel 			if ((unsigned)subcode < NEXACCTSYSCODE)
   1073      0    stevel 				stp = &exacctsystable[subcode];
   1074      0    stevel 			break;
   1075      0    stevel 		case SYS_fsat:
   1076      0    stevel 			if ((unsigned)subcode < NFSATSYSCODE)
   1077      0    stevel 				stp = &fsatsystable[subcode];
   1078      0    stevel 			break;
   1079      0    stevel 		case SYS_privsys:	/* privileges */
   1080      0    stevel 			if ((unsigned)subcode < NPRIVSYSCODE)
   1081      0    stevel 				stp = &privsystable[subcode];
   1082      0    stevel 			break;
   1083      0    stevel 		case SYS_lwp_park:	/* lwp_park */
   1084      0    stevel 			if ((unsigned)subcode < NLWPPARKCODE)
   1085      0    stevel 				stp = &lwpparktable[subcode];
   1086      0    stevel 			break;
   1087      0    stevel 		case SYS_lwp_rwlock_sys:
   1088      0    stevel 			if ((unsigned)subcode < NLWPRWLOCKCODE)
   1089      0    stevel 				stp = &lwprwlocktable[subcode];
   1090      0    stevel 			break;
   1091      0    stevel 		case SYS_sendfilev:	/* sendfilev */
   1092      0    stevel 			if ((unsigned)subcode < NSENDFILESYSCODE)
   1093      0    stevel 				stp = &sendfilevsystable[subcode];
   1094      0    stevel 			break;
   1095      0    stevel 		case SYS_lgrpsys:	/* lgrpsys */
   1096      0    stevel 			if ((unsigned)subcode < NLGRPSYSCODE)
   1097      0    stevel 				stp = &lgrpsystable[subcode];
   1098      0    stevel 			break;
   1099      0    stevel 		case SYS_rusagesys:	/* rusagesys */
   1100      0    stevel 			if ((unsigned)subcode < NRUSAGESYSCODE)
   1101      0    stevel 				stp = &rusagesystable[subcode];
   1102      0    stevel 			break;
   1103      0    stevel 		case SYS_fcntl:		/* fcntl */
   1104      0    stevel 			if ((unsigned)subcode < NFCNTLCODE)
   1105      0    stevel 				stp = &fcntltable[subcode];
   1106      0    stevel 			break;
   1107      0    stevel 		case SYS_ucredsys:
   1108      0    stevel 			if ((unsigned)subcode < NUCREDSYSCODE)
   1109      0    stevel 				stp = &ucredsystable[subcode];
   1110      0    stevel 			break;
   1111      0    stevel 		case SYS_port:	/* portfs */
   1112      0    stevel 			if ((unsigned)subcode < NPORTCODE)
   1113      0    stevel 				stp = &portfstable[subcode];
   1114      0    stevel 			break;
   1115      0    stevel 		case SYS_zone:		/* zone family */
   1116      0    stevel 			if ((unsigned)subcode < NZONECODE)
   1117      0    stevel 				stp = &zonetable[subcode];
   1118   1676       jpk 			break;
   1119   1676       jpk 		case SYS_labelsys:	/* label family */
   1120   1676       jpk 			if ((unsigned)subcode < NLABELCODE)
   1121   1676       jpk 				stp = &labeltable[subcode];
   1122   2447  nf202958 			break;
   1123   2447  nf202958 		case SYS_rctlsys:	/* rctl family */
   1124   2447  nf202958 			if ((unsigned)subcode < NRCTLCODE)
   1125   2447  nf202958 				stp = &rctltable[subcode];
   1126      0    stevel 			break;
   1127   3235       raf 		case SYS_forksys:	/* fork family */
   1128   3235       raf 			if ((unsigned)subcode < NFORKCODE)
   1129   3235       raf 				stp = &forktable[subcode];
   1130   4321    casper 			break;
   1131   4321    casper 		case SYS_sidsys:	/* SID family */
   1132   4321    casper 			if ((unsigned)subcode < NSIDSYSCODE)
   1133   4321    casper 				stp = &sidsystable[subcode];
   1134  10440     Roger 			break;
   1135  10440     Roger 		case SYS_utimesys:	/* utime family */
   1136  10440     Roger 			if ((unsigned)subcode < NUTIMESYSCODE)
   1137  10440     Roger 				stp = &utimesystable[subcode];
   1138   3235       raf 			break;
   1139      0    stevel 		}
   1140      0    stevel 	}
   1141      0    stevel 
   1142      0    stevel 	if (stp == NULL)
   1143      0    stevel 		stp = &systable[((unsigned)syscall < SYSEND)? syscall : 0];
   1144      0    stevel 
   1145      0    stevel 	return (stp);
   1146      0    stevel }
   1147      0    stevel 
   1148      0    stevel /*
   1149      0    stevel  * Return the name of the system call.
   1150      0    stevel  */
   1151      0    stevel const char *
   1152      0    stevel sysname(private_t *pri, int syscall, int subcode)
   1153      0    stevel {
   1154      0    stevel 	const struct systable *stp = subsys(syscall, subcode);
   1155      0    stevel 	const char *name = stp->name;	/* may be NULL */
   1156      0    stevel 
   1157      0    stevel 	if (name == NULL) {		/* manufacture a name */
   1158      0    stevel 		(void) sprintf(pri->sys_name, "sys#%d", syscall);
   1159      0    stevel 		name = pri->sys_name;
   1160      0    stevel 	}
   1161      0    stevel 
   1162      0    stevel 	return (name);
   1163      0    stevel }
   1164      0    stevel 
   1165      0    stevel /*
   1166      0    stevel  * Return the name of the signal.
   1167      0    stevel  * Return NULL if unknown signal.
   1168      0    stevel  */
   1169      0    stevel const char *
   1170      0    stevel rawsigname(private_t *pri, int sig)
   1171      0    stevel {
   1172      0    stevel 	/*
   1173      0    stevel 	 * The C library function sig2str() omits the leading "SIG".
   1174      0    stevel 	 */
   1175      0    stevel 	(void) strcpy(pri->raw_sig_name, "SIG");
   1176      0    stevel 
   1177      0    stevel 	if (sig > 0 && sig2str(sig, pri->raw_sig_name+3) == 0)
   1178      0    stevel 		return (pri->raw_sig_name);
   1179      0    stevel 	return (NULL);
   1180      0    stevel }
   1181      0    stevel 
   1182      0    stevel /*
   1183      0    stevel  * Return the name of the signal.
   1184      0    stevel  * Manufacture a name for unknown signal.
   1185      0    stevel  */
   1186      0    stevel const char *
   1187      0    stevel signame(private_t *pri, int sig)
   1188      0    stevel {
   1189      0    stevel 	const char *name = rawsigname(pri, sig);
   1190      0    stevel 
   1191      0    stevel 	if (name == NULL) {			/* manufacture a name */
   1192      0    stevel 		(void) sprintf(pri->sig_name, "SIG#%d", sig);
   1193      0    stevel 		name = pri->sig_name;
   1194      0    stevel 	}
   1195      0    stevel 
   1196      0    stevel 	return (name);
   1197      0    stevel }
   1198      0    stevel 
   1199      0    stevel /*
   1200      0    stevel  * Determine the subcode for this syscall, if any.
   1201      0    stevel  */
   1202      0    stevel int
   1203      0    stevel getsubcode(private_t *pri)
   1204      0    stevel {
   1205      0    stevel 	const lwpstatus_t *Lsp = pri->lwpstat;
   1206      0    stevel 	int syscall = Lsp->pr_syscall;
   1207      0    stevel 	int nsysarg = Lsp->pr_nsysarg;
   1208      0    stevel 	int subcode = -1;
   1209      0    stevel 	int arg0;
   1210      0    stevel 
   1211      0    stevel 	if (syscall > 0 && nsysarg > 0) {
   1212      0    stevel 		arg0 = Lsp->pr_sysarg[0];
   1213      0    stevel 		switch (syscall) {
   1214      0    stevel 		case SYS_utssys:	/* utssys() */
   1215      0    stevel 			if (nsysarg > 2)
   1216      0    stevel 				subcode = Lsp->pr_sysarg[2];
   1217      0    stevel 			break;
   1218      0    stevel 		case SYS_open:		/* open() w/ and w/o O_CREAT */
   1219      0    stevel 		case SYS_open64:
   1220      0    stevel 			if (nsysarg > 1)
   1221      0    stevel 				subcode = (Lsp->pr_sysarg[1] & O_CREAT)? 1 : 0;
   1222      0    stevel 			break;
   1223      0    stevel 		case SYS_fsat:
   1224      0    stevel 			switch (arg0) {
   1225      0    stevel 			case 0:  /* openat */
   1226      0    stevel 				if (nsysarg > 3)
   1227      0    stevel 					subcode =
   1228      0    stevel 					    (Lsp->pr_sysarg[3] & O_CREAT) ?
   1229   3855  sn199410 					    0 : NFSATSYSCODE - 2;
   1230      0    stevel 				break;
   1231      0    stevel 			case 1: /* openat64 */
   1232      0    stevel 				if (nsysarg > 3)
   1233      0    stevel 					subcode =
   1234      0    stevel 					    (Lsp->pr_sysarg[3] & O_CREAT) ?
   1235   3855  sn199410 					    1 : NFSATSYSCODE - 1;
   1236      0    stevel 				break;
   1237      0    stevel 			case 2:
   1238      0    stevel 			case 3:
   1239      0    stevel 			case 4:
   1240      0    stevel 			case 5:
   1241      0    stevel 			case 6:
   1242      0    stevel 			case 7:
   1243   3855  sn199410 			case 8:
   1244   5331       amw 			case 9:
   1245      0    stevel 				subcode = arg0;
   1246      0    stevel 			}
   1247      0    stevel 			break;
   1248      0    stevel 		case SYS_kaio:		/* kaio() */
   1249      0    stevel 			subcode = arg0 & ~AIO_POLL_BIT;
   1250      0    stevel 			break;
   1251      0    stevel 		case SYS_door:		/* doors */
   1252      0    stevel 			if (nsysarg > 5)
   1253      0    stevel 				subcode = Lsp->pr_sysarg[5];
   1254      0    stevel 			break;
   1255      0    stevel 		case SYS_lwp_create:	/* lwp_create() */
   1256      0    stevel 			subcode =	/* 0 for parent, 1 for child */
   1257   2267        dp 			    (Lsp->pr_why == PR_SYSEXIT && Lsp->pr_errno == 0 &&
   1258   2267        dp 			    Lsp->pr_rval1 == 0);
   1259      0    stevel 			break;
   1260   3235       raf 		case SYS_forksys:	/* forksys */
   1261   3235       raf 			subcode = arg0;
   1262   3235       raf 			if (Lsp->pr_why == PR_SYSEXIT && Lsp->pr_errno == 0 &&
   1263   3235       raf 			    pri->Rval2 != 0)	/* this is the child */
   1264   3235       raf 				subcode += 3;
   1265   3235       raf 			break;
   1266      0    stevel 		case SYS_msgsys:	/* msgsys() */
   1267      0    stevel 		case SYS_semsys:	/* semsys() */
   1268      0    stevel 		case SYS_shmsys:	/* shmsys() */
   1269      0    stevel 		case SYS_pgrpsys:	/* pgrpsys() */
   1270      0    stevel 		case SYS_sysfs:		/* sysfs() */
   1271      0    stevel 		case SYS_sigpending:	/* sigpending()/sigfillset() */
   1272      0    stevel 		case SYS_context:	/* [get|set]context() */
   1273      0    stevel 		case SYS_hrtsys:	/* hrtsys() */
   1274      0    stevel 		case SYS_corectl:	/* corectl() */
   1275      0    stevel 		case SYS_pset:		/* pset() */
   1276      0    stevel 		case SYS_tasksys:	/* tasks */
   1277      0    stevel 		case SYS_privsys:	/* privileges */
   1278      0    stevel 		case SYS_exacctsys:	/* exacct */
   1279      0    stevel 		case SYS_lwp_park:	/* lwp_park */
   1280      0    stevel 		case SYS_lwp_rwlock_sys: /* lwp_rwlock_*() */
   1281      0    stevel 		case SYS_sendfilev:	/* sendfilev */
   1282      0    stevel 		case SYS_lgrpsys:	/* lgrpsys */
   1283      0    stevel 		case SYS_rusagesys:	/* rusagesys */
   1284      0    stevel 		case SYS_ucredsys:	/* ucredsys */
   1285      0    stevel 		case SYS_zone:		/* zone */
   1286   1676       jpk 		case SYS_labelsys:	/* labelsys */
   1287   2447  nf202958 		case SYS_rctlsys:	/* rctlsys */
   1288   4321    casper 		case SYS_sidsys:	/* sidsys */
   1289  10440     Roger 		case SYS_utimesys:	/* utimesys */
   1290      0    stevel 			subcode = arg0;
   1291      0    stevel 			break;
   1292      0    stevel 		case SYS_fcntl:		/* fcntl() */
   1293      0    stevel 			if (nsysarg > 2) {
   1294      0    stevel 				switch (Lsp->pr_sysarg[1]) {
   1295      0    stevel 				default:	subcode = 0; break;
   1296      0    stevel 				case F_GETFL:
   1297      0    stevel 				case F_GETOWN:
   1298      0    stevel 				case F_GETXFL:	subcode = 1; break;
   1299      0    stevel 				case F_SETFL:	subcode = 2; break;
   1300      0    stevel 				}
   1301      0    stevel 			}
   1302      0    stevel 			break;
   1303      0    stevel 		case SYS_port:		/* portfs */
   1304      0    stevel 			subcode = arg0 & PORT_CODE_MASK;
   1305      0    stevel 			break;
   1306      0    stevel 		}
   1307      0    stevel 	}
   1308      0    stevel 
   1309      0    stevel 	return (subcode);
   1310      0    stevel }
   1311      0    stevel 
   1312      0    stevel /*
   1313      0    stevel  * Return the maximum number of system calls, counting
   1314      0    stevel  * all system calls with subcodes as separate calls.
   1315      0    stevel  */
   1316      0    stevel int
   1317      0    stevel maxsyscalls()
   1318      0    stevel {
   1319      0    stevel 	return (PRMAXSYS + 1
   1320   2267        dp 	    + NOPENCODE - 1
   1321   2267        dp 	    + NOPEN64CODE - 1
   1322   2267        dp 	    + NMSGCODE - 1
   1323   2267        dp 	    + NSEMCODE - 1
   1324   2267        dp 	    + NSHMCODE - 1
   1325   2267        dp 	    + NPIDCODE - 1
   1326   2267        dp 	    + NSFSCODE - 1
   1327   2267        dp 	    + NUTSCODE - 1
   1328   2267        dp 	    + NSGPCODE - 1
   1329   2267        dp 	    + NCTXCODE - 1
   1330   2267        dp 	    + NHRTCODE - 1
   1331   2267        dp 	    + NCORCODE - 1
   1332   2267        dp 	    + NAIOCODE - 1
   1333   2267        dp 	    + NDOORCODE - 1
   1334   2267        dp 	    + NPSETCODE - 1
   1335   2267        dp 	    + NLWPCREATECODE - 1
   1336   2267        dp 	    + NTASKSYSCODE - 1
   1337   2267        dp 	    + NEXACCTSYSCODE - 1
   1338   2267        dp 	    + NFSATSYSCODE - 1
   1339   2267        dp 	    + NLWPPARKCODE - 1
   1340   2267        dp 	    + NLWPRWLOCKCODE - 1
   1341   2267        dp 	    + NSENDFILESYSCODE - 1
   1342   2267        dp 	    + NLGRPSYSCODE - 1
   1343   2267        dp 	    + NRUSAGESYSCODE - 1
   1344   2267        dp 	    + NFCNTLCODE - 1
   1345   2267        dp 	    + NPRIVSYSCODE - 1
   1346   2267        dp 	    + NUCREDSYSCODE - 1
   1347   2267        dp 	    + NPORTCODE - 1
   1348   2267        dp 	    + NZONECODE - 1
   1349   2447  nf202958 	    + NLABELCODE - 1
   1350   3235       raf 	    + NRCTLCODE - 1
   1351   4321    casper 	    + NFORKCODE - 1
   1352  10440     Roger 	    + NSIDSYSCODE - 1
   1353  10440     Roger 	    + NUTIMESYSCODE - 1);
   1354      0    stevel }
   1355      0    stevel 
   1356      0    stevel /*
   1357      0    stevel  * Return the number of subcodes for the specified system call number.
   1358      0    stevel  */
   1359      0    stevel int
   1360      0    stevel nsubcodes(int syscall)
   1361      0    stevel {
   1362      0    stevel 	switch (syscall) {
   1363      0    stevel 	case SYS_open:
   1364      0    stevel 		return (NOPENCODE);
   1365      0    stevel 	case SYS_open64:
   1366      0    stevel 		return (NOPEN64CODE);
   1367      0    stevel 	case SYS_msgsys:	/* msgsys() */
   1368      0    stevel 		return (NMSGCODE);
   1369      0    stevel 	case SYS_semsys:	/* semsys() */
   1370      0    stevel 		return (NSEMCODE);
   1371      0    stevel 	case SYS_shmsys:	/* shmsys() */
   1372      0    stevel 		return (NSHMCODE);
   1373      0    stevel 	case SYS_pgrpsys:	/* pgrpsys() */
   1374      0    stevel 		return (NPIDCODE);
   1375      0    stevel 	case SYS_utssys:	/* utssys() */
   1376      0    stevel 		return (NUTSCODE);
   1377      0    stevel 	case SYS_sysfs:		/* sysfs() */
   1378      0    stevel 		return (NSFSCODE);
   1379      0    stevel 	case SYS_sigpending:	/* sigpending()/sigfillset() */
   1380      0    stevel 		return (NSGPCODE);
   1381      0    stevel 	case SYS_context:	/* [get|set]context() */
   1382      0    stevel 		return (NCTXCODE);
   1383      0    stevel 	case SYS_hrtsys:	/* hrtsys() */
   1384      0    stevel 		return (NHRTCODE);
   1385      0    stevel 	case SYS_corectl:	/* corectl() */
   1386      0    stevel 		return (NCORCODE);
   1387      0    stevel 	case SYS_kaio:		/* kaio() */
   1388      0    stevel 		return (NAIOCODE);
   1389      0    stevel 	case SYS_door:		/* doors */
   1390      0    stevel 		return (NDOORCODE);
   1391      0    stevel 	case SYS_pset:		/* pset() */
   1392      0    stevel 		return (NPSETCODE);
   1393      0    stevel 	case SYS_lwp_create:	/* lwp_create() */
   1394      0    stevel 		return (NLWPCREATECODE);
   1395      0    stevel 	case SYS_tasksys:	/* tasks */
   1396      0    stevel 		return (NTASKSYSCODE);
   1397      0    stevel 	case SYS_exacctsys:	/* exacct */
   1398      0    stevel 		return (NEXACCTSYSCODE);
   1399      0    stevel 	case SYS_fsat:
   1400      0    stevel 		return (NFSATSYSCODE);
   1401      0    stevel 	case SYS_privsys:	/* privileges */
   1402      0    stevel 		return (NPRIVSYSCODE);
   1403      0    stevel 	case SYS_lwp_park:	/* lwp_park */
   1404      0    stevel 		return (NLWPPARKCODE);
   1405      0    stevel 	case SYS_lwp_rwlock_sys:
   1406      0    stevel 		return (NLWPRWLOCKCODE);
   1407      0    stevel 	case SYS_sendfilev:	/* sendfilev */
   1408      0    stevel 		return (NSENDFILESYSCODE);
   1409      0    stevel 	case SYS_lgrpsys:	/* lgrpsys */
   1410      0    stevel 		return (NLGRPSYSCODE);
   1411      0    stevel 	case SYS_rusagesys:
   1412      0    stevel 		return (NRUSAGESYSCODE);
   1413      0    stevel 	case SYS_fcntl:
   1414      0    stevel 		return (NFCNTLCODE);
   1415      0    stevel 	case SYS_ucredsys:
   1416      0    stevel 		return (NUCREDSYSCODE);
   1417      0    stevel 	case SYS_port:
   1418      0    stevel 		return (NPORTCODE);
   1419      0    stevel 	case SYS_zone:		/* zone */
   1420      0    stevel 		return (NZONECODE);
   1421   1676       jpk 	case SYS_labelsys:
   1422   1676       jpk 		return (NLABELCODE);
   1423   2447  nf202958 	case SYS_rctlsys:
   1424   2447  nf202958 		return (NRCTLCODE);
   1425   3235       raf 	case SYS_forksys:
   1426   3235       raf 		return (NFORKCODE);
   1427   4321    casper 	case SYS_sidsys:
   1428   4321    casper 		return (NSIDSYSCODE);
   1429  10440     Roger 	case SYS_utimesys:
   1430  10440     Roger 		return (NUTIMESYSCODE);
   1431      0    stevel 	default:
   1432      0    stevel 		return (1);
   1433      0    stevel 	}
   1434      0    stevel }
   1435      0    stevel 
   1436      0    stevel 
   1437      0    stevel 
   1438      0    stevel /* Socket address families (and protocol families) */
   1439      0    stevel const char * const afcodes[] = {
   1440      0    stevel 	"UNSPEC",	/* 0 */
   1441      0    stevel 	"UNIX",		/* 1 */
   1442      0    stevel 	"INET",		/* 2 */
   1443      0    stevel 	"IMPLINK",	/* 3 */
   1444      0    stevel 	"PUP",		/* 4 */
   1445      0    stevel 	"CHAOS",	/* 5 */
   1446      0    stevel 	"NS",		/* 6 */
   1447      0    stevel 	"NBS",		/* 7 */
   1448      0    stevel 	"ECMA",		/* 8 */
   1449      0    stevel 	"DATAKIT",	/* 9 */
   1450      0    stevel 	"CCITT",	/* 10 */
   1451      0    stevel 	"SNA",		/* 11 */
   1452      0    stevel 	"DECnet",	/* 12 */
   1453      0    stevel 	"DLI",		/* 13 */
   1454      0    stevel 	"LAT",		/* 14 */
   1455      0    stevel 	"HYLINK",	/* 15 */
   1456      0    stevel 	"APPLETALK",	/* 16 */
   1457      0    stevel 	"NIT",		/* 17 */
   1458      0    stevel 	"802",		/* 18 */
   1459      0    stevel 	"OSI",		/* 19 */
   1460      0    stevel 	"X25",		/* 20 */
   1461      0    stevel 	"OSINET",	/* 21 */
   1462      0    stevel 	"GOSIP",	/* 22 */
   1463      0    stevel 	"IPX",		/* 23 */
   1464      0    stevel 	"ROUTE",	/* 24 */
   1465      0    stevel 	"LINK",		/* 25 */
   1466      0    stevel 	"INET6",	/* 26 */
   1467      0    stevel 	"KEY",		/* 27 */
   1468      0    stevel 	"NCA",		/* 28 */
   1469   3302     agiri 	"POLICY",	/* 29 */
   1470  10491     Rishi 	"RDS",		/* 30 */
   1471  10639    Darren 	"TRILL",	/* 31 */
   1472  10639    Darren 	"PACKET"	/* 32 */
   1473      0    stevel };
   1474  10639    Darren #if MAX_AFCODES != 33
   1475      0    stevel #error Need to update address-family table
   1476      0    stevel #endif
   1477      0    stevel 
   1478      0    stevel 
   1479      0    stevel const char * const socktype_codes[] = {		/* cf socket.h */
   1480      0    stevel 	NULL,
   1481      0    stevel 	"SOCK_DGRAM",		/* 1 */
   1482      0    stevel 	"SOCK_STREAM",		/* 2 */
   1483      0    stevel 	NULL,
   1484      0    stevel 	"SOCK_RAW",		/* 4 */
   1485      0    stevel 	"SOCK_RDM",		/* 5 */
   1486      0    stevel 	"SOCK_SEQPACKET"	/* 6 */
   1487      0    stevel };
   1488      0    stevel #if MAX_SOCKTYPES != 7
   1489      0    stevel #error Need to update socket-type table
   1490      0    stevel #endif
   1491