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