home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume23 / sps2 / part03 / readstatus.c < prev    next >
C/C++ Source or Header  |  1991-01-08  |  1KB  |  48 lines

  1. # ifndef lint
  2. static char SccsId[] =  "@(#)readstatus.c    1.1\t10/1/88" ;
  3. # endif
  4.  
  5. # include       "sps.h"
  6. # ifndef SUNOS40
  7. # include       <h/text.h>
  8. # endif
  9.  
  10. /* READSTATUS - Reads the kernel memory for current processes and texts */
  11. # ifdef SUNOS40
  12. readstatus ( process )
  13.  
  14. register struct process         *process ;
  15.  
  16. # else
  17.  
  18. readstatus ( process, text )
  19.  
  20. register struct process         *process ;
  21. struct text                     *text ;
  22.  
  23. # endif
  24. {
  25.     register struct proc    *p ;
  26.     register struct proc    *p0 ;
  27.     register struct process *pr ;
  28.     int                     size ;
  29.     extern struct info      Info ;
  30.     char                    *getcore() ;
  31.  
  32. # ifndef SUNOS40
  33.     /* Read current text information */
  34.     size = Info.i_ntext * sizeof( struct text ) ;
  35.     if ( getkmem( (long)Info.i_text0, (char*)text, size ) != size )
  36.         prexit( "sps - Can't read system text table\n" ) ;
  37. # endif
  38.     /* Read current process information */
  39.     size = Info.i_nproc * sizeof( struct proc ) ;
  40.     p0 = (struct proc*)getcore( size ) ;
  41.     if ( getkmem( (long)Info.i_proc0, (char*)p0, size ) != size )
  42.         prexit( "sps - Can't read system process table\n" ) ;
  43.     /* Copy process information into our own array */
  44.     for ( p = p0, pr = process ; pr < &process[ Info.i_nproc ] ; p++, pr++ )
  45.         pr->pr_p = *p ;
  46.     free( (char*)p0 ) ;
  47. }
  48.