1 /* This file contains procedures to dump to PM' data structures.
3 * The entry points into this file are
4 * mproc_dmp: display PM process table
7 * May 11, 2005: by Jorrit N. Herder
11 #include "../pm/mproc.h"
13 #include <minix/config.h>
14 #include <minix/type.h>
16 struct mproc mproc
[NR_PROCS
];
18 /*===========================================================================*
20 *===========================================================================*/
21 static char *flags_str(int flags
)
24 str
[0] = (flags
& WAITING
) ? 'W' : '-';
25 str
[1] = (flags
& ZOMBIE
) ? 'Z' : '-';
26 str
[2] = (flags
& PAUSED
) ? 'P' : '-';
27 str
[3] = (flags
& ALARM_ON
) ? 'A' : '-';
28 str
[4] = (flags
& EXITING
) ? 'E' : '-';
29 str
[5] = (flags
& STOPPED
) ? 'S' : '-';
30 str
[6] = (flags
& SIGSUSPENDED
) ? 'U' : '-';
31 str
[7] = (flags
& REPLY
) ? 'R' : '-';
32 str
[8] = (flags
& VFS_CALL
) ? 'F' : '-';
33 str
[9] = (flags
& PM_SIG_PENDING
) ? 's' : '-';
34 str
[10] = (flags
& PRIV_PROC
) ? 'p' : '-';
35 str
[11] = (flags
& PARTIAL_EXEC
) ? 'x' : '-';
36 str
[12] = (flags
& DELAY_CALL
) ? 'd' : '-';
46 static int prev_i
= 0;
48 if (getsysinfo(PM_PROC_NR
, SI_PROC_TAB
, mproc
, sizeof(mproc
)) != OK
) {
49 printf("Error obtaining table from PM. Perhaps recompile IS?\n");
53 printf("Process manager (PM) process table dump\n");
54 printf("-process- -nr-pnr-tnr- --pid--ppid--pgrp- -uid-- -gid-- -nice- -flags-------\n");
55 for (i
=prev_i
; i
<NR_PROCS
; i
++) {
57 if (mp
->mp_pid
== 0 && i
!= PM_PROC_NR
) continue;
59 printf("%8.8s %4d%4d%4d %5d %5d %5d ",
60 mp
->mp_name
, i
, mp
->mp_parent
, mp
->mp_tracer
, mp
->mp_pid
, mproc
[mp
->mp_parent
].mp_pid
, mp
->mp_procgrp
);
61 printf("%2d(%2d) %2d(%2d) ",
62 mp
->mp_realuid
, mp
->mp_effuid
, mp
->mp_realgid
, mp
->mp_effgid
);
64 mp
->mp_nice
, flags_str(mp
->mp_flags
));
67 if (i
>= NR_PROCS
) i
= 0;
68 else printf("--more--\r");
72 /*===========================================================================*
74 *===========================================================================*/
79 static int prev_i
= 0;
82 if (getsysinfo(PM_PROC_NR
, SI_PROC_TAB
, mproc
, sizeof(mproc
)) != OK
) {
83 printf("Error obtaining table from PM. Perhaps recompile IS?\n");
88 printf("Process manager (PM) signal action dump\n");
89 printf("-process- -nr- --ignore- --catch- --block- -pending- -alarm---\n");
90 for (i
=prev_i
; i
<NR_PROCS
; i
++) {
92 if (mp
->mp_pid
== 0 && i
!= PM_PROC_NR
) continue;
94 printf("%8.8s %3d ", mp
->mp_name
, i
);
95 printf(" %08lx %08lx %08lx ",
96 mp
->mp_ignore
, mp
->mp_catch
, mp
->mp_sigmask
);
97 printf("%08lx ", mp
->mp_sigpending
);
98 if (mp
->mp_flags
& ALARM_ON
) printf("%8ld", mp
->mp_timer
.tmr_exp_time
-uptime
);
102 if (i
>= NR_PROCS
) i
= 0;
103 else printf("--more--\r");