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