1/* Machine independent support for SVR4 /proc (process file system) for GDB.
2   Copyright 1999, 2000 Free Software Foundation, Inc.
3   Written by Michael Snyder at Cygnus Solutions.
4   Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others.
5
6This file is part of GDB.
7
8This program is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 2 of the License, or
11(at your option) any later version.
12
13This program is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with this program; if not, write to the Free Software Foundation,
20Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
21
22/*
23 * Pretty-print "events of interest".
24 *
25 * This module includes pretty-print routines for:
26 *	faults  (hardware exceptions):
27 *	signals (software interrupts):
28 *	syscalls
29 *
30 * FIXME: At present, the syscall translation table must be initialized,
31 * which is not true of the other translation tables.
32 */
33
34#include "defs.h"
35
36#if defined (NEW_PROC_API)
37#define _STRUCTURED_PROC 1
38#endif
39
40#include <stdio.h>
41#include <sys/types.h>
42#include <sys/procfs.h>
43#ifdef HAVE_SYS_SYSCALL_H
44#include <sys/syscall.h>
45#endif
46#ifdef HAVE_SYS_FAULT_H
47#include <sys/fault.h>
48#endif
49
50/*  Much of the information used in the /proc interface, particularly for
51    printing status information, is kept as tables of structures of the
52    following form.  These tables can be used to map numeric values to
53    their symbolic names and to a string that describes their specific use. */
54
55struct trans {
56  int value;                    /* The numeric value */
57  char *name;                   /* The equivalent symbolic value */
58  char *desc;                   /* Short description of value */
59};
60
61/*
62 * pretty print syscalls
63 */
64
65/* Ugh -- Unixware and Solaris spell these differently! */
66
67#ifdef  SYS_lwpcreate
68#define SYS_lwp_create	SYS_lwpcreate
69#endif
70
71#ifdef  SYS_lwpexit
72#define SYS_lwp_exit SYS_lwpexit
73#endif
74
75#ifdef  SYS_lwpwait
76#define SYS_lwp_wait SYS_lwpwait
77#endif
78
79#ifdef  SYS_lwpself
80#define SYS_lwp_self SYS_lwpself
81#endif
82
83#ifdef  SYS_lwpinfo
84#define SYS_lwp_info SYS_lwpinfo
85#endif
86
87#ifdef  SYS_lwpprivate
88#define SYS_lwp_private SYS_lwpprivate
89#endif
90
91#ifdef  SYS_lwpkill
92#define SYS_lwp_kill SYS_lwpkill
93#endif
94
95#ifdef  SYS_lwpsuspend
96#define SYS_lwp_suspend SYS_lwpsuspend
97#endif
98
99#ifdef  SYS_lwpcontinue
100#define SYS_lwp_continue SYS_lwpcontinue
101#endif
102
103
104/* Syscall translation table. */
105
106#define MAX_SYSCALLS 262	/* pretty arbitrary */
107static char * syscall_table[MAX_SYSCALLS];
108
109void
110init_syscall_table (void)
111{
112#if defined (SYS_BSD_getime)
113  syscall_table[SYS_BSD_getime] = "BSD_getime";
114#endif
115#if defined (SYS_BSDgetpgrp)
116  syscall_table[SYS_BSDgetpgrp] = "BSDgetpgrp";
117#endif
118#if defined (SYS_BSDsetpgrp)
119  syscall_table[SYS_BSDsetpgrp] = "BSDsetpgrp";
120#endif
121#if defined (SYS_acancel)
122  syscall_table[SYS_acancel] = "acancel";
123#endif
124#if defined (SYS_accept)
125  syscall_table[SYS_accept] = "accept";
126#endif
127#if defined (SYS_access)
128  syscall_table[SYS_access] = "access";
129#endif
130#if defined (SYS_acct)
131  syscall_table[SYS_acct] = "acct";
132#endif
133#if defined (SYS_acl)
134  syscall_table[SYS_acl] = "acl";
135#endif
136#if defined (SYS_aclipc)
137  syscall_table[SYS_aclipc] = "aclipc";
138#endif
139#if defined (SYS_adjtime)
140  syscall_table[SYS_adjtime] = "adjtime";
141#endif
142#if defined (SYS_afs_syscall)
143  syscall_table[SYS_afs_syscall] = "afs_syscall";
144#endif
145#if defined (SYS_alarm)
146  syscall_table[SYS_alarm] = "alarm";
147#endif
148#if defined (SYS_alt_plock)
149  syscall_table[SYS_alt_plock] = "alt_plock";
150#endif
151#if defined (SYS_alt_sigpending)
152  syscall_table[SYS_alt_sigpending] = "alt_sigpending";
153#endif
154#if defined (SYS_async)
155  syscall_table[SYS_async] = "async";
156#endif
157#if defined (SYS_async_daemon)
158  syscall_table[SYS_async_daemon] = "async_daemon";
159#endif
160#if defined (SYS_audcntl)
161  syscall_table[SYS_audcntl] = "audcntl";
162#endif
163#if defined (SYS_audgen)
164  syscall_table[SYS_audgen] = "audgen";
165#endif
166#if defined (SYS_auditbuf)
167  syscall_table[SYS_auditbuf] = "auditbuf";
168#endif
169#if defined (SYS_auditctl)
170  syscall_table[SYS_auditctl] = "auditctl";
171#endif
172#if defined (SYS_auditdmp)
173  syscall_table[SYS_auditdmp] = "auditdmp";
174#endif
175#if defined (SYS_auditevt)
176  syscall_table[SYS_auditevt] = "auditevt";
177#endif
178#if defined (SYS_auditlog)
179  syscall_table[SYS_auditlog] = "auditlog";
180#endif
181#if defined (SYS_auditsys)
182  syscall_table[SYS_auditsys] = "auditsys";
183#endif
184#if defined (SYS_bind)
185  syscall_table[SYS_bind] = "bind";
186#endif
187#if defined (SYS_block)
188  syscall_table[SYS_block] = "block";
189#endif
190#if defined (SYS_brk)
191  syscall_table[SYS_brk] = "brk";
192#endif
193#if defined (SYS_cachectl)
194  syscall_table[SYS_cachectl] = "cachectl";
195#endif
196#if defined (SYS_cacheflush)
197  syscall_table[SYS_cacheflush] = "cacheflush";
198#endif
199#if defined (SYS_cancelblock)
200  syscall_table[SYS_cancelblock] = "cancelblock";
201#endif
202#if defined (SYS_cg_bind)
203  syscall_table[SYS_cg_bind] = "cg_bind";
204#endif
205#if defined (SYS_cg_current)
206  syscall_table[SYS_cg_current] = "cg_current";
207#endif
208#if defined (SYS_cg_ids)
209  syscall_table[SYS_cg_ids] = "cg_ids";
210#endif
211#if defined (SYS_cg_info)
212  syscall_table[SYS_cg_info] = "cg_info";
213#endif
214#if defined (SYS_cg_memloc)
215  syscall_table[SYS_cg_memloc] = "cg_memloc";
216#endif
217#if defined (SYS_cg_processors)
218  syscall_table[SYS_cg_processors] = "cg_processors";
219#endif
220#if defined (SYS_chdir)
221  syscall_table[SYS_chdir] = "chdir";
222#endif
223#if defined (SYS_chflags)
224  syscall_table[SYS_chflags] = "chflags";
225#endif
226#if defined (SYS_chmod)
227  syscall_table[SYS_chmod] = "chmod";
228#endif
229#if defined (SYS_chown)
230  syscall_table[SYS_chown] = "chown";
231#endif
232#if defined (SYS_chroot)
233  syscall_table[SYS_chroot] = "chroot";
234#endif
235#if defined (SYS_clocal)
236  syscall_table[SYS_clocal] = "clocal";
237#endif
238#if defined (SYS_clock_getres)
239  syscall_table[SYS_clock_getres] = "clock_getres";
240#endif
241#if defined (SYS_clock_gettime)
242  syscall_table[SYS_clock_gettime] = "clock_gettime";
243#endif
244#if defined (SYS_clock_settime)
245  syscall_table[SYS_clock_settime] = "clock_settime";
246#endif
247#if defined (SYS_close)
248  syscall_table[SYS_close] = "close";
249#endif
250#if defined (SYS_connect)
251  syscall_table[SYS_connect] = "connect";
252#endif
253#if defined (SYS_context)
254  syscall_table[SYS_context] = "context";
255#endif
256#if defined (SYS_creat)
257  syscall_table[SYS_creat] = "creat";
258#endif
259#if defined (SYS_creat64)
260  syscall_table[SYS_creat64] = "creat64";
261#endif
262#if defined (SYS_devstat)
263  syscall_table[SYS_devstat] = "devstat";
264#endif
265#if defined (SYS_dmi)
266  syscall_table[SYS_dmi] = "dmi";
267#endif
268#if defined (SYS_door)
269  syscall_table[SYS_door] = "door";
270#endif
271#if defined (SYS_dshmsys)
272  syscall_table[SYS_dshmsys] = "dshmsys";
273#endif
274#if defined (SYS_dup)
275  syscall_table[SYS_dup] = "dup";
276#endif
277#if defined (SYS_dup2)
278  syscall_table[SYS_dup2] = "dup2";
279#endif
280#if defined (SYS_evsys)
281  syscall_table[SYS_evsys] = "evsys";
282#endif
283#if defined (SYS_evtrapret)
284  syscall_table[SYS_evtrapret] = "evtrapret";
285#endif
286#if defined (SYS_exec)
287  syscall_table[SYS_exec] = "exec";
288#endif
289#if defined (SYS_exec_with_loader)
290  syscall_table[SYS_exec_with_loader] = "exec_with_loader";
291#endif
292#if defined (SYS_execv)
293  syscall_table[SYS_execv] = "execv";
294#endif
295#if defined (SYS_execve)
296  syscall_table[SYS_execve] = "execve";
297#endif
298#if defined (SYS_exit)
299  syscall_table[SYS_exit] = "exit";
300#endif
301#if defined (SYS_exportfs)
302  syscall_table[SYS_exportfs] = "exportfs";
303#endif
304#if defined (SYS_facl)
305  syscall_table[SYS_facl] = "facl";
306#endif
307#if defined (SYS_fchdir)
308  syscall_table[SYS_fchdir] = "fchdir";
309#endif
310#if defined (SYS_fchflags)
311  syscall_table[SYS_fchflags] = "fchflags";
312#endif
313#if defined (SYS_fchmod)
314  syscall_table[SYS_fchmod] = "fchmod";
315#endif
316#if defined (SYS_fchown)
317  syscall_table[SYS_fchown] = "fchown";
318#endif
319#if defined (SYS_fchroot)
320  syscall_table[SYS_fchroot] = "fchroot";
321#endif
322#if defined (SYS_fcntl)
323  syscall_table[SYS_fcntl] = "fcntl";
324#endif
325#if defined (SYS_fdatasync)
326  syscall_table[SYS_fdatasync] = "fdatasync";
327#endif
328#if defined (SYS_fdevstat)
329  syscall_table[SYS_fdevstat] = "fdevstat";
330#endif
331#if defined (SYS_fdsync)
332  syscall_table[SYS_fdsync] = "fdsync";
333#endif
334#if defined (SYS_filepriv)
335  syscall_table[SYS_filepriv] = "filepriv";
336#endif
337#if defined (SYS_flock)
338  syscall_table[SYS_flock] = "flock";
339#endif
340#if defined (SYS_flvlfile)
341  syscall_table[SYS_flvlfile] = "flvlfile";
342#endif
343#if defined (SYS_fork)
344  syscall_table[SYS_fork] = "fork";
345#endif
346#if defined (SYS_fork1)
347  syscall_table[SYS_fork1] = "fork1";
348#endif
349#if defined (SYS_forkall)
350  syscall_table[SYS_forkall] = "forkall";
351#endif
352#if defined (SYS_fpathconf)
353  syscall_table[SYS_fpathconf] = "fpathconf";
354#endif
355#if defined (SYS_fstat)
356  syscall_table[SYS_fstat] = "fstat";
357#endif
358#if defined (SYS_fstat64)
359  syscall_table[SYS_fstat64] = "fstat64";
360#endif
361#if defined (SYS_fstatfs)
362  syscall_table[SYS_fstatfs] = "fstatfs";
363#endif
364#if defined (SYS_fstatvfs)
365  syscall_table[SYS_fstatvfs] = "fstatvfs";
366#endif
367#if defined (SYS_fstatvfs64)
368  syscall_table[SYS_fstatvfs64] = "fstatvfs64";
369#endif
370#if defined (SYS_fsync)
371  syscall_table[SYS_fsync] = "fsync";
372#endif
373#if defined (SYS_ftruncate)
374  syscall_table[SYS_ftruncate] = "ftruncate";
375#endif
376#if defined (SYS_ftruncate64)
377  syscall_table[SYS_ftruncate64] = "ftruncate64";
378#endif
379#if defined (SYS_fuser)
380  syscall_table[SYS_fuser] = "fuser";
381#endif
382#if defined (SYS_fxstat)
383  syscall_table[SYS_fxstat] = "fxstat";
384#endif
385#if defined (SYS_get_sysinfo)
386  syscall_table[SYS_get_sysinfo] = "get_sysinfo";
387#endif
388#if defined (SYS_getaddressconf)
389  syscall_table[SYS_getaddressconf] = "getaddressconf";
390#endif
391#if defined (SYS_getcontext)
392  syscall_table[SYS_getcontext] = "getcontext";
393#endif
394#if defined (SYS_getdents)
395  syscall_table[SYS_getdents] = "getdents";
396#endif
397#if defined (SYS_getdents64)
398  syscall_table[SYS_getdents64] = "getdents64";
399#endif
400#if defined (SYS_getdirentries)
401  syscall_table[SYS_getdirentries] = "getdirentries";
402#endif
403#if defined (SYS_getdomainname)
404  syscall_table[SYS_getdomainname] = "getdomainname";
405#endif
406#if defined (SYS_getdtablesize)
407  syscall_table[SYS_getdtablesize] = "getdtablesize";
408#endif
409#if defined (SYS_getfh)
410  syscall_table[SYS_getfh] = "getfh";
411#endif
412#if defined (SYS_getfsstat)
413  syscall_table[SYS_getfsstat] = "getfsstat";
414#endif
415#if defined (SYS_getgid)
416  syscall_table[SYS_getgid] = "getgid";
417#endif
418#if defined (SYS_getgroups)
419  syscall_table[SYS_getgroups] = "getgroups";
420#endif
421#if defined (SYS_gethostid)
422  syscall_table[SYS_gethostid] = "gethostid";
423#endif
424#if defined (SYS_gethostname)
425  syscall_table[SYS_gethostname] = "gethostname";
426#endif
427#if defined (SYS_getitimer)
428  syscall_table[SYS_getitimer] = "getitimer";
429#endif
430#if defined (SYS_getksym)
431  syscall_table[SYS_getksym] = "getksym";
432#endif
433#if defined (SYS_getlogin)
434  syscall_table[SYS_getlogin] = "getlogin";
435#endif
436#if defined (SYS_getmnt)
437  syscall_table[SYS_getmnt] = "getmnt";
438#endif
439#if defined (SYS_getmsg)
440  syscall_table[SYS_getmsg] = "getmsg";
441#endif
442#if defined (SYS_getpagesize)
443  syscall_table[SYS_getpagesize] = "getpagesize";
444#endif
445#if defined (SYS_getpeername)
446  syscall_table[SYS_getpeername] = "getpeername";
447#endif
448#if defined (SYS_getpgid)
449  syscall_table[SYS_getpgid] = "getpgid";
450#endif
451#if defined (SYS_getpgrp)
452  syscall_table[SYS_getpgrp] = "getpgrp";
453#endif
454#if defined (SYS_getpid)
455  syscall_table[SYS_getpid] = "getpid";
456#endif
457#if defined (SYS_getpmsg)
458  syscall_table[SYS_getpmsg] = "getpmsg";
459#endif
460#if defined (SYS_getpriority)
461  syscall_table[SYS_getpriority] = "getpriority";
462#endif
463#if defined (SYS_getrlimit)
464  syscall_table[SYS_getrlimit] = "getrlimit";
465#endif
466#if defined (SYS_getrlimit64)
467  syscall_table[SYS_getrlimit64] = "getrlimit64";
468#endif
469#if defined (SYS_getrusage)
470  syscall_table[SYS_getrusage] = "getrusage";
471#endif
472#if defined (SYS_getsid)
473  syscall_table[SYS_getsid] = "getsid";
474#endif
475#if defined (SYS_getsockname)
476  syscall_table[SYS_getsockname] = "getsockname";
477#endif
478#if defined (SYS_getsockopt)
479  syscall_table[SYS_getsockopt] = "getsockopt";
480#endif
481#if defined (SYS_gettimeofday)
482  syscall_table[SYS_gettimeofday] = "gettimeofday";
483#endif
484#if defined (SYS_getuid)
485  syscall_table[SYS_getuid] = "getuid";
486#endif
487#if defined (SYS_gtty)
488  syscall_table[SYS_gtty] = "gtty";
489#endif
490#if defined (SYS_hrtsys)
491  syscall_table[SYS_hrtsys] = "hrtsys";
492#endif
493#if defined (SYS_inst_sync)
494  syscall_table[SYS_inst_sync] = "inst_sync";
495#endif
496#if defined (SYS_install_utrap)
497  syscall_table[SYS_install_utrap] = "install_utrap";
498#endif
499#if defined (SYS_invlpg)
500  syscall_table[SYS_invlpg] = "invlpg";
501#endif
502#if defined (SYS_ioctl)
503  syscall_table[SYS_ioctl] = "ioctl";
504#endif
505#if defined (SYS_kaio)
506  syscall_table[SYS_kaio] = "kaio";
507#endif
508#if defined (SYS_keyctl)
509  syscall_table[SYS_keyctl] = "keyctl";
510#endif
511#if defined (SYS_kill)
512  syscall_table[SYS_kill] = "kill";
513#endif
514#if defined (SYS_killpg)
515  syscall_table[SYS_killpg] = "killpg";
516#endif
517#if defined (SYS_kloadcall)
518  syscall_table[SYS_kloadcall] = "kloadcall";
519#endif
520#if defined (SYS_kmodcall)
521  syscall_table[SYS_kmodcall] = "kmodcall";
522#endif
523#if defined (SYS_ksigaction)
524  syscall_table[SYS_ksigaction] = "ksigaction";
525#endif
526#if defined (SYS_ksigprocmask)
527  syscall_table[SYS_ksigprocmask] = "ksigprocmask";
528#endif
529#if defined (SYS_ksigqueue)
530  syscall_table[SYS_ksigqueue] = "ksigqueue";
531#endif
532#if defined (SYS_lchown)
533  syscall_table[SYS_lchown] = "lchown";
534#endif
535#if defined (SYS_link)
536  syscall_table[SYS_link] = "link";
537#endif
538#if defined (SYS_listen)
539  syscall_table[SYS_listen] = "listen";
540#endif
541#if defined (SYS_llseek)
542  syscall_table[SYS_llseek] = "llseek";
543#endif
544#if defined (SYS_lseek)
545  syscall_table[SYS_lseek] = "lseek";
546#endif
547#if defined (SYS_lseek64)
548  syscall_table[SYS_lseek64] = "lseek64";
549#endif
550#if defined (SYS_lstat)
551  syscall_table[SYS_lstat] = "lstat";
552#endif
553#if defined (SYS_lstat64)
554  syscall_table[SYS_lstat64] = "lstat64";
555#endif
556#if defined (SYS_lvldom)
557  syscall_table[SYS_lvldom] = "lvldom";
558#endif
559#if defined (SYS_lvlequal)
560  syscall_table[SYS_lvlequal] = "lvlequal";
561#endif
562#if defined (SYS_lvlfile)
563  syscall_table[SYS_lvlfile] = "lvlfile";
564#endif
565#if defined (SYS_lvlipc)
566  syscall_table[SYS_lvlipc] = "lvlipc";
567#endif
568#if defined (SYS_lvlproc)
569  syscall_table[SYS_lvlproc] = "lvlproc";
570#endif
571#if defined (SYS_lvlvfs)
572  syscall_table[SYS_lvlvfs] = "lvlvfs";
573#endif
574#if defined (SYS_lwp_alarm)
575  syscall_table[SYS_lwp_alarm] = "lwp_alarm";
576#endif
577#if defined (SYS_lwp_cond_broadcast)
578  syscall_table[SYS_lwp_cond_broadcast] = "lwp_cond_broadcast";
579#endif
580#if defined (SYS_lwp_cond_signal)
581  syscall_table[SYS_lwp_cond_signal] = "lwp_cond_signal";
582#endif
583#if defined (SYS_lwp_cond_wait)
584  syscall_table[SYS_lwp_cond_wait] = "lwp_cond_wait";
585#endif
586#if defined (SYS_lwp_continue)
587  syscall_table[SYS_lwp_continue] = "lwp_continue";
588#endif
589#if defined (SYS_lwp_create)
590  syscall_table[SYS_lwp_create] = "lwp_create";
591#endif
592#if defined (SYS_lwp_exit)
593  syscall_table[SYS_lwp_exit] = "lwp_exit";
594#endif
595#if defined (SYS_lwp_getprivate)
596  syscall_table[SYS_lwp_getprivate] = "lwp_getprivate";
597#endif
598#if defined (SYS_lwp_info)
599  syscall_table[SYS_lwp_info] = "lwp_info";
600#endif
601#if defined (SYS_lwp_kill)
602  syscall_table[SYS_lwp_kill] = "lwp_kill";
603#endif
604#if defined (SYS_lwp_mutex_init)
605  syscall_table[SYS_lwp_mutex_init] = "lwp_mutex_init";
606#endif
607#if defined (SYS_lwp_mutex_lock)
608  syscall_table[SYS_lwp_mutex_lock] = "lwp_mutex_lock";
609#endif
610#if defined (SYS_lwp_mutex_trylock)
611  syscall_table[SYS_lwp_mutex_trylock] = "lwp_mutex_trylock";
612#endif
613#if defined (SYS_lwp_mutex_unlock)
614  syscall_table[SYS_lwp_mutex_unlock] = "lwp_mutex_unlock";
615#endif
616#if defined (SYS_lwp_private)
617  syscall_table[SYS_lwp_private] = "lwp_private";
618#endif
619#if defined (SYS_lwp_self)
620  syscall_table[SYS_lwp_self] = "lwp_self";
621#endif
622#if defined (SYS_lwp_sema_post)
623  syscall_table[SYS_lwp_sema_post] = "lwp_sema_post";
624#endif
625#if defined (SYS_lwp_sema_trywait)
626  syscall_table[SYS_lwp_sema_trywait] = "lwp_sema_trywait";
627#endif
628#if defined (SYS_lwp_sema_wait)
629  syscall_table[SYS_lwp_sema_wait] = "lwp_sema_wait";
630#endif
631#if defined (SYS_lwp_setprivate)
632  syscall_table[SYS_lwp_setprivate] = "lwp_setprivate";
633#endif
634#if defined (SYS_lwp_sigredirect)
635  syscall_table[SYS_lwp_sigredirect] = "lwp_sigredirect";
636#endif
637#if defined (SYS_lwp_suspend)
638  syscall_table[SYS_lwp_suspend] = "lwp_suspend";
639#endif
640#if defined (SYS_lwp_wait)
641  syscall_table[SYS_lwp_wait] = "lwp_wait";
642#endif
643#if defined (SYS_lxstat)
644  syscall_table[SYS_lxstat] = "lxstat";
645#endif
646#if defined (SYS_madvise)
647  syscall_table[SYS_madvise] = "madvise";
648#endif
649#if defined (SYS_memcntl)
650  syscall_table[SYS_memcntl] = "memcntl";
651#endif
652#if defined (SYS_mincore)
653  syscall_table[SYS_mincore] = "mincore";
654#endif
655#if defined (SYS_mincore)
656  syscall_table[SYS_mincore] = "mincore";
657#endif
658#if defined (SYS_mkdir)
659  syscall_table[SYS_mkdir] = "mkdir";
660#endif
661#if defined (SYS_mkmld)
662  syscall_table[SYS_mkmld] = "mkmld";
663#endif
664#if defined (SYS_mknod)
665  syscall_table[SYS_mknod] = "mknod";
666#endif
667#if defined (SYS_mldmode)
668  syscall_table[SYS_mldmode] = "mldmode";
669#endif
670#if defined (SYS_mmap)
671  syscall_table[SYS_mmap] = "mmap";
672#endif
673#if defined (SYS_mmap64)
674  syscall_table[SYS_mmap64] = "mmap64";
675#endif
676#if defined (SYS_modadm)
677  syscall_table[SYS_modadm] = "modadm";
678#endif
679#if defined (SYS_modctl)
680  syscall_table[SYS_modctl] = "modctl";
681#endif
682#if defined (SYS_modload)
683  syscall_table[SYS_modload] = "modload";
684#endif
685#if defined (SYS_modpath)
686  syscall_table[SYS_modpath] = "modpath";
687#endif
688#if defined (SYS_modstat)
689  syscall_table[SYS_modstat] = "modstat";
690#endif
691#if defined (SYS_moduload)
692  syscall_table[SYS_moduload] = "moduload";
693#endif
694#if defined (SYS_mount)
695  syscall_table[SYS_mount] = "mount";
696#endif
697#if defined (SYS_mprotect)
698  syscall_table[SYS_mprotect] = "mprotect";
699#endif
700#if defined (SYS_mremap)
701  syscall_table[SYS_mremap] = "mremap";
702#endif
703#if defined (SYS_msfs_syscall)
704  syscall_table[SYS_msfs_syscall] = "msfs_syscall";
705#endif
706#if defined (SYS_msgctl)
707  syscall_table[SYS_msgctl] = "msgctl";
708#endif
709#if defined (SYS_msgget)
710  syscall_table[SYS_msgget] = "msgget";
711#endif
712#if defined (SYS_msgrcv)
713  syscall_table[SYS_msgrcv] = "msgrcv";
714#endif
715#if defined (SYS_msgsnd)
716  syscall_table[SYS_msgsnd] = "msgsnd";
717#endif
718#if defined (SYS_msgsys)
719  syscall_table[SYS_msgsys] = "msgsys";
720#endif
721#if defined (SYS_msleep)
722  syscall_table[SYS_msleep] = "msleep";
723#endif
724#if defined (SYS_msync)
725  syscall_table[SYS_msync] = "msync";
726#endif
727#if defined (SYS_munmap)
728  syscall_table[SYS_munmap] = "munmap";
729#endif
730#if defined (SYS_mvalid)
731  syscall_table[SYS_mvalid] = "mvalid";
732#endif
733#if defined (SYS_mwakeup)
734  syscall_table[SYS_mwakeup] = "mwakeup";
735#endif
736#if defined (SYS_naccept)
737  syscall_table[SYS_naccept] = "naccept";
738#endif
739#if defined (SYS_nanosleep)
740  syscall_table[SYS_nanosleep] = "nanosleep";
741#endif
742#if defined (SYS_nfssvc)
743  syscall_table[SYS_nfssvc] = "nfssvc";
744#endif
745#if defined (SYS_nfssys)
746  syscall_table[SYS_nfssys] = "nfssys";
747#endif
748#if defined (SYS_ngetpeername)
749  syscall_table[SYS_ngetpeername] = "ngetpeername";
750#endif
751#if defined (SYS_ngetsockname)
752  syscall_table[SYS_ngetsockname] = "ngetsockname";
753#endif
754#if defined (SYS_nice)
755  syscall_table[SYS_nice] = "nice";
756#endif
757#if defined (SYS_nrecvfrom)
758  syscall_table[SYS_nrecvfrom] = "nrecvfrom";
759#endif
760#if defined (SYS_nrecvmsg)
761  syscall_table[SYS_nrecvmsg] = "nrecvmsg";
762#endif
763#if defined (SYS_nsendmsg)
764  syscall_table[SYS_nsendmsg] = "nsendmsg";
765#endif
766#if defined (SYS_ntp_adjtime)
767  syscall_table[SYS_ntp_adjtime] = "ntp_adjtime";
768#endif
769#if defined (SYS_ntp_gettime)
770  syscall_table[SYS_ntp_gettime] = "ntp_gettime";
771#endif
772#if defined (SYS_nuname)
773  syscall_table[SYS_nuname] = "nuname";
774#endif
775#if defined (SYS_obreak)
776  syscall_table[SYS_obreak] = "obreak";
777#endif
778#if defined (SYS_old_accept)
779  syscall_table[SYS_old_accept] = "old_accept";
780#endif
781#if defined (SYS_old_fstat)
782  syscall_table[SYS_old_fstat] = "old_fstat";
783#endif
784#if defined (SYS_old_getpeername)
785  syscall_table[SYS_old_getpeername] = "old_getpeername";
786#endif
787#if defined (SYS_old_getpgrp)
788  syscall_table[SYS_old_getpgrp] = "old_getpgrp";
789#endif
790#if defined (SYS_old_getsockname)
791  syscall_table[SYS_old_getsockname] = "old_getsockname";
792#endif
793#if defined (SYS_old_killpg)
794  syscall_table[SYS_old_killpg] = "old_killpg";
795#endif
796#if defined (SYS_old_lstat)
797  syscall_table[SYS_old_lstat] = "old_lstat";
798#endif
799#if defined (SYS_old_recv)
800  syscall_table[SYS_old_recv] = "old_recv";
801#endif
802#if defined (SYS_old_recvfrom)
803  syscall_table[SYS_old_recvfrom] = "old_recvfrom";
804#endif
805#if defined (SYS_old_recvmsg)
806  syscall_table[SYS_old_recvmsg] = "old_recvmsg";
807#endif
808#if defined (SYS_old_send)
809  syscall_table[SYS_old_send] = "old_send";
810#endif
811#if defined (SYS_old_sendmsg)
812  syscall_table[SYS_old_sendmsg] = "old_sendmsg";
813#endif
814#if defined (SYS_old_sigblock)
815  syscall_table[SYS_old_sigblock] = "old_sigblock";
816#endif
817#if defined (SYS_old_sigsetmask)
818  syscall_table[SYS_old_sigsetmask] = "old_sigsetmask";
819#endif
820#if defined (SYS_old_sigvec)
821  syscall_table[SYS_old_sigvec] = "old_sigvec";
822#endif
823#if defined (SYS_old_stat)
824  syscall_table[SYS_old_stat] = "old_stat";
825#endif
826#if defined (SYS_old_vhangup)
827  syscall_table[SYS_old_vhangup] = "old_vhangup";
828#endif
829#if defined (SYS_old_wait)
830  syscall_table[SYS_old_wait] = "old_wait";
831#endif
832#if defined (SYS_oldquota)
833  syscall_table[SYS_oldquota] = "oldquota";
834#endif
835#if defined (SYS_online)
836  syscall_table[SYS_online] = "online";
837#endif
838#if defined (SYS_open)
839  syscall_table[SYS_open] = "open";
840#endif
841#if defined (SYS_open64)
842  syscall_table[SYS_open64] = "open64";
843#endif
844#if defined (SYS_ovadvise)
845  syscall_table[SYS_ovadvise] = "ovadvise";
846#endif
847#if defined (SYS_p_online)
848  syscall_table[SYS_p_online] = "p_online";
849#endif
850#if defined (SYS_pagelock)
851  syscall_table[SYS_pagelock] = "pagelock";
852#endif
853#if defined (SYS_pathconf)
854  syscall_table[SYS_pathconf] = "pathconf";
855#endif
856#if defined (SYS_pause)
857  syscall_table[SYS_pause] = "pause";
858#endif
859#if defined (SYS_pgrpsys)
860  syscall_table[SYS_pgrpsys] = "pgrpsys";
861#endif
862#if defined (SYS_pid_block)
863  syscall_table[SYS_pid_block] = "pid_block";
864#endif
865#if defined (SYS_pid_unblock)
866  syscall_table[SYS_pid_unblock] = "pid_unblock";
867#endif
868#if defined (SYS_pipe)
869  syscall_table[SYS_pipe] = "pipe";
870#endif
871#if defined (SYS_plock)
872  syscall_table[SYS_plock] = "plock";
873#endif
874#if defined (SYS_poll)
875  syscall_table[SYS_poll] = "poll";
876#endif
877#if defined (SYS_prctl)
878  syscall_table[SYS_prctl] = "prctl";
879#endif
880#if defined (SYS_pread)
881  syscall_table[SYS_pread] = "pread";
882#endif
883#if defined (SYS_pread64)
884  syscall_table[SYS_pread64] = "pread64";
885#endif
886#if defined (SYS_pread64)
887  syscall_table[SYS_pread64] = "pread64";
888#endif
889#if defined (SYS_prepblock)
890  syscall_table[SYS_prepblock] = "prepblock";
891#endif
892#if defined (SYS_priocntl)
893  syscall_table[SYS_priocntl] = "priocntl";
894#endif
895#if defined (SYS_priocntllst)
896  syscall_table[SYS_priocntllst] = "priocntllst";
897#endif
898#if defined (SYS_priocntlset)
899  syscall_table[SYS_priocntlset] = "priocntlset";
900#endif
901#if defined (SYS_priocntlsys)
902  syscall_table[SYS_priocntlsys] = "priocntlsys";
903#endif
904#if defined (SYS_procblk)
905  syscall_table[SYS_procblk] = "procblk";
906#endif
907#if defined (SYS_processor_bind)
908  syscall_table[SYS_processor_bind] = "processor_bind";
909#endif
910#if defined (SYS_processor_exbind)
911  syscall_table[SYS_processor_exbind] = "processor_exbind";
912#endif
913#if defined (SYS_processor_info)
914  syscall_table[SYS_processor_info] = "processor_info";
915#endif
916#if defined (SYS_procpriv)
917  syscall_table[SYS_procpriv] = "procpriv";
918#endif
919#if defined (SYS_profil)
920  syscall_table[SYS_profil] = "profil";
921#endif
922#if defined (SYS_proplist_syscall)
923  syscall_table[SYS_proplist_syscall] = "proplist_syscall";
924#endif
925#if defined (SYS_pset)
926  syscall_table[SYS_pset] = "pset";
927#endif
928#if defined (SYS_ptrace)
929  syscall_table[SYS_ptrace] = "ptrace";
930#endif
931#if defined (SYS_putmsg)
932  syscall_table[SYS_putmsg] = "putmsg";
933#endif
934#if defined (SYS_putpmsg)
935  syscall_table[SYS_putpmsg] = "putpmsg";
936#endif
937#if defined (SYS_pwrite)
938  syscall_table[SYS_pwrite] = "pwrite";
939#endif
940#if defined (SYS_pwrite64)
941  syscall_table[SYS_pwrite64] = "pwrite64";
942#endif
943#if defined (SYS_quotactl)
944  syscall_table[SYS_quotactl] = "quotactl";
945#endif
946#if defined (SYS_rdblock)
947  syscall_table[SYS_rdblock] = "rdblock";
948#endif
949#if defined (SYS_read)
950  syscall_table[SYS_read] = "read";
951#endif
952#if defined (SYS_readlink)
953  syscall_table[SYS_readlink] = "readlink";
954#endif
955#if defined (SYS_readv)
956  syscall_table[SYS_readv] = "readv";
957#endif
958#if defined (SYS_reboot)
959  syscall_table[SYS_reboot] = "reboot";
960#endif
961#if defined (SYS_recv)
962  syscall_table[SYS_recv] = "recv";
963#endif
964#if defined (SYS_recvfrom)
965  syscall_table[SYS_recvfrom] = "recvfrom";
966#endif
967#if defined (SYS_recvmsg)
968  syscall_table[SYS_recvmsg] = "recvmsg";
969#endif
970#if defined (SYS_rename)
971  syscall_table[SYS_rename] = "rename";
972#endif
973#if defined (SYS_resolvepath)
974  syscall_table[SYS_resolvepath] = "resolvepath";
975#endif
976#if defined (SYS_revoke)
977  syscall_table[SYS_revoke] = "revoke";
978#endif
979#if defined (SYS_rfsys)
980  syscall_table[SYS_rfsys] = "rfsys";
981#endif
982#if defined (SYS_rmdir)
983  syscall_table[SYS_rmdir] = "rmdir";
984#endif
985#if defined (SYS_rpcsys)
986  syscall_table[SYS_rpcsys] = "rpcsys";
987#endif
988#if defined (SYS_sbrk)
989  syscall_table[SYS_sbrk] = "sbrk";
990#endif
991#if defined (SYS_schedctl)
992  syscall_table[SYS_schedctl] = "schedctl";
993#endif
994#if defined (SYS_secadvise)
995  syscall_table[SYS_secadvise] = "secadvise";
996#endif
997#if defined (SYS_secsys)
998  syscall_table[SYS_secsys] = "secsys";
999#endif
1000#if defined (SYS_security)
1001  syscall_table[SYS_security] = "security";
1002#endif
1003#if defined (SYS_select)
1004  syscall_table[SYS_select] = "select";
1005#endif
1006#if defined (SYS_semctl)
1007  syscall_table[SYS_semctl] = "semctl";
1008#endif
1009#if defined (SYS_semget)
1010  syscall_table[SYS_semget] = "semget";
1011#endif
1012#if defined (SYS_semop)
1013  syscall_table[SYS_semop] = "semop";
1014#endif
1015#if defined (SYS_semsys)
1016  syscall_table[SYS_semsys] = "semsys";
1017#endif
1018#if defined (SYS_send)
1019  syscall_table[SYS_send] = "send";
1020#endif
1021#if defined (SYS_sendmsg)
1022  syscall_table[SYS_sendmsg] = "sendmsg";
1023#endif
1024#if defined (SYS_sendto)
1025  syscall_table[SYS_sendto] = "sendto";
1026#endif
1027#if defined (SYS_set_program_attributes)
1028  syscall_table[SYS_set_program_attributes] = "set_program_attributes";
1029#endif
1030#if defined (SYS_set_speculative)
1031  syscall_table[SYS_set_speculative] = "set_speculative";
1032#endif
1033#if defined (SYS_set_sysinfo)
1034  syscall_table[SYS_set_sysinfo] = "set_sysinfo";
1035#endif
1036#if defined (SYS_setcontext)
1037  syscall_table[SYS_setcontext] = "setcontext";
1038#endif
1039#if defined (SYS_setdomainname)
1040  syscall_table[SYS_setdomainname] = "setdomainname";
1041#endif
1042#if defined (SYS_setegid)
1043  syscall_table[SYS_setegid] = "setegid";
1044#endif
1045#if defined (SYS_seteuid)
1046  syscall_table[SYS_seteuid] = "seteuid";
1047#endif
1048#if defined (SYS_setgid)
1049  syscall_table[SYS_setgid] = "setgid";
1050#endif
1051#if defined (SYS_setgroups)
1052  syscall_table[SYS_setgroups] = "setgroups";
1053#endif
1054#if defined (SYS_sethostid)
1055  syscall_table[SYS_sethostid] = "sethostid";
1056#endif
1057#if defined (SYS_sethostname)
1058  syscall_table[SYS_sethostname] = "sethostname";
1059#endif
1060#if defined (SYS_setitimer)
1061  syscall_table[SYS_setitimer] = "setitimer";
1062#endif
1063#if defined (SYS_setlogin)
1064  syscall_table[SYS_setlogin] = "setlogin";
1065#endif
1066#if defined (SYS_setpgid)
1067  syscall_table[SYS_setpgid] = "setpgid";
1068#endif
1069#if defined (SYS_setpgrp)
1070  syscall_table[SYS_setpgrp] = "setpgrp";
1071#endif
1072#if defined (SYS_setpriority)
1073  syscall_table[SYS_setpriority] = "setpriority";
1074#endif
1075#if defined (SYS_setregid)
1076  syscall_table[SYS_setregid] = "setregid";
1077#endif
1078#if defined (SYS_setreuid)
1079  syscall_table[SYS_setreuid] = "setreuid";
1080#endif
1081#if defined (SYS_setrlimit)
1082  syscall_table[SYS_setrlimit] = "setrlimit";
1083#endif
1084#if defined (SYS_setrlimit64)
1085  syscall_table[SYS_setrlimit64] = "setrlimit64";
1086#endif
1087#if defined (SYS_setsid)
1088  syscall_table[SYS_setsid] = "setsid";
1089#endif
1090#if defined (SYS_setsockopt)
1091  syscall_table[SYS_setsockopt] = "setsockopt";
1092#endif
1093#if defined (SYS_settimeofday)
1094  syscall_table[SYS_settimeofday] = "settimeofday";
1095#endif
1096#if defined (SYS_setuid)
1097  syscall_table[SYS_setuid] = "setuid";
1098#endif
1099#if defined (SYS_sgi)
1100  syscall_table[SYS_sgi] = "sgi";
1101#endif
1102#if defined (SYS_sgifastpath)
1103  syscall_table[SYS_sgifastpath] = "sgifastpath";
1104#endif
1105#if defined (SYS_sgikopt)
1106  syscall_table[SYS_sgikopt] = "sgikopt";
1107#endif
1108#if defined (SYS_sginap)
1109  syscall_table[SYS_sginap] = "sginap";
1110#endif
1111#if defined (SYS_shmat)
1112  syscall_table[SYS_shmat] = "shmat";
1113#endif
1114#if defined (SYS_shmctl)
1115  syscall_table[SYS_shmctl] = "shmctl";
1116#endif
1117#if defined (SYS_shmdt)
1118  syscall_table[SYS_shmdt] = "shmdt";
1119#endif
1120#if defined (SYS_shmget)
1121  syscall_table[SYS_shmget] = "shmget";
1122#endif
1123#if defined (SYS_shmsys)
1124  syscall_table[SYS_shmsys] = "shmsys";
1125#endif
1126#if defined (SYS_shutdown)
1127  syscall_table[SYS_shutdown] = "shutdown";
1128#endif
1129#if defined (SYS_sigaction)
1130  syscall_table[SYS_sigaction] = "sigaction";
1131#endif
1132#if defined (SYS_sigaltstack)
1133  syscall_table[SYS_sigaltstack] = "sigaltstack";
1134#endif
1135#if defined (SYS_sigaltstack)
1136  syscall_table[SYS_sigaltstack] = "sigaltstack";
1137#endif
1138#if defined (SYS_sigblock)
1139  syscall_table[SYS_sigblock] = "sigblock";
1140#endif
1141#if defined (SYS_signal)
1142  syscall_table[SYS_signal] = "signal";
1143#endif
1144#if defined (SYS_signotify)
1145  syscall_table[SYS_signotify] = "signotify";
1146#endif
1147#if defined (SYS_signotifywait)
1148  syscall_table[SYS_signotifywait] = "signotifywait";
1149#endif
1150#if defined (SYS_sigpending)
1151  syscall_table[SYS_sigpending] = "sigpending";
1152#endif
1153#if defined (SYS_sigpoll)
1154  syscall_table[SYS_sigpoll] = "sigpoll";
1155#endif
1156#if defined (SYS_sigprocmask)
1157  syscall_table[SYS_sigprocmask] = "sigprocmask";
1158#endif
1159#if defined (SYS_sigqueue)
1160  syscall_table[SYS_sigqueue] = "sigqueue";
1161#endif
1162#if defined (SYS_sigreturn)
1163  syscall_table[SYS_sigreturn] = "sigreturn";
1164#endif
1165#if defined (SYS_sigsendset)
1166  syscall_table[SYS_sigsendset] = "sigsendset";
1167#endif
1168#if defined (SYS_sigsendsys)
1169  syscall_table[SYS_sigsendsys] = "sigsendsys";
1170#endif
1171#if defined (SYS_sigsetmask)
1172  syscall_table[SYS_sigsetmask] = "sigsetmask";
1173#endif
1174#if defined (SYS_sigstack)
1175  syscall_table[SYS_sigstack] = "sigstack";
1176#endif
1177#if defined (SYS_sigsuspend)
1178  syscall_table[SYS_sigsuspend] = "sigsuspend";
1179#endif
1180#if defined (SYS_sigvec)
1181  syscall_table[SYS_sigvec] = "sigvec";
1182#endif
1183#if defined (SYS_sigwait)
1184  syscall_table[SYS_sigwait] = "sigwait";
1185#endif
1186#if defined (SYS_sigwaitprim)
1187  syscall_table[SYS_sigwaitprim] = "sigwaitprim";
1188#endif
1189#if defined (SYS_sleep)
1190  syscall_table[SYS_sleep] = "sleep";
1191#endif
1192#if defined (SYS_so_socket)
1193  syscall_table[SYS_so_socket] = "so_socket";
1194#endif
1195#if defined (SYS_so_socketpair)
1196  syscall_table[SYS_so_socketpair] = "so_socketpair";
1197#endif
1198#if defined (SYS_sockconfig)
1199  syscall_table[SYS_sockconfig] = "sockconfig";
1200#endif
1201#if defined (SYS_socket)
1202  syscall_table[SYS_socket] = "socket";
1203#endif
1204#if defined (SYS_socketpair)
1205  syscall_table[SYS_socketpair] = "socketpair";
1206#endif
1207#if defined (SYS_sproc)
1208  syscall_table[SYS_sproc] = "sproc";
1209#endif
1210#if defined (SYS_sprocsp)
1211  syscall_table[SYS_sprocsp] = "sprocsp";
1212#endif
1213#if defined (SYS_sstk)
1214  syscall_table[SYS_sstk] = "sstk";
1215#endif
1216#if defined (SYS_stat)
1217  syscall_table[SYS_stat] = "stat";
1218#endif
1219#if defined (SYS_stat64)
1220  syscall_table[SYS_stat64] = "stat64";
1221#endif
1222#if defined (SYS_statfs)
1223  syscall_table[SYS_statfs] = "statfs";
1224#endif
1225#if defined (SYS_statvfs)
1226  syscall_table[SYS_statvfs] = "statvfs";
1227#endif
1228#if defined (SYS_statvfs64)
1229  syscall_table[SYS_statvfs64] = "statvfs64";
1230#endif
1231#if defined (SYS_stime)
1232  syscall_table[SYS_stime] = "stime";
1233#endif
1234#if defined (SYS_stty)
1235  syscall_table[SYS_stty] = "stty";
1236#endif
1237#if defined (SYS_subsys_info)
1238  syscall_table[SYS_subsys_info] = "subsys_info";
1239#endif
1240#if defined (SYS_swapctl)
1241  syscall_table[SYS_swapctl] = "swapctl";
1242#endif
1243#if defined (SYS_swapon)
1244  syscall_table[SYS_swapon] = "swapon";
1245#endif
1246#if defined (SYS_symlink)
1247  syscall_table[SYS_symlink] = "symlink";
1248#endif
1249#if defined (SYS_sync)
1250  syscall_table[SYS_sync] = "sync";
1251#endif
1252#if defined (SYS_sys3b)
1253  syscall_table[SYS_sys3b] = "sys3b";
1254#endif
1255#if defined (SYS_syscall)
1256  syscall_table[SYS_syscall] = "syscall";
1257#endif
1258#if defined (SYS_sysconfig)
1259  syscall_table[SYS_sysconfig] = "sysconfig";
1260#endif
1261#if defined (SYS_sysfs)
1262  syscall_table[SYS_sysfs] = "sysfs";
1263#endif
1264#if defined (SYS_sysi86)
1265  syscall_table[SYS_sysi86] = "sysi86";
1266#endif
1267#if defined (SYS_sysinfo)
1268  syscall_table[SYS_sysinfo] = "sysinfo";
1269#endif
1270#if defined (SYS_sysmips)
1271  syscall_table[SYS_sysmips] = "sysmips";
1272#endif
1273#if defined (SYS_syssun)
1274  syscall_table[SYS_syssun] = "syssun";
1275#endif
1276#if defined (SYS_systeminfo)
1277  syscall_table[SYS_systeminfo] = "systeminfo";
1278#endif
1279#if defined (SYS_table)
1280  syscall_table[SYS_table] = "table";
1281#endif
1282#if defined (SYS_time)
1283  syscall_table[SYS_time] = "time";
1284#endif
1285#if defined (SYS_timedwait)
1286  syscall_table[SYS_timedwait] = "timedwait";
1287#endif
1288#if defined (SYS_timer_create)
1289  syscall_table[SYS_timer_create] = "timer_create";
1290#endif
1291#if defined (SYS_timer_delete)
1292  syscall_table[SYS_timer_delete] = "timer_delete";
1293#endif
1294#if defined (SYS_timer_getoverrun)
1295  syscall_table[SYS_timer_getoverrun] = "timer_getoverrun";
1296#endif
1297#if defined (SYS_timer_gettime)
1298  syscall_table[SYS_timer_gettime] = "timer_gettime";
1299#endif
1300#if defined (SYS_timer_settime)
1301  syscall_table[SYS_timer_settime] = "timer_settime";
1302#endif
1303#if defined (SYS_times)
1304  syscall_table[SYS_times] = "times";
1305#endif
1306#if defined (SYS_truncate)
1307  syscall_table[SYS_truncate] = "truncate";
1308#endif
1309#if defined (SYS_truncate64)
1310  syscall_table[SYS_truncate64] = "truncate64";
1311#endif
1312#if defined (SYS_tsolsys)
1313  syscall_table[SYS_tsolsys] = "tsolsys";
1314#endif
1315#if defined (SYS_uadmin)
1316  syscall_table[SYS_uadmin] = "uadmin";
1317#endif
1318#if defined (SYS_ulimit)
1319  syscall_table[SYS_ulimit] = "ulimit";
1320#endif
1321#if defined (SYS_umask)
1322  syscall_table[SYS_umask] = "umask";
1323#endif
1324#if defined (SYS_umount)
1325  syscall_table[SYS_umount] = "umount";
1326#endif
1327#if defined (SYS_uname)
1328  syscall_table[SYS_uname] = "uname";
1329#endif
1330#if defined (SYS_unblock)
1331  syscall_table[SYS_unblock] = "unblock";
1332#endif
1333#if defined (SYS_unlink)
1334  syscall_table[SYS_unlink] = "unlink";
1335#endif
1336#if defined (SYS_unmount)
1337  syscall_table[SYS_unmount] = "unmount";
1338#endif
1339#if defined (SYS_usleep_thread)
1340  syscall_table[SYS_usleep_thread] = "usleep_thread";
1341#endif
1342#if defined (SYS_uswitch)
1343  syscall_table[SYS_uswitch] = "uswitch";
1344#endif
1345#if defined (SYS_utc_adjtime)
1346  syscall_table[SYS_utc_adjtime] = "utc_adjtime";
1347#endif
1348#if defined (SYS_utc_gettime)
1349  syscall_table[SYS_utc_gettime] = "utc_gettime";
1350#endif
1351#if defined (SYS_utime)
1352  syscall_table[SYS_utime] = "utime";
1353#endif
1354#if defined (SYS_utimes)
1355  syscall_table[SYS_utimes] = "utimes";
1356#endif
1357#if defined (SYS_utssys)
1358  syscall_table[SYS_utssys] = "utssys";
1359#endif
1360#if defined (SYS_vfork)
1361  syscall_table[SYS_vfork] = "vfork";
1362#endif
1363#if defined (SYS_vhangup)
1364  syscall_table[SYS_vhangup] = "vhangup";
1365#endif
1366#if defined (SYS_vtrace)
1367  syscall_table[SYS_vtrace] = "vtrace";
1368#endif
1369#if defined (SYS_wait)
1370  syscall_table[SYS_wait] = "wait";
1371#endif
1372#if defined (SYS_waitid)
1373  syscall_table[SYS_waitid] = "waitid";
1374#endif
1375#if defined (SYS_waitsys)
1376  syscall_table[SYS_waitsys] = "waitsys";
1377#endif
1378#if defined (SYS_write)
1379  syscall_table[SYS_write] = "write";
1380#endif
1381#if defined (SYS_writev)
1382  syscall_table[SYS_writev] = "writev";
1383#endif
1384#if defined (SYS_xenix)
1385  syscall_table[SYS_xenix] = "xenix";
1386#endif
1387#if defined (SYS_xmknod)
1388  syscall_table[SYS_xmknod] = "xmknod";
1389#endif
1390#if defined (SYS_xstat)
1391  syscall_table[SYS_xstat] = "xstat";
1392#endif
1393#if defined (SYS_yield)
1394  syscall_table[SYS_yield] = "yield";
1395#endif
1396}
1397
1398/*
1399 * Prettyprint a single syscall by number.
1400 */
1401
1402void
1403proc_prettyfprint_syscall (FILE *file, int num, int verbose)
1404{
1405  if (syscall_table[num])
1406    fprintf (file, "SYS_%s ", syscall_table[num]);
1407  else
1408    fprintf (file, "<Unknown syscall %d> ", num);
1409}
1410
1411void
1412proc_prettyprint_syscall (int num, int verbose)
1413{
1414  proc_prettyfprint_syscall (stdout, num, verbose);
1415}
1416
1417/*
1418 * Prettyprint all of the syscalls in a sysset_t set.
1419 */
1420
1421void
1422proc_prettyfprint_syscalls (FILE *file, sysset_t *sysset, int verbose)
1423{
1424  int i;
1425
1426  for (i = 0; i < MAX_SYSCALLS; i++)
1427    if (prismember (sysset, i))
1428      {
1429	proc_prettyfprint_syscall (file, i, verbose);
1430      }
1431  fprintf (file, "\n");
1432}
1433
1434void
1435proc_prettyprint_syscalls (sysset_t *sysset, int verbose)
1436{
1437  proc_prettyfprint_syscalls (stdout, sysset, verbose);
1438}
1439
1440/* FIXME: add real-time signals */
1441
1442static struct trans signal_table[] =
1443{
1444  { 0,      "<no signal>", "no signal" },
1445#ifdef SIGHUP
1446  { SIGHUP, "SIGHUP", "Hangup" },
1447#endif
1448#ifdef SIGINT
1449  { SIGINT, "SIGINT", "Interrupt (rubout)" },
1450#endif
1451#ifdef SIGQUIT
1452  { SIGQUIT, "SIGQUIT", "Quit (ASCII FS)" },
1453#endif
1454#ifdef SIGILL
1455  { SIGILL, "SIGILL", "Illegal instruction" },	/* not reset when caught */
1456#endif
1457#ifdef SIGTRAP
1458  { SIGTRAP, "SIGTRAP", "Trace trap" },		/* not reset when caught */
1459#endif
1460#ifdef SIGABRT
1461  { SIGABRT, "SIGABRT", "used by abort()" },	/* replaces SIGIOT */
1462#endif
1463#ifdef SIGIOT
1464  { SIGIOT, "SIGIOT", "IOT instruction" },
1465#endif
1466#ifdef SIGEMT
1467  { SIGEMT, "SIGEMT", "EMT instruction" },
1468#endif
1469#ifdef SIGFPE
1470  { SIGFPE, "SIGFPE", "Floating point exception" },
1471#endif
1472#ifdef SIGKILL
1473  { SIGKILL, "SIGKILL", "Kill" },	/* Solaris: cannot be caught/ignored */
1474#endif
1475#ifdef SIGBUS
1476  { SIGBUS, "SIGBUS", "Bus error" },
1477#endif
1478#ifdef SIGSEGV
1479  { SIGSEGV, "SIGSEGV", "Segmentation violation" },
1480#endif
1481#ifdef SIGSYS
1482  { SIGSYS, "SIGSYS", "Bad argument to system call" },
1483#endif
1484#ifdef SIGPIPE
1485  { SIGPIPE, "SIGPIPE", "Write to pipe with no one to read it" },
1486#endif
1487#ifdef SIGALRM
1488  { SIGALRM, "SIGALRM", "Alarm clock" },
1489#endif
1490#ifdef SIGTERM
1491  { SIGTERM, "SIGTERM", "Software termination signal from kill" },
1492#endif
1493#ifdef SIGUSR1
1494  { SIGUSR1, "SIGUSR1", "User defined signal 1" },
1495#endif
1496#ifdef SIGUSR2
1497  { SIGUSR2, "SIGUSR2", "User defined signal 2" },
1498#endif
1499#ifdef SIGCHLD
1500  { SIGCHLD, "SIGCHLD", "Child status changed" },	/* Posix version */
1501#endif
1502#ifdef SIGCLD
1503  { SIGCLD, "SIGCLD", "Child status changed" },		/* Solaris version */
1504#endif
1505#ifdef SIGPWR
1506  { SIGPWR, "SIGPWR", "Power-fail restart" },
1507#endif
1508#ifdef SIGWINCH
1509  { SIGWINCH, "SIGWINCH", "Window size change" },
1510#endif
1511#ifdef SIGURG
1512  { SIGURG, "SIGURG", "Urgent socket condition" },
1513#endif
1514#ifdef SIGPOLL
1515  { SIGPOLL, "SIGPOLL", "Pollable event" },
1516#endif
1517#ifdef SIGIO
1518  { SIGIO, "SIGIO", "Socket I/O possible" },	/* alias for SIGPOLL */
1519#endif
1520#ifdef SIGSTOP
1521  { SIGSTOP, "SIGSTOP", "Stop, not from tty" },	/* cannot be caught or ignored */
1522#endif
1523#ifdef SIGTSTP
1524  { SIGTSTP, "SIGTSTP", "User stop from tty" },
1525#endif
1526#ifdef SIGCONT
1527  { SIGCONT, "SIGCONT", "Stopped process has been continued" },
1528#endif
1529#ifdef SIGTTIN
1530  { SIGTTIN, "SIGTTIN", "Background tty read attempted" },
1531#endif
1532#ifdef SIGTTOU
1533  { SIGTTOU, "SIGTTOU", "Background tty write attempted" },
1534#endif
1535#ifdef SIGVTALRM
1536  { SIGVTALRM, "SIGVTALRM", "Virtual timer expired" },
1537#endif
1538#ifdef SIGPROF
1539  { SIGPROF, "SIGPROF", "Profiling timer expired" },
1540#endif
1541#ifdef SIGXCPU
1542  { SIGXCPU, "SIGXCPU", "Exceeded CPU limit" },
1543#endif
1544#ifdef SIGXFSZ
1545  { SIGXFSZ, "SIGXFSZ", "Exceeded file size limit" },
1546#endif
1547#ifdef SIGWAITING
1548  { SIGWAITING, "SIGWAITING", "Process's LWPs are blocked" },
1549#endif
1550#ifdef SIGLWP
1551  { SIGLWP, "SIGLWP", "Used by thread library" },
1552#endif
1553#ifdef SIGFREEZE
1554  { SIGFREEZE, "SIGFREEZE", "Used by CPR" },
1555#endif
1556#ifdef SIGTHAW
1557  { SIGTHAW, "SIGTHAW", "Used by CPR" },
1558#endif
1559#ifdef SIGCANCEL
1560  { SIGCANCEL, "SIGCANCEL", "Used by libthread" },
1561#endif
1562#ifdef SIGLOST
1563  { SIGLOST, "SIGLOST", "Resource lost" },
1564#endif
1565#ifdef SIG32
1566  { SIG32, "SIG32", "Reserved for kernel usage (Irix)" },
1567#endif
1568#ifdef SIGPTINTR
1569  { SIGPTINTR, "SIGPTINTR", "Posix 1003.1b" },
1570#endif
1571#ifdef SIGTRESCHED
1572  { SIGTRESCHED, "SIGTRESCHED", "Posix 1003.1b" },
1573#endif
1574#ifdef SIGINFO
1575  { SIGINFO, "SIGINFO", "Information request" },
1576#endif
1577#ifdef SIGRESV
1578  { SIGRESV, "SIGRESV", "Reserved by Digital for future use" },
1579#endif
1580#ifdef SIGAIO
1581  { SIGAIO, "SIGAIO", "Asynchronous I/O signal" },
1582#endif
1583};
1584
1585/*
1586 * Prettyprint a single signal by number.
1587 * Accepts a signal number and finds it in the signal table,
1588 * then pretty-prints it.
1589 */
1590
1591void
1592proc_prettyfprint_signal (FILE *file, int signo, int verbose)
1593{
1594  int i;
1595
1596  for (i = 0; i < sizeof (signal_table) / sizeof (signal_table[0]); i++)
1597    if (signo == signal_table[i].value)
1598      {
1599	fprintf (file, "%s", signal_table[i].name);
1600	if (verbose)
1601	  fprintf (file, ": %s\n", signal_table[i].desc);
1602	else
1603	  fprintf (file, " ");
1604	return;
1605      }
1606  fprintf (file, "Unknown signal %d%c", signo, verbose ? '\n' : ' ');
1607}
1608
1609void
1610proc_prettyprint_signal (int signo, int verbose)
1611{
1612  proc_prettyfprint_signal (stdout, signo, verbose);
1613}
1614
1615/*
1616 * Prettyprint all of the signals in a sigset_t set.
1617 *
1618 * This function loops over all signal numbers from 0 to NSIG,
1619 * uses them as indexes for prismember, and prints them pretty.
1620 *
1621 * It does not loop over the signal table, as is done with the
1622 * fault table, because the signal table may contain aliases.
1623 * If it did, both aliases would be printed.
1624 */
1625
1626void
1627proc_prettyfprint_signalset (FILE *file, sigset_t *sigset, int verbose)
1628{
1629  int i;
1630
1631  for (i = 0; i < NSIG; i++)
1632    if (prismember (sigset, i))
1633      proc_prettyfprint_signal (file, i, verbose);
1634
1635  if (!verbose)
1636    fprintf (file, "\n");
1637}
1638
1639void
1640proc_prettyprint_signalset (sigset_t *sigset, int verbose)
1641{
1642  proc_prettyfprint_signalset (stdout, sigset, verbose);
1643}
1644
1645/*  Hardware fault translation table. */
1646
1647static struct trans fault_table[] =
1648{
1649#if defined (FLTILL)
1650  { FLTILL, "FLTILL", "Illegal instruction" },
1651#endif
1652#if defined (FLTPRIV)
1653  { FLTPRIV, "FLTPRIV", "Privileged instruction" },
1654#endif
1655#if defined (FLTBPT)
1656  { FLTBPT, "FLTBPT", "Breakpoint trap" },
1657#endif
1658#if defined (FLTTRACE)
1659  { FLTTRACE, "FLTTRACE", "Trace trap" },
1660#endif
1661#if defined (FLTACCESS)
1662  { FLTACCESS, "FLTACCESS", "Memory access fault" },
1663#endif
1664#if defined (FLTBOUNDS)
1665  { FLTBOUNDS, "FLTBOUNDS", "Memory bounds violation" },
1666#endif
1667#if defined (FLTIOVF)
1668  { FLTIOVF, "FLTIOVF", "Integer overflow" },
1669#endif
1670#if defined (FLTIZDIV)
1671  { FLTIZDIV, "FLTIZDIV", "Integer zero divide" },
1672#endif
1673#if defined (FLTFPE)
1674  { FLTFPE, "FLTFPE", "Floating-point exception" },
1675#endif
1676#if defined (FLTSTACK)
1677  { FLTSTACK, "FLTSTACK", "Unrecoverable stack fault" },
1678#endif
1679#if defined (FLTPAGE)
1680  { FLTPAGE, "FLTPAGE", "Recoverable page fault" },
1681#endif
1682#if defined (FLTPCINVAL)
1683  { FLTPCINVAL, "FLTPCINVAL", "Invalid PC exception" },
1684#endif
1685#if defined (FLTWATCH)
1686  { FLTWATCH, "FLTWATCH", "User watchpoint" },
1687#endif
1688#if defined (FLTKWATCH)
1689  { FLTKWATCH, "FLTKWATCH", "Kernel watchpoint" },
1690#endif
1691#if defined (FLTSCWATCH)
1692  { FLTSCWATCH, "FLTSCWATCH", "Hit a store conditional on a watched page" },
1693#endif
1694};
1695
1696/*
1697 * Work horse.  Accepts an index into the fault table, prints it pretty.
1698 */
1699
1700static void
1701prettyfprint_faulttable_entry (FILE *file, int i, int verbose)
1702{
1703  fprintf (file, "%s", fault_table[i].name);
1704  if (verbose)
1705    fprintf (file, ": %s\n", fault_table[i].desc);
1706  else
1707    fprintf (file, " ");
1708}
1709
1710/*
1711 * Prettyprint a hardware fault by number.
1712 */
1713
1714void
1715proc_prettyfprint_fault (FILE *file, int faultno, int verbose)
1716{
1717  int i;
1718
1719  for (i = 0; i < sizeof (fault_table) / sizeof (fault_table[0]); i++)
1720    if (faultno == fault_table[i].value)
1721      {
1722	prettyfprint_faulttable_entry (file, i, verbose);
1723	return;
1724      }
1725
1726  fprintf (file, "Unknown hardware fault %d%c",
1727	   faultno, verbose ? '\n' : ' ');
1728}
1729
1730void
1731proc_prettyprint_fault (int faultno, int verbose)
1732{
1733  proc_prettyfprint_fault (stdout, faultno, verbose);
1734}
1735
1736/*
1737 * Prettyprint all the faults in a fltset_t set.
1738 *
1739 * This function loops thru the fault table,
1740 * using the value field as the index to prismember.
1741 * The fault table had better not contain aliases,
1742 * for if it does they will both be printed.
1743 */
1744
1745void
1746proc_prettyfprint_faultset (FILE *file, fltset_t *fltset, int verbose)
1747{
1748  int i;
1749
1750  for (i = 0; i < sizeof (fault_table) / sizeof (fault_table[0]); i++)
1751    if (prismember (fltset, fault_table[i].value))
1752      prettyfprint_faulttable_entry (file, i, verbose);
1753
1754  if (!verbose)
1755    fprintf (file, "\n");
1756}
1757
1758void
1759proc_prettyprint_faultset (fltset_t *fltset, int verbose)
1760{
1761  proc_prettyfprint_faultset (stdout, fltset, verbose);
1762}
1763
1764/*
1765 * Todo: actions, holds...
1766 */
1767
1768void
1769proc_prettyprint_actionset (struct sigaction *actions, int verbose)
1770{
1771}
1772
1773void
1774_initialize_proc_events (void)
1775{
1776  init_syscall_table ();
1777}
1778