home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume26 / cputt / cputt.h next >
C/C++ Source or Header  |  1992-04-18  |  2KB  |  67 lines

  1. # include     <sys/param.h>
  2. # include     <sys/user.h>
  3. # include     <sys/proc.h>
  4.  
  5. # define MAXUSERS       300 /* set this to (length of /etc/passwd * 2) */
  6. # define MAXACTIVE       50 /* max cpu-positive processes per interval */
  7. # define MAXOUT          10 /* output is limitted to this many processes */
  8. # define COMMAND_SIZE    51 /* set this to (width of your window - 29) */
  9. # define UNAMELEN         8 /* max length for username */
  10.  
  11. /*
  12.    cputt attempts to truncate unused slots at the end of the process
  13.    table.  This usually reduces its runtime size considerably.  If the
  14.    process table grows or shrinks by a significant amount, cputt will
  15.    restart itself and resize its internal data structures accordingly.
  16. */
  17.  
  18. # define GROWTH_BUF      40 /* growth buffer, use 0 to disable truncation */
  19. # define MAX_GROW        20 /* restart after proc table grows this much */
  20. # define MAX_SHRINK      10 /* restart after proc table shrinks this much */
  21.  
  22. /* info concerning a symbol table entry */
  23.  
  24. struct symbol
  25. {
  26.      char          *s_kname;      /* kernel symbol name */
  27.      char           s_indirect;   /* value requires indirection */
  28.      caddr_t       *s_info;       /* corresponding info address */
  29.      char          *s_wait;       /* reason for wait, if any */
  30. };
  31.  
  32. /* single hash table entry for mapping uid's to usernames */
  33.  
  34. struct hashtab
  35. {
  36.      short          h_uid ;               /* uid of user entry */
  37.      char           h_uname[ UNAMELEN ] ; /* corresponding name */
  38. };
  39.  
  40. /* critical system info */
  41.  
  42. struct info
  43. {
  44.      struct proc   *i_proc0;               /* address of process table */
  45.      int            i_nproc;               /* length of process table */
  46.      int            i_sproc;               /* size of process table */
  47.      int            i_ecmx;                /* max physical memory address*/
  48.      struct hashtab i_hnames[MAXUSERS];    /* hash table for usernames */
  49. };
  50.  
  51. /* for reading process upages from kernel memory */
  52.  
  53. union userstate
  54. {
  55.      struct user     u_us ;
  56.      char            u_pg[ UPAGES ][ NBPG ] ;
  57. };
  58.  
  59. /* summary info for processes with positive cpu utilization */
  60.  
  61. struct procdata
  62. {
  63.      struct proc    *proc;         /* proc structure */
  64.      long            pctcpu;       /* cpu usage */
  65.      int             pr_cmd;       /* command string index */
  66. };
  67.