|
|
1.1 ! root 1: #include "ps.h" ! 2: ! 3: /* ! 4: * Print out process status. ! 5: */ ! 6: void ! 7: main(argc, argv) ! 8: int argc; ! 9: char *argv[]; ! 10: { ! 11: int i; /* Every program needs a loop counter :-). */ ! 12: int num_procs; /* How many processes are there? */ ! 13: /* ! 14: * The command arguments in argv are digested into 'args'. ! 15: */ ! 16: PROC_ARGS args; ! 17: ! 18: /* ! 19: * proc_table is the process table as read from /dev/proc. ! 20: */ ! 21: PROC *proc_table; ! 22: ! 23: /* ! 24: * proc_data is the table of all information for each process. ! 25: * It includes pointers into proc_table, and lots of other ! 26: * goodies. ! 27: */ ! 28: PROC_DATA *proc_data; ! 29: ! 30: /* ! 31: * Digest the command line. ! 32: * ! 33: * This routine will not return if there are errors in ! 34: * the command line. ! 35: */ ! 36: cvt_args( &args, argc, argv ); ! 37: ! 38: /* ! 39: * Read in all that handy cached information. ! 40: */ ! 41: /* ! 42: * There is no caching yet. ! 43: */ ! 44: ! 45: /* ! 46: * Read in the process table. Note that memory for ! 47: * proc_table will be allocated. ! 48: * ! 49: * The number of processes (i.e. the size of proc_table) ! 50: * will be returned in num_procs. ! 51: */ ! 52: proc_table = create_proc_table( &num_procs, &args ); ! 53: ! 54: /* ! 55: * Pull together all the data for each process into ! 56: * a single table of PROC_DATA structures. ! 57: */ ! 58: proc_data = create_proc_data( proc_table, num_procs, &args ); ! 59: ! 60: /* ! 61: * Print any headers we might need. ! 62: */ ! 63: print_headers( &args ); ! 64: ! 65: /* ! 66: * Walk through proc_data[] printing each appropriate entry. ! 67: */ ! 68: for ( i = 0; i < num_procs; ++i ) { ! 69: if ( wanted_process( &proc_data[i], &args ) ) { ! 70: print_process( &proc_data[i], &args ); ! 71: } ! 72: } ! 73: ! 74: } /* main() */ ! 75: ! 76: /* ! 77: * Digest the command line. ! 78: */ ! 79: void ! 80: cvt_args( args, argc, argv ) ! 81: PROC_ARGS *args; ! 82: int argc; ! 83: char *argv[]; ! 84: { ! 85: } /* cvt_args() */ ! 86: ! 87: /* ! 88: * Is this process one we want to print? ! 89: */ ! 90: boolean ! 91: wanted_process( process, args ) ! 92: PROC_DATA *process; ! 93: PROC_ARGS *args; ! 94: { ! 95: return( TRUE ); /* STUB */ ! 96: } /* wanted_process() */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.