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