Annotation of coherent/b/bin/ps/ps3.0/ps.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Define useful symbols for use in the ps program.
                      3:  */
                      4: #ifndef PS_H   /* Rest of file.  */
                      5: #define PS_H
                      6: 
                      7: #include <sys/proc.h>
                      8: #include <sys/uproc.h>
                      9: 
                     10: /*
                     11:  * These flags, ar_proc_flags, indicate which processes should be printed.
                     12:  */
                     13: #define        ALL_PROC        0x0001          /* All processes */
                     14: #define        DRIVER          0x0002          /* Print drivers */
                     15: #define        SPECIAL         0x0004          /* Get special processes */
                     16: #define        USER            0x0008          /* All processes for a given user  */
                     17: #define ATTY           0x0010          /* All processes for a given tty */
                     18: 
                     19: /*
                     20:  * These flags indicate which fields should be printed.  There are
                     21:  * two kinds of these--flags that indicate a format and flags that
                     22:  * indicate specific fields.  They are the ar_field_flags.
                     23:  */
                     24: #define        ALL_FIELDS      0x0001          /* Print out all fields */
                     25: #define        LONG_FMT        0x0002          /* Long format */
                     26: #define        WIDE_FMT        0x0004          /* Wide format */
                     27: #define PID_ONLY       0x0008          /* Print only PIDs */
                     28: 
                     29: #define        GROUPS          0x0100          /* Print out process groups */
                     30: #define        SCHED           0x0200          /* Print scheduling values */
                     31: #define        TIMES           0x0400          /* Print times */
                     32: 
                     33: /*
                     34:  * These are miscellaneous flags, ar_msc_flags.
                     35:  */
                     36: #define        REAL_SIZES      0x0001          /* Print out real sizes */
                     37: #define        NO_HEAD         0x0002          /* No header */
                     38: #define        DEBUG           0x0004          /* Debug flag */
                     39: #define        IGN_PRESENT     0x0008          /* UNDOCUMENTED: ignore present bit.  */
                     40: 
                     41: 
                     42: /*
                     43:  * Here we define some assorted handy values.
                     44:  */
                     45: typedef int boolean;
                     46: #define TRUE   (1==1)
                     47: #define FALSE  (1==2)
                     48: #ifndef NULL
                     49: #define NULL   ((char *) 0)
                     50: #endif /* NULL */
                     51: 
                     52: /*
                     53:  * This structure contains pointers to all structures which might
                     54:  * describe part of a process.
                     55:  *
                     56:  * We keep these critters in an array which we build on demand.
                     57:  */
                     58: typedef struct {
                     59:        PROC    *pr_proc;       /* Insert the process table entry here. */
                     60:        UPROC   *pr_u;          /* Insert the u area here.              */
                     61:        char    *pr_argv[];     /* Insert the argument vector here.     */
                     62:        char    pr_argc;        /* Insert the number of args here.      */
                     63: } PROC_DATA;
                     64: 
                     65: /*
                     66:  * This structure contains a predigested version of the arguments to ps.
                     67:  */
                     68: typedef struct {
                     69:        unsigned ar_proc_flags;   /* Which processes should be printed? */
                     70:        unsigned ar_field_flags;  /* Which fields should be printed?    */
                     71:        unsigned ar_msc_flags;    /* This is other useful info.         */
                     72: 
                     73: } PROC_ARGS;
                     74: 
                     75: void main();
                     76: void cvt_args();               /* Digest the command line.  */
                     77: PROC *create_proc_table();     /* Read in the process table.  */
                     78: PROC_DATA *create_proc_data(); /* Fill in data about each process.  */
                     79: void print_headers();          /* Print column headings.  */
                     80: boolean wanted_process();      /* Do we want to print this process?  */
                     81: void print_process();          /* Print information about this process.  */
                     82: void print_tty();              /* Print a text name for a tty.  */
                     83: char *user_name();             /* Convert uid to a user name.  */
                     84: char *kumap();                 /* Map some kernel memory into user space.  */
                     85: char state();                  /* Is the process asleep, running, or zombie? */
                     86: void print_time();             /* Print a HZ time.  */
                     87: void print_command();          /* Print the command for this process.  */
                     88: void print_event();            /* Print out the reason for a sleep.  */
                     89: #endif /* PS_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.