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