|
|
1.1 root 1: #include <sys/seg.h>
2: #include <sys/proc.h>
3: #include "ps.h"
4:
5: /*
6: * Determine the size of a process in K.
7: */
8: unsigned long
9: proc_size( segp, real_flag )
10: SEG *segp[];
11: unsigned real_flag; /* Determine real process size? */
12: {
13: long len;
14: register SEG *sp;
15: register int n;
16:
17: len = 0;
18: for (n=0; n<NUSEG+1; n++) {
19: if ( !real_flag ) {
20: if (n==SIUSERP || n==SIAUXIL) {
21: continue;
22: }
23: }
24: if ( (sp = segp[n]) == NULL ) {
25: continue;
26: }
27: /*
28: * If one segment can't be mapped, give up.
29: */
30: if ( NULL == ( sp = kumap(sp, sizeof(SEG) ) ) ) {
31: return 0;
32: }
33:
34: /*
35: * Add to the running total of segment sizes.
36: */
37: len += sp->s_size;
38:
39: /*
40: * We're done with this segment.
41: */
42: free(sp);
43: }
44: return( len );
45: } /* proc_size() */
46:
47: /*
48: * What state is the process in; asleep, running, stopped, or zombie?
49: * Returns a single character indicating which.
50: */
51: char
52: state( pp )
53: PROC *pp;
54: {
55: register unsigned s;
56:
57: s = pp->p_state;
58: if (s == PSSLEEP) {
59: if ((pp->p_flags&PFSTOP) != 0)
60: return ('T');
61: return ('S');
62: }
63: if (s == PSRUN)
64: return ('R');
65: if (s == PSDEAD)
66: return ('Z');
67: return ('?');
68: } /* state() */
69:
70: /*
71: * Read in the process table. Allocate memory for the whole process
72: * table, which will be returned. Returns NULL if something goes
73: * wrong. Also fills in a value for the number processes (num_procs).
74: */
75: PROC *
76: create_proc_table( num_procs, pargs )
77: int *num_procs;
78: PROC_ARGS pargs;
79: {
80: } /* create_proc_table() */
81:
82: /*
83: * Fill in data about each process. Allocate memory for
84: * a table of PROC_DATA structs and fill it in to return. Returns
85: * NULL if anything goes wrong.
86: */
87: PROC_DATA *
88: create_proc_data( proc_table, num_procs, pargs )
89: PROC proc_table[];
90: int num_procs;
91: PROC_ARGS pargs;
92: {
93: } /* create_proc_data() */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.