3 --- sysdeps/bsd/procsignal.c.orig 2007-04-27 00:27:34.000000000 +0200
4 +++ sysdeps/bsd/procsignal.c
5 @@ -51,7 +51,11 @@ glibtop_get_proc_signal_p (glibtop *serv
6 glibtop_proc_signal *buf,
9 +#if defined(__NetBSD__)
10 + struct kinfo_proc2 *pinfo;
12 struct kinfo_proc *pinfo;
16 glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_SIGNAL), 0);
17 @@ -62,7 +66,12 @@ glibtop_get_proc_signal_p (glibtop *serv
20 /* Get the process information */
21 +#if defined(__NetBSD__)
22 + pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid,
23 + sizeof (*pinfo), &count);
25 pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
27 if ((pinfo == NULL) || (count != 1)) {
28 glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
30 @@ -75,6 +84,10 @@ glibtop_get_proc_signal_p (glibtop *serv
31 #define PROC_SIGIGNORE ki_sigignore
32 #define PROC_SIGCATCH ki_sigcatch
34 +#elif defined(__NetBSD__)
36 +/* nothing for now */
40 #define PROC_SIGLIST kp_proc.p_siglist
41 @@ -87,6 +100,9 @@ glibtop_get_proc_signal_p (glibtop *serv
42 /* signal: mask of pending signals.
43 * pinfo [0].kp_proc.p_siglist
45 +#if defined(__NetBSD__)
46 + buf->signal[0] = pinfo[0].p_siglist.__bits[0];
48 #if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
49 buf->signal [0] = pinfo [0].kp_proc.p_sigctx.ps_siglist.__bits[0];
50 #elif (defined(__NetBSD__) && (NSIG > 32)) || \
51 @@ -95,10 +111,14 @@ glibtop_get_proc_signal_p (glibtop *serv
53 buf->signal [0] = pinfo [0].kp_proc.p_siglist;
57 /* blocked: mask of blocked signals.
58 * pinfo [0].kp_proc.p_sigmask
60 +#if defined(__NetBSD__)
61 + buf->blocked[0] = pinfo[0].p_sigmask.__bits[0];
63 #if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
64 buf->blocked [0] = pinfo [0].kp_proc.p_sigctx.ps_sigmask.__bits[0];
65 #elif (defined(__NetBSD__) && (NSIG > 32)) || \
66 @@ -107,10 +127,14 @@ glibtop_get_proc_signal_p (glibtop *serv
68 buf->blocked [0] = pinfo [0].kp_proc.p_sigmask;
72 /* sigignore: mask of ignored signals.
73 * pinfo [0].kp_proc.p_sigignore
75 +#if defined(__NetBSD__)
76 + buf->sigignore[0] = pinfo[0].p_sigignore.__bits[0];
78 #if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
79 buf->sigignore [0] = pinfo [0].kp_proc.p_sigctx.ps_sigignore.__bits[0];
80 #elif (defined(__NetBSD__) && (NSIG > 32)) || \
81 @@ -119,10 +143,14 @@ glibtop_get_proc_signal_p (glibtop *serv
83 buf->sigignore [0] = pinfo [0].kp_proc.p_sigignore;
87 /* sigcatch: mask of caught signals.
88 * pinfo [0].kp_proc.p_sigcatch
90 +#if defined(__NetBSD__)
91 + buf->sigcatch[0] = pinfo[0].p_sigcatch.__bits[0];
93 #if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
94 buf->sigcatch [0] = pinfo [0].kp_proc.p_sigctx.ps_sigcatch.__bits[0];
95 #elif (defined(__NetBSD__) && (NSIG > 32)) || \
96 @@ -131,6 +159,7 @@ glibtop_get_proc_signal_p (glibtop *serv
98 buf->sigcatch [0] = pinfo [0].kp_proc.p_sigcatch;
102 buf->flags = _glibtop_sysdeps_proc_signal;