Commit | Line | Data |
---|---|---|
44122162 | 1 | /* Machine-independent support for Solaris /proc (process file system) |
c18c06be | 2 | |
b811d2c2 | 3 | Copyright (C) 1999-2020 Free Software Foundation, Inc. |
c18c06be | 4 | |
0fda6bd2 JM |
5 | Written by Michael Snyder at Cygnus Solutions. |
6 | Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others. | |
7 | ||
c18c06be MK |
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 | |
a9762ec7 | 10 | the Free Software Foundation; either version 3 of the License, or |
c18c06be MK |
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 | |
a9762ec7 | 19 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
c18c06be MK |
20 | |
21 | /* Pretty-print "events of interest". | |
22 | ||
23 | This module includes pretty-print routines for: | |
24 | * faults (hardware exceptions) | |
25 | * signals (software interrupts) | |
26 | * syscalls | |
27 | ||
28 | FIXME: At present, the syscall translation table must be | |
29 | initialized, which is not true of the other translation tables. */ | |
0fda6bd2 JM |
30 | |
31 | #include "defs.h" | |
32 | ||
0fda6bd2 | 33 | #define _STRUCTURED_PROC 1 |
0fda6bd2 | 34 | |
0fda6bd2 JM |
35 | #include <sys/types.h> |
36 | #include <sys/procfs.h> | |
37 | #include <sys/syscall.h> | |
38 | #include <sys/fault.h> | |
39 | ||
a0911fd0 MR |
40 | #include "proc-utils.h" |
41 | ||
c18c06be MK |
42 | /* Much of the information used in the /proc interface, particularly |
43 | for printing status information, is kept as tables of structures of | |
44 | the following form. These tables can be used to map numeric values | |
45 | to their symbolic names and to a string that describes their | |
46 | specific use. */ | |
0fda6bd2 | 47 | |
c18c06be MK |
48 | struct trans |
49 | { | |
50 | int value; /* The numeric value. */ | |
995816ba PA |
51 | const char *name; /* The equivalent symbolic value. */ |
52 | const char *desc; /* Short description of value. */ | |
0fda6bd2 | 53 | }; |
c18c06be | 54 | \f |
0fda6bd2 | 55 | |
c18c06be | 56 | /* Pretty print syscalls. */ |
0fda6bd2 | 57 | |
c18c06be | 58 | /* Syscall translation table. */ |
0fda6bd2 | 59 | |
c18c06be | 60 | #define MAX_SYSCALLS 262 /* Pretty arbitrary. */ |
995816ba | 61 | static const char *syscall_table[MAX_SYSCALLS]; |
0fda6bd2 | 62 | |
a0911fd0 | 63 | static void |
0fda6bd2 JM |
64 | init_syscall_table (void) |
65 | { | |
0fda6bd2 | 66 | syscall_table[SYS_accept] = "accept"; |
c18c06be | 67 | #ifdef SYS_access |
0fda6bd2 JM |
68 | syscall_table[SYS_access] = "access"; |
69 | #endif | |
0fda6bd2 | 70 | syscall_table[SYS_acct] = "acct"; |
44122162 | 71 | syscall_table[SYS_acctctl] = "acctctl"; |
0fda6bd2 | 72 | syscall_table[SYS_acl] = "acl"; |
44122162 RO |
73 | #ifdef SYS_adi |
74 | syscall_table[SYS_adi] = "adi"; | |
0fda6bd2 | 75 | #endif |
0fda6bd2 | 76 | syscall_table[SYS_adjtime] = "adjtime"; |
0fda6bd2 | 77 | syscall_table[SYS_alarm] = "alarm"; |
0fda6bd2 | 78 | syscall_table[SYS_auditsys] = "auditsys"; |
44122162 | 79 | syscall_table[SYS_autofssys] = "autofssys"; |
0fda6bd2 | 80 | syscall_table[SYS_bind] = "bind"; |
44122162 | 81 | syscall_table[SYS_brand] = "brand"; |
0fda6bd2 | 82 | syscall_table[SYS_brk] = "brk"; |
0fda6bd2 | 83 | syscall_table[SYS_chdir] = "chdir"; |
c18c06be | 84 | #ifdef SYS_chmod |
0fda6bd2 JM |
85 | syscall_table[SYS_chmod] = "chmod"; |
86 | #endif | |
c18c06be | 87 | #ifdef SYS_chown |
0fda6bd2 JM |
88 | syscall_table[SYS_chown] = "chown"; |
89 | #endif | |
0fda6bd2 | 90 | syscall_table[SYS_chroot] = "chroot"; |
44122162 | 91 | syscall_table[SYS_cladm] = "cladm"; |
0fda6bd2 | 92 | syscall_table[SYS_clock_getres] = "clock_getres"; |
0fda6bd2 | 93 | syscall_table[SYS_clock_gettime] = "clock_gettime"; |
0fda6bd2 | 94 | syscall_table[SYS_clock_settime] = "clock_settime"; |
0fda6bd2 | 95 | syscall_table[SYS_close] = "close"; |
0fda6bd2 | 96 | syscall_table[SYS_connect] = "connect"; |
0fda6bd2 | 97 | syscall_table[SYS_context] = "context"; |
44122162 RO |
98 | syscall_table[SYS_corectl] = "corectl"; |
99 | syscall_table[SYS_cpc] = "cpc"; | |
c18c06be | 100 | #ifdef SYS_creat |
0fda6bd2 JM |
101 | syscall_table[SYS_creat] = "creat"; |
102 | #endif | |
c18c06be | 103 | #ifdef SYS_creat64 |
0fda6bd2 JM |
104 | syscall_table[SYS_creat64] = "creat64"; |
105 | #endif | |
0fda6bd2 | 106 | syscall_table[SYS_door] = "door"; |
c18c06be | 107 | #ifdef SYS_dup |
0fda6bd2 JM |
108 | syscall_table[SYS_dup] = "dup"; |
109 | #endif | |
c18c06be | 110 | #ifdef SYS_evsys |
0fda6bd2 JM |
111 | syscall_table[SYS_evsys] = "evsys"; |
112 | #endif | |
c18c06be | 113 | #ifdef SYS_evtrapret |
0fda6bd2 JM |
114 | syscall_table[SYS_evtrapret] = "evtrapret"; |
115 | #endif | |
44122162 | 116 | syscall_table[SYS_exacctsys] = "exacctsys"; |
c18c06be | 117 | #ifdef SYS_exec |
0fda6bd2 JM |
118 | syscall_table[SYS_exec] = "exec"; |
119 | #endif | |
0fda6bd2 | 120 | syscall_table[SYS_execve] = "execve"; |
0fda6bd2 | 121 | syscall_table[SYS_exit] = "exit"; |
44122162 RO |
122 | #ifdef SYS_faccessat |
123 | syscall_table[SYS_faccessat] = "faccessat"; | |
0fda6bd2 | 124 | #endif |
0fda6bd2 | 125 | syscall_table[SYS_facl] = "facl"; |
0fda6bd2 | 126 | syscall_table[SYS_fchdir] = "fchdir"; |
c18c06be | 127 | #ifdef SYS_fchmod |
0fda6bd2 JM |
128 | syscall_table[SYS_fchmod] = "fchmod"; |
129 | #endif | |
44122162 RO |
130 | #ifdef SYS_fchmodat |
131 | syscall_table[SYS_fchmodat] = "fchmodat"; | |
132 | #endif | |
c18c06be | 133 | #ifdef SYS_fchown |
0fda6bd2 JM |
134 | syscall_table[SYS_fchown] = "fchown"; |
135 | #endif | |
44122162 RO |
136 | #ifdef SYS_fchownat |
137 | syscall_table[SYS_fchownat] = "fchownat"; | |
0fda6bd2 | 138 | #endif |
44122162 | 139 | syscall_table[SYS_fchroot] = "fchroot"; |
0fda6bd2 | 140 | syscall_table[SYS_fcntl] = "fcntl"; |
0fda6bd2 | 141 | syscall_table[SYS_fdsync] = "fdsync"; |
c18c06be | 142 | #ifdef SYS_fork1 |
0fda6bd2 JM |
143 | syscall_table[SYS_fork1] = "fork1"; |
144 | #endif | |
c18c06be | 145 | #ifdef SYS_forkall |
0fda6bd2 JM |
146 | syscall_table[SYS_forkall] = "forkall"; |
147 | #endif | |
44122162 RO |
148 | #ifdef SYS_forksys |
149 | syscall_table[SYS_forksys] = "forksys"; | |
150 | #endif | |
0fda6bd2 | 151 | syscall_table[SYS_fpathconf] = "fpathconf"; |
44122162 RO |
152 | #ifdef SYS_frealpathat |
153 | syscall_table[SYS_frealpathat] = "frealpathat"; | |
154 | #endif | |
155 | #ifdef SYS_fsat | |
156 | syscall_table[SYS_fsat] = "fsat"; | |
0fda6bd2 | 157 | #endif |
c18c06be | 158 | #ifdef SYS_fstat |
0fda6bd2 JM |
159 | syscall_table[SYS_fstat] = "fstat"; |
160 | #endif | |
c18c06be | 161 | #ifdef SYS_fstat64 |
0fda6bd2 JM |
162 | syscall_table[SYS_fstat64] = "fstat64"; |
163 | #endif | |
44122162 RO |
164 | #ifdef SYS_fstatat |
165 | syscall_table[SYS_fstatat] = "fstatat"; | |
0fda6bd2 | 166 | #endif |
44122162 RO |
167 | #ifdef SYS_fstatat64 |
168 | syscall_table[SYS_fstatat64] = "fstatat64"; | |
0fda6bd2 | 169 | #endif |
44122162 RO |
170 | syscall_table[SYS_fstatfs] = "fstatfs"; |
171 | syscall_table[SYS_fstatvfs] = "fstatvfs"; | |
0fda6bd2 | 172 | syscall_table[SYS_fstatvfs64] = "fstatvfs64"; |
c18c06be | 173 | #ifdef SYS_fxstat |
0fda6bd2 JM |
174 | syscall_table[SYS_fxstat] = "fxstat"; |
175 | #endif | |
44122162 | 176 | syscall_table[SYS_getcwd] = "getcwd"; |
0fda6bd2 | 177 | syscall_table[SYS_getdents] = "getdents"; |
0fda6bd2 | 178 | syscall_table[SYS_getdents64] = "getdents64"; |
0fda6bd2 | 179 | syscall_table[SYS_getgid] = "getgid"; |
0fda6bd2 | 180 | syscall_table[SYS_getgroups] = "getgroups"; |
0fda6bd2 | 181 | syscall_table[SYS_getitimer] = "getitimer"; |
44122162 | 182 | syscall_table[SYS_getloadavg] = "getloadavg"; |
0fda6bd2 | 183 | syscall_table[SYS_getmsg] = "getmsg"; |
44122162 | 184 | syscall_table[SYS_getpagesizes] = "getpagesizes"; |
0fda6bd2 | 185 | syscall_table[SYS_getpeername] = "getpeername"; |
0fda6bd2 | 186 | syscall_table[SYS_getpid] = "getpid"; |
0fda6bd2 | 187 | syscall_table[SYS_getpmsg] = "getpmsg"; |
44122162 RO |
188 | #ifdef SYS_getrandom |
189 | syscall_table[SYS_getrandom] = "getrandom"; | |
0fda6bd2 | 190 | #endif |
0fda6bd2 | 191 | syscall_table[SYS_getrlimit] = "getrlimit"; |
0fda6bd2 | 192 | syscall_table[SYS_getrlimit64] = "getrlimit64"; |
0fda6bd2 | 193 | syscall_table[SYS_getsockname] = "getsockname"; |
0fda6bd2 | 194 | syscall_table[SYS_getsockopt] = "getsockopt"; |
0fda6bd2 | 195 | syscall_table[SYS_gettimeofday] = "gettimeofday"; |
0fda6bd2 | 196 | syscall_table[SYS_getuid] = "getuid"; |
0fda6bd2 | 197 | syscall_table[SYS_gtty] = "gtty"; |
0fda6bd2 | 198 | syscall_table[SYS_hrtsys] = "hrtsys"; |
0fda6bd2 | 199 | syscall_table[SYS_inst_sync] = "inst_sync"; |
0fda6bd2 | 200 | syscall_table[SYS_install_utrap] = "install_utrap"; |
0fda6bd2 | 201 | syscall_table[SYS_ioctl] = "ioctl"; |
44122162 RO |
202 | #ifdef SYS_issetugid |
203 | syscall_table[SYS_issetugid] = "issetugid"; | |
0fda6bd2 | 204 | #endif |
0fda6bd2 | 205 | syscall_table[SYS_kaio] = "kaio"; |
0fda6bd2 | 206 | syscall_table[SYS_kill] = "kill"; |
44122162 | 207 | syscall_table[SYS_labelsys] = "labelsys"; |
c18c06be | 208 | #ifdef SYS_lchown |
0fda6bd2 JM |
209 | syscall_table[SYS_lchown] = "lchown"; |
210 | #endif | |
44122162 | 211 | syscall_table[SYS_lgrpsys] = "lgrpsys"; |
c18c06be | 212 | #ifdef SYS_link |
0fda6bd2 JM |
213 | syscall_table[SYS_link] = "link"; |
214 | #endif | |
44122162 RO |
215 | #ifdef SYS_linkat |
216 | syscall_table[SYS_linkat] = "linkat"; | |
0fda6bd2 | 217 | #endif |
44122162 | 218 | syscall_table[SYS_listen] = "listen"; |
0fda6bd2 | 219 | syscall_table[SYS_llseek] = "llseek"; |
0fda6bd2 | 220 | syscall_table[SYS_lseek] = "lseek"; |
c18c06be | 221 | #ifdef SYS_lstat |
0fda6bd2 JM |
222 | syscall_table[SYS_lstat] = "lstat"; |
223 | #endif | |
c18c06be | 224 | #ifdef SYS_lstat64 |
0fda6bd2 JM |
225 | syscall_table[SYS_lstat64] = "lstat64"; |
226 | #endif | |
0fda6bd2 | 227 | syscall_table[SYS_lwp_cond_broadcast] = "lwp_cond_broadcast"; |
0fda6bd2 | 228 | syscall_table[SYS_lwp_cond_signal] = "lwp_cond_signal"; |
0fda6bd2 | 229 | syscall_table[SYS_lwp_cond_wait] = "lwp_cond_wait"; |
0fda6bd2 | 230 | syscall_table[SYS_lwp_continue] = "lwp_continue"; |
0fda6bd2 | 231 | syscall_table[SYS_lwp_create] = "lwp_create"; |
44122162 | 232 | syscall_table[SYS_lwp_detach] = "lwp_detach"; |
0fda6bd2 | 233 | syscall_table[SYS_lwp_exit] = "lwp_exit"; |
0fda6bd2 | 234 | syscall_table[SYS_lwp_info] = "lwp_info"; |
c18c06be | 235 | #ifdef SYS_lwp_kill |
0fda6bd2 JM |
236 | syscall_table[SYS_lwp_kill] = "lwp_kill"; |
237 | #endif | |
c18c06be | 238 | #ifdef SYS_lwp_mutex_lock |
0fda6bd2 JM |
239 | syscall_table[SYS_lwp_mutex_lock] = "lwp_mutex_lock"; |
240 | #endif | |
44122162 RO |
241 | syscall_table[SYS_lwp_mutex_register] = "lwp_mutex_register"; |
242 | syscall_table[SYS_lwp_mutex_timedlock] = "lwp_mutex_timedlock"; | |
0fda6bd2 | 243 | syscall_table[SYS_lwp_mutex_trylock] = "lwp_mutex_trylock"; |
0fda6bd2 | 244 | syscall_table[SYS_lwp_mutex_unlock] = "lwp_mutex_unlock"; |
44122162 RO |
245 | syscall_table[SYS_lwp_mutex_wakeup] = "lwp_mutex_wakeup"; |
246 | #ifdef SYS_lwp_name | |
247 | syscall_table[SYS_lwp_name] = "lwp_name"; | |
0fda6bd2 | 248 | #endif |
44122162 | 249 | syscall_table[SYS_lwp_park] = "lwp_park"; |
0fda6bd2 | 250 | syscall_table[SYS_lwp_private] = "lwp_private"; |
44122162 | 251 | syscall_table[SYS_lwp_rwlock_sys] = "lwp_rwlock_sys"; |
0fda6bd2 | 252 | syscall_table[SYS_lwp_self] = "lwp_self"; |
0fda6bd2 | 253 | syscall_table[SYS_lwp_sema_post] = "lwp_sema_post"; |
44122162 | 254 | syscall_table[SYS_lwp_sema_timedwait] = "lwp_sema_timedwait"; |
0fda6bd2 | 255 | syscall_table[SYS_lwp_sema_trywait] = "lwp_sema_trywait"; |
c18c06be | 256 | #ifdef SYS_lwp_sema_wait |
0fda6bd2 JM |
257 | syscall_table[SYS_lwp_sema_wait] = "lwp_sema_wait"; |
258 | #endif | |
44122162 RO |
259 | syscall_table[SYS_lwp_sigmask] = "lwp_sigmask"; |
260 | #ifdef SYS_lwp_sigqueue | |
261 | syscall_table[SYS_lwp_sigqueue] = "lwp_sigqueue"; | |
0fda6bd2 | 262 | #endif |
0fda6bd2 | 263 | syscall_table[SYS_lwp_suspend] = "lwp_suspend"; |
0fda6bd2 | 264 | syscall_table[SYS_lwp_wait] = "lwp_wait"; |
c18c06be | 265 | #ifdef SYS_lxstat |
0fda6bd2 JM |
266 | syscall_table[SYS_lxstat] = "lxstat"; |
267 | #endif | |
0fda6bd2 | 268 | syscall_table[SYS_memcntl] = "memcntl"; |
44122162 RO |
269 | #ifdef SYS_memsys |
270 | syscall_table[SYS_memsys] = "memsys"; | |
0fda6bd2 | 271 | #endif |
0fda6bd2 | 272 | syscall_table[SYS_mincore] = "mincore"; |
c18c06be | 273 | #ifdef SYS_mkdir |
0fda6bd2 JM |
274 | syscall_table[SYS_mkdir] = "mkdir"; |
275 | #endif | |
44122162 RO |
276 | #ifdef SYS_mkdirat |
277 | syscall_table[SYS_mkdirat] = "mkdirat"; | |
0fda6bd2 | 278 | #endif |
c18c06be | 279 | #ifdef SYS_mknod |
0fda6bd2 JM |
280 | syscall_table[SYS_mknod] = "mknod"; |
281 | #endif | |
44122162 RO |
282 | #ifdef SYS_mknodat |
283 | syscall_table[SYS_mknodat] = "mknodat"; | |
0fda6bd2 | 284 | #endif |
0fda6bd2 | 285 | syscall_table[SYS_mmap] = "mmap"; |
0fda6bd2 | 286 | syscall_table[SYS_mmap64] = "mmap64"; |
44122162 RO |
287 | #ifdef SYS_mmapobj |
288 | syscall_table[SYS_mmapobj] = "mmapobj"; | |
0fda6bd2 | 289 | #endif |
0fda6bd2 | 290 | syscall_table[SYS_modctl] = "modctl"; |
0fda6bd2 | 291 | syscall_table[SYS_mount] = "mount"; |
0fda6bd2 | 292 | syscall_table[SYS_mprotect] = "mprotect"; |
0fda6bd2 | 293 | syscall_table[SYS_msgsys] = "msgsys"; |
0fda6bd2 | 294 | syscall_table[SYS_munmap] = "munmap"; |
0fda6bd2 | 295 | syscall_table[SYS_nanosleep] = "nanosleep"; |
0fda6bd2 | 296 | syscall_table[SYS_nfssys] = "nfssys"; |
0fda6bd2 | 297 | syscall_table[SYS_nice] = "nice"; |
0fda6bd2 | 298 | syscall_table[SYS_ntp_adjtime] = "ntp_adjtime"; |
0fda6bd2 | 299 | syscall_table[SYS_ntp_gettime] = "ntp_gettime"; |
c18c06be | 300 | #ifdef SYS_open |
0fda6bd2 JM |
301 | syscall_table[SYS_open] = "open"; |
302 | #endif | |
c18c06be | 303 | #ifdef SYS_open64 |
0fda6bd2 JM |
304 | syscall_table[SYS_open64] = "open64"; |
305 | #endif | |
44122162 RO |
306 | #ifdef SYS_openat |
307 | syscall_table[SYS_openat] = "openat"; | |
0fda6bd2 | 308 | #endif |
44122162 RO |
309 | #ifdef SYS_openat64 |
310 | syscall_table[SYS_openat64] = "openat64"; | |
0fda6bd2 | 311 | #endif |
44122162 | 312 | syscall_table[SYS_p_online] = "p_online"; |
0fda6bd2 | 313 | syscall_table[SYS_pathconf] = "pathconf"; |
0fda6bd2 | 314 | syscall_table[SYS_pause] = "pause"; |
44122162 | 315 | syscall_table[SYS_pcsample] = "pcsample"; |
0fda6bd2 | 316 | syscall_table[SYS_pgrpsys] = "pgrpsys"; |
0fda6bd2 | 317 | syscall_table[SYS_pipe] = "pipe"; |
c18c06be | 318 | #ifdef SYS_plock |
0fda6bd2 JM |
319 | syscall_table[SYS_plock] = "plock"; |
320 | #endif | |
c18c06be | 321 | #ifdef SYS_poll |
0fda6bd2 JM |
322 | syscall_table[SYS_poll] = "poll"; |
323 | #endif | |
44122162 RO |
324 | syscall_table[SYS_pollsys] = "pollsys"; |
325 | syscall_table[SYS_port] = "port"; | |
0fda6bd2 | 326 | syscall_table[SYS_pread] = "pread"; |
0fda6bd2 | 327 | syscall_table[SYS_pread64] = "pread64"; |
0fda6bd2 | 328 | syscall_table[SYS_priocntlsys] = "priocntlsys"; |
44122162 | 329 | syscall_table[SYS_privsys] = "privsys"; |
c18c06be | 330 | #ifdef SYS_processor_bind |
0fda6bd2 JM |
331 | syscall_table[SYS_processor_bind] = "processor_bind"; |
332 | #endif | |
c18c06be | 333 | #ifdef SYS_processor_info |
0fda6bd2 JM |
334 | syscall_table[SYS_processor_info] = "processor_info"; |
335 | #endif | |
44122162 RO |
336 | #ifdef SYS_processor_sys |
337 | syscall_table[SYS_processor_sys] = "processor_sys"; | |
0fda6bd2 | 338 | #endif |
0fda6bd2 | 339 | syscall_table[SYS_profil] = "profil"; |
0fda6bd2 | 340 | syscall_table[SYS_pset] = "pset"; |
0fda6bd2 | 341 | syscall_table[SYS_putmsg] = "putmsg"; |
0fda6bd2 | 342 | syscall_table[SYS_putpmsg] = "putpmsg"; |
0fda6bd2 | 343 | syscall_table[SYS_pwrite] = "pwrite"; |
0fda6bd2 | 344 | syscall_table[SYS_pwrite64] = "pwrite64"; |
44122162 | 345 | syscall_table[SYS_rctlsys] = "rctlsys"; |
0fda6bd2 | 346 | syscall_table[SYS_read] = "read"; |
c18c06be | 347 | #ifdef SYS_readlink |
0fda6bd2 JM |
348 | syscall_table[SYS_readlink] = "readlink"; |
349 | #endif | |
44122162 RO |
350 | #ifdef SYS_readlinkat |
351 | syscall_table[SYS_readlinkat] = "readlinkat"; | |
0fda6bd2 | 352 | #endif |
44122162 | 353 | syscall_table[SYS_readv] = "readv"; |
0fda6bd2 | 354 | syscall_table[SYS_recv] = "recv"; |
0fda6bd2 | 355 | syscall_table[SYS_recvfrom] = "recvfrom"; |
44122162 RO |
356 | #ifdef SYS_recvmmsg |
357 | syscall_table[SYS_recvmmsg] = "recvmmsg"; | |
0fda6bd2 | 358 | #endif |
0fda6bd2 | 359 | syscall_table[SYS_recvmsg] = "recvmsg"; |
44122162 RO |
360 | #ifdef SYS_reflinkat |
361 | syscall_table[SYS_reflinkat] = "reflinkat"; | |
0fda6bd2 | 362 | #endif |
c18c06be | 363 | #ifdef SYS_rename |
0fda6bd2 JM |
364 | syscall_table[SYS_rename] = "rename"; |
365 | #endif | |
44122162 RO |
366 | #ifdef SYS_renameat |
367 | syscall_table[SYS_renameat] = "renameat"; | |
0fda6bd2 | 368 | #endif |
44122162 | 369 | syscall_table[SYS_resolvepath] = "resolvepath"; |
c18c06be | 370 | #ifdef SYS_rmdir |
0fda6bd2 JM |
371 | syscall_table[SYS_rmdir] = "rmdir"; |
372 | #endif | |
0fda6bd2 | 373 | syscall_table[SYS_rpcsys] = "rpcsys"; |
44122162 | 374 | syscall_table[SYS_rusagesys] = "rusagesys"; |
0fda6bd2 | 375 | syscall_table[SYS_schedctl] = "schedctl"; |
c18c06be | 376 | #ifdef SYS_secsys |
0fda6bd2 JM |
377 | syscall_table[SYS_secsys] = "secsys"; |
378 | #endif | |
0fda6bd2 | 379 | syscall_table[SYS_semsys] = "semsys"; |
0fda6bd2 | 380 | syscall_table[SYS_send] = "send"; |
44122162 RO |
381 | syscall_table[SYS_sendfilev] = "sendfilev"; |
382 | #ifdef SYS_sendmmsg | |
383 | syscall_table[SYS_sendmmsg] = "sendmmsg"; | |
0fda6bd2 | 384 | #endif |
0fda6bd2 | 385 | syscall_table[SYS_sendmsg] = "sendmsg"; |
0fda6bd2 | 386 | syscall_table[SYS_sendto] = "sendto"; |
0fda6bd2 | 387 | syscall_table[SYS_setegid] = "setegid"; |
0fda6bd2 | 388 | syscall_table[SYS_seteuid] = "seteuid"; |
0fda6bd2 | 389 | syscall_table[SYS_setgid] = "setgid"; |
0fda6bd2 | 390 | syscall_table[SYS_setgroups] = "setgroups"; |
0fda6bd2 | 391 | syscall_table[SYS_setitimer] = "setitimer"; |
0fda6bd2 | 392 | syscall_table[SYS_setregid] = "setregid"; |
0fda6bd2 | 393 | syscall_table[SYS_setreuid] = "setreuid"; |
0fda6bd2 | 394 | syscall_table[SYS_setrlimit] = "setrlimit"; |
0fda6bd2 | 395 | syscall_table[SYS_setrlimit64] = "setrlimit64"; |
0fda6bd2 | 396 | syscall_table[SYS_setsockopt] = "setsockopt"; |
0fda6bd2 | 397 | syscall_table[SYS_setuid] = "setuid"; |
44122162 | 398 | syscall_table[SYS_sharefs] = "sharefs"; |
0fda6bd2 | 399 | syscall_table[SYS_shmsys] = "shmsys"; |
0fda6bd2 | 400 | syscall_table[SYS_shutdown] = "shutdown"; |
44122162 RO |
401 | #ifdef SYS_sidsys |
402 | syscall_table[SYS_sidsys] = "sidsys"; | |
0fda6bd2 | 403 | #endif |
0fda6bd2 | 404 | syscall_table[SYS_sigaction] = "sigaction"; |
0fda6bd2 | 405 | syscall_table[SYS_sigaltstack] = "sigaltstack"; |
c18c06be | 406 | #ifdef SYS_signal |
0fda6bd2 JM |
407 | syscall_table[SYS_signal] = "signal"; |
408 | #endif | |
0fda6bd2 | 409 | syscall_table[SYS_signotify] = "signotify"; |
0fda6bd2 | 410 | syscall_table[SYS_sigpending] = "sigpending"; |
0fda6bd2 | 411 | syscall_table[SYS_sigprocmask] = "sigprocmask"; |
0fda6bd2 | 412 | syscall_table[SYS_sigqueue] = "sigqueue"; |
44122162 RO |
413 | #ifdef SYS_sigresend |
414 | syscall_table[SYS_sigresend] = "sigresend"; | |
0fda6bd2 | 415 | #endif |
0fda6bd2 | 416 | syscall_table[SYS_sigsendsys] = "sigsendsys"; |
0fda6bd2 | 417 | syscall_table[SYS_sigsuspend] = "sigsuspend"; |
44122162 | 418 | syscall_table[SYS_sigtimedwait] = "sigtimedwait"; |
0fda6bd2 | 419 | syscall_table[SYS_so_socket] = "so_socket"; |
0fda6bd2 | 420 | syscall_table[SYS_so_socketpair] = "so_socketpair"; |
0fda6bd2 | 421 | syscall_table[SYS_sockconfig] = "sockconfig"; |
44122162 RO |
422 | #ifdef SYS_sparc_fixalign |
423 | syscall_table[SYS_sparc_fixalign] = "sparc_fixalign"; | |
0fda6bd2 | 424 | #endif |
44122162 RO |
425 | syscall_table[SYS_sparc_utrap_install] = "sparc_utrap_install"; |
426 | #ifdef SYS_spawn | |
427 | syscall_table[SYS_spawn] = "spawn"; | |
0fda6bd2 | 428 | #endif |
c18c06be | 429 | #ifdef SYS_stat |
0fda6bd2 JM |
430 | syscall_table[SYS_stat] = "stat"; |
431 | #endif | |
c18c06be | 432 | #ifdef SYS_stat64 |
0fda6bd2 JM |
433 | syscall_table[SYS_stat64] = "stat64"; |
434 | #endif | |
0fda6bd2 | 435 | syscall_table[SYS_statfs] = "statfs"; |
0fda6bd2 | 436 | syscall_table[SYS_statvfs] = "statvfs"; |
0fda6bd2 | 437 | syscall_table[SYS_statvfs64] = "statvfs64"; |
0fda6bd2 | 438 | syscall_table[SYS_stime] = "stime"; |
0fda6bd2 | 439 | syscall_table[SYS_stty] = "stty"; |
c18c06be | 440 | #ifdef SYS_symlink |
0fda6bd2 JM |
441 | syscall_table[SYS_symlink] = "symlink"; |
442 | #endif | |
44122162 RO |
443 | #ifdef SYS_symlinkat |
444 | syscall_table[SYS_symlinkat] = "symlinkat"; | |
0fda6bd2 | 445 | #endif |
44122162 | 446 | syscall_table[SYS_sync] = "sync"; |
0fda6bd2 | 447 | syscall_table[SYS_syscall] = "syscall"; |
0fda6bd2 | 448 | syscall_table[SYS_sysconfig] = "sysconfig"; |
0fda6bd2 | 449 | syscall_table[SYS_sysfs] = "sysfs"; |
0fda6bd2 | 450 | syscall_table[SYS_sysi86] = "sysi86"; |
c18c06be | 451 | #ifdef SYS_syssun |
0fda6bd2 JM |
452 | syscall_table[SYS_syssun] = "syssun"; |
453 | #endif | |
44122162 RO |
454 | #ifdef SYS_system_stats |
455 | syscall_table[SYS_system_stats] = "system_stats"; | |
0fda6bd2 | 456 | #endif |
44122162 RO |
457 | syscall_table[SYS_systeminfo] = "systeminfo"; |
458 | syscall_table[SYS_tasksys] = "tasksys"; | |
0fda6bd2 | 459 | syscall_table[SYS_time] = "time"; |
0fda6bd2 | 460 | syscall_table[SYS_timer_create] = "timer_create"; |
0fda6bd2 | 461 | syscall_table[SYS_timer_delete] = "timer_delete"; |
0fda6bd2 | 462 | syscall_table[SYS_timer_getoverrun] = "timer_getoverrun"; |
0fda6bd2 | 463 | syscall_table[SYS_timer_gettime] = "timer_gettime"; |
0fda6bd2 | 464 | syscall_table[SYS_timer_settime] = "timer_settime"; |
0fda6bd2 | 465 | syscall_table[SYS_times] = "times"; |
0fda6bd2 | 466 | syscall_table[SYS_uadmin] = "uadmin"; |
44122162 | 467 | syscall_table[SYS_ucredsys] = "ucredsys"; |
0fda6bd2 | 468 | syscall_table[SYS_ulimit] = "ulimit"; |
0fda6bd2 | 469 | syscall_table[SYS_umask] = "umask"; |
c18c06be | 470 | #ifdef SYS_umount |
0fda6bd2 JM |
471 | syscall_table[SYS_umount] = "umount"; |
472 | #endif | |
44122162 | 473 | syscall_table[SYS_umount2] = "umount2"; |
0fda6bd2 | 474 | syscall_table[SYS_uname] = "uname"; |
c18c06be | 475 | #ifdef SYS_unlink |
0fda6bd2 JM |
476 | syscall_table[SYS_unlink] = "unlink"; |
477 | #endif | |
44122162 RO |
478 | #ifdef SYS_unlinkat |
479 | syscall_table[SYS_unlinkat] = "unlinkat"; | |
0fda6bd2 | 480 | #endif |
c18c06be | 481 | #ifdef SYS_utime |
0fda6bd2 JM |
482 | syscall_table[SYS_utime] = "utime"; |
483 | #endif | |
44122162 RO |
484 | #ifdef SYS_utimensat |
485 | syscall_table[SYS_utimensat] = "utimensat"; | |
486 | #endif | |
c18c06be | 487 | #ifdef SYS_utimes |
0fda6bd2 JM |
488 | syscall_table[SYS_utimes] = "utimes"; |
489 | #endif | |
44122162 RO |
490 | #ifdef SYS_utimesys |
491 | syscall_table[SYS_utimesys] = "utimesys"; | |
492 | #endif | |
0fda6bd2 | 493 | syscall_table[SYS_utssys] = "utssys"; |
44122162 RO |
494 | syscall_table[SYS_uucopy] = "uucopy"; |
495 | syscall_table[SYS_uucopystr] = "uucopystr"; | |
e28b63a9 | 496 | #ifdef SYS_uuidsys |
44122162 | 497 | syscall_table[SYS_uuidsys] = "uuidsys"; |
e28b63a9 | 498 | #endif |
44122162 RO |
499 | #ifdef SYS_va_mask |
500 | syscall_table[SYS_va_mask] = "va_mask"; | |
0fda6bd2 | 501 | #endif |
0fda6bd2 | 502 | syscall_table[SYS_vfork] = "vfork"; |
0fda6bd2 | 503 | syscall_table[SYS_vhangup] = "vhangup"; |
c18c06be | 504 | #ifdef SYS_wait |
0fda6bd2 JM |
505 | syscall_table[SYS_wait] = "wait"; |
506 | #endif | |
c18c06be | 507 | #ifdef SYS_waitid |
0fda6bd2 JM |
508 | syscall_table[SYS_waitid] = "waitid"; |
509 | #endif | |
c18c06be | 510 | #ifdef SYS_waitsys |
0fda6bd2 JM |
511 | syscall_table[SYS_waitsys] = "waitsys"; |
512 | #endif | |
0fda6bd2 | 513 | syscall_table[SYS_write] = "write"; |
0fda6bd2 | 514 | syscall_table[SYS_writev] = "writev"; |
c18c06be | 515 | #ifdef SYS_xmknod |
0fda6bd2 JM |
516 | syscall_table[SYS_xmknod] = "xmknod"; |
517 | #endif | |
c18c06be | 518 | #ifdef SYS_xstat |
0fda6bd2 JM |
519 | syscall_table[SYS_xstat] = "xstat"; |
520 | #endif | |
0fda6bd2 | 521 | syscall_table[SYS_yield] = "yield"; |
44122162 | 522 | syscall_table[SYS_zone] = "zone"; |
5bfb05ca | 523 | } |
0fda6bd2 | 524 | |
c18c06be | 525 | /* Prettyprint syscall NUM. */ |
0fda6bd2 JM |
526 | |
527 | void | |
fba45db2 | 528 | proc_prettyfprint_syscall (FILE *file, int num, int verbose) |
0fda6bd2 JM |
529 | { |
530 | if (syscall_table[num]) | |
531 | fprintf (file, "SYS_%s ", syscall_table[num]); | |
532 | else | |
533 | fprintf (file, "<Unknown syscall %d> ", num); | |
534 | } | |
535 | ||
536 | void | |
fba45db2 | 537 | proc_prettyprint_syscall (int num, int verbose) |
0fda6bd2 JM |
538 | { |
539 | proc_prettyfprint_syscall (stdout, num, verbose); | |
540 | } | |
541 | ||
c18c06be | 542 | /* Prettyprint all syscalls in SYSSET. */ |
0fda6bd2 JM |
543 | |
544 | void | |
fba45db2 | 545 | proc_prettyfprint_syscalls (FILE *file, sysset_t *sysset, int verbose) |
0fda6bd2 JM |
546 | { |
547 | int i; | |
548 | ||
549 | for (i = 0; i < MAX_SYSCALLS; i++) | |
550 | if (prismember (sysset, i)) | |
551 | { | |
552 | proc_prettyfprint_syscall (file, i, verbose); | |
553 | } | |
554 | fprintf (file, "\n"); | |
555 | } | |
556 | ||
557 | void | |
fba45db2 | 558 | proc_prettyprint_syscalls (sysset_t *sysset, int verbose) |
0fda6bd2 JM |
559 | { |
560 | proc_prettyfprint_syscalls (stdout, sysset, verbose); | |
561 | } | |
c18c06be MK |
562 | \f |
563 | /* Prettyprint signals. */ | |
0fda6bd2 | 564 | |
3657956b GB |
565 | /* Signal translation table, ordered ANSI-standard signals first, |
566 | other signals second, with signals in each block ordered by their | |
567 | numerical values on a typical POSIX platform. */ | |
0fda6bd2 JM |
568 | |
569 | static struct trans signal_table[] = | |
570 | { | |
571 | { 0, "<no signal>", "no signal" }, | |
3657956b GB |
572 | |
573 | /* SIGINT, SIGILL, SIGABRT, SIGFPE, SIGSEGV and SIGTERM | |
574 | are ANSI-standard signals and are always available. */ | |
575 | ||
576 | { SIGINT, "SIGINT", "Interrupt (rubout)" }, | |
577 | { SIGILL, "SIGILL", "Illegal instruction" }, /* not reset when caught */ | |
578 | { SIGABRT, "SIGABRT", "used by abort()" }, /* replaces SIGIOT */ | |
579 | { SIGFPE, "SIGFPE", "Floating point exception" }, | |
580 | { SIGSEGV, "SIGSEGV", "Segmentation violation" }, | |
581 | { SIGTERM, "SIGTERM", "Software termination signal from kill" }, | |
582 | ||
583 | /* All other signals need preprocessor conditionals. */ | |
584 | ||
0fda6bd2 | 585 | { SIGHUP, "SIGHUP", "Hangup" }, |
0fda6bd2 | 586 | { SIGQUIT, "SIGQUIT", "Quit (ASCII FS)" }, |
0fda6bd2 | 587 | { SIGTRAP, "SIGTRAP", "Trace trap" }, /* not reset when caught */ |
0fda6bd2 | 588 | { SIGIOT, "SIGIOT", "IOT instruction" }, |
0fda6bd2 | 589 | { SIGEMT, "SIGEMT", "EMT instruction" }, |
0fda6bd2 | 590 | { SIGKILL, "SIGKILL", "Kill" }, /* Solaris: cannot be caught/ignored */ |
0fda6bd2 | 591 | { SIGBUS, "SIGBUS", "Bus error" }, |
0fda6bd2 | 592 | { SIGSYS, "SIGSYS", "Bad argument to system call" }, |
0fda6bd2 | 593 | { SIGPIPE, "SIGPIPE", "Write to pipe with no one to read it" }, |
0fda6bd2 | 594 | { SIGALRM, "SIGALRM", "Alarm clock" }, |
0fda6bd2 | 595 | { SIGUSR1, "SIGUSR1", "User defined signal 1" }, |
0fda6bd2 | 596 | { SIGUSR2, "SIGUSR2", "User defined signal 2" }, |
0fda6bd2 | 597 | { SIGCHLD, "SIGCHLD", "Child status changed" }, /* Posix version */ |
0fda6bd2 | 598 | { SIGCLD, "SIGCLD", "Child status changed" }, /* Solaris version */ |
0fda6bd2 | 599 | { SIGPWR, "SIGPWR", "Power-fail restart" }, |
0fda6bd2 | 600 | { SIGWINCH, "SIGWINCH", "Window size change" }, |
0fda6bd2 | 601 | { SIGURG, "SIGURG", "Urgent socket condition" }, |
0fda6bd2 | 602 | { SIGPOLL, "SIGPOLL", "Pollable event" }, |
0fda6bd2 | 603 | { SIGIO, "SIGIO", "Socket I/O possible" }, /* alias for SIGPOLL */ |
3e43a32a MS |
604 | { SIGSTOP, "SIGSTOP", "Stop, not from tty" }, /* cannot be caught or |
605 | ignored */ | |
0fda6bd2 | 606 | { SIGTSTP, "SIGTSTP", "User stop from tty" }, |
0fda6bd2 | 607 | { SIGCONT, "SIGCONT", "Stopped process has been continued" }, |
0fda6bd2 | 608 | { SIGTTIN, "SIGTTIN", "Background tty read attempted" }, |
0fda6bd2 | 609 | { SIGTTOU, "SIGTTOU", "Background tty write attempted" }, |
0fda6bd2 | 610 | { SIGVTALRM, "SIGVTALRM", "Virtual timer expired" }, |
0fda6bd2 | 611 | { SIGPROF, "SIGPROF", "Profiling timer expired" }, |
0fda6bd2 | 612 | { SIGXCPU, "SIGXCPU", "Exceeded CPU limit" }, |
0fda6bd2 | 613 | { SIGXFSZ, "SIGXFSZ", "Exceeded file size limit" }, |
0fda6bd2 | 614 | { SIGWAITING, "SIGWAITING", "Process's LWPs are blocked" }, |
0fda6bd2 | 615 | { SIGLWP, "SIGLWP", "Used by thread library" }, |
0fda6bd2 | 616 | { SIGFREEZE, "SIGFREEZE", "Used by CPR" }, |
0fda6bd2 | 617 | { SIGTHAW, "SIGTHAW", "Used by CPR" }, |
0fda6bd2 | 618 | { SIGCANCEL, "SIGCANCEL", "Used by libthread" }, |
0fda6bd2 | 619 | { SIGLOST, "SIGLOST", "Resource lost" }, |
c18c06be MK |
620 | |
621 | /* FIXME: add real-time signals. */ | |
0fda6bd2 JM |
622 | }; |
623 | ||
c18c06be | 624 | /* Prettyprint signal number SIGNO. */ |
0fda6bd2 JM |
625 | |
626 | void | |
fba45db2 | 627 | proc_prettyfprint_signal (FILE *file, int signo, int verbose) |
0fda6bd2 JM |
628 | { |
629 | int i; | |
630 | ||
631 | for (i = 0; i < sizeof (signal_table) / sizeof (signal_table[0]); i++) | |
632 | if (signo == signal_table[i].value) | |
633 | { | |
634 | fprintf (file, "%s", signal_table[i].name); | |
635 | if (verbose) | |
636 | fprintf (file, ": %s\n", signal_table[i].desc); | |
637 | else | |
638 | fprintf (file, " "); | |
639 | return; | |
640 | } | |
641 | fprintf (file, "Unknown signal %d%c", signo, verbose ? '\n' : ' '); | |
642 | } | |
643 | ||
644 | void | |
fba45db2 | 645 | proc_prettyprint_signal (int signo, int verbose) |
0fda6bd2 JM |
646 | { |
647 | proc_prettyfprint_signal (stdout, signo, verbose); | |
648 | } | |
649 | ||
c18c06be | 650 | /* Prettyprint all signals in SIGSET. */ |
0fda6bd2 JM |
651 | |
652 | void | |
fba45db2 | 653 | proc_prettyfprint_signalset (FILE *file, sigset_t *sigset, int verbose) |
0fda6bd2 JM |
654 | { |
655 | int i; | |
656 | ||
c18c06be MK |
657 | /* Loop over all signal numbers from 0 to NSIG, using them as the |
658 | index to prismember. The signal table had better not contain | |
659 | aliases, for if it does they will both be printed. */ | |
660 | ||
0fda6bd2 JM |
661 | for (i = 0; i < NSIG; i++) |
662 | if (prismember (sigset, i)) | |
663 | proc_prettyfprint_signal (file, i, verbose); | |
664 | ||
665 | if (!verbose) | |
666 | fprintf (file, "\n"); | |
667 | } | |
668 | ||
669 | void | |
fba45db2 | 670 | proc_prettyprint_signalset (sigset_t *sigset, int verbose) |
0fda6bd2 JM |
671 | { |
672 | proc_prettyfprint_signalset (stdout, sigset, verbose); | |
673 | } | |
c18c06be | 674 | \f |
0fda6bd2 | 675 | |
c18c06be MK |
676 | /* Prettyprint faults. */ |
677 | ||
678 | /* Fault translation table. */ | |
0fda6bd2 JM |
679 | |
680 | static struct trans fault_table[] = | |
681 | { | |
0fda6bd2 | 682 | { FLTILL, "FLTILL", "Illegal instruction" }, |
0fda6bd2 | 683 | { FLTPRIV, "FLTPRIV", "Privileged instruction" }, |
0fda6bd2 | 684 | { FLTBPT, "FLTBPT", "Breakpoint trap" }, |
0fda6bd2 | 685 | { FLTTRACE, "FLTTRACE", "Trace trap" }, |
0fda6bd2 | 686 | { FLTACCESS, "FLTACCESS", "Memory access fault" }, |
0fda6bd2 | 687 | { FLTBOUNDS, "FLTBOUNDS", "Memory bounds violation" }, |
0fda6bd2 | 688 | { FLTIOVF, "FLTIOVF", "Integer overflow" }, |
0fda6bd2 | 689 | { FLTIZDIV, "FLTIZDIV", "Integer zero divide" }, |
0fda6bd2 | 690 | { FLTFPE, "FLTFPE", "Floating-point exception" }, |
0fda6bd2 | 691 | { FLTSTACK, "FLTSTACK", "Unrecoverable stack fault" }, |
0fda6bd2 | 692 | { FLTPAGE, "FLTPAGE", "Recoverable page fault" }, |
0fda6bd2 | 693 | { FLTWATCH, "FLTWATCH", "User watchpoint" }, |
0fda6bd2 JM |
694 | }; |
695 | ||
c18c06be MK |
696 | /* Work horse. Accepts an index into the fault table, prints it |
697 | pretty. */ | |
0fda6bd2 JM |
698 | |
699 | static void | |
fba45db2 | 700 | prettyfprint_faulttable_entry (FILE *file, int i, int verbose) |
0fda6bd2 JM |
701 | { |
702 | fprintf (file, "%s", fault_table[i].name); | |
703 | if (verbose) | |
704 | fprintf (file, ": %s\n", fault_table[i].desc); | |
705 | else | |
706 | fprintf (file, " "); | |
707 | } | |
708 | ||
c18c06be | 709 | /* Prettyprint hardware fault number FAULTNO. */ |
0fda6bd2 JM |
710 | |
711 | void | |
fba45db2 | 712 | proc_prettyfprint_fault (FILE *file, int faultno, int verbose) |
0fda6bd2 JM |
713 | { |
714 | int i; | |
715 | ||
c18c06be | 716 | for (i = 0; i < ARRAY_SIZE (fault_table); i++) |
0fda6bd2 JM |
717 | if (faultno == fault_table[i].value) |
718 | { | |
719 | prettyfprint_faulttable_entry (file, i, verbose); | |
720 | return; | |
721 | } | |
722 | ||
723 | fprintf (file, "Unknown hardware fault %d%c", | |
724 | faultno, verbose ? '\n' : ' '); | |
725 | } | |
726 | ||
727 | void | |
fba45db2 | 728 | proc_prettyprint_fault (int faultno, int verbose) |
0fda6bd2 JM |
729 | { |
730 | proc_prettyfprint_fault (stdout, faultno, verbose); | |
731 | } | |
732 | ||
c18c06be | 733 | /* Prettyprint all faults in FLTSET. */ |
0fda6bd2 JM |
734 | |
735 | void | |
fba45db2 | 736 | proc_prettyfprint_faultset (FILE *file, fltset_t *fltset, int verbose) |
0fda6bd2 JM |
737 | { |
738 | int i; | |
739 | ||
c18c06be MK |
740 | /* Loop through the fault table, using the value field as the index |
741 | to prismember. The fault table had better not contain aliases, | |
742 | for if it does they will both be printed. */ | |
743 | ||
744 | for (i = 0; i < ARRAY_SIZE (fault_table); i++) | |
0fda6bd2 JM |
745 | if (prismember (fltset, fault_table[i].value)) |
746 | prettyfprint_faulttable_entry (file, i, verbose); | |
747 | ||
748 | if (!verbose) | |
749 | fprintf (file, "\n"); | |
750 | } | |
751 | ||
752 | void | |
fba45db2 | 753 | proc_prettyprint_faultset (fltset_t *fltset, int verbose) |
0fda6bd2 JM |
754 | { |
755 | proc_prettyfprint_faultset (stdout, fltset, verbose); | |
756 | } | |
757 | ||
c18c06be | 758 | /* TODO: actions, holds... */ |
0fda6bd2 JM |
759 | |
760 | void | |
761 | proc_prettyprint_actionset (struct sigaction *actions, int verbose) | |
762 | { | |
763 | } | |
764 | ||
6c265988 | 765 | void _initialize_proc_events (); |
0fda6bd2 | 766 | void |
6c265988 | 767 | _initialize_proc_events () |
0fda6bd2 JM |
768 | { |
769 | init_syscall_table (); | |
770 | } |