16635Sab196087 /*
26635Sab196087 * CDDL HEADER START
36635Sab196087 *
46635Sab196087 * The contents of this file are subject to the terms of the
56635Sab196087 * Common Development and Distribution License (the "License").
66635Sab196087 * You may not use this file except in compliance with the License.
76635Sab196087 *
86635Sab196087 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
96635Sab196087 * or http://www.opensolaris.org/os/licensing.
106635Sab196087 * See the License for the specific language governing permissions
116635Sab196087 * and limitations under the License.
126635Sab196087 *
136635Sab196087 * When distributing Covered Code, include this CDDL HEADER in each
146635Sab196087 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
156635Sab196087 * If applicable, add the following below this CDDL HEADER, with the
166635Sab196087 * fields enclosed by brackets "[]" replaced with your own identifying
176635Sab196087 * information: Portions Copyright [yyyy] [name of copyright owner]
186635Sab196087 *
196635Sab196087 * CDDL HEADER END
206635Sab196087 */
216635Sab196087
226635Sab196087 /*
23*11798SRoger.Faulkner@Sun.COM * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
246635Sab196087 * Use is subject to license terms.
256635Sab196087 */
266635Sab196087
276635Sab196087 /*
286635Sab196087 * String conversion routines the system structs found in
296635Sab196087 * Solaris core file note sections. These items are not
306635Sab196087 * ELF constructs. However, elfdump contains code for decoding
316635Sab196087 * them, and therefore requires formatting support.
326635Sab196087 */
336635Sab196087 #include <stdio.h>
346635Sab196087 #include <procfs.h>
356635Sab196087 #include <sys/corectl.h>
366635Sab196087 #include <string.h>
376635Sab196087 #include <_conv.h>
386635Sab196087 #include <corenote_msg.h>
396635Sab196087
406635Sab196087 const char *
conv_cnote_type(Word type,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)416635Sab196087 conv_cnote_type(Word type, Conv_fmt_flags_t fmt_flags,
426635Sab196087 Conv_inv_buf_t *inv_buf)
436635Sab196087 {
446635Sab196087 static const Msg types[] = {
456635Sab196087 MSG_NT_PRSTATUS, MSG_NT_PRFPREG,
466635Sab196087 MSG_NT_PRPSINFO, MSG_NT_PRXREG,
476635Sab196087 MSG_NT_PLATFORM, MSG_NT_AUXV,
486635Sab196087 MSG_NT_GWINDOWS, MSG_NT_ASRS,
496635Sab196087 MSG_NT_LDT, MSG_NT_PSTATUS,
509273SAli.Bahrami@Sun.COM 0, 0,
516635Sab196087 MSG_NT_PSINFO, MSG_NT_PRCRED,
526635Sab196087 MSG_NT_UTSNAME, MSG_NT_LWPSTATUS,
536635Sab196087 MSG_NT_LWPSINFO, MSG_NT_PRPRIV,
546635Sab196087 MSG_NT_PRPRIVINFO, MSG_NT_CONTENT,
556635Sab196087 MSG_NT_ZONENAME
566635Sab196087 };
576635Sab196087 #if NT_NUM != NT_ZONENAME
586635Sab196087 #error "NT_NUM has grown. Update core note types[]"
596635Sab196087 #endif
609273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_types = {
619273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(NT_PRSTATUS, types) };
629273SAli.Bahrami@Sun.COM static const conv_ds_t *ds[] = { CONV_DS_ADDR(ds_types), NULL };
636635Sab196087
646635Sab196087
659273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, type, ds, fmt_flags,
669273SAli.Bahrami@Sun.COM inv_buf));
676635Sab196087 }
686635Sab196087
696635Sab196087
706635Sab196087 const char *
conv_cnote_auxv_type(Word type,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)716635Sab196087 conv_cnote_auxv_type(Word type, Conv_fmt_flags_t fmt_flags,
726635Sab196087 Conv_inv_buf_t *inv_buf)
736635Sab196087 {
746635Sab196087 static const Msg types_0_22[] = {
756635Sab196087 MSG_AUXV_AT_NULL, MSG_AUXV_AT_IGNORE,
766635Sab196087 MSG_AUXV_AT_EXECFD, MSG_AUXV_AT_PHDR,
776635Sab196087 MSG_AUXV_AT_PHENT, MSG_AUXV_AT_PHNUM,
786635Sab196087 MSG_AUXV_AT_PAGESZ, MSG_AUXV_AT_BASE,
796635Sab196087 MSG_AUXV_AT_FLAGS, MSG_AUXV_AT_ENTRY,
806635Sab196087 MSG_AUXV_AT_NOTELF, MSG_AUXV_AT_UID,
816635Sab196087 MSG_AUXV_AT_EUID, MSG_AUXV_AT_GID,
826635Sab196087 MSG_AUXV_AT_EGID, MSG_AUXV_AT_PLATFORM,
836635Sab196087 MSG_AUXV_AT_HWCAP, MSG_AUXV_AT_CLKTCK,
846635Sab196087 MSG_AUXV_AT_FPUCW, MSG_AUXV_AT_DCACHEBSIZE,
856635Sab196087 MSG_AUXV_AT_ICACHEBSIZE, MSG_AUXV_AT_UCACHEBSIZE,
866635Sab196087 MSG_AUXV_AT_IGNOREPPC
876635Sab196087 };
889273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_types_0_22 = {
899273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(0, types_0_22) };
909273SAli.Bahrami@Sun.COM
916635Sab196087 static const Msg types_2000_2011[] = {
926635Sab196087 MSG_AUXV_AT_SUN_UID, MSG_AUXV_AT_SUN_RUID,
936635Sab196087 MSG_AUXV_AT_SUN_GID, MSG_AUXV_AT_SUN_RGID,
946635Sab196087 MSG_AUXV_AT_SUN_LDELF, MSG_AUXV_AT_SUN_LDSHDR,
956635Sab196087 MSG_AUXV_AT_SUN_LDNAME, MSG_AUXV_AT_SUN_LPAGESZ,
966635Sab196087 MSG_AUXV_AT_SUN_PLATFORM, MSG_AUXV_AT_SUN_HWCAP,
976635Sab196087 MSG_AUXV_AT_SUN_IFLUSH, MSG_AUXV_AT_SUN_CPU
986635Sab196087 };
999273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_types_2000_2011 = {
1009273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(2000, types_2000_2011) };
1019273SAli.Bahrami@Sun.COM
1026635Sab196087 static const Msg types_2014_2022[] = {
1036635Sab196087 MSG_AUXV_AT_SUN_EXECNAME, MSG_AUXV_AT_SUN_MMU,
1046635Sab196087 MSG_AUXV_AT_SUN_LDDATA, MSG_AUXV_AT_SUN_AUXFLAGS,
1056635Sab196087 MSG_AUXV_AT_SUN_EMULATOR, MSG_AUXV_AT_SUN_BRANDNAME,
1066635Sab196087 MSG_AUXV_AT_SUN_BRAND_AUX1, MSG_AUXV_AT_SUN_BRAND_AUX2,
1076635Sab196087 MSG_AUXV_AT_SUN_BRAND_AUX3
1086635Sab196087 };
1099273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_types_2014_2022 = {
1109273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(2014, types_2014_2022) };
1116635Sab196087
1129273SAli.Bahrami@Sun.COM static const conv_ds_t *ds[] = {
1139273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_types_0_22), CONV_DS_ADDR(ds_types_2000_2011),
1149273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_types_2014_2022), NULL };
1156635Sab196087
1169273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, type, ds, fmt_flags,
1179273SAli.Bahrami@Sun.COM inv_buf));
1186635Sab196087 }
1196635Sab196087
1206635Sab196087
1216635Sab196087 const char *
conv_cnote_signal(Word sig,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)1226635Sab196087 conv_cnote_signal(Word sig, Conv_fmt_flags_t fmt_flags,
1236635Sab196087 Conv_inv_buf_t *inv_buf)
1246635Sab196087 {
1256635Sab196087 static const Msg sigarr[] = {
1266635Sab196087 MSG_SIGHUP, MSG_SIGINT,
1276635Sab196087 MSG_SIGQUIT, MSG_SIGILL,
1286635Sab196087 MSG_SIGTRAP, MSG_SIGABRT,
1296635Sab196087 MSG_SIGEMT, MSG_SIGFPE,
1306635Sab196087 MSG_SIGKILL, MSG_SIGBUS,
1316635Sab196087 MSG_SIGSEGV, MSG_SIGSYS,
1326635Sab196087 MSG_SIGPIPE, MSG_SIGALRM,
1336635Sab196087 MSG_SIGTERM, MSG_SIGUSR1,
1346635Sab196087 MSG_SIGUSR2, MSG_SIGCHLD,
1356635Sab196087 MSG_SIGPWR, MSG_SIGWINCH,
1366635Sab196087 MSG_SIGURG, MSG_SIGPOLL,
1376635Sab196087 MSG_SIGSTOP, MSG_SIGTSTP,
1386635Sab196087 MSG_SIGCONT, MSG_SIGTTIN,
1396635Sab196087 MSG_SIGTTOU, MSG_SIGVTALRM,
1406635Sab196087 MSG_SIGPROF, MSG_SIGXCPU,
1416635Sab196087 MSG_SIGXFSZ, MSG_SIGWAITING,
1426635Sab196087 MSG_SIGLWP, MSG_SIGFREEZE,
1436635Sab196087 MSG_SIGTHAW, MSG_SIGCANCEL,
1446635Sab196087 MSG_SIGLOST, MSG_SIGXRES,
1456635Sab196087 MSG_SIGJVM1, MSG_SIGJVM2,
1466635Sab196087 };
1479273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_sigarr = {
1489273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(SIGHUP, sigarr) };
1496635Sab196087
1509273SAli.Bahrami@Sun.COM static const conv_ds_t *ds[] = { CONV_DS_ADDR(ds_sigarr), NULL };
1516635Sab196087
1529273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, sig, ds, fmt_flags,
1539273SAli.Bahrami@Sun.COM inv_buf));
1546635Sab196087 }
1556635Sab196087
1566635Sab196087
1576635Sab196087 const char *
conv_cnote_fault(Word flt,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)1586635Sab196087 conv_cnote_fault(Word flt, Conv_fmt_flags_t fmt_flags,
1596635Sab196087 Conv_inv_buf_t *inv_buf)
1606635Sab196087 {
1616635Sab196087 static const Msg fltarr[] = {
1626635Sab196087 MSG_FLTILL, MSG_FLTPRIV,
1636635Sab196087 MSG_FLTBPT, MSG_FLTTRACE,
1646635Sab196087 MSG_FLTACCESS, MSG_FLTBOUNDS,
1656635Sab196087 MSG_FLTIOVF, MSG_FLTIZDIV,
1666635Sab196087 MSG_FLTFPE, MSG_FLTSTACK,
1676635Sab196087 MSG_FLTPAGE, MSG_FLTWATCH,
1686635Sab196087 MSG_FLTCPCOVF
1696635Sab196087
1706635Sab196087 };
1719273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_fltarr = {
1729273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(FLTILL, fltarr) };
1736635Sab196087
1749273SAli.Bahrami@Sun.COM static const conv_ds_t *ds[] = { CONV_DS_ADDR(ds_fltarr), NULL };
1756635Sab196087
1769273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, flt, ds, fmt_flags,
1779273SAli.Bahrami@Sun.COM inv_buf));
1786635Sab196087 }
1796635Sab196087
1806635Sab196087
1816635Sab196087 const char *
conv_cnote_syscall(Word sysnum,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)1826635Sab196087 conv_cnote_syscall(Word sysnum, Conv_fmt_flags_t fmt_flags,
1836635Sab196087 Conv_inv_buf_t *inv_buf)
1846635Sab196087 {
1856635Sab196087 static const Msg sysnumarr[] = {
186*11798SRoger.Faulkner@Sun.COM MSG_SYS_EXIT, MSG_SYS_2,
1876635Sab196087 MSG_SYS_READ, MSG_SYS_WRITE,
1886635Sab196087 MSG_SYS_OPEN, MSG_SYS_CLOSE,
189*11798SRoger.Faulkner@Sun.COM MSG_SYS_7, MSG_SYS_8,
1906635Sab196087 MSG_SYS_LINK, MSG_SYS_UNLINK,
191*11798SRoger.Faulkner@Sun.COM MSG_SYS_11, MSG_SYS_CHDIR,
1926635Sab196087 MSG_SYS_TIME, MSG_SYS_MKNOD,
1936635Sab196087 MSG_SYS_CHMOD, MSG_SYS_CHOWN,
1946635Sab196087 MSG_SYS_BRK, MSG_SYS_STAT,
1956635Sab196087 MSG_SYS_LSEEK, MSG_SYS_GETPID,
196*11798SRoger.Faulkner@Sun.COM MSG_SYS_MOUNT, MSG_SYS_22,
1976635Sab196087 MSG_SYS_SETUID, MSG_SYS_GETUID,
1986635Sab196087 MSG_SYS_STIME, MSG_SYS_PCSAMPLE,
1996635Sab196087 MSG_SYS_ALARM, MSG_SYS_FSTAT,
200*11798SRoger.Faulkner@Sun.COM MSG_SYS_PAUSE, MSG_SYS_30,
2016635Sab196087 MSG_SYS_STTY, MSG_SYS_GTTY,
2026635Sab196087 MSG_SYS_ACCESS, MSG_SYS_NICE,
2036635Sab196087 MSG_SYS_STATFS, MSG_SYS_SYNC,
2046635Sab196087 MSG_SYS_KILL, MSG_SYS_FSTATFS,
2056635Sab196087 MSG_SYS_PGRPSYS, MSG_SYS_UUCOPYSTR,
206*11798SRoger.Faulkner@Sun.COM MSG_SYS_41, MSG_SYS_PIPE,
2076635Sab196087 MSG_SYS_TIMES, MSG_SYS_PROFIL,
208*11798SRoger.Faulkner@Sun.COM MSG_SYS_FACCESSAT, MSG_SYS_SETGID,
209*11798SRoger.Faulkner@Sun.COM MSG_SYS_GETGID, MSG_SYS_48,
2106635Sab196087 MSG_SYS_MSGSYS, MSG_SYS_SYSI86,
2116635Sab196087 MSG_SYS_ACCT, MSG_SYS_SHMSYS,
2126635Sab196087 MSG_SYS_SEMSYS, MSG_SYS_IOCTL,
213*11798SRoger.Faulkner@Sun.COM MSG_SYS_UADMIN, MSG_SYS_FCHOWNAT,
2146635Sab196087 MSG_SYS_UTSSYS, MSG_SYS_FDSYNC,
2156635Sab196087 MSG_SYS_EXECVE, MSG_SYS_UMASK,
2166635Sab196087 MSG_SYS_CHROOT, MSG_SYS_FCNTL,
217*11798SRoger.Faulkner@Sun.COM MSG_SYS_ULIMIT, MSG_SYS_RENAMEAT,
218*11798SRoger.Faulkner@Sun.COM MSG_SYS_UNLINKAT, MSG_SYS_FSTATAT,
219*11798SRoger.Faulkner@Sun.COM MSG_SYS_FSTATAT64, MSG_SYS_OPENAT,
220*11798SRoger.Faulkner@Sun.COM MSG_SYS_OPENAT64, MSG_SYS_TASKSYS,
2216635Sab196087 MSG_SYS_ACCTCTL, MSG_SYS_EXACCTSYS,
2226635Sab196087 MSG_SYS_GETPAGESIZES, MSG_SYS_RCTLSYS,
223*11798SRoger.Faulkner@Sun.COM MSG_SYS_SIDSYS, MSG_SYS_76,
2246635Sab196087 MSG_SYS_LWP_PARK, MSG_SYS_SENDFILEV,
2256635Sab196087 MSG_SYS_RMDIR, MSG_SYS_MKDIR,
2266635Sab196087 MSG_SYS_GETDENTS, MSG_SYS_PRIVSYS,
2276635Sab196087 MSG_SYS_UCREDSYS, MSG_SYS_SYSFS,
2286635Sab196087 MSG_SYS_GETMSG, MSG_SYS_PUTMSG,
229*11798SRoger.Faulkner@Sun.COM MSG_SYS_87, MSG_SYS_LSTAT,
2306635Sab196087 MSG_SYS_SYMLINK, MSG_SYS_READLINK,
2316635Sab196087 MSG_SYS_SETGROUPS, MSG_SYS_GETGROUPS,
2326635Sab196087 MSG_SYS_FCHMOD, MSG_SYS_FCHOWN,
2336635Sab196087 MSG_SYS_SIGPROCMASK, MSG_SYS_SIGSUSPEND,
2346635Sab196087 MSG_SYS_SIGALTSTACK, MSG_SYS_SIGACTION,
2356635Sab196087 MSG_SYS_SIGPENDING, MSG_SYS_CONTEXT,
236*11798SRoger.Faulkner@Sun.COM MSG_SYS_101, MSG_SYS_102,
2376635Sab196087 MSG_SYS_STATVFS, MSG_SYS_FSTATVFS,
2386635Sab196087 MSG_SYS_GETLOADAVG, MSG_SYS_NFSSYS,
2396635Sab196087 MSG_SYS_WAITID, MSG_SYS_SIGSENDSYS,
240*11798SRoger.Faulkner@Sun.COM MSG_SYS_HRTSYS, MSG_SYS_UTIMESYS,
2416635Sab196087 MSG_SYS_SIGRESEND, MSG_SYS_PRIOCNTLSYS,
2426635Sab196087 MSG_SYS_PATHCONF, MSG_SYS_MINCORE,
2436635Sab196087 MSG_SYS_MMAP, MSG_SYS_MPROTECT,
2446635Sab196087 MSG_SYS_MUNMAP, MSG_SYS_FPATHCONF,
2456635Sab196087 MSG_SYS_VFORK, MSG_SYS_FCHDIR,
2466635Sab196087 MSG_SYS_READV, MSG_SYS_WRITEV,
247*11798SRoger.Faulkner@Sun.COM MSG_SYS_123, MSG_SYS_124,
248*11798SRoger.Faulkner@Sun.COM MSG_SYS_125, MSG_SYS_126,
249*11798SRoger.Faulkner@Sun.COM MSG_SYS_MMAPOBJ, MSG_SYS_SETRLIMIT,
2506635Sab196087 MSG_SYS_GETRLIMIT, MSG_SYS_LCHOWN,
2516635Sab196087 MSG_SYS_MEMCNTL, MSG_SYS_GETPMSG,
2526635Sab196087 MSG_SYS_PUTPMSG, MSG_SYS_RENAME,
2536635Sab196087 MSG_SYS_UNAME, MSG_SYS_SETEGID,
2546635Sab196087 MSG_SYS_SYSCONFIG, MSG_SYS_ADJTIME,
2556635Sab196087 MSG_SYS_SYSTEMINFO, MSG_SYS_SHAREFS,
2566635Sab196087 MSG_SYS_SETEUID, MSG_SYS_FORKSYS,
257*11798SRoger.Faulkner@Sun.COM MSG_SYS_143, MSG_SYS_SIGTIMEDWAIT,
2586635Sab196087 MSG_SYS_LWP_INFO, MSG_SYS_YIELD,
259*11798SRoger.Faulkner@Sun.COM MSG_SYS_147, MSG_SYS_LWP_SEMA_POST,
2606635Sab196087 MSG_SYS_LWP_SEMA_TRYWAIT, MSG_SYS_LWP_DETACH,
2616635Sab196087 MSG_SYS_CORECTL, MSG_SYS_MODCTL,
262*11798SRoger.Faulkner@Sun.COM MSG_SYS_FCHROOT, MSG_SYS_154,
2636635Sab196087 MSG_SYS_VHANGUP, MSG_SYS_GETTIMEOFDAY,
2646635Sab196087 MSG_SYS_GETITIMER, MSG_SYS_SETITIMER,
2656635Sab196087 MSG_SYS_LWP_CREATE, MSG_SYS_LWP_EXIT,
2666635Sab196087 MSG_SYS_LWP_SUSPEND, MSG_SYS_LWP_CONTINUE,
2676635Sab196087 MSG_SYS_LWP_KILL, MSG_SYS_LWP_SELF,
2686635Sab196087 MSG_SYS_LWP_SIGMASK, MSG_SYS_LWP_PRIVATE,
2696635Sab196087 MSG_SYS_LWP_WAIT, MSG_SYS_LWP_MUTEX_WAKEUP,
270*11798SRoger.Faulkner@Sun.COM MSG_SYS_169, MSG_SYS_LWP_COND_WAIT,
2716635Sab196087 MSG_SYS_LWP_COND_SIGNAL, MSG_SYS_LWP_COND_BROADCAST,
2726635Sab196087 MSG_SYS_PREAD, MSG_SYS_PWRITE,
2736635Sab196087 MSG_SYS_LLSEEK, MSG_SYS_INST_SYNC,
2746635Sab196087 MSG_SYS_BRAND, MSG_SYS_KAIO,
2756635Sab196087 MSG_SYS_CPC, MSG_SYS_LGRPSYS,
2766635Sab196087 MSG_SYS_RUSAGESYS, MSG_SYS_PORT,
2776635Sab196087 MSG_SYS_POLLSYS, MSG_SYS_LABELSYS,
2786635Sab196087 MSG_SYS_ACL, MSG_SYS_AUDITSYS,
2796635Sab196087 MSG_SYS_PROCESSOR_BIND, MSG_SYS_PROCESSOR_INFO,
2806635Sab196087 MSG_SYS_P_ONLINE, MSG_SYS_SIGQUEUE,
2816635Sab196087 MSG_SYS_CLOCK_GETTIME, MSG_SYS_CLOCK_SETTIME,
2826635Sab196087 MSG_SYS_CLOCK_GETRES, MSG_SYS_TIMER_CREATE,
2836635Sab196087 MSG_SYS_TIMER_DELETE, MSG_SYS_TIMER_SETTIME,
2846635Sab196087 MSG_SYS_TIMER_GETTIME, MSG_SYS_TIMER_GETOVERRUN,
2856635Sab196087 MSG_SYS_NANOSLEEP, MSG_SYS_FACL,
2866635Sab196087 MSG_SYS_DOOR, MSG_SYS_SETREUID,
2876635Sab196087 MSG_SYS_SETREGID, MSG_SYS_INSTALL_UTRAP,
2886635Sab196087 MSG_SYS_SIGNOTIFY, MSG_SYS_SCHEDCTL,
2896635Sab196087 MSG_SYS_PSET, MSG_SYS_SPARC_UTRAP_INSTALL,
2906635Sab196087 MSG_SYS_RESOLVEPATH, MSG_SYS_LWP_MUTEX_TIMEDLOCK,
2916635Sab196087 MSG_SYS_LWP_SEMA_TIMEDWAIT, MSG_SYS_LWP_RWLOCK_SYS,
2926635Sab196087 MSG_SYS_GETDENTS64, MSG_SYS_MMAP64,
2936635Sab196087 MSG_SYS_STAT64, MSG_SYS_LSTAT64,
2946635Sab196087 MSG_SYS_FSTAT64, MSG_SYS_STATVFS64,
2956635Sab196087 MSG_SYS_FSTATVFS64, MSG_SYS_SETRLIMIT64,
2966635Sab196087 MSG_SYS_GETRLIMIT64, MSG_SYS_PREAD64,
297*11798SRoger.Faulkner@Sun.COM MSG_SYS_PWRITE64, MSG_SYS_224,
2986635Sab196087 MSG_SYS_OPEN64, MSG_SYS_RPCSYS,
2996635Sab196087 MSG_SYS_ZONE, MSG_SYS_AUTOFSSYS,
3006635Sab196087 MSG_SYS_GETCWD, MSG_SYS_SO_SOCKET,
3016635Sab196087 MSG_SYS_SO_SOCKETPAIR, MSG_SYS_BIND,
3026635Sab196087 MSG_SYS_LISTEN, MSG_SYS_ACCEPT,
3036635Sab196087 MSG_SYS_CONNECT, MSG_SYS_SHUTDOWN,
3046635Sab196087 MSG_SYS_RECV, MSG_SYS_RECVFROM,
3056635Sab196087 MSG_SYS_RECVMSG, MSG_SYS_SEND,
3066635Sab196087 MSG_SYS_SENDMSG, MSG_SYS_SENDTO,
3076635Sab196087 MSG_SYS_GETPEERNAME, MSG_SYS_GETSOCKNAME,
3086635Sab196087 MSG_SYS_GETSOCKOPT, MSG_SYS_SETSOCKOPT,
3096635Sab196087 MSG_SYS_SOCKCONFIG, MSG_SYS_NTP_GETTIME,
3106635Sab196087 MSG_SYS_NTP_ADJTIME, MSG_SYS_LWP_MUTEX_UNLOCK,
3116635Sab196087 MSG_SYS_LWP_MUTEX_TRYLOCK, MSG_SYS_LWP_MUTEX_REGISTER,
3126635Sab196087 MSG_SYS_CLADM, MSG_SYS_UUCOPY,
3136635Sab196087 MSG_SYS_UMOUNT2
3146635Sab196087 };
3159273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_sysnumarr = {
3169273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, sysnumarr) };
3179273SAli.Bahrami@Sun.COM
3189273SAli.Bahrami@Sun.COM static const conv_ds_t *ds[] = { CONV_DS_ADDR(ds_sysnumarr), NULL };
3196635Sab196087
3206635Sab196087 int use_num = 0;
3216635Sab196087
3226635Sab196087 /*
3236635Sab196087 * Range check, and handle the unused values in the middle
3246635Sab196087 * of the range. Although the missing values have strings,
3256635Sab196087 * we still prefer to format them, because those strings are
3266635Sab196087 * decimal, and the default behavior, unless the CONV_FMT_DECIMAL
3276635Sab196087 * flag is set, is to display such things in hex.
3286635Sab196087 */
3296635Sab196087 switch (sysnum) {
3306635Sab196087 case 0:
331*11798SRoger.Faulkner@Sun.COM case 2:
332*11798SRoger.Faulkner@Sun.COM case 7:
333*11798SRoger.Faulkner@Sun.COM case 8:
334*11798SRoger.Faulkner@Sun.COM case 11:
335*11798SRoger.Faulkner@Sun.COM case 22:
336*11798SRoger.Faulkner@Sun.COM case 30:
337*11798SRoger.Faulkner@Sun.COM case 41:
338*11798SRoger.Faulkner@Sun.COM case 48:
339*11798SRoger.Faulkner@Sun.COM case 76:
340*11798SRoger.Faulkner@Sun.COM case 87:
341*11798SRoger.Faulkner@Sun.COM case 101:
342*11798SRoger.Faulkner@Sun.COM case 102:
343*11798SRoger.Faulkner@Sun.COM case 123:
344*11798SRoger.Faulkner@Sun.COM case 124:
345*11798SRoger.Faulkner@Sun.COM case 125:
346*11798SRoger.Faulkner@Sun.COM case 126:
347*11798SRoger.Faulkner@Sun.COM case 143:
348*11798SRoger.Faulkner@Sun.COM case 147:
349*11798SRoger.Faulkner@Sun.COM case 154:
350*11798SRoger.Faulkner@Sun.COM case 169:
351*11798SRoger.Faulkner@Sun.COM case 224:
3526635Sab196087 use_num = 1;
3536635Sab196087 break;
3546635Sab196087 default:
3556635Sab196087 use_num = (sysnum > SYS_umount2);
3566635Sab196087 break;
3576635Sab196087 }
3586635Sab196087 if (use_num)
3596635Sab196087 return (conv_invalid_val(inv_buf, sysnum, fmt_flags));
3606635Sab196087
3619273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, sysnum, ds, fmt_flags,
3629273SAli.Bahrami@Sun.COM inv_buf));
3636635Sab196087 }
3646635Sab196087
3656635Sab196087
3666635Sab196087 const char *
conv_cnote_errno(int errno_val,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)3676635Sab196087 conv_cnote_errno(int errno_val, Conv_fmt_flags_t fmt_flags,
3686635Sab196087 Conv_inv_buf_t *inv_buf)
3696635Sab196087 {
3706635Sab196087 static const Msg errarr_1_74[74] = {
3716635Sab196087 MSG_ERRNO_EPERM, MSG_ERRNO_ENOENT,
3726635Sab196087 MSG_ERRNO_ESRCH, MSG_ERRNO_EINTR,
3736635Sab196087 MSG_ERRNO_EIO, MSG_ERRNO_ENXIO,
3746635Sab196087 MSG_ERRNO_E2BIG, MSG_ERRNO_ENOEXEC,
3756635Sab196087 MSG_ERRNO_EBADF, MSG_ERRNO_ECHILD,
3766635Sab196087 MSG_ERRNO_EAGAIN, MSG_ERRNO_ENOMEM,
3776635Sab196087 MSG_ERRNO_EACCES, MSG_ERRNO_EFAULT,
3786635Sab196087 MSG_ERRNO_ENOTBLK, MSG_ERRNO_EBUSY,
3796635Sab196087 MSG_ERRNO_EEXIST, MSG_ERRNO_EXDEV,
3806635Sab196087 MSG_ERRNO_ENODEV, MSG_ERRNO_ENOTDIR,
3816635Sab196087 MSG_ERRNO_EISDIR, MSG_ERRNO_EINVAL,
3826635Sab196087 MSG_ERRNO_ENFILE, MSG_ERRNO_EMFILE,
3836635Sab196087 MSG_ERRNO_ENOTTY, MSG_ERRNO_ETXTBSY,
3846635Sab196087 MSG_ERRNO_EFBIG, MSG_ERRNO_ENOSPC,
3856635Sab196087 MSG_ERRNO_ESPIPE, MSG_ERRNO_EROFS,
3866635Sab196087 MSG_ERRNO_EMLINK, MSG_ERRNO_EPIPE,
3876635Sab196087 MSG_ERRNO_EDOM, MSG_ERRNO_ERANGE,
3886635Sab196087 MSG_ERRNO_ENOMSG, MSG_ERRNO_EIDRM,
3896635Sab196087 MSG_ERRNO_ECHRNG, MSG_ERRNO_EL2NSYNC,
3906635Sab196087 MSG_ERRNO_EL3HLT, MSG_ERRNO_EL3RST,
3916635Sab196087 MSG_ERRNO_ELNRNG, MSG_ERRNO_EUNATCH,
3926635Sab196087 MSG_ERRNO_ENOCSI, MSG_ERRNO_EL2HLT,
3936635Sab196087 MSG_ERRNO_EDEADLK, MSG_ERRNO_ENOLCK,
3946635Sab196087 MSG_ERRNO_ECANCELED, MSG_ERRNO_ENOTSUP,
3956635Sab196087 MSG_ERRNO_EDQUOT, MSG_ERRNO_EBADE,
3966635Sab196087 MSG_ERRNO_EBADR, MSG_ERRNO_EXFULL,
3976635Sab196087 MSG_ERRNO_ENOANO, MSG_ERRNO_EBADRQC,
3986635Sab196087 MSG_ERRNO_EBADSLT, MSG_ERRNO_EDEADLOCK,
3996635Sab196087 MSG_ERRNO_EBFONT, MSG_ERRNO_EOWNERDEAD,
4006635Sab196087 MSG_ERRNO_ENOTRECOVERABLE, MSG_ERRNO_ENOSTR,
4016635Sab196087 MSG_ERRNO_ENODATA, MSG_ERRNO_ETIME,
4026635Sab196087 MSG_ERRNO_ENOSR, MSG_ERRNO_ENONET,
4036635Sab196087 MSG_ERRNO_ENOPKG, MSG_ERRNO_EREMOTE,
4046635Sab196087 MSG_ERRNO_ENOLINK, MSG_ERRNO_EADV,
4056635Sab196087 MSG_ERRNO_ESRMNT, MSG_ERRNO_ECOMM,
4066635Sab196087 MSG_ERRNO_EPROTO, MSG_ERRNO_ELOCKUNMAPPED,
4076635Sab196087 MSG_ERRNO_ENOTACTIVE, MSG_ERRNO_EMULTIHOP
4086635Sab196087 };
4099273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_errarr_1_74 = {
4109273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, errarr_1_74) };
4119273SAli.Bahrami@Sun.COM
4126635Sab196087 static const Msg errarr_77_99[23] = {
4136635Sab196087 MSG_ERRNO_EBADMSG, MSG_ERRNO_ENAMETOOLONG,
4146635Sab196087 MSG_ERRNO_EOVERFLOW, MSG_ERRNO_ENOTUNIQ,
4156635Sab196087 MSG_ERRNO_EBADFD, MSG_ERRNO_EREMCHG,
4166635Sab196087 MSG_ERRNO_ELIBACC, MSG_ERRNO_ELIBBAD,
4176635Sab196087 MSG_ERRNO_ELIBSCN, MSG_ERRNO_ELIBMAX,
4186635Sab196087 MSG_ERRNO_ELIBEXEC, MSG_ERRNO_EILSEQ,
4196635Sab196087 MSG_ERRNO_ENOSYS, MSG_ERRNO_ELOOP,
4206635Sab196087 MSG_ERRNO_ERESTART, MSG_ERRNO_ESTRPIPE,
4216635Sab196087 MSG_ERRNO_ENOTEMPTY, MSG_ERRNO_EUSERS,
4226635Sab196087 MSG_ERRNO_ENOTSOCK, MSG_ERRNO_EDESTADDRREQ,
4236635Sab196087 MSG_ERRNO_EMSGSIZE, MSG_ERRNO_EPROTOTYPE,
4246635Sab196087 MSG_ERRNO_ENOPROTOOPT
4256635Sab196087 };
4269273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_errarr_77_99 = {
4279273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(77, errarr_77_99) };
4289273SAli.Bahrami@Sun.COM
4296635Sab196087 static const Msg errarr_120_134[15] = {
4306635Sab196087 MSG_ERRNO_EPROTONOSUPPORT, MSG_ERRNO_ESOCKTNOSUPPORT,
4316635Sab196087 MSG_ERRNO_EOPNOTSUPP, MSG_ERRNO_EPFNOSUPPORT,
4326635Sab196087 MSG_ERRNO_EAFNOSUPPORT, MSG_ERRNO_EADDRINUSE,
4336635Sab196087 MSG_ERRNO_EADDRNOTAVAIL, MSG_ERRNO_ENETDOWN,
4346635Sab196087 MSG_ERRNO_ENETUNREACH, MSG_ERRNO_ENETRESET,
4356635Sab196087 MSG_ERRNO_ECONNABORTED, MSG_ERRNO_ECONNRESET,
4366635Sab196087 MSG_ERRNO_ENOBUFS, MSG_ERRNO_EISCONN,
4376635Sab196087 MSG_ERRNO_ENOTCONN
4386635Sab196087 };
4399273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_errarr_120_134 = {
4409273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(120, errarr_120_134) };
4419273SAli.Bahrami@Sun.COM
4426635Sab196087 static const Msg errarr_143_151[9] = {
4436635Sab196087 MSG_ERRNO_ESHUTDOWN, MSG_ERRNO_ETOOMANYREFS,
4446635Sab196087 MSG_ERRNO_ETIMEDOUT, MSG_ERRNO_ECONNREFUSED,
4456635Sab196087 MSG_ERRNO_EHOSTDOWN, MSG_ERRNO_EHOSTUNREACH,
4466635Sab196087 MSG_ERRNO_EALREADY, MSG_ERRNO_EINPROGRESS,
4476635Sab196087 MSG_ERRNO_ESTALE
4486635Sab196087 };
4499273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_errarr_143_151 = {
4509273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(143, errarr_143_151) };
4516635Sab196087
4529273SAli.Bahrami@Sun.COM static const conv_ds_t *ds[] = { CONV_DS_ADDR(ds_errarr_1_74),
4539273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_errarr_77_99), CONV_DS_ADDR(ds_errarr_120_134),
4549273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_errarr_143_151), NULL };
4556635Sab196087
4566635Sab196087
4579273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, errno_val, ds, fmt_flags,
4589273SAli.Bahrami@Sun.COM inv_buf));
4596635Sab196087 }
4606635Sab196087
4616635Sab196087
4626635Sab196087 const char *
conv_cnote_pr_dmodel(Word dmodel,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)4636635Sab196087 conv_cnote_pr_dmodel(Word dmodel, Conv_fmt_flags_t fmt_flags,
4646635Sab196087 Conv_inv_buf_t *inv_buf)
4656635Sab196087 {
4666635Sab196087 static const Msg models[] = {
4676635Sab196087 MSG_PR_MODEL_UNKNOWN,
4686635Sab196087 MSG_PR_MODEL_ILP32,
4696635Sab196087 MSG_PR_MODEL_LP64
4706635Sab196087 };
4719273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_models = {
4729273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(PR_MODEL_UNKNOWN, models) };
4739273SAli.Bahrami@Sun.COM static const conv_ds_t *ds[] = { CONV_DS_ADDR(ds_models), NULL };
4746635Sab196087
4759273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, dmodel, ds, fmt_flags,
4769273SAli.Bahrami@Sun.COM inv_buf));
4776635Sab196087 }
4786635Sab196087
4796635Sab196087
4806635Sab196087 const char *
conv_cnote_pr_why(short why,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)4816635Sab196087 conv_cnote_pr_why(short why, Conv_fmt_flags_t fmt_flags,
4826635Sab196087 Conv_inv_buf_t *inv_buf)
4836635Sab196087 {
4846635Sab196087 static const Msg why_arr[] = {
4856635Sab196087 MSG_PR_WHY_REQUESTED,
4866635Sab196087 MSG_PR_WHY_SIGNALLED,
4876635Sab196087 MSG_PR_WHY_SYSENTRY,
4886635Sab196087 MSG_PR_WHY_SYSEXIT,
4896635Sab196087 MSG_PR_WHY_JOBCONTROL,
4906635Sab196087 MSG_PR_WHY_FAULTED,
4916635Sab196087 MSG_PR_WHY_SUSPENDED,
4926635Sab196087 MSG_PR_WHY_CHECKPOINT
4936635Sab196087 };
4949273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_why_arr = {
4959273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, why_arr) };
4969273SAli.Bahrami@Sun.COM static const conv_ds_t *ds[] = { CONV_DS_ADDR(ds_why_arr), NULL };
4976635Sab196087
4989273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, why, ds, fmt_flags,
4999273SAli.Bahrami@Sun.COM inv_buf));
5006635Sab196087 }
5016635Sab196087
5026635Sab196087
5036635Sab196087 const char *
conv_cnote_pr_what(short why,short what,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)5046635Sab196087 conv_cnote_pr_what(short why, short what, Conv_fmt_flags_t fmt_flags,
5056635Sab196087 Conv_inv_buf_t *inv_buf)
5066635Sab196087 {
5076635Sab196087 /*
5086635Sab196087 * The meaning of pr_what depends on the corresponding
5096635Sab196087 * value of pr_why, as discussed in the proc(4) manpage.
5106635Sab196087 */
5116635Sab196087 switch (why) {
5126635Sab196087 case PR_SIGNALLED:
5136635Sab196087 case PR_JOBCONTROL:
5146635Sab196087 return (conv_cnote_signal(what, fmt_flags, inv_buf));
5156635Sab196087 case PR_SYSENTRY:
5166635Sab196087 case PR_SYSEXIT:
5176635Sab196087 return (conv_cnote_syscall(what, fmt_flags, inv_buf));
5186635Sab196087 case PR_FAULTED:
5196635Sab196087 return (conv_cnote_fault(what, fmt_flags, inv_buf));
5206635Sab196087 };
5216635Sab196087
5226635Sab196087 return (conv_invalid_val(inv_buf, what, fmt_flags));
5236635Sab196087 }
5246635Sab196087
5256635Sab196087
5266635Sab196087 /*
5276635Sab196087 * Return the name of the general purpose register indexed by
5286635Sab196087 * regno in the pr_reg array of lwpstatus_t (<sys/procfs.h>).
5296635Sab196087 */
5306635Sab196087 const char *
conv_cnote_pr_regname(Half mach,int regno,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)5316635Sab196087 conv_cnote_pr_regname(Half mach, int regno, Conv_fmt_flags_t fmt_flags,
5326635Sab196087 Conv_inv_buf_t *inv_buf)
5336635Sab196087 {
5346635Sab196087 static const Msg sparc_gen_reg[32] = {
5356635Sab196087 MSG_REG_SPARC_G0, MSG_REG_SPARC_G1,
5366635Sab196087 MSG_REG_SPARC_G2, MSG_REG_SPARC_G3,
5376635Sab196087 MSG_REG_SPARC_G4, MSG_REG_SPARC_G5,
5386635Sab196087 MSG_REG_SPARC_G6, MSG_REG_SPARC_G7,
5396635Sab196087 MSG_REG_SPARC_O0, MSG_REG_SPARC_O1,
5406635Sab196087 MSG_REG_SPARC_O2, MSG_REG_SPARC_O3,
5416635Sab196087 MSG_REG_SPARC_O4, MSG_REG_SPARC_O5,
5426635Sab196087 MSG_REG_SPARC_O6, MSG_REG_SPARC_O7,
5436635Sab196087 MSG_REG_SPARC_L0, MSG_REG_SPARC_L1,
5446635Sab196087 MSG_REG_SPARC_L2, MSG_REG_SPARC_L3,
5456635Sab196087 MSG_REG_SPARC_L4, MSG_REG_SPARC_L5,
5466635Sab196087 MSG_REG_SPARC_L6, MSG_REG_SPARC_L7,
5476635Sab196087 MSG_REG_SPARC_I0, MSG_REG_SPARC_I1,
5486635Sab196087 MSG_REG_SPARC_I2, MSG_REG_SPARC_I3,
5496635Sab196087 MSG_REG_SPARC_I4, MSG_REG_SPARC_I5,
5506635Sab196087 MSG_REG_SPARC_I6, MSG_REG_SPARC_I7
5516635Sab196087 };
5529273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_sparc_gen_reg = {
5539273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(0, sparc_gen_reg) };
5549273SAli.Bahrami@Sun.COM
5556635Sab196087 static const Msg sparc_32_37_reg[6] = {
5566635Sab196087 MSG_REG_SPARC_PSR, MSG_REG_SPARC_PC,
5576635Sab196087 MSG_REG_SPARC_nPC, MSG_REG_SPARC_Y,
5586635Sab196087 MSG_REG_SPARC_WIM, MSG_REG_SPARC_TBR
5596635Sab196087 };
5609273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_sparc_32_37_reg = {
5619273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(32, sparc_32_37_reg) };
5629273SAli.Bahrami@Sun.COM
5636635Sab196087 static const Msg sparcv9_32_37_reg[6] = {
5646635Sab196087 MSG_REG_SPARC_CCR, MSG_REG_SPARC_PC,
5656635Sab196087 MSG_REG_SPARC_nPC, MSG_REG_SPARC_Y,
5666635Sab196087 MSG_REG_SPARC_ASI, MSG_REG_SPARC_FPRS
5676635Sab196087 };
5689273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_sparcv9_32_37_reg = {
5699273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(32, sparcv9_32_37_reg) };
5709273SAli.Bahrami@Sun.COM
5716635Sab196087 static const Msg amd64_reg[28] = {
5726635Sab196087 MSG_REG_AMD64_R15, MSG_REG_AMD64_R14,
5736635Sab196087 MSG_REG_AMD64_R13, MSG_REG_AMD64_R12,
5746635Sab196087 MSG_REG_AMD64_R11, MSG_REG_AMD64_R10,
5756635Sab196087 MSG_REG_AMD64_R9, MSG_REG_AMD64_R8,
5766635Sab196087 MSG_REG_AMD64_RDI, MSG_REG_AMD64_RSI,
5776635Sab196087 MSG_REG_AMD64_RBP, MSG_REG_AMD64_RBX,
5786635Sab196087 MSG_REG_AMD64_RDX, MSG_REG_AMD64_RCX,
5796635Sab196087 MSG_REG_AMD64_RAX, MSG_REG_AMD64_TRAPNO,
5806635Sab196087 MSG_REG_AMD64_ERR, MSG_REG_AMD64_RIP,
5816635Sab196087 MSG_REG_AMD64_CS, MSG_REG_AMD64_RFL,
5826635Sab196087 MSG_REG_AMD64_RSP, MSG_REG_AMD64_SS,
5836635Sab196087 MSG_REG_AMD64_FS, MSG_REG_AMD64_GS,
5846635Sab196087 MSG_REG_AMD64_ES, MSG_REG_AMD64_DS,
5856635Sab196087 MSG_REG_AMD64_FSBASE, MSG_REG_AMD64_GSBASE
5866635Sab196087 };
5879273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_amd64_reg = {
5889273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(0, amd64_reg) };
5899273SAli.Bahrami@Sun.COM
5906635Sab196087 static const Msg i86_reg[19] = {
5919273SAli.Bahrami@Sun.COM MSG_REG_I86_GS, MSG_REG_I86_FS,
5929273SAli.Bahrami@Sun.COM MSG_REG_I86_ES, MSG_REG_I86_DS,
5936635Sab196087 MSG_REG_I86_EDI, MSG_REG_I86_ESI,
5946635Sab196087 MSG_REG_I86_EBP, MSG_REG_I86_ESP,
5956635Sab196087 MSG_REG_I86_EBX, MSG_REG_I86_EDX,
5966635Sab196087 MSG_REG_I86_ECX, MSG_REG_I86_EAX,
5976635Sab196087 MSG_REG_I86_TRAPNO, MSG_REG_I86_ERR,
5986635Sab196087 MSG_REG_I86_EIP, MSG_REG_I86_CS,
5996635Sab196087 MSG_REG_I86_EFL, MSG_REG_I86_UESP,
6006635Sab196087 MSG_REG_I86_SS
6016635Sab196087 };
6029273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_i86_reg = {
6039273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(0, i86_reg) };
6049273SAli.Bahrami@Sun.COM
6059273SAli.Bahrami@Sun.COM
6069273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_sparc[] = {
6079273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_sparc_gen_reg),
6089273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_sparc_32_37_reg),
6099273SAli.Bahrami@Sun.COM NULL
6109273SAli.Bahrami@Sun.COM };
6119273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_sparcv9[] = {
6129273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_sparc_gen_reg),
6139273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_sparcv9_32_37_reg),
6149273SAli.Bahrami@Sun.COM NULL
6159273SAli.Bahrami@Sun.COM };
6169273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_amd64[] = {
6179273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_amd64_reg), NULL };
6189273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_i86[] = {
6199273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_i86_reg), NULL };
6209273SAli.Bahrami@Sun.COM
6219273SAli.Bahrami@Sun.COM const conv_ds_t **ds;
6226635Sab196087
6236635Sab196087 switch (mach) {
6246635Sab196087 case EM_386:
6259273SAli.Bahrami@Sun.COM ds = ds_i86;
6266635Sab196087 break;
6276635Sab196087
6286635Sab196087 case EM_AMD64:
6299273SAli.Bahrami@Sun.COM ds = ds_amd64;
6306635Sab196087 break;
6316635Sab196087
6326635Sab196087 case EM_SPARC:
6336635Sab196087 case EM_SPARC32PLUS:
6349273SAli.Bahrami@Sun.COM ds = ds_sparc;
6356635Sab196087 break;
6369273SAli.Bahrami@Sun.COM
6376635Sab196087 case EM_SPARCV9:
6389273SAli.Bahrami@Sun.COM ds = ds_sparcv9;
6396635Sab196087 break;
6409273SAli.Bahrami@Sun.COM
6419273SAli.Bahrami@Sun.COM default:
6429273SAli.Bahrami@Sun.COM return (conv_invalid_val(inv_buf, regno, fmt_flags));
6436635Sab196087 }
6446635Sab196087
6459273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, mach, regno, ds, fmt_flags,
6469273SAli.Bahrami@Sun.COM inv_buf));
6476635Sab196087 }
6486635Sab196087
6496635Sab196087 const char *
conv_cnote_pr_stype(Word stype,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)6506635Sab196087 conv_cnote_pr_stype(Word stype, Conv_fmt_flags_t fmt_flags,
6516635Sab196087 Conv_inv_buf_t *inv_buf)
6526635Sab196087 {
6536635Sab196087 static const Msg types[] = {
6546635Sab196087 MSG_SOBJ_NONE, MSG_SOBJ_MUTEX,
6556635Sab196087 MSG_SOBJ_RWLOCK, MSG_SOBJ_CV,
6566635Sab196087 MSG_SOBJ_SEMA, MSG_SOBJ_USER,
6576635Sab196087 MSG_SOBJ_USER_PI, MSG_SOBJ_SHUTTLE
6586635Sab196087 };
6599273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_types = { CONV_DS_MSG_INIT(0, types) };
6609273SAli.Bahrami@Sun.COM static const conv_ds_t *ds[] = { CONV_DS_ADDR(ds_types), NULL };
6616635Sab196087
6626635Sab196087
6639273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, stype, ds, fmt_flags,
6649273SAli.Bahrami@Sun.COM inv_buf));
6656635Sab196087 }
6666635Sab196087
6676635Sab196087
6686635Sab196087 const char *
conv_cnote_priv(int priv,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)6696635Sab196087 conv_cnote_priv(int priv, Conv_fmt_flags_t fmt_flags,
6706635Sab196087 Conv_inv_buf_t *inv_buf)
6716635Sab196087 {
6726635Sab196087 const char *fmt;
6736635Sab196087
6746635Sab196087 /*
6756635Sab196087 * The PRIV_ constants defined in <sys/priv.h> are unusual
6766635Sab196087 * in that they are negative values. The libconv code is all
6776635Sab196087 * built around the Word type, which is unsigned. Rather than
6786635Sab196087 * modify libconv for this one case, we simply handle
6796635Sab196087 * these constants differently that the usual approach,
6809273SAli.Bahrami@Sun.COM * and stay away from conv_invalid_val() and conv_map_ds().
6816635Sab196087 */
6826635Sab196087 switch (priv) {
6836635Sab196087 case PRIV_ALL:
6846635Sab196087 return (MSG_ORIG(MSG_PRIV_ALL));
6856635Sab196087 case PRIV_MULTIPLE:
6866635Sab196087 return (MSG_ORIG(MSG_PRIV_MULTIPLE));
6876635Sab196087 case PRIV_NONE:
6886635Sab196087 return (MSG_ORIG(MSG_PRIV_NONE));
6896635Sab196087 case PRIV_ALLZONE:
6906635Sab196087 return (MSG_ORIG(MSG_PRIV_ALLZONE));
6916635Sab196087 case PRIV_GLOBAL:
6926635Sab196087 return (MSG_ORIG(MSG_PRIV_GLOBAL));
6936635Sab196087 }
6946635Sab196087
6956635Sab196087 fmt = (fmt_flags & CONV_FMT_DECIMAL) ?
6966635Sab196087 MSG_ORIG(MSG_FMT_INT) : MSG_ORIG(MSG_FMT_HEXINT);
6976635Sab196087 (void) snprintf(inv_buf->buf, sizeof (inv_buf->buf), fmt, priv);
6986635Sab196087 return (inv_buf->buf);
6996635Sab196087 }
7006635Sab196087
7016635Sab196087
7026635Sab196087 const char *
conv_cnote_psetid(int id,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)7036635Sab196087 conv_cnote_psetid(int id, Conv_fmt_flags_t fmt_flags,
7046635Sab196087 Conv_inv_buf_t *inv_buf)
7056635Sab196087 {
7066635Sab196087 const char *fmt;
7076635Sab196087
7086635Sab196087 /*
7096635Sab196087 * The PS_ constants defined in <sys/pset.h> are unusual
7106635Sab196087 * in that they are negative values. The libconv code is all
7116635Sab196087 * built around the Word type, which is unsigned. Rather than
7126635Sab196087 * modify libconv for this one case, we simply handle
7136635Sab196087 * these constants differently that the usual approach,
7149273SAli.Bahrami@Sun.COM * and stay away from conv_invalid_val() and conv_map_ds().
7156635Sab196087 */
7166635Sab196087 switch (id) {
7176635Sab196087 case PS_NONE:
7186635Sab196087 return (MSG_ORIG(MSG_PS_NONE));
7196635Sab196087 case PS_QUERY:
7206635Sab196087 return (MSG_ORIG(MSG_PS_QUERY));
7216635Sab196087 case PS_MYID:
7226635Sab196087 return (MSG_ORIG(MSG_PS_MYID));
7236635Sab196087 case PS_SOFT:
7246635Sab196087 return (MSG_ORIG(MSG_PS_SOFT));
7256635Sab196087 case PS_HARD:
7266635Sab196087 return (MSG_ORIG(MSG_PS_HARD));
7276635Sab196087 case PS_QUERY_TYPE:
7286635Sab196087 return (MSG_ORIG(MSG_PS_QUERY_TYPE));
7296635Sab196087 }
7306635Sab196087
7316635Sab196087 fmt = (fmt_flags & CONV_FMT_DECIMAL) ?
7326635Sab196087 MSG_ORIG(MSG_FMT_INT) : MSG_ORIG(MSG_FMT_HEXINT);
7336635Sab196087 (void) snprintf(inv_buf->buf, sizeof (inv_buf->buf), fmt, id);
7346635Sab196087 return (inv_buf->buf);
7356635Sab196087 }
7366635Sab196087
7376635Sab196087
7386635Sab196087 /*
7396635Sab196087 * Return a string describing the si_code field of
7406635Sab196087 * the siginfo_t struct.
7416635Sab196087 *
7426635Sab196087 * The meaning of si_code is dependent on both the target
7436635Sab196087 * machine (mach) as well as the signal (sig).
7446635Sab196087 */
7456635Sab196087 const char *
conv_cnote_si_code(Half mach,int sig,int si_code,Conv_fmt_flags_t fmt_flags,Conv_inv_buf_t * inv_buf)7466635Sab196087 conv_cnote_si_code(Half mach, int sig, int si_code,
7476635Sab196087 Conv_fmt_flags_t fmt_flags, Conv_inv_buf_t *inv_buf)
7486635Sab196087 {
7496635Sab196087
7506635Sab196087 /* Values of si_code for user generated signals */
7516635Sab196087 static const Msg user_arr[6] = {
7526635Sab196087 MSG_SI_USER, MSG_SI_LWP,
7536635Sab196087 MSG_SI_QUEUE, MSG_SI_TIMER,
7546635Sab196087 MSG_SI_ASYNCIO, MSG_SI_MESGQ
7556635Sab196087 };
7569273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_msg_user_arr = {
7579273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(0, user_arr) };
7589273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_user_arr[] = {
7599273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_msg_user_arr), NULL };
7609273SAli.Bahrami@Sun.COM
7616635Sab196087
7626635Sab196087 /*
7636635Sab196087 * Architecture dependent system generated signals. All
7646635Sab196087 * versions of Solaris use the same set of these values.
7656635Sab196087 */
7666635Sab196087 static const Msg trap_arr[6] = {
7676635Sab196087 MSG_SI_TRAP_BRKPT, MSG_SI_TRAP_TRACE,
7686635Sab196087 MSG_SI_TRAP_RWATCH, MSG_SI_TRAP_WWATCH,
7696635Sab196087 MSG_SI_TRAP_XWATCH, MSG_SI_TRAP_DTRACE
7706635Sab196087 };
7719273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_msg_trap_arr = {
7729273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, trap_arr) };
7739273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_trap_arr[] = {
7749273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_msg_trap_arr), NULL };
7759273SAli.Bahrami@Sun.COM
7766635Sab196087 static const Msg cld_arr[6] = {
7776635Sab196087 MSG_SI_CLD_EXITED, MSG_SI_CLD_KILLED,
7786635Sab196087 MSG_SI_CLD_DUMPED, MSG_SI_CLD_TRAPPED,
7796635Sab196087 MSG_SI_CLD_STOPPED, MSG_SI_CLD_CONTINUED
7806635Sab196087 };
7819273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_msg_cld_arr = {
7829273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, cld_arr) };
7839273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_cld_arr[] = {
7849273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_msg_cld_arr), NULL };
7859273SAli.Bahrami@Sun.COM
7866635Sab196087 static const Msg poll_arr[6] = {
7876635Sab196087 MSG_SI_POLL_IN, MSG_SI_POLL_OUT,
7886635Sab196087 MSG_SI_POLL_MSG, MSG_SI_POLL_ERR,
7896635Sab196087 MSG_SI_POLL_PRI, MSG_SI_POLL_HUP
7906635Sab196087 };
7919273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_msg_poll_arr = {
7929273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, poll_arr) };
7939273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_poll_arr[] = {
7949273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_msg_poll_arr), NULL };
7956635Sab196087
7966635Sab196087 /*
7976635Sab196087 * Architecture dependent system generated signals.
7986635Sab196087 * These items (ILL, EMT, FPE, SEGV, BUS) are platform
7996635Sab196087 * dependent. Some architectures have extra codes.
8006635Sab196087 * The same name may have a different integer value.
8016635Sab196087 * Multiple arrays are used when they differ, and one
8026635Sab196087 * array when all the architectures agree.
8036635Sab196087 */
8046635Sab196087
8056635Sab196087 /* ILL */
8066635Sab196087 static const Msg ill_arr[8] = {
8076635Sab196087 MSG_SI_ILL_ILLOPC, MSG_SI_ILL_ILLOPN,
8086635Sab196087 MSG_SI_ILL_ILLADR, MSG_SI_ILL_ILLTRP,
8096635Sab196087 MSG_SI_ILL_PRVOPC, MSG_SI_ILL_PRVREG,
8106635Sab196087 MSG_SI_ILL_COPROC, MSG_SI_ILL_BADSTK
8116635Sab196087 };
8129273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_msg_ill_arr = {
8139273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, ill_arr) };
8149273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_ill_arr[] = {
8159273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_msg_ill_arr), NULL };
8166635Sab196087
8176635Sab196087 /* EMT */
8186635Sab196087 static const Msg emt_arr_sparc[2] = {
8196635Sab196087 MSG_SI_EMT_TAGOVF, MSG_SI_EMT_CPCOVF
8206635Sab196087 };
8219273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_msg_emt_arr_sparc = {
8229273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, emt_arr_sparc) };
8239273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_emt_arr_sparc[] = {
8249273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_msg_emt_arr_sparc), NULL };
8259273SAli.Bahrami@Sun.COM
8266635Sab196087 static const Msg emt_arr_x86[1] = {
8276635Sab196087 MSG_SI_EMT_CPCOVF
8286635Sab196087 };
8299273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_msg_emt_arr_x86 = {
8309273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, emt_arr_x86) };
8319273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_emt_arr_x86[] = {
8329273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_msg_emt_arr_x86), NULL };
8339273SAli.Bahrami@Sun.COM
8346635Sab196087
8356635Sab196087 /* FPE */
8366635Sab196087 static const Msg fpe_arr_sparc[8] = {
8376635Sab196087 MSG_SI_FPE_INTDIV, MSG_SI_FPE_INTOVF,
8386635Sab196087 MSG_SI_FPE_FLTDIV, MSG_SI_FPE_FLTOVF,
8396635Sab196087 MSG_SI_FPE_FLTUND, MSG_SI_FPE_FLTRES,
8406635Sab196087 MSG_SI_FPE_FLTINV, MSG_SI_FPE_FLTSUB
8416635Sab196087 };
8429273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_msg_fpe_arr_sparc = {
8439273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, fpe_arr_sparc) };
8449273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_fpe_arr_sparc[] = {
8459273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_msg_fpe_arr_sparc), NULL };
8469273SAli.Bahrami@Sun.COM
8476635Sab196087 static const Msg fpe_arr_x86[9] = {
8486635Sab196087 MSG_SI_FPE_INTDIV, MSG_SI_FPE_INTOVF,
8496635Sab196087 MSG_SI_FPE_FLTDIV, MSG_SI_FPE_FLTOVF,
8506635Sab196087 MSG_SI_FPE_FLTUND, MSG_SI_FPE_FLTRES,
8516635Sab196087 MSG_SI_FPE_FLTINV, MSG_SI_FPE_FLTSUB,
8526635Sab196087 MSG_SI_FPE_FLTDEN
8536635Sab196087 };
8549273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_msg_fpe_arr_x86 = {
8559273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, fpe_arr_x86) };
8569273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_fpe_arr_x86[] = {
8579273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_msg_fpe_arr_x86), NULL };
8586635Sab196087
8596635Sab196087 /* SEGV */
8606635Sab196087 static const Msg segv_arr[2] = {
8616635Sab196087 MSG_SI_SEGV_MAPERR, MSG_SI_SEGV_ACCERR
8626635Sab196087 };
8639273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_msg_segv_arr = {
8649273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, segv_arr) };
8659273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_segv_arr[] = {
8669273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_msg_segv_arr), NULL };
8676635Sab196087
8686635Sab196087 /* BUS */
8696635Sab196087 static const Msg bus_arr[3] = {
8706635Sab196087 MSG_SI_BUS_ADRALN, MSG_SI_BUS_ADRERR,
8716635Sab196087 MSG_SI_BUS_OBJERR
8726635Sab196087 };
8739273SAli.Bahrami@Sun.COM static const conv_ds_msg_t ds_msg_bus_arr = {
8749273SAli.Bahrami@Sun.COM CONV_DS_MSG_INIT(1, bus_arr) };
8759273SAli.Bahrami@Sun.COM static const conv_ds_t *ds_bus_arr[] = {
8769273SAli.Bahrami@Sun.COM CONV_DS_ADDR(ds_msg_bus_arr), NULL };
8776635Sab196087
8786635Sab196087 enum { ARCH_NONE, ARCH_X86, ARCH_SPARC } arch;
8796635Sab196087
8806635Sab196087
8816635Sab196087 /* Handle the si_code values that do not depend on the signal */
8826635Sab196087 switch (si_code) {
8836635Sab196087 case SI_NOINFO:
8846635Sab196087 return (MSG_ORIG(MSG_SI_NOINFO));
8856635Sab196087 case SI_DTRACE:
8866635Sab196087 return (MSG_ORIG(MSG_SI_DTRACE));
8876635Sab196087 case SI_RCTL:
8886635Sab196087 return (MSG_ORIG(MSG_SI_RCTL));
8896635Sab196087 default:
8906635Sab196087 /* User generated signal codes are <= 0 */
8916635Sab196087 if (si_code <= 0) {
8926635Sab196087 int ndx = -si_code;
8936635Sab196087
8946635Sab196087 /*
8956635Sab196087 * If no signal was delivered, and si_code is
8966635Sab196087 * 0, return "0" rather than "SI_USER".
8976635Sab196087 */
8986635Sab196087 if ((si_code == 0) && (sig == 0))
8996635Sab196087 return (MSG_ORIG(MSG_GBL_ZERO));
9006635Sab196087
9019273SAli.Bahrami@Sun.COM if (ndx >= ARRAY_NELTS(user_arr)) {
9026635Sab196087 const char *fmt;
9036635Sab196087
9046635Sab196087 fmt = (fmt_flags & CONV_FMT_DECIMAL) ?
9056635Sab196087 MSG_ORIG(MSG_FMT_INT) :
9066635Sab196087 MSG_ORIG(MSG_FMT_HEXINT);
9076635Sab196087
9086635Sab196087 (void) snprintf(inv_buf->buf,
9096635Sab196087 sizeof (inv_buf->buf), fmt, si_code);
9106635Sab196087 return (inv_buf->buf);
9116635Sab196087 }
9129273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, ndx,
9139273SAli.Bahrami@Sun.COM ds_user_arr, fmt_flags, inv_buf));
9146635Sab196087 }
9156635Sab196087 }
9166635Sab196087
9176635Sab196087 /*
9186635Sab196087 * If we didn't return above, then this is a
9196635Sab196087 * system generated signal, and the meaning of si_code
9206635Sab196087 * depends on the signal that was delivered, and possibly
9216635Sab196087 * on the target architecture.
9226635Sab196087 */
9236635Sab196087 switch (mach) {
9246635Sab196087 case EM_386:
9256635Sab196087 case EM_AMD64:
9266635Sab196087 arch = ARCH_X86;
9276635Sab196087 break;
9286635Sab196087
9296635Sab196087 case EM_SPARC:
9306635Sab196087 case EM_SPARC32PLUS:
9316635Sab196087 case EM_SPARCV9:
9326635Sab196087 arch = ARCH_X86;
9336635Sab196087 break;
9346635Sab196087
9356635Sab196087 default:
9366635Sab196087 arch = ARCH_NONE;
9376635Sab196087 break;
9386635Sab196087 }
9396635Sab196087
9406635Sab196087 switch (sig) {
9416635Sab196087 case SIGTRAP:
9429273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, si_code,
9439273SAli.Bahrami@Sun.COM ds_trap_arr, fmt_flags, inv_buf));
9446635Sab196087
9456635Sab196087 case SIGCLD:
9469273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, si_code,
9479273SAli.Bahrami@Sun.COM ds_cld_arr, fmt_flags, inv_buf));
9486635Sab196087
9496635Sab196087 case SIGPOLL:
9509273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, si_code,
9519273SAli.Bahrami@Sun.COM ds_poll_arr, fmt_flags, inv_buf));
9526635Sab196087
9536635Sab196087 case SIGILL:
9549273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, si_code,
9559273SAli.Bahrami@Sun.COM ds_ill_arr, fmt_flags, inv_buf));
9566635Sab196087
9576635Sab196087 case SIGEMT:
9586635Sab196087 switch (arch) {
9596635Sab196087 case ARCH_SPARC:
9609273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, si_code,
9619273SAli.Bahrami@Sun.COM ds_emt_arr_sparc, fmt_flags, inv_buf));
9626635Sab196087 case ARCH_X86:
9639273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, si_code,
9649273SAli.Bahrami@Sun.COM ds_emt_arr_x86, fmt_flags, inv_buf));
9656635Sab196087 }
9666635Sab196087 break;
9676635Sab196087
9686635Sab196087 case SIGFPE:
9696635Sab196087 switch (arch) {
9706635Sab196087 case ARCH_SPARC:
9719273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, si_code,
9729273SAli.Bahrami@Sun.COM ds_fpe_arr_sparc, fmt_flags, inv_buf));
9736635Sab196087 case ARCH_X86:
9749273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, si_code,
9759273SAli.Bahrami@Sun.COM ds_fpe_arr_x86, fmt_flags, inv_buf));
9766635Sab196087 }
9776635Sab196087 break;
9786635Sab196087
9796635Sab196087 case SIGSEGV:
9809273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, si_code,
9819273SAli.Bahrami@Sun.COM ds_segv_arr, fmt_flags, inv_buf));
9826635Sab196087
9836635Sab196087 case SIGBUS:
9849273SAli.Bahrami@Sun.COM return (conv_map_ds(ELFOSABI_NONE, EM_NONE, si_code,
9859273SAli.Bahrami@Sun.COM ds_bus_arr, fmt_flags, inv_buf));
9866635Sab196087 }
9876635Sab196087
9886635Sab196087 /* If not recognized, format as a number */
9896635Sab196087 return (conv_invalid_val(inv_buf, si_code, fmt_flags));
9906635Sab196087
9916635Sab196087 }
9926635Sab196087
9936635Sab196087
9946635Sab196087 #define AUXAFFLGSZ CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
9956635Sab196087 MSG_AUXV_AF_SUN_SETUGID_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9966635Sab196087 MSG_AUXV_AF_SUN_HWCAPVERIFY_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9976635Sab196087 MSG_AUXV_AF_SUN_NOPLM_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9986635Sab196087 CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
9996635Sab196087
10006635Sab196087 /*
10016635Sab196087 * Ensure that Conv_cnote_auxv_af_buf_t is large enough:
10026635Sab196087 *
10036635Sab196087 * AUXAFFLGSZ is the real minimum size of the buffer required by
10046635Sab196087 * conv_cnote_auxv_af(). However, Conv_cnote_auxv_af_buf_t
10056635Sab196087 * uses CONV_CNOTE_AUXV_AF_BUFSIZE to set the buffer size. We do
10066635Sab196087 * things this way because the definition of AUXAFFLGSZ uses information
10076635Sab196087 * that is not available in the environment of other programs
10086635Sab196087 * that include the conv.h header file.
10096635Sab196087 */
10106635Sab196087 #if (CONV_CNOTE_AUXV_AF_BUFSIZE != AUXAFFLGSZ) && !defined(__lint)
10116635Sab196087 #define REPORT_BUFSIZE AUXAFFLGSZ
10126635Sab196087 #include "report_bufsize.h"
10136635Sab196087 #error "CONV_CNOTE_AUXV_AF_BUFSIZE does not match AUXAFFLGSZ"
10146635Sab196087 #endif
10156635Sab196087
10166635Sab196087 const char *
conv_cnote_auxv_af(Word flags,Conv_fmt_flags_t fmt_flags,Conv_cnote_auxv_af_buf_t * cnote_auxv_af_buf)10176635Sab196087 conv_cnote_auxv_af(Word flags, Conv_fmt_flags_t fmt_flags,
10186635Sab196087 Conv_cnote_auxv_af_buf_t *cnote_auxv_af_buf)
10196635Sab196087 {
10209273SAli.Bahrami@Sun.COM static const Val_desc vda[] = {
10219273SAli.Bahrami@Sun.COM { AF_SUN_SETUGID, MSG_AUXV_AF_SUN_SETUGID },
10229273SAli.Bahrami@Sun.COM { AF_SUN_HWCAPVERIFY, MSG_AUXV_AF_SUN_HWCAPVERIFY },
10239273SAli.Bahrami@Sun.COM { AF_SUN_NOPLM, MSG_AUXV_AF_SUN_NOPLM },
10246635Sab196087 { 0, 0 }
10256635Sab196087 };
10266635Sab196087 static CONV_EXPN_FIELD_ARG conv_arg = {
10279273SAli.Bahrami@Sun.COM NULL, sizeof (cnote_auxv_af_buf->buf) };
10286635Sab196087
10296635Sab196087 if (flags == 0)
10306635Sab196087 return (MSG_ORIG(MSG_GBL_ZERO));
10316635Sab196087
10326635Sab196087 conv_arg.buf = cnote_auxv_af_buf->buf;
10336635Sab196087 conv_arg.oflags = conv_arg.rflags = flags;
10349273SAli.Bahrami@Sun.COM (void) conv_expn_field(&conv_arg, vda, fmt_flags);
10356635Sab196087
10366635Sab196087 return ((const char *)cnote_auxv_af_buf->buf);
10376635Sab196087 }
10386635Sab196087
10396635Sab196087
10406635Sab196087 #define CCFLGSZ CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
10416635Sab196087 MSG_CC_CONTENT_STACK_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10426635Sab196087 MSG_CC_CONTENT_HEAP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10436635Sab196087 MSG_CC_CONTENT_SHFILE_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10446635Sab196087 MSG_CC_CONTENT_SHANON_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10456635Sab196087 MSG_CC_CONTENT_TEXT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10466635Sab196087 MSG_CC_CONTENT_DATA_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10476635Sab196087 MSG_CC_CONTENT_RODATA_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10486635Sab196087 MSG_CC_CONTENT_ANON_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10496635Sab196087 MSG_CC_CONTENT_SHM_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10506635Sab196087 MSG_CC_CONTENT_ISM_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10516635Sab196087 MSG_CC_CONTENT_DISM_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10526635Sab196087 MSG_CC_CONTENT_CTF_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10536635Sab196087 MSG_CC_CONTENT_SYMTAB_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
10546635Sab196087 CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
10556635Sab196087
10566635Sab196087 /*
10576635Sab196087 * Ensure that Conv_cnote_cc_content_buf_t is large enough:
10586635Sab196087 *
10596635Sab196087 * CCFLGSZ is the real minimum size of the buffer required by
10606635Sab196087 * conv_cnote_cc_content(). However, Conv_cnote_cc_content_buf_t
10616635Sab196087 * uses CONV_CNOTE_CC_CONTENT_BUFSIZE to set the buffer size. We do
10626635Sab196087 * things this way because the definition of CCFLGSZ uses information
10636635Sab196087 * that is not available in the environment of other programs
10646635Sab196087 * that include the conv.h header file.
10656635Sab196087 */
10666635Sab196087 #if (CONV_CNOTE_CC_CONTENT_BUFSIZE != CCFLGSZ) && !defined(__lint)
10676635Sab196087 #define REPORT_BUFSIZE CCFLGSZ
10686635Sab196087 #include "report_bufsize.h"
10696635Sab196087 #error "CONV_CNOTE_CC_CONTENT_BUFSIZE does not match CCFLGSZ"
10706635Sab196087 #endif
10716635Sab196087
10726635Sab196087 const char *
conv_cnote_cc_content(Lword flags,Conv_fmt_flags_t fmt_flags,Conv_cnote_cc_content_buf_t * cnote_cc_content_buf)10736635Sab196087 conv_cnote_cc_content(Lword flags, Conv_fmt_flags_t fmt_flags,
10746635Sab196087 Conv_cnote_cc_content_buf_t *cnote_cc_content_buf)
10756635Sab196087 {
10766635Sab196087 /*
10776635Sab196087 * Note: core_content_t is a 64-bit integer value, but our
10786635Sab196087 * conv_expn_field() logic is all built around 32-bit
10796635Sab196087 * Word values. This will probably need changing someday,
10806635Sab196087 * but for now, we make do with the 32-bit engine. This works
10816635Sab196087 * because the number of bits actually assigned in
10826635Sab196087 * the core_content_t data type (<sys/corectl.h>) bits within
10836635Sab196087 * 32-bits.
10846635Sab196087 *
10856635Sab196087 * The downside is that any bits set in the upper half of
10866635Sab196087 * the flags will be ignored. At the time of this writing,
10876635Sab196087 * that can only occur via core file corruption, which presumably
10886635Sab196087 * would be evident in other ways.
10896635Sab196087 */
10909273SAli.Bahrami@Sun.COM static const Val_desc vda[] = {
10919273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_STACK, MSG_CC_CONTENT_STACK },
10929273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_HEAP, MSG_CC_CONTENT_HEAP },
10939273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_SHFILE, MSG_CC_CONTENT_SHFILE },
10949273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_SHANON, MSG_CC_CONTENT_SHANON },
10959273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_TEXT, MSG_CC_CONTENT_TEXT },
10969273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_DATA, MSG_CC_CONTENT_DATA },
10979273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_RODATA, MSG_CC_CONTENT_RODATA },
10989273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_ANON, MSG_CC_CONTENT_ANON },
10999273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_SHM, MSG_CC_CONTENT_SHM },
11009273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_ISM, MSG_CC_CONTENT_ISM },
11019273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_DISM, MSG_CC_CONTENT_DISM },
11029273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_CTF, MSG_CC_CONTENT_CTF },
11039273SAli.Bahrami@Sun.COM { (Word) CC_CONTENT_SYMTAB, MSG_CC_CONTENT_SYMTAB },
11046635Sab196087 { 0, 0 }
11056635Sab196087 };
11066635Sab196087 static CONV_EXPN_FIELD_ARG conv_arg = {
11079273SAli.Bahrami@Sun.COM NULL, sizeof (cnote_cc_content_buf->buf) };
11086635Sab196087
11096635Sab196087 if (flags == 0)
11106635Sab196087 return (MSG_ORIG(MSG_GBL_ZERO));
11116635Sab196087
11126635Sab196087 conv_arg.buf = cnote_cc_content_buf->buf;
11136635Sab196087 conv_arg.oflags = conv_arg.rflags = flags;
11149273SAli.Bahrami@Sun.COM (void) conv_expn_field(&conv_arg, vda, fmt_flags);
11156635Sab196087
11166635Sab196087 return ((const char *)cnote_cc_content_buf->buf);
11176635Sab196087 }
11186635Sab196087
11196635Sab196087
11206635Sab196087 #define PRFLGSZ CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
11216635Sab196087 MSG_PR_FLAGS_STOPPED_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11226635Sab196087 MSG_PR_FLAGS_ISTOP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11236635Sab196087 MSG_PR_FLAGS_DSTOP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11246635Sab196087 MSG_PR_FLAGS_STEP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11256635Sab196087 MSG_PR_FLAGS_ASLEEP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11266635Sab196087 MSG_PR_FLAGS_PCINVAL_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11276635Sab196087 MSG_PR_FLAGS_ASLWP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11286635Sab196087 MSG_PR_FLAGS_AGENT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11296635Sab196087 MSG_PR_FLAGS_DETACH_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11306635Sab196087 MSG_PR_FLAGS_DAEMON_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11316635Sab196087 MSG_PR_FLAGS_IDLE_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11326635Sab196087 MSG_PR_FLAGS_ISSYS_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11336635Sab196087 MSG_PR_FLAGS_VFORKP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11346635Sab196087 MSG_PR_FLAGS_ORPHAN_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11356635Sab196087 MSG_PR_FLAGS_NOSIGCHLD_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11366635Sab196087 MSG_PR_FLAGS_WAITPID_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11376635Sab196087 MSG_PR_FLAGS_FORK_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11386635Sab196087 MSG_PR_FLAGS_RLC_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11396635Sab196087 MSG_PR_FLAGS_KLC_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11406635Sab196087 MSG_PR_FLAGS_ASYNC_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11416635Sab196087 MSG_PR_FLAGS_MSACCT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11426635Sab196087 MSG_PR_FLAGS_BPTADJ_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11436635Sab196087 MSG_PR_FLAGS_PTRACE_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11446635Sab196087 MSG_PR_FLAGS_MSFORK_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
11456635Sab196087 CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
11466635Sab196087
11476635Sab196087 /*
11486635Sab196087 * Ensure that Conv_cnote_pr_flags_buf_t is large enough:
11496635Sab196087 *
11506635Sab196087 * PRFLGSZ is the real minimum size of the buffer required by
11516635Sab196087 * conv_cnote_pr_flags(). However, Conv_cnote_pr_flags_buf_t
11526635Sab196087 * uses CONV_CNOTE_PR_FLAGS_BUFSIZE to set the buffer size. We do
11536635Sab196087 * things this way because the definition of PRFLGSZ uses information
11546635Sab196087 * that is not available in the environment of other programs
11556635Sab196087 * that include the conv.h header file.
11566635Sab196087 */
11576635Sab196087 #if (CONV_CNOTE_PR_FLAGS_BUFSIZE != PRFLGSZ) && !defined(__lint)
11586635Sab196087 #define REPORT_BUFSIZE PRFLGSZ
11596635Sab196087 #include "report_bufsize.h"
11606635Sab196087 #error "CONV_CNOTE_PR_FLAGS_BUFSIZE does not match PRFLGSZ"
11616635Sab196087 #endif
11626635Sab196087
11636635Sab196087 const char *
conv_cnote_pr_flags(int flags,Conv_fmt_flags_t fmt_flags,Conv_cnote_pr_flags_buf_t * cnote_pr_flags_buf)11646635Sab196087 conv_cnote_pr_flags(int flags, Conv_fmt_flags_t fmt_flags,
11656635Sab196087 Conv_cnote_pr_flags_buf_t *cnote_pr_flags_buf)
11666635Sab196087 {
11679273SAli.Bahrami@Sun.COM static const Val_desc vda[] = {
11689273SAli.Bahrami@Sun.COM { PR_STOPPED, MSG_PR_FLAGS_STOPPED },
11699273SAli.Bahrami@Sun.COM { PR_ISTOP, MSG_PR_FLAGS_ISTOP },
11709273SAli.Bahrami@Sun.COM { PR_DSTOP, MSG_PR_FLAGS_DSTOP },
11719273SAli.Bahrami@Sun.COM { PR_STEP, MSG_PR_FLAGS_STEP },
11729273SAli.Bahrami@Sun.COM { PR_ASLEEP, MSG_PR_FLAGS_ASLEEP },
11739273SAli.Bahrami@Sun.COM { PR_PCINVAL, MSG_PR_FLAGS_PCINVAL },
11749273SAli.Bahrami@Sun.COM { PR_ASLWP, MSG_PR_FLAGS_ASLWP },
11759273SAli.Bahrami@Sun.COM { PR_AGENT, MSG_PR_FLAGS_AGENT },
11769273SAli.Bahrami@Sun.COM { PR_DETACH, MSG_PR_FLAGS_DETACH },
11779273SAli.Bahrami@Sun.COM { PR_DAEMON, MSG_PR_FLAGS_DAEMON },
11789273SAli.Bahrami@Sun.COM { PR_IDLE, MSG_PR_FLAGS_IDLE },
11799273SAli.Bahrami@Sun.COM { PR_ISSYS, MSG_PR_FLAGS_ISSYS },
11809273SAli.Bahrami@Sun.COM { PR_VFORKP, MSG_PR_FLAGS_VFORKP },
11819273SAli.Bahrami@Sun.COM { PR_ORPHAN, MSG_PR_FLAGS_ORPHAN },
11829273SAli.Bahrami@Sun.COM { PR_NOSIGCHLD, MSG_PR_FLAGS_NOSIGCHLD },
11839273SAli.Bahrami@Sun.COM { PR_WAITPID, MSG_PR_FLAGS_WAITPID },
11849273SAli.Bahrami@Sun.COM { PR_FORK, MSG_PR_FLAGS_FORK },
11859273SAli.Bahrami@Sun.COM { PR_RLC, MSG_PR_FLAGS_RLC },
11869273SAli.Bahrami@Sun.COM { PR_KLC, MSG_PR_FLAGS_KLC },
11879273SAli.Bahrami@Sun.COM { PR_ASYNC, MSG_PR_FLAGS_ASYNC },
11889273SAli.Bahrami@Sun.COM { PR_MSACCT, MSG_PR_FLAGS_MSACCT },
11899273SAli.Bahrami@Sun.COM { PR_BPTADJ, MSG_PR_FLAGS_BPTADJ },
11909273SAli.Bahrami@Sun.COM { PR_PTRACE, MSG_PR_FLAGS_PTRACE },
11919273SAli.Bahrami@Sun.COM { PR_MSFORK, MSG_PR_FLAGS_MSFORK },
11926635Sab196087 { 0, 0 }
11936635Sab196087 };
11946635Sab196087 static CONV_EXPN_FIELD_ARG conv_arg = {
11959273SAli.Bahrami@Sun.COM NULL, sizeof (cnote_pr_flags_buf->buf) };
11966635Sab196087
11976635Sab196087 if (flags == 0)
11986635Sab196087 return (MSG_ORIG(MSG_GBL_ZERO));
11996635Sab196087
12006635Sab196087 conv_arg.buf = cnote_pr_flags_buf->buf;
12016635Sab196087 conv_arg.oflags = conv_arg.rflags = flags;
12029273SAli.Bahrami@Sun.COM (void) conv_expn_field(&conv_arg, vda, fmt_flags);
12036635Sab196087
12046635Sab196087 return ((const char *)cnote_pr_flags_buf->buf);
12056635Sab196087 }
12066635Sab196087
12076635Sab196087
12086635Sab196087 #define OLDPRFLGSZ CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
12096635Sab196087 MSG_PR_FLAGS_STOPPED_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12106635Sab196087 MSG_PR_FLAGS_ISTOP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12116635Sab196087 MSG_PR_FLAGS_DSTOP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12126635Sab196087 MSG_PR_FLAGS_ASLEEP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12136635Sab196087 MSG_PR_FLAGS_FORK_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12146635Sab196087 MSG_PR_FLAGS_RLC_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12156635Sab196087 MSG_PR_FLAGS_PTRACE_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12166635Sab196087 MSG_PR_FLAGS_PCINVAL_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12176635Sab196087 MSG_PR_FLAGS_ISSYS_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12186635Sab196087 MSG_PR_FLAGS_STEP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12196635Sab196087 MSG_PR_FLAGS_KLC_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12206635Sab196087 MSG_PR_FLAGS_ASYNC_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12216635Sab196087 MSG_PR_FLAGS_PCOMPAT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12226635Sab196087 MSG_PR_FLAGS_MSACCT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12236635Sab196087 MSG_PR_FLAGS_BPTADJ_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12246635Sab196087 MSG_PR_FLAGS_ASLWP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12256635Sab196087 CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
12266635Sab196087
12276635Sab196087 /*
12286635Sab196087 * Ensure that Conv_cnote_old_pr_flags_buf_t is large enough:
12296635Sab196087 *
12306635Sab196087 * OLDPRFLGSZ is the real minimum size of the buffer required by
12316635Sab196087 * conv_cnote_old_pr_flags(). However, Conv_cnote_old_pr_flags_buf_t
12326635Sab196087 * uses CONV_CNOTE_OLD_PR_FLAGS_BUFSIZE to set the buffer size. We do
12336635Sab196087 * things this way because the definition of OLDPRFLGSZ uses information
12346635Sab196087 * that is not available in the environment of other programs
12356635Sab196087 * that include the conv.h header file.
12366635Sab196087 */
12376635Sab196087 #if (CONV_CNOTE_OLD_PR_FLAGS_BUFSIZE != OLDPRFLGSZ) && !defined(__lint)
12386635Sab196087 #define REPORT_BUFSIZE OLDPRFLGSZ
12396635Sab196087 #include "report_bufsize.h"
12406635Sab196087 #error "CONV_CNOTE_OLD_PR_FLAGS_BUFSIZE does not match OLDPRFLGSZ"
12416635Sab196087 #endif
12426635Sab196087
12436635Sab196087 const char *
conv_cnote_old_pr_flags(int flags,Conv_fmt_flags_t fmt_flags,Conv_cnote_old_pr_flags_buf_t * cnote_old_pr_flags_buf)12446635Sab196087 conv_cnote_old_pr_flags(int flags, Conv_fmt_flags_t fmt_flags,
12456635Sab196087 Conv_cnote_old_pr_flags_buf_t *cnote_old_pr_flags_buf)
12466635Sab196087 {
12476635Sab196087 /*
12486635Sab196087 * <sys/old_procfs.h> defines names for many of these flags
12496635Sab196087 * that are also defined in <sys/procfs.h>, but with different
12506635Sab196087 * values. To avoid confusion, we don't include <sys/old_procfs.h>,
12516635Sab196087 * and specify the values directly.
12526635Sab196087 */
12539273SAli.Bahrami@Sun.COM static const Val_desc vda[] = {
12549273SAli.Bahrami@Sun.COM { 0x0001, MSG_PR_FLAGS_STOPPED },
12559273SAli.Bahrami@Sun.COM { 0x0002, MSG_PR_FLAGS_ISTOP },
12569273SAli.Bahrami@Sun.COM { 0x0004, MSG_PR_FLAGS_DSTOP },
12579273SAli.Bahrami@Sun.COM { 0x0008, MSG_PR_FLAGS_ASLEEP },
12589273SAli.Bahrami@Sun.COM { 0x0010, MSG_PR_FLAGS_FORK },
12599273SAli.Bahrami@Sun.COM { 0x0020, MSG_PR_FLAGS_RLC },
12609273SAli.Bahrami@Sun.COM { 0x0040, MSG_PR_FLAGS_PTRACE },
12619273SAli.Bahrami@Sun.COM { 0x0080, MSG_PR_FLAGS_PCINVAL },
12629273SAli.Bahrami@Sun.COM { 0x0100, MSG_PR_FLAGS_ISSYS },
12639273SAli.Bahrami@Sun.COM { 0x0200, MSG_PR_FLAGS_STEP },
12649273SAli.Bahrami@Sun.COM { 0x0400, MSG_PR_FLAGS_KLC },
12659273SAli.Bahrami@Sun.COM { 0x0800, MSG_PR_FLAGS_ASYNC },
12669273SAli.Bahrami@Sun.COM { 0x1000, MSG_PR_FLAGS_PCOMPAT },
12679273SAli.Bahrami@Sun.COM { 0x2000, MSG_PR_FLAGS_MSACCT },
12689273SAli.Bahrami@Sun.COM { 0x4000, MSG_PR_FLAGS_BPTADJ },
12699273SAli.Bahrami@Sun.COM { 0x8000, MSG_PR_FLAGS_ASLWP },
12706635Sab196087 { 0, 0 }
12716635Sab196087 };
12726635Sab196087 static CONV_EXPN_FIELD_ARG conv_arg = {
12739273SAli.Bahrami@Sun.COM NULL, sizeof (cnote_old_pr_flags_buf->buf) };
12746635Sab196087
12756635Sab196087 if (flags == 0)
12766635Sab196087 return (MSG_ORIG(MSG_GBL_ZERO));
12776635Sab196087
12786635Sab196087 conv_arg.buf = cnote_old_pr_flags_buf->buf;
12796635Sab196087 conv_arg.oflags = conv_arg.rflags = flags;
12809273SAli.Bahrami@Sun.COM (void) conv_expn_field(&conv_arg, vda, fmt_flags);
12816635Sab196087
12826635Sab196087 return ((const char *)cnote_old_pr_flags_buf->buf);
12836635Sab196087 }
12846635Sab196087
12856635Sab196087
12866635Sab196087 #define PROCFLGSZ CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
12876635Sab196087 MSG_PROC_FLAG_SSYS_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12886635Sab196087 MSG_PROC_FLAG_SMSACCT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12896635Sab196087 CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
12906635Sab196087
12916635Sab196087 /*
12926635Sab196087 * Ensure that Conv_cnote_proc_flag_buf_t is large enough:
12936635Sab196087 *
12946635Sab196087 * PROCFLGSZ is the real minimum size of the buffer required by
12956635Sab196087 * conv_cnote_proc_flag(). However, Conv_cnote_proc_flag_buf_t
12966635Sab196087 * uses CONV_CNOTE_PROC_FLAG_BUFSIZE to set the buffer size. We do
12976635Sab196087 * things this way because the definition of PROCFLGSZ uses information
12986635Sab196087 * that is not available in the environment of other programs
12996635Sab196087 * that include the conv.h header file.
13006635Sab196087 */
13016635Sab196087 #if (CONV_CNOTE_PROC_FLAG_BUFSIZE != PROCFLGSZ) && !defined(__lint)
13026635Sab196087 #define REPORT_BUFSIZE PROCFLGSZ
13036635Sab196087 #include "report_bufsize.h"
13046635Sab196087 #error "CONV_CNOTE_PROC_FLAG_BUFSIZE does not match PROCFLGSZ"
13056635Sab196087 #endif
13066635Sab196087
13076635Sab196087 const char *
conv_cnote_proc_flag(int flags,Conv_fmt_flags_t fmt_flags,Conv_cnote_proc_flag_buf_t * cnote_proc_flag_buf)13086635Sab196087 conv_cnote_proc_flag(int flags, Conv_fmt_flags_t fmt_flags,
13096635Sab196087 Conv_cnote_proc_flag_buf_t *cnote_proc_flag_buf)
13106635Sab196087 {
13116635Sab196087 /*
13126635Sab196087 * Most of the proc flags are implementation dependant, and can
13136635Sab196087 * change between releases. As such, we do not attempt to translate
13146635Sab196087 * them to symbolic form, but simply report them in hex form.
13156635Sab196087 * However, SMSACCT and SSYS are special, and their bit values
13166635Sab196087 * are maintained between releases so they can be used in the
13176635Sab196087 * psinfo_t.p_flag field. We therefore translate these items.
13186635Sab196087 *
13196635Sab196087 * See <system/proc.h>
13206635Sab196087 *
13216635Sab196087 * Note: We don't want to include <sys/proc.h> in this file, because
13226635Sab196087 * it redefines 'struct list', which we have defined in sgs.h. As
13236635Sab196087 * SMSACCT and SSYS are stable public values, we simply use
13246635Sab196087 * their numeric value.
13256635Sab196087 */
13269273SAli.Bahrami@Sun.COM static const Val_desc vda[] = {
13279273SAli.Bahrami@Sun.COM { 0x00000001, MSG_PROC_FLAG_SSYS },
13289273SAli.Bahrami@Sun.COM { 0x02000000, MSG_PROC_FLAG_SMSACCT },
13296635Sab196087 { 0, 0 }
13306635Sab196087 };
13316635Sab196087 static CONV_EXPN_FIELD_ARG conv_arg = {
13329273SAli.Bahrami@Sun.COM NULL, sizeof (cnote_proc_flag_buf->buf) };
13336635Sab196087
13346635Sab196087 if (flags == 0)
13356635Sab196087 return (MSG_ORIG(MSG_GBL_ZERO));
13366635Sab196087
13376635Sab196087 conv_arg.buf = cnote_proc_flag_buf->buf;
13386635Sab196087 conv_arg.oflags = conv_arg.rflags = flags;
13399273SAli.Bahrami@Sun.COM (void) conv_expn_field(&conv_arg, vda, fmt_flags);
13406635Sab196087
13416635Sab196087 return ((const char *)cnote_proc_flag_buf->buf);
13426635Sab196087 }
13436635Sab196087
13446635Sab196087
13456635Sab196087 #define SAFLGSZ CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
13466635Sab196087 MSG_SA_ONSTACK_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
13476635Sab196087 MSG_SA_RESETHAND_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
13486635Sab196087 MSG_SA_RESTART_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
13496635Sab196087 MSG_SA_SIGINFO_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
13506635Sab196087 MSG_SA_NODEFER_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
13516635Sab196087 MSG_SA_NOCLDWAIT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
13526635Sab196087 MSG_SA_NOCLDSTOP_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
13536635Sab196087 CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
13546635Sab196087
13556635Sab196087 /*
13566635Sab196087 * Ensure that Conv_cnote_sa_flags_buf_t is large enough:
13576635Sab196087 *
13586635Sab196087 * SAFLGSZ is the real minimum size of the buffer required by
13596635Sab196087 * conv_cnote_sa_flags(). However, Conv_cnote_sa_flags_buf_t
13606635Sab196087 * uses CONV_CNOTE_SA_FLAGS_BUFSIZE to set the buffer size. We do
13616635Sab196087 * things this way because the definition of SAFLGSZ uses information
13626635Sab196087 * that is not available in the environment of other programs
13636635Sab196087 * that include the conv.h header file.
13646635Sab196087 */
13656635Sab196087 #if (CONV_CNOTE_SA_FLAGS_BUFSIZE != SAFLGSZ) && !defined(__lint)
13666635Sab196087 #define REPORT_BUFSIZE SAFLGSZ
13676635Sab196087 #include "report_bufsize.h"
13686635Sab196087 #error "CONV_CNOTE_SA_FLAGS_BUFSIZE does not match SAFLGSZ"
13696635Sab196087 #endif
13706635Sab196087
13716635Sab196087 const char *
conv_cnote_sa_flags(int flags,Conv_fmt_flags_t fmt_flags,Conv_cnote_sa_flags_buf_t * cnote_sa_flags_buf)13726635Sab196087 conv_cnote_sa_flags(int flags, Conv_fmt_flags_t fmt_flags,
13736635Sab196087 Conv_cnote_sa_flags_buf_t *cnote_sa_flags_buf)
13746635Sab196087 {
13759273SAli.Bahrami@Sun.COM static const Val_desc vda[] = {
13769273SAli.Bahrami@Sun.COM { SA_ONSTACK, MSG_SA_ONSTACK },
13779273SAli.Bahrami@Sun.COM { SA_RESETHAND, MSG_SA_RESETHAND },
13789273SAli.Bahrami@Sun.COM { SA_RESTART, MSG_SA_RESTART },
13799273SAli.Bahrami@Sun.COM { SA_SIGINFO, MSG_SA_SIGINFO },
13809273SAli.Bahrami@Sun.COM { SA_NODEFER, MSG_SA_NODEFER },
13819273SAli.Bahrami@Sun.COM { SA_NOCLDWAIT, MSG_SA_NOCLDWAIT },
13829273SAli.Bahrami@Sun.COM { SA_NOCLDSTOP, MSG_SA_NOCLDSTOP },
13836635Sab196087 { 0, 0 }
13846635Sab196087 };
13856635Sab196087 static CONV_EXPN_FIELD_ARG conv_arg = {
13869273SAli.Bahrami@Sun.COM NULL, sizeof (cnote_sa_flags_buf->buf) };
13876635Sab196087
13886635Sab196087 if (flags == 0)
13896635Sab196087 return (MSG_ORIG(MSG_GBL_ZERO));
13906635Sab196087
13916635Sab196087 conv_arg.buf = cnote_sa_flags_buf->buf;
13926635Sab196087 conv_arg.oflags = conv_arg.rflags = flags;
13939273SAli.Bahrami@Sun.COM (void) conv_expn_field(&conv_arg, vda, fmt_flags);
13946635Sab196087
13956635Sab196087 return ((const char *)cnote_sa_flags_buf->buf);
13966635Sab196087 }
13976635Sab196087
13986635Sab196087
13996635Sab196087 #define SSFLGSZ CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
14006635Sab196087 MSG_SS_ONSTACK_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
14016635Sab196087 MSG_SS_DISABLE_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
14026635Sab196087 CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
14036635Sab196087
14046635Sab196087 /*
14056635Sab196087 * Ensure that Conv_cnote_ss_flags_buf_t is large enough:
14066635Sab196087 *
14076635Sab196087 * SSFLGSZ is the real minimum size of the buffer required by
14086635Sab196087 * conv_cnote_ss_flags(). However, Conv_cnote_ss_flags_buf_t
14096635Sab196087 * uses CONV_CNOTE_SS_FLAGS_BUFSIZE to set the buffer size. We do
14106635Sab196087 * things this way because the definition of SSFLGSZ uses information
14116635Sab196087 * that is not available in the environment of other programs
14126635Sab196087 * that include the conv.h header file.
14136635Sab196087 */
14146635Sab196087 #if (CONV_CNOTE_SS_FLAGS_BUFSIZE != SSFLGSZ) && !defined(__lint)
14156635Sab196087 #define REPORT_BUFSIZE SSFLGSZ
14166635Sab196087 #include "report_bufsize.h"
14176635Sab196087 #error "CONV_CNOTE_SS_FLAGS_BUFSIZE does not match SSFLGSZ"
14186635Sab196087 #endif
14196635Sab196087
14206635Sab196087 const char *
conv_cnote_ss_flags(int flags,Conv_fmt_flags_t fmt_flags,Conv_cnote_ss_flags_buf_t * cnote_ss_flags_buf)14216635Sab196087 conv_cnote_ss_flags(int flags, Conv_fmt_flags_t fmt_flags,
14226635Sab196087 Conv_cnote_ss_flags_buf_t *cnote_ss_flags_buf)
14236635Sab196087 {
14249273SAli.Bahrami@Sun.COM static const Val_desc vda[] = {
14259273SAli.Bahrami@Sun.COM { SS_ONSTACK, MSG_SS_ONSTACK },
14269273SAli.Bahrami@Sun.COM { SS_DISABLE, MSG_SS_DISABLE },
14276635Sab196087 { 0, 0 }
14286635Sab196087 };
14296635Sab196087 static CONV_EXPN_FIELD_ARG conv_arg = {
14309273SAli.Bahrami@Sun.COM NULL, sizeof (cnote_ss_flags_buf->buf) };
14316635Sab196087
14326635Sab196087 if (flags == 0)
14336635Sab196087 return (MSG_ORIG(MSG_GBL_ZERO));
14346635Sab196087
14356635Sab196087 conv_arg.buf = cnote_ss_flags_buf->buf;
14366635Sab196087 conv_arg.oflags = conv_arg.rflags = flags;
14379273SAli.Bahrami@Sun.COM (void) conv_expn_field(&conv_arg, vda, fmt_flags);
14386635Sab196087
14396635Sab196087 return ((const char *)cnote_ss_flags_buf->buf);
14406635Sab196087 }
14416635Sab196087
14426635Sab196087
14436635Sab196087 /*
14446635Sab196087 * Solaris has a variety of types that use bitmasks to represent
14456635Sab196087 * sets of things like signals (sigset_t), faults (fltset_t), and
14466635Sab196087 * system calls (sysset_t). These types use arrays of unsigned 32-bit
14476635Sab196087 * integers to represent the set. These are public types that
14486635Sab196087 * cannot be changed, so they are generously oversized to allow
14496635Sab196087 * for future growth. Hence, there are usually unused bits.
14506635Sab196087 *
14516635Sab196087 * conv_bitmaskset() generalizes the process of displaying these items.
14526635Sab196087 */
14536635Sab196087
14546635Sab196087 typedef struct {
14559273SAli.Bahrami@Sun.COM const Val_desc *vdp; /* NULL, or bitmask description */
14566635Sab196087 uint32_t unused_bits; /* Mask of undefined bits */
14576635Sab196087 } conv_bitmaskset_desc_t;
14586635Sab196087
14596635Sab196087 /*
14606635Sab196087 * entry:
14616635Sab196087 * n_mask - # of 32-bit masks that make up this bitmask type.
14626635Sab196087 * maskarr - Array of n_mask 32-bit mask values
14636635Sab196087 * bitmask_descarr - Array of n_mask bitmask_desc_t descriptors,
14646635Sab196087 * one for each mask, specifying the bitmask names, and
14656635Sab196087 * a mask of the bits that are not defined by the system.
14666635Sab196087 * fmt_flags - CONV_FMT_* values, used to specify formatting details.
14676635Sab196087 * conv_buf - Buffer to receive formatted results
14686635Sab196087 * conv_buf_size - Size of conv_buf, including room for NULL termination
14696635Sab196087 */
14706635Sab196087 static const char *
conv_bitmaskset(uint32_t * maskarr,int n_mask,const conv_bitmaskset_desc_t * bitmask_descarr,Conv_fmt_flags_t fmt_flags,char * conv_buf,size_t conv_buf_size)14716635Sab196087 conv_bitmaskset(uint32_t *maskarr, int n_mask,
14729273SAli.Bahrami@Sun.COM const conv_bitmaskset_desc_t *bitmask_descarr, Conv_fmt_flags_t fmt_flags,
14736635Sab196087 char *conv_buf, size_t conv_buf_size)
14746635Sab196087 {
14756635Sab196087 CONV_EXPN_FIELD_ARG conv_arg;
14766635Sab196087 int i, need_sep = 0;
14776635Sab196087
14786635Sab196087 /* If every bit of every mask is 0, return 0 as the result */
14796635Sab196087 for (i = 0; i < n_mask; i++)
14806635Sab196087 if (maskarr[i] != 0)
14816635Sab196087 break;
14826635Sab196087 if (i == n_mask)
14836635Sab196087 return (MSG_ORIG(MSG_GBL_ZERO));
14846635Sab196087
14856635Sab196087 /*
14866635Sab196087 * At least one bit is non-zero. Move through the masks
14876635Sab196087 * and process each one.
14886635Sab196087 */
14896635Sab196087 (void) memset(&conv_arg, 0, sizeof (conv_arg));
14906635Sab196087 conv_arg.bufsize = conv_buf_size;
14916635Sab196087 conv_arg.buf = conv_buf;
14926635Sab196087 if ((fmt_flags & CONV_FMT_NOBKT) == 0) {
14936635Sab196087 *conv_arg.buf++ = '[';
14946635Sab196087 *conv_arg.buf++ = ' ';
14956635Sab196087 conv_arg.bufsize -= 2;
14966635Sab196087 }
14976635Sab196087
14986635Sab196087 /*
14996635Sab196087 * conv_expn_field() orders its output with the most significant
15006635Sab196087 * bits on the left. To preserve this ordering across the
15016635Sab196087 * subwords or our "virtual bitmask", we need to process
15026635Sab196087 * the sub-words in the same order, from most significant down
15036635Sab196087 * to least significant. Since unassigned bits tend to be at
15046635Sab196087 * the MSB end of the word, we process the unused bits first.
15056635Sab196087 *
15066635Sab196087 * One implication of this is that the caller should not use
15076635Sab196087 * the unassigned bits for "abandoned" bits in the middle of
15086635Sab196087 * a used range, but should instead define the string for
15096635Sab196087 * that bit as being the string representation of that decimal
15106635Sab196087 * value (i.e. "65"). That will cause the bit to be properly
15116635Sab196087 * sorted among the named bits to either side of it.
15126635Sab196087 */
15136635Sab196087 for (i = 0; i < n_mask; i++) {
15146635Sab196087 size_t n;
15156635Sab196087 uint32_t mask, unused_bits;
15166635Sab196087 const int bits_per_mask = sizeof (mask) * 8;
15176635Sab196087
15186635Sab196087 mask = maskarr[i];
15196635Sab196087 unused_bits = mask & bitmask_descarr[i].unused_bits;
15206635Sab196087 mask &= ~unused_bits;
15216635Sab196087
15226635Sab196087 if (mask != 0) {
15236635Sab196087
15246635Sab196087 conv_arg.oflags = conv_arg.rflags = mask;
15256635Sab196087 if (need_sep) {
15266635Sab196087 *conv_arg.buf++ = ' ';
15276635Sab196087 conv_arg.bufsize--;
15286635Sab196087 }
15296635Sab196087 need_sep = 1;
15306635Sab196087 (void) conv_expn_field(&conv_arg,
15319273SAli.Bahrami@Sun.COM bitmask_descarr[i].vdp, fmt_flags | CONV_FMT_NOBKT);
15326635Sab196087 n = strlen(conv_arg.buf);
15336635Sab196087 conv_arg.bufsize -= n;
15346635Sab196087 conv_arg.buf += n;
15356635Sab196087 }
15366635Sab196087
15376635Sab196087 if (unused_bits != 0) {
15386635Sab196087 uint32_t bit = 0x00000001;
15396635Sab196087 int j;
15406635Sab196087
15416635Sab196087 for (j = 1; j <= bits_per_mask; j++, bit *= 2) {
15426635Sab196087 if ((unused_bits & bit) == 0)
15436635Sab196087 continue;
15446635Sab196087
15456635Sab196087 if (need_sep) {
15466635Sab196087 *conv_arg.buf++ = ' ';
15476635Sab196087 conv_arg.bufsize--;
15486635Sab196087 }
15496635Sab196087 need_sep = 1;
15506635Sab196087 n = snprintf(conv_arg.buf, conv_arg.bufsize,
15516635Sab196087 MSG_ORIG(MSG_FMT_WORD),
15526635Sab196087 EC_WORD(j + (bits_per_mask * i)));
15536635Sab196087 conv_arg.buf += n;
15546635Sab196087 conv_arg.bufsize -= n;
15556635Sab196087 }
15566635Sab196087 }
15576635Sab196087 }
15586635Sab196087 if ((fmt_flags & CONV_FMT_NOBKT) == 0) {
15596635Sab196087 *conv_arg.buf++ = ' ';
15606635Sab196087 *conv_arg.buf++ = ']';
15616635Sab196087 }
15626635Sab196087 *conv_arg.buf = '\0';
15636635Sab196087
15646635Sab196087 return ((const char *) conv_buf);
15656635Sab196087 }
15666635Sab196087
15676635Sab196087
15686635Sab196087 #define SIGSET_FLAGSZ CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
15696635Sab196087 /* sigset_t [0] - Signals [1 - 32] */ \
15706635Sab196087 MSG_SIGHUP_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15716635Sab196087 MSG_SIGINT_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15726635Sab196087 MSG_SIGQUIT_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15736635Sab196087 MSG_SIGILL_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15746635Sab196087 MSG_SIGTRAP_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15756635Sab196087 MSG_SIGABRT_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15766635Sab196087 MSG_SIGEMT_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15776635Sab196087 MSG_SIGFPE_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15786635Sab196087 MSG_SIGKILL_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15796635Sab196087 MSG_SIGBUS_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15806635Sab196087 MSG_SIGSEGV_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15816635Sab196087 MSG_SIGSYS_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15826635Sab196087 MSG_SIGPIPE_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15836635Sab196087 MSG_SIGALRM_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15846635Sab196087 MSG_SIGTERM_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15856635Sab196087 MSG_SIGUSR1_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15866635Sab196087 MSG_SIGUSR2_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15876635Sab196087 MSG_SIGCHLD_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15886635Sab196087 MSG_SIGPWR_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15896635Sab196087 MSG_SIGWINCH_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15906635Sab196087 MSG_SIGURG_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15916635Sab196087 MSG_SIGPOLL_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15926635Sab196087 MSG_SIGSTOP_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15936635Sab196087 MSG_SIGTSTP_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15946635Sab196087 MSG_SIGCONT_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15956635Sab196087 MSG_SIGTTIN_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15966635Sab196087 MSG_SIGTTOU_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15976635Sab196087 MSG_SIGVTALRM_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15986635Sab196087 MSG_SIGPROF_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
15996635Sab196087 MSG_SIGXCPU_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
16006635Sab196087 MSG_SIGXFSZ_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
16016635Sab196087 MSG_SIGWAITING_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
16026635Sab196087 \
16036635Sab196087 /* \
16046635Sab196087 * sigset_t [1] - Signals [33 - 64] \
16056635Sab196087 * There are 24 unused bits, each of which needs two \
16066635Sab196087 * characters plus a separator. \
16076635Sab196087 */ \
16086635Sab196087 MSG_SIGLWP_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
16096635Sab196087 MSG_SIGFREEZE_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
16106635Sab196087 MSG_SIGTHAW_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
16116635Sab196087 MSG_SIGCANCEL_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
16126635Sab196087 MSG_SIGLOST_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
16136635Sab196087 MSG_SIGXRES_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
16146635Sab196087 MSG_SIGJVM1_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
16156635Sab196087 MSG_SIGJVM2_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
16166635Sab196087 (24 * (2 + CONV_EXPN_FIELD_DEF_SEP_SIZE)) + \
16176635Sab196087 \
16186635Sab196087 /* \
16196635Sab196087 * sigset_t [2] - Signals [65 - 96] \
16206635Sab196087 * There are 32 unused bits, each of which needs two \
16216635Sab196087 * characters plus a separator. \
16226635Sab196087 */ \
16236635Sab196087 (32 * (2 + CONV_EXPN_FIELD_DEF_SEP_SIZE)) + \
16246635Sab196087 \
16256635Sab196087 /* \
16266635Sab196087 * sigset_t [2] - Signals [97 - 128] \
16276635Sab196087 * There are 32 unused bits. Three of these need two \
16286635Sab196087 * characters, and 29 need 3. Each one needs a separator. \
16296635Sab196087 */ \
16306635Sab196087 (3 * (2 + CONV_EXPN_FIELD_DEF_SEP_SIZE)) + \
16316635Sab196087 (29 * (3 + CONV_EXPN_FIELD_DEF_SEP_SIZE)) + \
16326635Sab196087 \
16336635Sab196087 CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
16346635Sab196087
16356635Sab196087 /*
16366635Sab196087 * Ensure that Conv_cnote_sigset_buf_t is large enough:
16376635Sab196087 *
16386635Sab196087 * SIGSET_FLAGSZ is the real minimum size of the buffer required by
16396635Sab196087 * conv_cnote_sigset(). However, Conv_cnote_sigset_buf_t
16406635Sab196087 * uses CONV_CNOTE_SIGSET_BUFSIZE to set the buffer size. We do
16416635Sab196087 * things this way because the definition of SIGSET_FLAGSZ uses information
16426635Sab196087 * that is not available in the environment of other programs
16436635Sab196087 * that include the conv.h header file.
16446635Sab196087 */
16456635Sab196087 #if (CONV_CNOTE_SIGSET_BUFSIZE != SIGSET_FLAGSZ) && !defined(__lint)
16466635Sab196087 #define REPORT_BUFSIZE SIGSET_FLAGSZ
16476635Sab196087 #include "report_bufsize.h"
16486635Sab196087 #error "CONV_CNOTE_SIGSET_BUFSIZE does not match SIGSET_FLAGSZ"
16496635Sab196087 #endif
16506635Sab196087
16516635Sab196087 const char *
conv_cnote_sigset(uint32_t * maskarr,int n_mask,Conv_fmt_flags_t fmt_flags,Conv_cnote_sigset_buf_t * cnote_sigset_buf)16526635Sab196087 conv_cnote_sigset(uint32_t *maskarr, int n_mask,
16536635Sab196087 Conv_fmt_flags_t fmt_flags, Conv_cnote_sigset_buf_t *cnote_sigset_buf)
16546635Sab196087 {
16556635Sab196087 #define N_MASK 4
16566635Sab196087
16579273SAli.Bahrami@Sun.COM static const Val_desc vda0[] = {
16589273SAli.Bahrami@Sun.COM { 0x00000001, MSG_SIGHUP_ALT },
16599273SAli.Bahrami@Sun.COM { 0x00000002, MSG_SIGINT_ALT },
16609273SAli.Bahrami@Sun.COM { 0x00000004, MSG_SIGQUIT_ALT },
16619273SAli.Bahrami@Sun.COM { 0x00000008, MSG_SIGILL_ALT },
16629273SAli.Bahrami@Sun.COM { 0x00000010, MSG_SIGTRAP_ALT },
16639273SAli.Bahrami@Sun.COM { 0x00000020, MSG_SIGABRT_ALT },
16649273SAli.Bahrami@Sun.COM { 0x00000040, MSG_SIGEMT_ALT },
16659273SAli.Bahrami@Sun.COM { 0x00000080, MSG_SIGFPE_ALT },
16669273SAli.Bahrami@Sun.COM { 0x00000100, MSG_SIGKILL_ALT },
16679273SAli.Bahrami@Sun.COM { 0x00000200, MSG_SIGBUS_ALT },
16689273SAli.Bahrami@Sun.COM { 0x00000400, MSG_SIGSEGV_ALT },
16699273SAli.Bahrami@Sun.COM { 0x00000800, MSG_SIGSYS_ALT },
16709273SAli.Bahrami@Sun.COM { 0x00001000, MSG_SIGPIPE_ALT },
16719273SAli.Bahrami@Sun.COM { 0x00002000, MSG_SIGALRM_ALT },
16729273SAli.Bahrami@Sun.COM { 0x00004000, MSG_SIGTERM_ALT },
16739273SAli.Bahrami@Sun.COM { 0x00008000, MSG_SIGUSR1_ALT },
16749273SAli.Bahrami@Sun.COM { 0x00010000, MSG_SIGUSR2_ALT },
16759273SAli.Bahrami@Sun.COM { 0x00020000, MSG_SIGCHLD_ALT },
16769273SAli.Bahrami@Sun.COM { 0x00040000, MSG_SIGPWR_ALT },
16779273SAli.Bahrami@Sun.COM { 0x00080000, MSG_SIGWINCH_ALT },
16789273SAli.Bahrami@Sun.COM { 0x00100000, MSG_SIGURG_ALT },
16799273SAli.Bahrami@Sun.COM { 0x00200000, MSG_SIGPOLL_ALT },
16809273SAli.Bahrami@Sun.COM { 0x00400000, MSG_SIGSTOP_ALT },
16819273SAli.Bahrami@Sun.COM { 0x00800000, MSG_SIGTSTP_ALT },
16829273SAli.Bahrami@Sun.COM { 0x01000000, MSG_SIGCONT_ALT },
16839273SAli.Bahrami@Sun.COM { 0x02000000, MSG_SIGTTIN_ALT },
16849273SAli.Bahrami@Sun.COM { 0x04000000, MSG_SIGTTOU_ALT },
16859273SAli.Bahrami@Sun.COM { 0x08000000, MSG_SIGVTALRM_ALT },
16869273SAli.Bahrami@Sun.COM { 0x10000000, MSG_SIGPROF_ALT },
16879273SAli.Bahrami@Sun.COM { 0x20000000, MSG_SIGXCPU_ALT },
16889273SAli.Bahrami@Sun.COM { 0x40000000, MSG_SIGXFSZ_ALT },
16899273SAli.Bahrami@Sun.COM { 0x80000000, MSG_SIGWAITING_ALT },
16906635Sab196087 { 0, 0 }
16916635Sab196087 };
16929273SAli.Bahrami@Sun.COM static const Val_desc vda1[] = {
16939273SAli.Bahrami@Sun.COM { 0x00000001, MSG_SIGLWP_ALT },
16949273SAli.Bahrami@Sun.COM { 0x00000002, MSG_SIGFREEZE_ALT },
16959273SAli.Bahrami@Sun.COM { 0x00000004, MSG_SIGTHAW_ALT },
16969273SAli.Bahrami@Sun.COM { 0x00000008, MSG_SIGCANCEL_ALT },
16979273SAli.Bahrami@Sun.COM { 0x00000010, MSG_SIGLOST_ALT },
16989273SAli.Bahrami@Sun.COM { 0x00000020, MSG_SIGXRES_ALT },
16999273SAli.Bahrami@Sun.COM { 0x00000040, MSG_SIGJVM1_ALT },
17009273SAli.Bahrami@Sun.COM { 0x00000080, MSG_SIGJVM2_ALT },
17016635Sab196087 { 0, 0 }
17026635Sab196087 };
17039273SAli.Bahrami@Sun.COM static const conv_bitmaskset_desc_t bitmask_desc[N_MASK] = {
17046635Sab196087 { vda0, 0 },
17056635Sab196087 { vda1, 0xffffff00 },
17066635Sab196087 { NULL, 0xffffffff },
17076635Sab196087 { NULL, 0xffffffff }
17086635Sab196087 };
17096635Sab196087
17106635Sab196087 if (n_mask > N_MASK)
17116635Sab196087 n_mask = N_MASK;
17126635Sab196087 return (conv_bitmaskset(maskarr, n_mask, bitmask_desc, fmt_flags,
17136635Sab196087 cnote_sigset_buf->buf, CONV_CNOTE_SIGSET_BUFSIZE));
17146635Sab196087
17156635Sab196087 #undef N_MASK
17166635Sab196087 }
17176635Sab196087
17186635Sab196087
17196635Sab196087 #define FLTSET_FLAGSZ CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
17206635Sab196087 /* \
17216635Sab196087 * fltset_t[0] - Faults [1 - 32] \
17226635Sab196087 * There are 19 unused bits, each of which needs two \
17236635Sab196087 * characters plus a separator. \
17246635Sab196087 */ \
17256635Sab196087 MSG_FLTILL_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17266635Sab196087 MSG_FLTPRIV_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17276635Sab196087 MSG_FLTBPT_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17286635Sab196087 MSG_FLTTRACE_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17296635Sab196087 MSG_FLTACCESS_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17306635Sab196087 MSG_FLTBOUNDS_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17316635Sab196087 MSG_FLTIOVF_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17326635Sab196087 MSG_FLTIZDIV_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17336635Sab196087 MSG_FLTFPE_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17346635Sab196087 MSG_FLTSTACK_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17356635Sab196087 MSG_FLTPAGE_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17366635Sab196087 MSG_FLTWATCH_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17376635Sab196087 MSG_FLTCPCOVF_ALT_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
17386635Sab196087 (19 * (2 + CONV_EXPN_FIELD_DEF_SEP_SIZE)) + \
17396635Sab196087 /* \
17406635Sab196087 * fltset_t [1] - Faults [33 - 64] \
17416635Sab196087 * There are 32 unused bits, each of which needs two \
17426635Sab196087 * characters plus a separator. \
17436635Sab196087 */ \
17446635Sab196087 (32 * (2 + CONV_EXPN_FIELD_DEF_SEP_SIZE)) + \
17456635Sab196087 /* \
17466635Sab196087 * fltset_t [2] - Faults [65 - 96] \
17476635Sab196087 * There are 32 unused bits, each of which needs two \
17486635Sab196087 * characters plus a separator. \
17496635Sab196087 */ \
17506635Sab196087 (32 * (2 + CONV_EXPN_FIELD_DEF_SEP_SIZE)) + \
17516635Sab196087 /* \
17526635Sab196087 * fltset_t [3] - Faults [97 - 128] \
17536635Sab196087 * There are 32 unused bits. Three of these need two \
17546635Sab196087 * characters, and 29 need 3. Each one needs a separator. \
17556635Sab196087 */ \
17566635Sab196087 (3 * (2 + CONV_EXPN_FIELD_DEF_SEP_SIZE)) + \
17576635Sab196087 (29 * (3 + CONV_EXPN_FIELD_DEF_SEP_SIZE)) + \
17586635Sab196087 \
17596635Sab196087 CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
17606635Sab196087
17616635Sab196087 /*
17626635Sab196087 * Ensure that Conv_cnote_fltset_buf_t is large enough:
17636635Sab196087 *
17646635Sab196087 * FLTSET_FLAGSZ is the real minimum size of the buffer required by
17656635Sab196087 * conv_cnote_fltset(). However, Conv_cnote_fltset_buf_t
17666635Sab196087 * uses CONV_CNOTE_FLTSET_BUFSIZE to set the buffer size. We do
17676635Sab196087 * things this way because the definition of FLTSET_FLAGSZ uses information
17686635Sab196087 * that is not available in the environment of other programs
17696635Sab196087 * that include the conv.h header file.
17706635Sab196087 */
17716635Sab196087 #if (CONV_CNOTE_FLTSET_BUFSIZE != FLTSET_FLAGSZ) && !defined(__lint)
17726635Sab196087 #define REPORT_BUFSIZE FLTSET_FLAGSZ
17736635Sab196087 #include "report_bufsize.h"
17746635Sab196087 #error "CONV_CNOTE_FLTSET_BUFSIZE does not match FLTSET_FLAGSZ"
17756635Sab196087 #endif
17766635Sab196087
17776635Sab196087 const char *
conv_cnote_fltset(uint32_t * maskarr,int n_mask,Conv_fmt_flags_t fmt_flags,Conv_cnote_fltset_buf_t * cnote_fltset_buf)17786635Sab196087 conv_cnote_fltset(uint32_t *maskarr, int n_mask,
17796635Sab196087 Conv_fmt_flags_t fmt_flags, Conv_cnote_fltset_buf_t *cnote_fltset_buf)
17806635Sab196087 {
17816635Sab196087 #define N_MASK 4
17826635Sab196087
17839273SAli.Bahrami@Sun.COM static const Val_desc vda0[] = {
17849273SAli.Bahrami@Sun.COM { 0x00000001, MSG_FLTILL_ALT },
17859273SAli.Bahrami@Sun.COM { 0x00000002, MSG_FLTPRIV_ALT },
17869273SAli.Bahrami@Sun.COM { 0x00000004, MSG_FLTBPT_ALT },
17879273SAli.Bahrami@Sun.COM { 0x00000008, MSG_FLTTRACE_ALT },
17889273SAli.Bahrami@Sun.COM { 0x00000010, MSG_FLTACCESS_ALT },
17899273SAli.Bahrami@Sun.COM { 0x00000020, MSG_FLTBOUNDS_ALT },
17909273SAli.Bahrami@Sun.COM { 0x00000040, MSG_FLTIOVF_ALT },
17919273SAli.Bahrami@Sun.COM { 0x00000080, MSG_FLTIZDIV_ALT },
17929273SAli.Bahrami@Sun.COM { 0x00000100, MSG_FLTFPE_ALT },
17939273SAli.Bahrami@Sun.COM { 0x00000200, MSG_FLTSTACK_ALT },
17949273SAli.Bahrami@Sun.COM { 0x00000400, MSG_FLTPAGE_ALT },
17959273SAli.Bahrami@Sun.COM { 0x00000800, MSG_FLTWATCH_ALT },
17969273SAli.Bahrami@Sun.COM { 0x00001000, MSG_FLTCPCOVF_ALT },
17976635Sab196087 { 0, 0 }
17986635Sab196087 };
17999273SAli.Bahrami@Sun.COM static const conv_bitmaskset_desc_t bitmask_desc[N_MASK] = {
18006635Sab196087 { vda0, 0xffffe000 },
18016635Sab196087 { NULL, 0xffffffff },
18026635Sab196087 { NULL, 0xffffffff },
18036635Sab196087 { NULL, 0xffffffff }
18046635Sab196087 };
18056635Sab196087
18066635Sab196087 if (n_mask > N_MASK)
18076635Sab196087 n_mask = N_MASK;
18086635Sab196087 return (conv_bitmaskset(maskarr, n_mask, bitmask_desc, fmt_flags,
18096635Sab196087 cnote_fltset_buf->buf, CONV_CNOTE_FLTSET_BUFSIZE));
18106635Sab196087
18116635Sab196087 #undef N_MASK
18126635Sab196087 }
18136635Sab196087
18146635Sab196087
18156635Sab196087
18166635Sab196087 #define SYSSET_FLAGSZ CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
18176635Sab196087 (512 * CONV_EXPN_FIELD_DEF_SEP_SIZE) + \
18186635Sab196087 \
18196635Sab196087 /* sysset_t[0] - System Calls [1 - 32] */ \
18206635Sab196087 MSG_SYS_EXIT_ALT_SIZE /* 1 */ + \
1821*11798SRoger.Faulkner@Sun.COM MSG_SYS_2_SIZE /* 2 (unused) */ + \
18226635Sab196087 MSG_SYS_READ_ALT_SIZE /* 3 */ + \
18236635Sab196087 MSG_SYS_WRITE_ALT_SIZE /* 4 */ + \
18246635Sab196087 MSG_SYS_OPEN_ALT_SIZE /* 5 */ + \
18256635Sab196087 MSG_SYS_CLOSE_ALT_SIZE /* 6 */ + \
1826*11798SRoger.Faulkner@Sun.COM MSG_SYS_7_SIZE /* 7 (unused) */ + \
1827*11798SRoger.Faulkner@Sun.COM MSG_SYS_8_SIZE /* 8 (unused) */ + \
18286635Sab196087 MSG_SYS_LINK_ALT_SIZE /* 9 */ + \
18296635Sab196087 MSG_SYS_UNLINK_ALT_SIZE /* 10 */ + \
1830*11798SRoger.Faulkner@Sun.COM MSG_SYS_11_SIZE /* 11 (unused) */ + \
18316635Sab196087 MSG_SYS_CHDIR_ALT_SIZE /* 12 */ + \
18326635Sab196087 MSG_SYS_TIME_ALT_SIZE /* 13 */ + \
18336635Sab196087 MSG_SYS_MKNOD_ALT_SIZE /* 14 */ + \
18346635Sab196087 MSG_SYS_CHMOD_ALT_SIZE /* 15 */ + \
18356635Sab196087 MSG_SYS_CHOWN_ALT_SIZE /* 16 */ + \
18366635Sab196087 MSG_SYS_BRK_ALT_SIZE /* 17 */ + \
18376635Sab196087 MSG_SYS_STAT_ALT_SIZE /* 18 */ + \
18386635Sab196087 MSG_SYS_LSEEK_ALT_SIZE /* 19 */ + \
18396635Sab196087 MSG_SYS_GETPID_ALT_SIZE /* 20 */ + \
18406635Sab196087 MSG_SYS_MOUNT_ALT_SIZE /* 21 */ + \
1841*11798SRoger.Faulkner@Sun.COM MSG_SYS_22_SIZE /* 22 (unused) */ + \
18426635Sab196087 MSG_SYS_SETUID_ALT_SIZE /* 23 */ + \
18436635Sab196087 MSG_SYS_GETUID_ALT_SIZE /* 24 */ + \
18446635Sab196087 MSG_SYS_STIME_ALT_SIZE /* 25 */ + \
18456635Sab196087 MSG_SYS_PCSAMPLE_ALT_SIZE /* 26 */ + \
18466635Sab196087 MSG_SYS_ALARM_ALT_SIZE /* 27 */ + \
18476635Sab196087 MSG_SYS_FSTAT_ALT_SIZE /* 28 */ + \
18486635Sab196087 MSG_SYS_PAUSE_ALT_SIZE /* 29 */ + \
1849*11798SRoger.Faulkner@Sun.COM MSG_SYS_30_SIZE /* 30 (unused) */ + \
18506635Sab196087 MSG_SYS_STTY_ALT_SIZE /* 31 */ + \
18516635Sab196087 MSG_SYS_GTTY_ALT_SIZE /* 32 */ + \
18526635Sab196087 \
18536635Sab196087 /* sysset_t[1] - System Calls [33 - 64] */ \
18546635Sab196087 MSG_SYS_ACCESS_ALT_SIZE /* 33 */ + \
18556635Sab196087 MSG_SYS_NICE_ALT_SIZE /* 34 */ + \
18566635Sab196087 MSG_SYS_STATFS_ALT_SIZE /* 35 */ + \
18576635Sab196087 MSG_SYS_SYNC_ALT_SIZE /* 36 */ + \
18586635Sab196087 MSG_SYS_KILL_ALT_SIZE /* 37 */ + \
18596635Sab196087 MSG_SYS_FSTATFS_ALT_SIZE /* 38 */ + \
18606635Sab196087 MSG_SYS_PGRPSYS_ALT_SIZE /* 39 */ + \
18616635Sab196087 MSG_SYS_UUCOPYSTR_ALT_SIZE /* 40 */ + \
1862*11798SRoger.Faulkner@Sun.COM MSG_SYS_41_SIZE /* 41 (unused) */ + \
18636635Sab196087 MSG_SYS_PIPE_ALT_SIZE /* 42 */ + \
18646635Sab196087 MSG_SYS_TIMES_ALT_SIZE /* 43 */ + \
18656635Sab196087 MSG_SYS_PROFIL_ALT_SIZE /* 44 */ + \
1866*11798SRoger.Faulkner@Sun.COM MSG_SYS_FACCESSAT_ALT_SIZE /* 45 */ + \
18676635Sab196087 MSG_SYS_SETGID_ALT_SIZE /* 46 */ + \
18686635Sab196087 MSG_SYS_GETGID_ALT_SIZE /* 47 */ + \
1869*11798SRoger.Faulkner@Sun.COM MSG_SYS_48_SIZE /* 48 (unused) */ + \
18706635Sab196087 MSG_SYS_MSGSYS_ALT_SIZE /* 49 */ + \
18716635Sab196087 MSG_SYS_SYSI86_ALT_SIZE /* 50 */ + \
18726635Sab196087 MSG_SYS_ACCT_ALT_SIZE /* 51 */ + \
18736635Sab196087 MSG_SYS_SHMSYS_ALT_SIZE /* 52 */ + \
18746635Sab196087 MSG_SYS_SEMSYS_ALT_SIZE /* 53 */ + \
18756635Sab196087 MSG_SYS_IOCTL_ALT_SIZE /* 54 */ + \
18766635Sab196087 MSG_SYS_UADMIN_ALT_SIZE /* 55 */ + \
1877*11798SRoger.Faulkner@Sun.COM MSG_SYS_FCHOWNAT_ALT_SIZE /* 56 */ + \
18786635Sab196087 MSG_SYS_UTSSYS_ALT_SIZE /* 57 */ + \
18796635Sab196087 MSG_SYS_FDSYNC_ALT_SIZE /* 58 */ + \
18806635Sab196087 MSG_SYS_EXECVE_ALT_SIZE /* 59 */ + \
18816635Sab196087 MSG_SYS_UMASK_ALT_SIZE /* 60 */ + \
18826635Sab196087 MSG_SYS_CHROOT_ALT_SIZE /* 61 */ + \
18836635Sab196087 MSG_SYS_FCNTL_ALT_SIZE /* 62 */ + \
18846635Sab196087 MSG_SYS_ULIMIT_ALT_SIZE /* 63 */ + \
1885*11798SRoger.Faulkner@Sun.COM MSG_SYS_RENAMEAT_ALT_SIZE /* 64 */ + \
18866635Sab196087 \
18876635Sab196087 /* sysset_t[2] - System Calls [65 - 96] */ \
1888*11798SRoger.Faulkner@Sun.COM MSG_SYS_UNLINKAT_ALT_SIZE /* 65 */ + \
1889*11798SRoger.Faulkner@Sun.COM MSG_SYS_FSTATAT_ALT_SIZE /* 66 */ + \
1890*11798SRoger.Faulkner@Sun.COM MSG_SYS_FSTATAT64_ALT_SIZE /* 67 */ + \
1891*11798SRoger.Faulkner@Sun.COM MSG_SYS_OPENAT_ALT_SIZE /* 68 */ + \
1892*11798SRoger.Faulkner@Sun.COM MSG_SYS_OPENAT64_ALT_SIZE /* 69 */ + \
18936635Sab196087 MSG_SYS_TASKSYS_ALT_SIZE /* 70 */ + \
18946635Sab196087 MSG_SYS_ACCTCTL_ALT_SIZE /* 71 */ + \
18956635Sab196087 MSG_SYS_EXACCTSYS_ALT_SIZE /* 72 */ + \
18966635Sab196087 MSG_SYS_GETPAGESIZES_ALT_SIZE /* 73 */ + \
18976635Sab196087 MSG_SYS_RCTLSYS_ALT_SIZE /* 74 */ + \
18986635Sab196087 MSG_SYS_SIDSYS_ALT_SIZE /* 75 */ + \
1899*11798SRoger.Faulkner@Sun.COM MSG_SYS_76_SIZE /* 76 (unused) */ + \
19006635Sab196087 MSG_SYS_LWP_PARK_ALT_SIZE /* 77 */ + \
19016635Sab196087 MSG_SYS_SENDFILEV_ALT_SIZE /* 78 */ + \
19026635Sab196087 MSG_SYS_RMDIR_ALT_SIZE /* 79 */ + \
19036635Sab196087 MSG_SYS_MKDIR_ALT_SIZE /* 80 */ + \
19046635Sab196087 MSG_SYS_GETDENTS_ALT_SIZE /* 81 */ + \
19056635Sab196087 MSG_SYS_PRIVSYS_ALT_SIZE /* 82 */ + \
19066635Sab196087 MSG_SYS_UCREDSYS_ALT_SIZE /* 83 */ + \
19076635Sab196087 MSG_SYS_SYSFS_ALT_SIZE /* 84 */ + \
19086635Sab196087 MSG_SYS_GETMSG_ALT_SIZE /* 85 */ + \
19096635Sab196087 MSG_SYS_PUTMSG_ALT_SIZE /* 86 */ + \
1910*11798SRoger.Faulkner@Sun.COM MSG_SYS_87_SIZE /* 87 (unused) */ + \
19116635Sab196087 MSG_SYS_LSTAT_ALT_SIZE /* 88 */ + \
19126635Sab196087 MSG_SYS_SYMLINK_ALT_SIZE /* 89 */ + \
19136635Sab196087 MSG_SYS_READLINK_ALT_SIZE /* 90 */ + \
19146635Sab196087 MSG_SYS_SETGROUPS_ALT_SIZE /* 91 */ + \
19156635Sab196087 MSG_SYS_GETGROUPS_ALT_SIZE /* 92 */ + \
19166635Sab196087 MSG_SYS_FCHMOD_ALT_SIZE /* 93 */ + \
19176635Sab196087 MSG_SYS_FCHOWN_ALT_SIZE /* 94 */ + \
19186635Sab196087 MSG_SYS_SIGPROCMASK_ALT_SIZE /* 95 */ + \
19196635Sab196087 MSG_SYS_SIGSUSPEND_ALT_SIZE /* 96 */ + \
19206635Sab196087 \
19216635Sab196087 /* sysset_t[3] - System Calls [97 - 128] */ \
19226635Sab196087 MSG_SYS_SIGALTSTACK_ALT_SIZE /* 97 */ + \
19236635Sab196087 MSG_SYS_SIGACTION_ALT_SIZE /* 98 */ + \
19246635Sab196087 MSG_SYS_SIGPENDING_ALT_SIZE /* 99 */ + \
19256635Sab196087 MSG_SYS_CONTEXT_ALT_SIZE /* 100 */ + \
1926*11798SRoger.Faulkner@Sun.COM MSG_SYS_101_SIZE /* 101 (unused) */ + \
1927*11798SRoger.Faulkner@Sun.COM MSG_SYS_102_SIZE /* 102 (unused) */ + \
19286635Sab196087 MSG_SYS_STATVFS_ALT_SIZE /* 103 */ + \
19296635Sab196087 MSG_SYS_FSTATVFS_ALT_SIZE /* 104 */ + \
19306635Sab196087 MSG_SYS_GETLOADAVG_ALT_SIZE /* 105 */ + \
19316635Sab196087 MSG_SYS_NFSSYS_ALT_SIZE /* 106 */ + \
19326635Sab196087 MSG_SYS_WAITID_ALT_SIZE /* 107 */ + \
19336635Sab196087 MSG_SYS_SIGSENDSYS_ALT_SIZE /* 108 */ + \
19346635Sab196087 MSG_SYS_HRTSYS_ALT_SIZE /* 109 */ + \
1935*11798SRoger.Faulkner@Sun.COM MSG_SYS_UTIMESYS_ALT_SIZE /* 110 */ + \
19366635Sab196087 MSG_SYS_SIGRESEND_ALT_SIZE /* 111 */ + \
19376635Sab196087 MSG_SYS_PRIOCNTLSYS_ALT_SIZE /* 112 */ + \
19386635Sab196087 MSG_SYS_PATHCONF_ALT_SIZE /* 113 */ + \
19396635Sab196087 MSG_SYS_MINCORE_ALT_SIZE /* 114 */ + \
19406635Sab196087 MSG_SYS_MMAP_ALT_SIZE /* 115 */ + \
19416635Sab196087 MSG_SYS_MPROTECT_ALT_SIZE /* 116 */ + \
19426635Sab196087 MSG_SYS_MUNMAP_ALT_SIZE /* 117 */ + \
19436635Sab196087 MSG_SYS_FPATHCONF_ALT_SIZE /* 118 */ + \
19446635Sab196087 MSG_SYS_VFORK_ALT_SIZE /* 119 */ + \
19456635Sab196087 MSG_SYS_FCHDIR_ALT_SIZE /* 120 */ + \
19466635Sab196087 MSG_SYS_READV_ALT_SIZE /* 121 */ + \
19476635Sab196087 MSG_SYS_WRITEV_ALT_SIZE /* 122 */ + \
1948*11798SRoger.Faulkner@Sun.COM MSG_SYS_123_SIZE /* 123 (unused) */ + \
1949*11798SRoger.Faulkner@Sun.COM MSG_SYS_124_SIZE /* 124 (unused) */ + \
1950*11798SRoger.Faulkner@Sun.COM MSG_SYS_125_SIZE /* 125 (unused) */ + \
1951*11798SRoger.Faulkner@Sun.COM MSG_SYS_126_SIZE /* 126 (unused) */ + \
1952*11798SRoger.Faulkner@Sun.COM MSG_SYS_MMAPOBJ_ALT_SIZE /* 127 */ + \
19536635Sab196087 MSG_SYS_SETRLIMIT_ALT_SIZE /* 128 */ + \
19546635Sab196087 \
19556635Sab196087 /* sysset_t[4] - System Calls [129 - 160] */ \
19566635Sab196087 MSG_SYS_GETRLIMIT_ALT_SIZE /* 129 */ + \
19576635Sab196087 MSG_SYS_LCHOWN_ALT_SIZE /* 130 */ + \
19586635Sab196087 MSG_SYS_MEMCNTL_ALT_SIZE /* 131 */ + \
19596635Sab196087 MSG_SYS_GETPMSG_ALT_SIZE /* 132 */ + \
19606635Sab196087 MSG_SYS_PUTPMSG_ALT_SIZE /* 133 */ + \
19616635Sab196087 MSG_SYS_RENAME_ALT_SIZE /* 134 */ + \
19626635Sab196087 MSG_SYS_UNAME_ALT_SIZE /* 135 */ + \
19636635Sab196087 MSG_SYS_SETEGID_ALT_SIZE /* 136 */ + \
19646635Sab196087 MSG_SYS_SYSCONFIG_ALT_SIZE /* 137 */ + \
19656635Sab196087 MSG_SYS_ADJTIME_ALT_SIZE /* 138 */ + \
19666635Sab196087 MSG_SYS_SYSTEMINFO_ALT_SIZE /* 139 */ + \
19676635Sab196087 MSG_SYS_SHAREFS_ALT_SIZE /* 140 */ + \
19686635Sab196087 MSG_SYS_SETEUID_ALT_SIZE /* 141 */ + \
19696635Sab196087 MSG_SYS_FORKSYS_ALT_SIZE /* 142 */ + \
1970*11798SRoger.Faulkner@Sun.COM MSG_SYS_143_SIZE /* 143 (unused) */ + \
19716635Sab196087 MSG_SYS_SIGTIMEDWAIT_ALT_SIZE /* 144 */ + \
19726635Sab196087 MSG_SYS_LWP_INFO_ALT_SIZE /* 145 */ + \
19736635Sab196087 MSG_SYS_YIELD_ALT_SIZE /* 146 */ + \
1974*11798SRoger.Faulkner@Sun.COM MSG_SYS_147_SIZE /* 147 (unused) */ + \
19756635Sab196087 MSG_SYS_LWP_SEMA_POST_ALT_SIZE /* 148 */ + \
19766635Sab196087 MSG_SYS_LWP_SEMA_TRYWAIT_ALT_SIZE /* 149 */ + \
19776635Sab196087 MSG_SYS_LWP_DETACH_ALT_SIZE /* 150 */ + \
19786635Sab196087 MSG_SYS_CORECTL_ALT_SIZE /* 151 */ + \
19796635Sab196087 MSG_SYS_MODCTL_ALT_SIZE /* 152 */ + \
19806635Sab196087 MSG_SYS_FCHROOT_ALT_SIZE /* 153 */ + \
1981*11798SRoger.Faulkner@Sun.COM MSG_SYS_154_SIZE /* 154 (unused) */ + \
19826635Sab196087 MSG_SYS_VHANGUP_ALT_SIZE /* 155 */ + \
19836635Sab196087 MSG_SYS_GETTIMEOFDAY_ALT_SIZE /* 156 */ + \
19846635Sab196087 MSG_SYS_GETITIMER_ALT_SIZE /* 157 */ + \
19856635Sab196087 MSG_SYS_SETITIMER_ALT_SIZE /* 158 */ + \
19866635Sab196087 MSG_SYS_LWP_CREATE_ALT_SIZE /* 159 */ + \
19876635Sab196087 MSG_SYS_LWP_EXIT_ALT_SIZE /* 160 */ + \
19886635Sab196087 \
19896635Sab196087 /* sysset_t[5] - System Calls [161 - 192] */ \
19906635Sab196087 MSG_SYS_LWP_SUSPEND_ALT_SIZE /* 161 */ + \
19916635Sab196087 MSG_SYS_LWP_CONTINUE_ALT_SIZE /* 162 */ + \
19926635Sab196087 MSG_SYS_LWP_KILL_ALT_SIZE /* 163 */ + \
19936635Sab196087 MSG_SYS_LWP_SELF_ALT_SIZE /* 164 */ + \
19946635Sab196087 MSG_SYS_LWP_SIGMASK_ALT_SIZE /* 165 */ + \
19956635Sab196087 MSG_SYS_LWP_PRIVATE_ALT_SIZE /* 166 */ + \
19966635Sab196087 MSG_SYS_LWP_WAIT_ALT_SIZE /* 167 */ + \
19976635Sab196087 MSG_SYS_LWP_MUTEX_WAKEUP_ALT_SIZE /* 168 */ + \
1998*11798SRoger.Faulkner@Sun.COM MSG_SYS_169_SIZE /* 169 (unused) */ + \
19996635Sab196087 MSG_SYS_LWP_COND_WAIT_ALT_SIZE /* 170 */ + \
20006635Sab196087 MSG_SYS_LWP_COND_SIGNAL_ALT_SIZE /* 171 */ + \
20016635Sab196087 MSG_SYS_LWP_COND_BROADCAST_ALT_SIZE /* 172 */ + \
20026635Sab196087 MSG_SYS_PREAD_ALT_SIZE /* 173 */ + \
20036635Sab196087 MSG_SYS_PWRITE_ALT_SIZE /* 174 */ + \
20046635Sab196087 MSG_SYS_LLSEEK_ALT_SIZE /* 175 */ + \
20056635Sab196087 MSG_SYS_INST_SYNC_ALT_SIZE /* 176 */ + \
20066635Sab196087 MSG_SYS_BRAND_ALT_SIZE /* 177 */ + \
20076635Sab196087 MSG_SYS_KAIO_ALT_SIZE /* 178 */ + \
20086635Sab196087 MSG_SYS_CPC_ALT_SIZE /* 179 */ + \
20096635Sab196087 MSG_SYS_LGRPSYS_ALT_SIZE /* 180 */ + \
20106635Sab196087 MSG_SYS_RUSAGESYS_ALT_SIZE /* 181 */ + \
20116635Sab196087 MSG_SYS_PORT_ALT_SIZE /* 182 */ + \
20126635Sab196087 MSG_SYS_POLLSYS_ALT_SIZE /* 183 */ + \
20136635Sab196087 MSG_SYS_LABELSYS_ALT_SIZE /* 184 */ + \
20146635Sab196087 MSG_SYS_ACL_ALT_SIZE /* 185 */ + \
20156635Sab196087 MSG_SYS_AUDITSYS_ALT_SIZE /* 186 */ + \
20166635Sab196087 MSG_SYS_PROCESSOR_BIND_ALT_SIZE /* 187 */ + \
20176635Sab196087 MSG_SYS_PROCESSOR_INFO_ALT_SIZE /* 188 */ + \
20186635Sab196087 MSG_SYS_P_ONLINE_ALT_SIZE /* 189 */ + \
20196635Sab196087 MSG_SYS_SIGQUEUE_ALT_SIZE /* 190 */ + \
20206635Sab196087 MSG_SYS_CLOCK_GETTIME_ALT_SIZE /* 191 */ + \
20216635Sab196087 MSG_SYS_CLOCK_SETTIME_ALT_SIZE /* 192 */ + \
20226635Sab196087 \
20236635Sab196087 /* sysset_t[6] - System Calls [193 - 224] */ \
20246635Sab196087 MSG_SYS_CLOCK_GETRES_ALT_SIZE /* 193 */ + \
20256635Sab196087 MSG_SYS_TIMER_CREATE_ALT_SIZE /* 194 */ + \
20266635Sab196087 MSG_SYS_TIMER_DELETE_ALT_SIZE /* 195 */ + \
20276635Sab196087 MSG_SYS_TIMER_SETTIME_ALT_SIZE /* 196 */ + \
20286635Sab196087 MSG_SYS_TIMER_GETTIME_ALT_SIZE /* 197 */ + \
20296635Sab196087 MSG_SYS_TIMER_GETOVERRUN_ALT_SIZE /* 198 */ + \
20306635Sab196087 MSG_SYS_NANOSLEEP_ALT_SIZE /* 199 */ + \
20316635Sab196087 MSG_SYS_FACL_ALT_SIZE /* 200 */ + \
20326635Sab196087 MSG_SYS_DOOR_ALT_SIZE /* 201 */ + \
20336635Sab196087 MSG_SYS_SETREUID_ALT_SIZE /* 202 */ + \
20346635Sab196087 MSG_SYS_SETREGID_ALT_SIZE /* 203 */ + \
20356635Sab196087 MSG_SYS_INSTALL_UTRAP_ALT_SIZE /* 204 */ + \
20366635Sab196087 MSG_SYS_SIGNOTIFY_ALT_SIZE /* 205 */ + \
20376635Sab196087 MSG_SYS_SCHEDCTL_ALT_SIZE /* 206 */ + \
20386635Sab196087 MSG_SYS_PSET_ALT_SIZE /* 207 */ + \
20396635Sab196087 MSG_SYS_SPARC_UTRAP_INSTALL_ALT_SIZE /* 208 */ + \
20406635Sab196087 MSG_SYS_RESOLVEPATH_ALT_SIZE /* 209 */ + \
20416635Sab196087 MSG_SYS_LWP_MUTEX_TIMEDLOCK_ALT_SIZE /* 210 */ + \
20426635Sab196087 MSG_SYS_LWP_SEMA_TIMEDWAIT_ALT_SIZE /* 211 */ + \
20436635Sab196087 MSG_SYS_LWP_RWLOCK_SYS_ALT_SIZE /* 212 */ + \
20446635Sab196087 MSG_SYS_GETDENTS64_ALT_SIZE /* 213 */ + \
20456635Sab196087 MSG_SYS_MMAP64_ALT_SIZE /* 214 */ + \
20466635Sab196087 MSG_SYS_STAT64_ALT_SIZE /* 215 */ + \
20476635Sab196087 MSG_SYS_LSTAT64_ALT_SIZE /* 216 */ + \
20486635Sab196087 MSG_SYS_FSTAT64_ALT_SIZE /* 217 */ + \
20496635Sab196087 MSG_SYS_STATVFS64_ALT_SIZE /* 218 */ + \
20506635Sab196087 MSG_SYS_FSTATVFS64_ALT_SIZE /* 219 */ + \
20516635Sab196087 MSG_SYS_SETRLIMIT64_ALT_SIZE /* 220 */ + \
20526635Sab196087 MSG_SYS_GETRLIMIT64_ALT_SIZE /* 221 */ + \
20536635Sab196087 MSG_SYS_PREAD64_ALT_SIZE /* 222 */ + \
20546635Sab196087 MSG_SYS_PWRITE64_ALT_SIZE /* 223 */ + \
2055*11798SRoger.Faulkner@Sun.COM MSG_SYS_224_SIZE /* 224 (unused) */ + \
20566635Sab196087 \
20576635Sab196087 /* sysset_t[7] - System Calls [225 - 256] */ \
20586635Sab196087 MSG_SYS_OPEN64_ALT_SIZE /* 225 */ + \
20596635Sab196087 MSG_SYS_RPCSYS_ALT_SIZE /* 226 */ + \
20606635Sab196087 MSG_SYS_ZONE_ALT_SIZE /* 227 */ + \
20616635Sab196087 MSG_SYS_AUTOFSSYS_ALT_SIZE /* 228 */ + \
20626635Sab196087 MSG_SYS_GETCWD_ALT_SIZE /* 229 */ + \
20636635Sab196087 MSG_SYS_SO_SOCKET_ALT_SIZE /* 230 */ + \
20646635Sab196087 MSG_SYS_SO_SOCKETPAIR_ALT_SIZE /* 231 */ + \
20656635Sab196087 MSG_SYS_BIND_ALT_SIZE /* 232 */ + \
20666635Sab196087 MSG_SYS_LISTEN_ALT_SIZE /* 233 */ + \
20676635Sab196087 MSG_SYS_ACCEPT_ALT_SIZE /* 234 */ + \
20686635Sab196087 MSG_SYS_CONNECT_ALT_SIZE /* 235 */ + \
20696635Sab196087 MSG_SYS_SHUTDOWN_ALT_SIZE /* 236 */ + \
20706635Sab196087 MSG_SYS_RECV_ALT_SIZE /* 237 */ + \
20716635Sab196087 MSG_SYS_RECVFROM_ALT_SIZE /* 238 */ + \
20726635Sab196087 MSG_SYS_RECVMSG_ALT_SIZE /* 239 */ + \
20736635Sab196087 MSG_SYS_SEND_ALT_SIZE /* 240 */ + \
20746635Sab196087 MSG_SYS_SENDMSG_ALT_SIZE /* 241 */ + \
20756635Sab196087 MSG_SYS_SENDTO_ALT_SIZE /* 242 */ + \
20766635Sab196087 MSG_SYS_GETPEERNAME_ALT_SIZE /* 243 */ + \
20776635Sab196087 MSG_SYS_GETSOCKNAME_ALT_SIZE /* 244 */ + \
20786635Sab196087 MSG_SYS_GETSOCKOPT_ALT_SIZE /* 245 */ + \
20796635Sab196087 MSG_SYS_SETSOCKOPT_ALT_SIZE /* 246 */ + \
20806635Sab196087 MSG_SYS_SOCKCONFIG_ALT_SIZE /* 247 */ + \
20816635Sab196087 MSG_SYS_NTP_GETTIME_ALT_SIZE /* 248 */ + \
20826635Sab196087 MSG_SYS_NTP_ADJTIME_ALT_SIZE /* 249 */ + \
20836635Sab196087 MSG_SYS_LWP_MUTEX_UNLOCK_ALT_SIZE /* 250 */ + \
20846635Sab196087 MSG_SYS_LWP_MUTEX_TRYLOCK_ALT_SIZE /* 251 */ + \
20856635Sab196087 MSG_SYS_LWP_MUTEX_REGISTER_ALT_SIZE /* 252 */ + \
20866635Sab196087 MSG_SYS_CLADM_ALT_SIZE /* 253 */ + \
20876635Sab196087 MSG_SYS_UUCOPY_ALT_SIZE /* 254 */ + \
20886635Sab196087 MSG_SYS_UMOUNT2_ALT_SIZE /* 255 */ + \
20896635Sab196087 3 /* 256 (unused) */ + \
20906635Sab196087 \
20916635Sab196087 /* sysset_t[8] - System Calls [257 - 288] */ \
20926635Sab196087 (32 * 3) /* 257 - 288 (unused) */ + \
20936635Sab196087 \
20946635Sab196087 /* sysset_t[9] - System Calls [289 - 320] */ \
20956635Sab196087 (32 * 3) /* 289 - 320 (unused) */ + \
20966635Sab196087 \
20976635Sab196087 /* sysset_t[10] - System Calls [321 - 352] */ \
20986635Sab196087 (32 * 3) /* 321 - 352 (unused) */ + \
20996635Sab196087 \
21006635Sab196087 /* sysset_t[11] - System Calls [353 - 384] */ \
21016635Sab196087 (32 * 3) /* 353 - 384 (unused) */ + \
21026635Sab196087 \
21036635Sab196087 /* sysset_t[12] - System Calls [385 - 416] */ \
21046635Sab196087 (32 * 3) /* 385 - 416 (unused) */ + \
21056635Sab196087 \
21066635Sab196087 /* sysset_t[13] - System Calls [417 - 448] */ \
21076635Sab196087 (32 * 3) /* 417 - 448 (unused) */ + \
21086635Sab196087 \
21096635Sab196087 /* sysset_t[14] - System Calls [449 - 480] */ \
21106635Sab196087 (32 * 3) /* 449 - 480 (unused) */ + \
21116635Sab196087 \
21126635Sab196087 /* sysset_t[15] - System Calls [481 - 512] */ \
21136635Sab196087 (32 * 3) /* 481 - 512 (unused) */ + \
21146635Sab196087 \
21156635Sab196087 CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
21166635Sab196087
21176635Sab196087 /*
21186635Sab196087 * Ensure that Conv_cnote_sysset_buf_t is large enough:
21196635Sab196087 *
21206635Sab196087 * SYSSET_FLAGSZ is the real minimum size of the buffer required by
21216635Sab196087 * conv_cnote_sysset(). However, Conv_cnote_sysset_buf_t
21226635Sab196087 * uses CONV_CNOTE_SYSSET_BUFSIZE to set the buffer size. We do
21236635Sab196087 * things this way because the definition of SYSSET_FLAGSZ uses information
21246635Sab196087 * that is not available in the environment of other programs
21256635Sab196087 * that include the conv.h header file.
21266635Sab196087 */
21276635Sab196087 #if (CONV_CNOTE_SYSSET_BUFSIZE != SYSSET_FLAGSZ) && !defined(__lint)
21286635Sab196087 #define REPORT_BUFSIZE SYSSET_FLAGSZ
21296635Sab196087 #include "report_bufsize.h"
21306635Sab196087 #error "CONV_CNOTE_SYSSET_BUFSIZE does not match SYSSET_FLAGSZ"
21316635Sab196087 #endif
21326635Sab196087
21336635Sab196087 const char *
conv_cnote_sysset(uint32_t * maskarr,int n_mask,Conv_fmt_flags_t fmt_flags,Conv_cnote_sysset_buf_t * cnote_sysset_buf)21346635Sab196087 conv_cnote_sysset(uint32_t *maskarr, int n_mask,
21356635Sab196087 Conv_fmt_flags_t fmt_flags, Conv_cnote_sysset_buf_t *cnote_sysset_buf)
21366635Sab196087 {
21376635Sab196087 #define N_MASK 16
21386635Sab196087
21399273SAli.Bahrami@Sun.COM static const Val_desc vda0[] = { /* System Calls [1 - 32] */
21409273SAli.Bahrami@Sun.COM { 0x00000001, MSG_SYS_EXIT_ALT },
2141*11798SRoger.Faulkner@Sun.COM { 0x00000002, MSG_SYS_2 },
21429273SAli.Bahrami@Sun.COM { 0x00000004, MSG_SYS_READ_ALT },
21439273SAli.Bahrami@Sun.COM { 0x00000008, MSG_SYS_WRITE_ALT },
21449273SAli.Bahrami@Sun.COM { 0x00000010, MSG_SYS_OPEN_ALT },
21459273SAli.Bahrami@Sun.COM { 0x00000020, MSG_SYS_CLOSE_ALT },
2146*11798SRoger.Faulkner@Sun.COM { 0x00000040, MSG_SYS_7 },
2147*11798SRoger.Faulkner@Sun.COM { 0x00000080, MSG_SYS_8 },
21489273SAli.Bahrami@Sun.COM { 0x00000100, MSG_SYS_LINK_ALT },
21499273SAli.Bahrami@Sun.COM { 0x00000200, MSG_SYS_UNLINK_ALT },
2150*11798SRoger.Faulkner@Sun.COM { 0x00000400, MSG_SYS_11 },
21519273SAli.Bahrami@Sun.COM { 0x00000800, MSG_SYS_CHDIR_ALT },
21529273SAli.Bahrami@Sun.COM { 0x00001000, MSG_SYS_TIME_ALT },
21539273SAli.Bahrami@Sun.COM { 0x00002000, MSG_SYS_MKNOD_ALT },
21549273SAli.Bahrami@Sun.COM { 0x00004000, MSG_SYS_CHMOD_ALT },
21559273SAli.Bahrami@Sun.COM { 0x00008000, MSG_SYS_CHOWN_ALT },
21569273SAli.Bahrami@Sun.COM { 0x00010000, MSG_SYS_BRK_ALT },
21579273SAli.Bahrami@Sun.COM { 0x00020000, MSG_SYS_STAT_ALT },
21589273SAli.Bahrami@Sun.COM { 0x00040000, MSG_SYS_LSEEK_ALT },
21599273SAli.Bahrami@Sun.COM { 0x00080000, MSG_SYS_GETPID_ALT },
21609273SAli.Bahrami@Sun.COM { 0x00100000, MSG_SYS_MOUNT_ALT },
2161*11798SRoger.Faulkner@Sun.COM { 0x00200000, MSG_SYS_22 },
21629273SAli.Bahrami@Sun.COM { 0x00400000, MSG_SYS_SETUID_ALT },
21639273SAli.Bahrami@Sun.COM { 0x00800000, MSG_SYS_GETUID_ALT },
21649273SAli.Bahrami@Sun.COM { 0x01000000, MSG_SYS_STIME_ALT },
21659273SAli.Bahrami@Sun.COM { 0x02000000, MSG_SYS_PCSAMPLE_ALT },
21669273SAli.Bahrami@Sun.COM { 0x04000000, MSG_SYS_ALARM_ALT },
21679273SAli.Bahrami@Sun.COM { 0x08000000, MSG_SYS_FSTAT_ALT },
21689273SAli.Bahrami@Sun.COM { 0x10000000, MSG_SYS_PAUSE_ALT },
2169*11798SRoger.Faulkner@Sun.COM { 0x20000000, MSG_SYS_30 },
21709273SAli.Bahrami@Sun.COM { 0x40000000, MSG_SYS_STTY_ALT },
21719273SAli.Bahrami@Sun.COM { 0x80000000, MSG_SYS_GTTY_ALT },
21726635Sab196087 { 0, 0 }
21736635Sab196087 };
21749273SAli.Bahrami@Sun.COM static const Val_desc vda1[] = { /* System Calls [33 - 64] */
21759273SAli.Bahrami@Sun.COM { 0x00000001, MSG_SYS_ACCESS_ALT },
21769273SAli.Bahrami@Sun.COM { 0x00000002, MSG_SYS_NICE_ALT },
21779273SAli.Bahrami@Sun.COM { 0x00000004, MSG_SYS_STATFS_ALT },
21789273SAli.Bahrami@Sun.COM { 0x00000008, MSG_SYS_SYNC_ALT },
21799273SAli.Bahrami@Sun.COM { 0x00000010, MSG_SYS_KILL_ALT },
21809273SAli.Bahrami@Sun.COM { 0x00000020, MSG_SYS_FSTATFS_ALT },
21819273SAli.Bahrami@Sun.COM { 0x00000040, MSG_SYS_PGRPSYS_ALT },
21829273SAli.Bahrami@Sun.COM { 0x00000080, MSG_SYS_UUCOPYSTR_ALT },
2183*11798SRoger.Faulkner@Sun.COM { 0x00000100, MSG_SYS_41 },
21849273SAli.Bahrami@Sun.COM { 0x00000200, MSG_SYS_PIPE_ALT },
21859273SAli.Bahrami@Sun.COM { 0x00000400, MSG_SYS_TIMES_ALT },
21869273SAli.Bahrami@Sun.COM { 0x00000800, MSG_SYS_PROFIL_ALT },
2187*11798SRoger.Faulkner@Sun.COM { 0x00001000, MSG_SYS_FACCESSAT_ALT },
21889273SAli.Bahrami@Sun.COM { 0x00002000, MSG_SYS_SETGID_ALT },
21899273SAli.Bahrami@Sun.COM { 0x00004000, MSG_SYS_GETGID_ALT },
2190*11798SRoger.Faulkner@Sun.COM { 0x00008000, MSG_SYS_48 },
21919273SAli.Bahrami@Sun.COM { 0x00010000, MSG_SYS_MSGSYS_ALT },
21929273SAli.Bahrami@Sun.COM { 0x00020000, MSG_SYS_SYSI86_ALT },
21939273SAli.Bahrami@Sun.COM { 0x00040000, MSG_SYS_ACCT_ALT },
21949273SAli.Bahrami@Sun.COM { 0x00080000, MSG_SYS_SHMSYS_ALT },
21959273SAli.Bahrami@Sun.COM { 0x00100000, MSG_SYS_SEMSYS_ALT },
21969273SAli.Bahrami@Sun.COM { 0x00200000, MSG_SYS_IOCTL_ALT },
21979273SAli.Bahrami@Sun.COM { 0x00400000, MSG_SYS_UADMIN_ALT },
2198*11798SRoger.Faulkner@Sun.COM { 0x00800000, MSG_SYS_FCHOWNAT_ALT },
21999273SAli.Bahrami@Sun.COM { 0x01000000, MSG_SYS_UTSSYS_ALT },
22009273SAli.Bahrami@Sun.COM { 0x0200000, MSG_SYS_FDSYNC_ALT },
22019273SAli.Bahrami@Sun.COM { 0x04000000, MSG_SYS_EXECVE_ALT },
22029273SAli.Bahrami@Sun.COM { 0x08000000, MSG_SYS_UMASK_ALT },
22039273SAli.Bahrami@Sun.COM { 0x10000000, MSG_SYS_CHROOT_ALT },
22049273SAli.Bahrami@Sun.COM { 0x20000000, MSG_SYS_FCNTL_ALT },
22059273SAli.Bahrami@Sun.COM { 0x40000000, MSG_SYS_ULIMIT_ALT },
2206*11798SRoger.Faulkner@Sun.COM { 0x80000000, MSG_SYS_RENAMEAT_ALT },
22076635Sab196087 { 0, 0 }
22086635Sab196087 };
22099273SAli.Bahrami@Sun.COM static const Val_desc vda2[] = { /* System Calls [65 - 96] */
2210*11798SRoger.Faulkner@Sun.COM { 0x00000001, MSG_SYS_UNLINKAT_ALT },
2211*11798SRoger.Faulkner@Sun.COM { 0x00000002, MSG_SYS_FSTATAT_ALT },
2212*11798SRoger.Faulkner@Sun.COM { 0x00000004, MSG_SYS_FSTATAT64_ALT },
2213*11798SRoger.Faulkner@Sun.COM { 0x00000008, MSG_SYS_OPENAT_ALT },
2214*11798SRoger.Faulkner@Sun.COM { 0x00000010, MSG_SYS_OPENAT64_ALT },
22159273SAli.Bahrami@Sun.COM { 0x00000020, MSG_SYS_TASKSYS_ALT },
22169273SAli.Bahrami@Sun.COM { 0x00000040, MSG_SYS_ACCTCTL_ALT },
22179273SAli.Bahrami@Sun.COM { 0x00000080, MSG_SYS_EXACCTSYS_ALT },
22189273SAli.Bahrami@Sun.COM { 0x00000100, MSG_SYS_GETPAGESIZES_ALT },
22199273SAli.Bahrami@Sun.COM { 0x00000200, MSG_SYS_RCTLSYS_ALT },
22209273SAli.Bahrami@Sun.COM { 0x00000400, MSG_SYS_SIDSYS_ALT },
2221*11798SRoger.Faulkner@Sun.COM { 0x00000800, MSG_SYS_76 },
22229273SAli.Bahrami@Sun.COM { 0x00001000, MSG_SYS_LWP_PARK_ALT },
22239273SAli.Bahrami@Sun.COM { 0x00002000, MSG_SYS_SENDFILEV_ALT },
22249273SAli.Bahrami@Sun.COM { 0x00004000, MSG_SYS_RMDIR_ALT },
22259273SAli.Bahrami@Sun.COM { 0x00008000, MSG_SYS_MKDIR_ALT },
22269273SAli.Bahrami@Sun.COM { 0x00010000, MSG_SYS_GETDENTS_ALT },
22279273SAli.Bahrami@Sun.COM { 0x00020000, MSG_SYS_PRIVSYS_ALT },
22289273SAli.Bahrami@Sun.COM { 0x00040000, MSG_SYS_UCREDSYS_ALT },
22299273SAli.Bahrami@Sun.COM { 0x00080000, MSG_SYS_SYSFS_ALT },
22309273SAli.Bahrami@Sun.COM { 0x00100000, MSG_SYS_GETMSG_ALT },
22319273SAli.Bahrami@Sun.COM { 0x00200000, MSG_SYS_PUTMSG_ALT },
2232*11798SRoger.Faulkner@Sun.COM { 0x00400000, MSG_SYS_87 },
22339273SAli.Bahrami@Sun.COM { 0x00800000, MSG_SYS_LSTAT_ALT },
22349273SAli.Bahrami@Sun.COM { 0x01000000, MSG_SYS_SYMLINK_ALT },
22359273SAli.Bahrami@Sun.COM { 0x02000000, MSG_SYS_READLINK_ALT },
22369273SAli.Bahrami@Sun.COM { 0x04000000, MSG_SYS_SETGROUPS_ALT },
22379273SAli.Bahrami@Sun.COM { 0x08000000, MSG_SYS_GETGROUPS_ALT },
22389273SAli.Bahrami@Sun.COM { 0x10000000, MSG_SYS_FCHMOD_ALT },
22399273SAli.Bahrami@Sun.COM { 0x20000000, MSG_SYS_FCHOWN_ALT },
22409273SAli.Bahrami@Sun.COM { 0x40000000, MSG_SYS_SIGPROCMASK_ALT },
22419273SAli.Bahrami@Sun.COM { 0x80000000, MSG_SYS_SIGSUSPEND_ALT },
22426635Sab196087 { 0, 0 }
22436635Sab196087 };
22449273SAli.Bahrami@Sun.COM static const Val_desc vda3[] = { /* System Calls [97 - 128] */
22459273SAli.Bahrami@Sun.COM { 0x00000001, MSG_SYS_SIGALTSTACK_ALT },
22469273SAli.Bahrami@Sun.COM { 0x00000002, MSG_SYS_SIGACTION_ALT },
22479273SAli.Bahrami@Sun.COM { 0x00000004, MSG_SYS_SIGPENDING_ALT },
22489273SAli.Bahrami@Sun.COM { 0x00000008, MSG_SYS_CONTEXT_ALT },
2249*11798SRoger.Faulkner@Sun.COM { 0x00000010, MSG_SYS_101 },
2250*11798SRoger.Faulkner@Sun.COM { 0x00000020, MSG_SYS_102 },
22519273SAli.Bahrami@Sun.COM { 0x00000040, MSG_SYS_STATVFS_ALT },
22529273SAli.Bahrami@Sun.COM { 0x00000080, MSG_SYS_FSTATVFS_ALT },
22539273SAli.Bahrami@Sun.COM { 0x00000100, MSG_SYS_GETLOADAVG_ALT },
22549273SAli.Bahrami@Sun.COM { 0x00000200, MSG_SYS_NFSSYS_ALT },
22559273SAli.Bahrami@Sun.COM { 0x00000400, MSG_SYS_WAITID_ALT },
22569273SAli.Bahrami@Sun.COM { 0x00000800, MSG_SYS_SIGSENDSYS_ALT },
22579273SAli.Bahrami@Sun.COM { 0x00001000, MSG_SYS_HRTSYS_ALT },
2258*11798SRoger.Faulkner@Sun.COM { 0x00002000, MSG_SYS_UTIMESYS_ALT },
22599273SAli.Bahrami@Sun.COM { 0x00004000, MSG_SYS_SIGRESEND_ALT },
22609273SAli.Bahrami@Sun.COM { 0x00008000, MSG_SYS_PRIOCNTLSYS_ALT },
22619273SAli.Bahrami@Sun.COM { 0x00010000, MSG_SYS_PATHCONF_ALT },
22629273SAli.Bahrami@Sun.COM { 0x00020000, MSG_SYS_MINCORE_ALT },
22639273SAli.Bahrami@Sun.COM { 0x00040000, MSG_SYS_MMAP_ALT },
22649273SAli.Bahrami@Sun.COM { 0x00080000, MSG_SYS_MPROTECT_ALT },
22659273SAli.Bahrami@Sun.COM { 0x00100000, MSG_SYS_MUNMAP_ALT },
22669273SAli.Bahrami@Sun.COM { 0x00200000, MSG_SYS_FPATHCONF_ALT },
22679273SAli.Bahrami@Sun.COM { 0x00400000, MSG_SYS_VFORK_ALT },
22689273SAli.Bahrami@Sun.COM { 0x00800000, MSG_SYS_FCHDIR_ALT },
22699273SAli.Bahrami@Sun.COM { 0x01000000, MSG_SYS_READV_ALT },
22709273SAli.Bahrami@Sun.COM { 0x02000000, MSG_SYS_WRITEV_ALT },
2271*11798SRoger.Faulkner@Sun.COM { 0x04000000, MSG_SYS_123 },
2272*11798SRoger.Faulkner@Sun.COM { 0x08000000, MSG_SYS_124 },
2273*11798SRoger.Faulkner@Sun.COM { 0x10000000, MSG_SYS_125 },
2274*11798SRoger.Faulkner@Sun.COM { 0x20000000, MSG_SYS_126 },
2275*11798SRoger.Faulkner@Sun.COM { 0x40000000, MSG_SYS_MMAPOBJ_ALT },
22769273SAli.Bahrami@Sun.COM { 0x80000000, MSG_SYS_SETRLIMIT_ALT },
22776635Sab196087 { 0, 0 }
22786635Sab196087 };
22799273SAli.Bahrami@Sun.COM static const Val_desc vda4[] = { /* System Calls [129 - 160] */
22809273SAli.Bahrami@Sun.COM { 0x00000001, MSG_SYS_GETRLIMIT_ALT },
22819273SAli.Bahrami@Sun.COM { 0x00000002, MSG_SYS_LCHOWN_ALT },
22829273SAli.Bahrami@Sun.COM { 0x00000004, MSG_SYS_MEMCNTL_ALT },
22839273SAli.Bahrami@Sun.COM { 0x00000008, MSG_SYS_GETPMSG_ALT },
22849273SAli.Bahrami@Sun.COM { 0x00000010, MSG_SYS_PUTPMSG_ALT },
22859273SAli.Bahrami@Sun.COM { 0x00000020, MSG_SYS_RENAME_ALT },
22869273SAli.Bahrami@Sun.COM { 0x00000040, MSG_SYS_UNAME_ALT },
22879273SAli.Bahrami@Sun.COM { 0x00000080, MSG_SYS_SETEGID_ALT },
22889273SAli.Bahrami@Sun.COM { 0x00000100, MSG_SYS_SYSCONFIG_ALT },
22899273SAli.Bahrami@Sun.COM { 0x00000200, MSG_SYS_ADJTIME_ALT },
22909273SAli.Bahrami@Sun.COM { 0x00000400, MSG_SYS_SYSTEMINFO_ALT },
22919273SAli.Bahrami@Sun.COM { 0x00000800, MSG_SYS_SHAREFS_ALT },
22929273SAli.Bahrami@Sun.COM { 0x00001000, MSG_SYS_SETEUID_ALT },
22939273SAli.Bahrami@Sun.COM { 0x00002000, MSG_SYS_FORKSYS_ALT },
2294*11798SRoger.Faulkner@Sun.COM { 0x00004000, MSG_SYS_143 },
22959273SAli.Bahrami@Sun.COM { 0x00008000, MSG_SYS_SIGTIMEDWAIT_ALT },
22969273SAli.Bahrami@Sun.COM { 0x00010000, MSG_SYS_LWP_INFO_ALT },
22979273SAli.Bahrami@Sun.COM { 0x00020000, MSG_SYS_YIELD_ALT },
2298*11798SRoger.Faulkner@Sun.COM { 0x00040000, MSG_SYS_147 },
22999273SAli.Bahrami@Sun.COM { 0x00080000, MSG_SYS_LWP_SEMA_POST_ALT },
23009273SAli.Bahrami@Sun.COM { 0x00100000, MSG_SYS_LWP_SEMA_TRYWAIT_ALT },
23019273SAli.Bahrami@Sun.COM { 0x00200000, MSG_SYS_LWP_DETACH_ALT },
23029273SAli.Bahrami@Sun.COM { 0x00400000, MSG_SYS_CORECTL_ALT },
23039273SAli.Bahrami@Sun.COM { 0x00800000, MSG_SYS_MODCTL_ALT },
23049273SAli.Bahrami@Sun.COM { 0x01000000, MSG_SYS_FCHROOT_ALT },
2305*11798SRoger.Faulkner@Sun.COM { 0x02000000, MSG_SYS_154 },
23069273SAli.Bahrami@Sun.COM { 0x04000000, MSG_SYS_VHANGUP_ALT },
23079273SAli.Bahrami@Sun.COM { 0x08000000, MSG_SYS_GETTIMEOFDAY_ALT },
23089273SAli.Bahrami@Sun.COM { 0x10000000, MSG_SYS_GETITIMER_ALT },
23099273SAli.Bahrami@Sun.COM { 0x20000000, MSG_SYS_SETITIMER_ALT },
23109273SAli.Bahrami@Sun.COM { 0x40000000, MSG_SYS_LWP_CREATE_ALT },
23119273SAli.Bahrami@Sun.COM { 0x80000000, MSG_SYS_LWP_EXIT_ALT },
23126635Sab196087 { 0, 0 }
23136635Sab196087 };
23149273SAli.Bahrami@Sun.COM static const Val_desc vda5[] = { /* System Calls [161 - 192] */
23159273SAli.Bahrami@Sun.COM { 0x00000001, MSG_SYS_LWP_SUSPEND_ALT },
23169273SAli.Bahrami@Sun.COM { 0x00000002, MSG_SYS_LWP_CONTINUE_ALT },
23179273SAli.Bahrami@Sun.COM { 0x00000004, MSG_SYS_LWP_KILL_ALT },
23189273SAli.Bahrami@Sun.COM { 0x00000008, MSG_SYS_LWP_SELF_ALT },
23199273SAli.Bahrami@Sun.COM { 0x00000010, MSG_SYS_LWP_SIGMASK_ALT },
23209273SAli.Bahrami@Sun.COM { 0x00000020, MSG_SYS_LWP_PRIVATE_ALT },
23219273SAli.Bahrami@Sun.COM { 0x00000040, MSG_SYS_LWP_WAIT_ALT },
23229273SAli.Bahrami@Sun.COM { 0x00000080, MSG_SYS_LWP_MUTEX_WAKEUP_ALT },
2323*11798SRoger.Faulkner@Sun.COM { 0x00000100, MSG_SYS_169 },
23249273SAli.Bahrami@Sun.COM { 0x00000200, MSG_SYS_LWP_COND_WAIT_ALT },
23259273SAli.Bahrami@Sun.COM { 0x00000400, MSG_SYS_LWP_COND_SIGNAL_ALT },
23269273SAli.Bahrami@Sun.COM { 0x00000800, MSG_SYS_LWP_COND_BROADCAST_ALT },
23279273SAli.Bahrami@Sun.COM { 0x00001000, MSG_SYS_PREAD_ALT },
23289273SAli.Bahrami@Sun.COM { 0x00002000, MSG_SYS_PWRITE_ALT },
23299273SAli.Bahrami@Sun.COM { 0x00004000, MSG_SYS_LLSEEK_ALT },
23309273SAli.Bahrami@Sun.COM { 0x00008000, MSG_SYS_INST_SYNC_ALT },
23319273SAli.Bahrami@Sun.COM { 0x00010000, MSG_SYS_BRAND_ALT },
23329273SAli.Bahrami@Sun.COM { 0x00020000, MSG_SYS_KAIO_ALT },
23339273SAli.Bahrami@Sun.COM { 0x00040000, MSG_SYS_CPC_ALT },
23349273SAli.Bahrami@Sun.COM { 0x00080000, MSG_SYS_LGRPSYS_ALT },
23359273SAli.Bahrami@Sun.COM { 0x00100000, MSG_SYS_RUSAGESYS_ALT },
23369273SAli.Bahrami@Sun.COM { 0x00200000, MSG_SYS_PORT_ALT },
23379273SAli.Bahrami@Sun.COM { 0x00400000, MSG_SYS_POLLSYS_ALT },
23389273SAli.Bahrami@Sun.COM { 0x00800000, MSG_SYS_LABELSYS_ALT },
23399273SAli.Bahrami@Sun.COM { 0x01000000, MSG_SYS_ACL_ALT },
23409273SAli.Bahrami@Sun.COM { 0x02000000, MSG_SYS_AUDITSYS_ALT },
23419273SAli.Bahrami@Sun.COM { 0x04000000, MSG_SYS_PROCESSOR_BIND_ALT },
23429273SAli.Bahrami@Sun.COM { 0x08000000, MSG_SYS_PROCESSOR_INFO_ALT },
23439273SAli.Bahrami@Sun.COM { 0x10000000, MSG_SYS_P_ONLINE_ALT },
23449273SAli.Bahrami@Sun.COM { 0x20000000, MSG_SYS_SIGQUEUE_ALT },
23459273SAli.Bahrami@Sun.COM { 0x40000000, MSG_SYS_CLOCK_GETTIME_ALT },
23469273SAli.Bahrami@Sun.COM { 0x80000000, MSG_SYS_CLOCK_SETTIME_ALT },
23476635Sab196087 { 0, 0 }
23486635Sab196087 };
23499273SAli.Bahrami@Sun.COM static const Val_desc vda6[] = { /* System Calls [193 - 224] */
23509273SAli.Bahrami@Sun.COM { 0x00000001, MSG_SYS_CLOCK_GETRES_ALT },
23519273SAli.Bahrami@Sun.COM { 0x00000002, MSG_SYS_TIMER_CREATE_ALT },
23529273SAli.Bahrami@Sun.COM { 0x00000004, MSG_SYS_TIMER_DELETE_ALT },
23539273SAli.Bahrami@Sun.COM { 0x00000008, MSG_SYS_TIMER_SETTIME_ALT },
23549273SAli.Bahrami@Sun.COM { 0x00000010, MSG_SYS_TIMER_GETTIME_ALT },
23559273SAli.Bahrami@Sun.COM { 0x00000020, MSG_SYS_TIMER_GETOVERRUN_ALT },
23569273SAli.Bahrami@Sun.COM { 0x00000040, MSG_SYS_NANOSLEEP_ALT },
23579273SAli.Bahrami@Sun.COM { 0x00000080, MSG_SYS_FACL_ALT },
23589273SAli.Bahrami@Sun.COM { 0x00000100, MSG_SYS_DOOR_ALT },
23599273SAli.Bahrami@Sun.COM { 0x00000200, MSG_SYS_SETREUID_ALT },
23609273SAli.Bahrami@Sun.COM { 0x00000400, MSG_SYS_SETREGID_ALT },
23619273SAli.Bahrami@Sun.COM { 0x00000800, MSG_SYS_INSTALL_UTRAP_ALT },
23629273SAli.Bahrami@Sun.COM { 0x00001000, MSG_SYS_SIGNOTIFY_ALT },
23639273SAli.Bahrami@Sun.COM { 0x00002000, MSG_SYS_SCHEDCTL_ALT },
23649273SAli.Bahrami@Sun.COM { 0x00004000, MSG_SYS_PSET_ALT },
23659273SAli.Bahrami@Sun.COM { 0x00008000, MSG_SYS_SPARC_UTRAP_INSTALL_ALT },
23669273SAli.Bahrami@Sun.COM { 0x00010000, MSG_SYS_RESOLVEPATH_ALT },
23679273SAli.Bahrami@Sun.COM { 0x00020000, MSG_SYS_LWP_MUTEX_TIMEDLOCK_ALT },
23689273SAli.Bahrami@Sun.COM { 0x00040000, MSG_SYS_LWP_SEMA_TIMEDWAIT_ALT },
23699273SAli.Bahrami@Sun.COM { 0x00080000, MSG_SYS_LWP_RWLOCK_SYS_ALT },
23709273SAli.Bahrami@Sun.COM { 0x00100000, MSG_SYS_GETDENTS64_ALT },
23719273SAli.Bahrami@Sun.COM { 0x00200000, MSG_SYS_MMAP64_ALT },
23729273SAli.Bahrami@Sun.COM { 0x00400000, MSG_SYS_STAT64_ALT },
23739273SAli.Bahrami@Sun.COM { 0x00800000, MSG_SYS_LSTAT64_ALT },
23749273SAli.Bahrami@Sun.COM { 0x01000000, MSG_SYS_FSTAT64_ALT },
23759273SAli.Bahrami@Sun.COM { 0x02000000, MSG_SYS_STATVFS64_ALT },
23769273SAli.Bahrami@Sun.COM { 0x04000000, MSG_SYS_FSTATVFS64_ALT },
23779273SAli.Bahrami@Sun.COM { 0x08000000, MSG_SYS_SETRLIMIT64_ALT },
23789273SAli.Bahrami@Sun.COM { 0x10000000, MSG_SYS_GETRLIMIT64_ALT },
23799273SAli.Bahrami@Sun.COM { 0x20000000, MSG_SYS_PREAD64_ALT },
23809273SAli.Bahrami@Sun.COM { 0x40000000, MSG_SYS_PWRITE64_ALT },
2381*11798SRoger.Faulkner@Sun.COM { 0x80000000, MSG_SYS_224 },
23826635Sab196087 { 0, 0 }
23836635Sab196087 };
23849273SAli.Bahrami@Sun.COM static const Val_desc vda7[] = { /* System Calls [225 - 256] */
23859273SAli.Bahrami@Sun.COM { 0x00000001, MSG_SYS_OPEN64_ALT },
23869273SAli.Bahrami@Sun.COM { 0x00000002, MSG_SYS_RPCSYS_ALT },
23879273SAli.Bahrami@Sun.COM { 0x00000004, MSG_SYS_ZONE_ALT },
23889273SAli.Bahrami@Sun.COM { 0x00000008, MSG_SYS_AUTOFSSYS_ALT },
23899273SAli.Bahrami@Sun.COM { 0x00000010, MSG_SYS_GETCWD_ALT },
23909273SAli.Bahrami@Sun.COM { 0x00000020, MSG_SYS_SO_SOCKET_ALT },
23919273SAli.Bahrami@Sun.COM { 0x00000040, MSG_SYS_SO_SOCKETPAIR_ALT },
23929273SAli.Bahrami@Sun.COM { 0x00000080, MSG_SYS_BIND_ALT },
23939273SAli.Bahrami@Sun.COM { 0x00000100, MSG_SYS_LISTEN_ALT },
23949273SAli.Bahrami@Sun.COM { 0x00000200, MSG_SYS_ACCEPT_ALT },
23959273SAli.Bahrami@Sun.COM { 0x00000400, MSG_SYS_CONNECT_ALT },
23969273SAli.Bahrami@Sun.COM { 0x00000800, MSG_SYS_SHUTDOWN_ALT },
23979273SAli.Bahrami@Sun.COM { 0x00001000, MSG_SYS_RECV_ALT },
23989273SAli.Bahrami@Sun.COM { 0x00002000, MSG_SYS_RECVFROM_ALT },
23999273SAli.Bahrami@Sun.COM { 0x00004000, MSG_SYS_RECVMSG_ALT },
24009273SAli.Bahrami@Sun.COM { 0x00008000, MSG_SYS_SEND_ALT },
24019273SAli.Bahrami@Sun.COM { 0x00010000, MSG_SYS_SENDMSG_ALT },
24029273SAli.Bahrami@Sun.COM { 0x00020000, MSG_SYS_SENDTO_ALT },
24039273SAli.Bahrami@Sun.COM { 0x00040000, MSG_SYS_GETPEERNAME_ALT },
24049273SAli.Bahrami@Sun.COM { 0x00080000, MSG_SYS_GETSOCKNAME_ALT },
24059273SAli.Bahrami@Sun.COM { 0x00100000, MSG_SYS_GETSOCKOPT_ALT },
24069273SAli.Bahrami@Sun.COM { 0x00200000, MSG_SYS_SETSOCKOPT_ALT },
24079273SAli.Bahrami@Sun.COM { 0x00400000, MSG_SYS_SOCKCONFIG_ALT },
24089273SAli.Bahrami@Sun.COM { 0x00800000, MSG_SYS_NTP_GETTIME_ALT },
24099273SAli.Bahrami@Sun.COM { 0x01000000, MSG_SYS_NTP_ADJTIME_ALT },
24109273SAli.Bahrami@Sun.COM { 0x02000000, MSG_SYS_LWP_MUTEX_UNLOCK_ALT },
24119273SAli.Bahrami@Sun.COM { 0x04000000, MSG_SYS_LWP_MUTEX_TRYLOCK_ALT },
24129273SAli.Bahrami@Sun.COM { 0x08000000, MSG_SYS_LWP_MUTEX_REGISTER_ALT },
24139273SAli.Bahrami@Sun.COM { 0x10000000, MSG_SYS_CLADM_ALT },
24149273SAli.Bahrami@Sun.COM { 0x20000000, MSG_SYS_UUCOPY_ALT },
24159273SAli.Bahrami@Sun.COM { 0x40000000, MSG_SYS_UMOUNT2_ALT },
24166635Sab196087 /* 256 (unused) */
24176635Sab196087 { 0, 0 }
24186635Sab196087 };
24199273SAli.Bahrami@Sun.COM static const conv_bitmaskset_desc_t bitmask_desc[N_MASK] = {
24206635Sab196087 { vda0, 0x00000000 },
24216635Sab196087 { vda1, 0x00000000 },
24226635Sab196087 { vda2, 0x00000000 },
24236635Sab196087 { vda3, 0x00000000 },
24246635Sab196087 { vda4, 0x00000000 },
24256635Sab196087 { vda5, 0x00000000 },
24266635Sab196087 { vda6, 0x00000000 },
24276635Sab196087 { vda7, 0x80000000 },
24286635Sab196087 { NULL, 0xffffffff },
24296635Sab196087 { NULL, 0xffffffff },
24306635Sab196087 { NULL, 0xffffffff },
24316635Sab196087 { NULL, 0xffffffff },
24326635Sab196087 { NULL, 0xffffffff },
24336635Sab196087 { NULL, 0xffffffff },
24346635Sab196087 { NULL, 0xffffffff },
24356635Sab196087 { NULL, 0xffffffff }
24366635Sab196087 };
24376635Sab196087
24386635Sab196087 if (n_mask > N_MASK)
24396635Sab196087 n_mask = N_MASK;
24406635Sab196087 return (conv_bitmaskset(maskarr, n_mask, bitmask_desc, fmt_flags,
24416635Sab196087 cnote_sysset_buf->buf, CONV_CNOTE_SYSSET_BUFSIZE));
24426635Sab196087
24436635Sab196087 #undef N_MASK
24446635Sab196087 }
2445