Changed type for signal',
blocked', sigignore' and
sigcatch' to
1998-07-23 Martin Baulig <martin@home-of-linux.org> * include/glibtop/procsignal.h (glibtop_proc_signal): Changed type for `signal', `blocked', `sigignore' and `sigcatch' to `unsigned long long'.
This commit is contained in:
committed by
Martin Baulig
parent
954a78f200
commit
61c262dd7e
@@ -1,3 +1,9 @@
|
||||
1998-07-23 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* include/glibtop/procsignal.h (glibtop_proc_signal):
|
||||
Changed type for `signal', `blocked', `sigignore' and
|
||||
`sigcatch' to `unsigned long long'.
|
||||
|
||||
1998-07-22 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* include/glibtop/fsusage.h: New file.
|
||||
|
@@ -211,7 +211,7 @@ main (int argc, char *argv [])
|
||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
||||
|
||||
printf ("Proc_Signal PID %5u (0x%08lx): "
|
||||
"%lu %lu %lu %lu\n", pid, data.proc_signal.flags,
|
||||
"%Lu %Lu %Lu %Lu\n", pid, data.proc_signal.flags,
|
||||
data.proc_signal.signal, data.proc_signal.blocked,
|
||||
data.proc_signal.sigignore, data.proc_signal.sigcatch);
|
||||
|
||||
@@ -282,7 +282,7 @@ main (int argc, char *argv [])
|
||||
glibtop_get_proc_signal (&data.proc_signal, ppid);
|
||||
|
||||
printf ("Proc_Signal PPID %5u (0x%08lx): "
|
||||
"%lu %lu %lu %u\n", ppid, data.proc_signal.flags,
|
||||
"%Lu %Lu %Lu %Lu\n", ppid, data.proc_signal.flags,
|
||||
data.proc_signal.signal, data.proc_signal.blocked,
|
||||
data.proc_signal.sigignore, data.proc_signal.sigcatch);
|
||||
|
||||
@@ -353,7 +353,7 @@ main (int argc, char *argv [])
|
||||
glibtop_get_proc_signal (&data.proc_signal, 1);
|
||||
|
||||
printf ("Proc_Signal INIT %5u (0x%08lx): "
|
||||
"%lu %lu %lu %lu\n", 1, data.proc_signal.flags,
|
||||
"%Lu %Lu %Lu %Lu\n", 1, data.proc_signal.flags,
|
||||
data.proc_signal.signal, data.proc_signal.blocked,
|
||||
data.proc_signal.sigignore, data.proc_signal.sigcatch);
|
||||
|
||||
|
@@ -110,7 +110,7 @@ main (int argc, char *argv [])
|
||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
||||
|
||||
fprintf (stderr, "Proc_Signal PID %5u (0x%08lx): "
|
||||
"%lu %lu %lu %lu\n", pid, data.proc_signal.flags,
|
||||
"%Lu %Lu %Lu %Lu\n", pid, data.proc_signal.flags,
|
||||
data.proc_signal.signal, data.proc_signal.blocked,
|
||||
data.proc_signal.sigignore, data.proc_signal.sigcatch);
|
||||
|
||||
|
@@ -41,10 +41,10 @@ typedef struct _glibtop_proc_signal glibtop_proc_signal;
|
||||
struct _glibtop_proc_signal
|
||||
{
|
||||
unsigned long flags;
|
||||
unsigned long signal, /* mask of pending signals */
|
||||
blocked, /* mask of blocked signals */
|
||||
sigignore, /* mask of ignored signals */
|
||||
sigcatch; /* mask of caught signals */
|
||||
unsigned long long signal, /* mask of pending signals */
|
||||
blocked, /* mask of blocked signals */
|
||||
sigignore, /* mask of ignored signals */
|
||||
sigcatch; /* mask of caught signals */
|
||||
};
|
||||
|
||||
#define glibtop_get_proc_signal(p1, p2) glibtop_get_proc_signal_l(glibtop_global_server, p1, p2)
|
||||
|
@@ -41,7 +41,8 @@ EXPORT_NO_SYMBOLS;
|
||||
int
|
||||
init_module(void)
|
||||
{
|
||||
printk ("init_module () = %p\n", table_fkt);
|
||||
printk ("init_module () = %p - %d, %d\n",
|
||||
table_fkt, sizeof (union table), sizeof (sigset_t));
|
||||
table_function_ptr = table_fkt;
|
||||
return 0;
|
||||
}
|
||||
@@ -68,9 +69,18 @@ static void collect_sigign_sigcatch(struct task_struct *p, sigset_t *ign,
|
||||
sigemptyset(ign);
|
||||
sigemptyset(catch);
|
||||
|
||||
#if 0
|
||||
printk ("collect_sigign_sigcatch: %p - %p\n",
|
||||
p, p->sig);
|
||||
#endif
|
||||
|
||||
if (p->sig) {
|
||||
k = p->sig->action;
|
||||
for (i = 1; i <= _NSIG; ++i, ++k) {
|
||||
#if 0
|
||||
printk ("signal: %d - %p (%p, %p)\n",
|
||||
i, k->sa.sa_handler, SIG_IGN, SIG_DFL);
|
||||
#endif
|
||||
if (k->sa.sa_handler == SIG_IGN)
|
||||
sigaddset(ign, i);
|
||||
else if (k->sa.sa_handler != SIG_DFL)
|
||||
@@ -294,6 +304,7 @@ table_fkt (int type, union table *buf, const void *param)
|
||||
union table tbl;
|
||||
struct sysinfo i;
|
||||
struct task_struct *tsk = NULL;
|
||||
sigset_t sigign, sigcatch;
|
||||
int index, err;
|
||||
pid_t pid;
|
||||
|
||||
@@ -411,11 +422,27 @@ table_fkt (int type, union table *buf, const void *param)
|
||||
tbl.proc_uid.def_priority = DEF_PRIORITY;
|
||||
break;
|
||||
case TABLE_PROC_SIGNAL:
|
||||
tbl.proc_signal.signal = tsk->signal;
|
||||
tbl.proc_signal.blocked = tsk->blocked;
|
||||
|
||||
collect_sigign_sigcatch (tsk, &tbl.proc_signal.ignored,
|
||||
&tbl.proc_signal.caught);
|
||||
memcpy (&tbl.proc_signal.signal, &tsk->signal,
|
||||
sizeof (tbl.proc_signal.signal));
|
||||
|
||||
memcpy (&tbl.proc_signal.blocked, &tsk->blocked,
|
||||
sizeof (tbl.proc_signal.blocked));
|
||||
|
||||
collect_sigign_sigcatch (tsk, &sigign, &sigcatch);
|
||||
|
||||
memcpy (&tbl.proc_signal.ignored, &sigign,
|
||||
sizeof (tbl.proc_signal.ignored));
|
||||
|
||||
memcpy (&tbl.proc_signal.caught, &sigcatch,
|
||||
sizeof (tbl.proc_signal.caught));
|
||||
|
||||
#if 0
|
||||
printk ("PROC_SIGNAL: (%lu, %lu) - (%lu, %lu)\n",
|
||||
tbl.proc_signal.ignored.sig [0],
|
||||
tbl.proc_signal.ignored.sig [1],
|
||||
tbl.proc_signal.caught.sig [0],
|
||||
tbl.proc_signal.caught.sig [1]);
|
||||
#endif
|
||||
break;
|
||||
case TABLE_PROC_MEM:
|
||||
if (tsk->mm && tsk->mm != &init_mm) {
|
||||
|
@@ -129,10 +129,10 @@ struct table_proc_time
|
||||
|
||||
struct table_proc_signal
|
||||
{
|
||||
sigset_t signal;
|
||||
sigset_t blocked; /* bitmap of masked signals */
|
||||
sigset_t ignored; /* mask of ignored signals */
|
||||
sigset_t caught; /* mask of caught signals */
|
||||
unsigned long long signal,
|
||||
blocked, /* bitmap of masked signals */
|
||||
ignored, /* mask of ignored signals */
|
||||
caught; /* mask of caught signals */
|
||||
};
|
||||
|
||||
struct table_proc_kernel
|
||||
|
@@ -52,8 +52,8 @@ glibtop_get_proc_signal_s (glibtop *server, glibtop_proc_signal *buf,
|
||||
|
||||
buf->flags = _glibtop_sysdeps_proc_signal;
|
||||
|
||||
buf->signal = tbl.proc_signal.signal.__val [0];
|
||||
buf->blocked = tbl.proc_signal.blocked.__val [0];
|
||||
buf->sigignore = tbl.proc_signal.ignored.__val [0];
|
||||
buf->sigcatch = tbl.proc_signal.caught.__val [0];
|
||||
buf->signal = tbl.proc_signal.signal;
|
||||
buf->blocked = tbl.proc_signal.blocked;
|
||||
buf->sigignore = tbl.proc_signal.ignored;
|
||||
buf->sigcatch = tbl.proc_signal.caught;
|
||||
}
|
||||
|
Reference in New Issue
Block a user