Unofficial patches to sps for DEC/MIPS + Ultrix 4.x

Michel Fingerhut mf at ircam.fr
Mon Nov 26 10:01:24 AEST 1990


Here are the patches.  Thanks to Alan Rollow from Dec for his tip.

------------------------------------------------------------------------------------

diff -c /old/sps/Makefile.dec3100 sps/Makefile.dec3100
*** /old/sps/Makefile.dec3100	Sun Nov 25 23:52:57 1990
--- sps/Makefile.dec3100	Sun Nov 25 23:42:34 1990
***************
*** 9,17 ****
  		selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
  INCS    =       sps.h
  CC      =       cc
! CFLAGS  =       -DBSD42 -DULTRIX20 -DULTRIX30 -DVPRINTF -DDEC3100 -I/sys
  LIBS    =       -ltermlib
! DIRINSTALL =	/bin
  
  all:		    $(PROG)
  .c.o:
--- 9,18 ----
  		selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
  INCS    =       sps.h
  CC      =       cc
! CFLAGS  =       -DBSD42 -DULTRIX20 -DULTRIX30 -DULTRIX40 -DVPRINTF -DDEC3100 -I/sys
  LIBS    =       -ltermlib
! DIRINSTALL =	/usr/local/bin
! DIRMAN  =       /usr/local/man/man1
  
  all:		    $(PROG)
  .c.o:
***************
*** 26,36 ****
  		$(CC) -o $@ $(OBJS) $(LIBS)
  
  install:		$(PROG)
! 		strip $(PROG)
! 		mv $(PROG) $(DIRINSTALL)/$(PROG)
! 		/etc/chown root $(DIRINSTALL)/$(PROG)
! 		chgrp kmem $(DIRINSTALL)/$(PROG)
! 		chmod 2755 $(DIRINSTALL)/$(PROG)
  
  lint:
  		lint -x -b $(CFLAGS) *.c
--- 27,34 ----
  		$(CC) -o $@ $(OBJS) $(LIBS)
  
  install:		$(PROG)
! 		install -s -c -o root -g kmem -m 2755 $(PROG) $(DIRINSTALL)/$(PROG)
! 		install -c -o root -g wheel -m 644 sps.l $(DIRMAN)/sps.1
  
  lint:
  		lint -x -b $(CFLAGS) *.c
Common subdirectories: /old/sps/SCCS and sps/SCCS
diff -c /old/sps/getcmd.c sps/getcmd.c
*** /old/sps/getcmd.c	Sun Nov 25 23:52:56 1990
--- sps/getcmd.c	Wed Nov 21 18:31:52 1990
***************
*** 54,60 ****
--- 54,64 ----
  	p->pr_upag = 0 ;
  	if ( p->pr_p.p_stat == SZOMB )
  		return ( "** Exit **" ) ;
+ # ifdef ULTRIX40
+ 	if ( !(p->pr_p.p_sched & SLOAD) && Flg.flg_o )
+ # else
  	if ( !(p->pr_p.p_flag & SLOAD) && Flg.flg_o )
+ # endif
  		return ( "** Swapped out **" ) ;
  	/* Find the process' upage */
  # ifdef KVM
***************
*** 65,71 ****
--- 69,79 ----
  		return ( "** No upage **" ) ;
  	p->pr_upag = 1 ;
  	/* Is this a system process ? */
+ # ifdef ULTRIX40
+ 	if ( p->pr_p.p_type & SSYS )            
+ # else
  	if ( p->pr_p.p_flag & SSYS )            
+ # endif	
  		switch ( p->pr_p.p_pid )
  		{
  			case 0 :
***************
*** 142,148 ****
--- 150,160 ----
  	/* Look at the top of the upage to locate the command arguments.
  	   The page is loaded if the process itself is loaded and the pte
  	   contains is marked as valid. */
+ # ifdef ULTRIX40
+ 	if ( (p->pr_p.p_sched & SLOAD)
+ # else
  	if ( (p->pr_p.p_flag & SLOAD)
+ # endif
  	&& !ptetbl[0].pg_fod && ptetbl[0].pg_pfnum )
  	{       /* If the page is loaded, read the arguments from
  		   physical memory. */
***************
*** 152,158 ****
--- 164,174 ----
  	}
  	else                            
  	{       /* Otherwise the page is on the swap device */
+ # ifdef ULTRIX40
+ 		vstodb( 0, ctod( CLSIZE ), &User.u_us.u_procp->p_smap, &db, 1) ;
+ # else
  		vstodb( 0, ctod( CLSIZE ), &User.u_us.u_smap, &db, 1 ) ;
+ # endif
  #  ifdef BSD42
  		swseek( (long)dtob( db.db_base ) ) ;
  #  else
diff -c /old/sps/getupage.c sps/getupage.c
*** /old/sps/getupage.c	Sun Nov 25 23:52:57 1990
--- sps/getupage.c	Sun Nov 25 21:04:36 1990
***************
*** 40,52 ****
--- 40,67 ----
  	extern int              Flmem, Flkmem, Flswap ;
  
  	/* If the process is not loaded, look for the upage on the swap device*/
+ # ifdef ULTRIX40
+ 	if ( !(p->pr_p.p_sched & SLOAD) )
+ # else
  	if ( !(p->pr_p.p_flag & SLOAD) )
+ # endif
  	{                               
+ # ifdef ULTRIX40
+                 struct dmap l_dmap;
+ 		int ublkno;
+ 
+ 	        memseek( Flkmem, (long)p->pr_p.p_smap );
+ 	        read( Flkmem, (char*)&l_dmap, sizeof( struct dmap ));
+ 		memseek( Flkmem, l_dmap.dm_ptdaddr );
+ 		read( Flkmem, (char *)&ublkno, sizeof(int));
+ 		swseek( (long)dtob(ublkno) );
+ # else ULTRIX40
  # ifdef BSD42
  		swseek( (long)dtob( p->pr_p.p_swaddr ) ) ;
  # else BSD42
  		swseek( (long)ctob( p->pr_p.p_swaddr ) ) ;
  # endif BSD42
+ # endif ULTRIX40
  # ifdef SUN
  		if ( read( Flswap, (char*)&User.u_us, sizeof( union userstate ))
  		!= sizeof( union userstate ) )
diff -c /old/sps/needed.c sps/needed.c
*** /old/sps/needed.c	Sun Nov 25 23:52:57 1990
--- sps/needed.c	Sun Nov 25 23:38:17 1990
***************
*** 78,84 ****
--- 78,89 ----
  	uid = getuid() ;
  	for ( p = process ; p < lastp ; p++ )
  	{                               
+ # ifdef ULTRIX40
+ 		if ( !p->pr_p.p_stat 
+ 			|| p->pr_p.p_pid==0 && p->pr_p.p_stat == SIDL)
+ # else
  		if ( !p->pr_p.p_stat )
+ # endif
  			continue ;
  		/* Count processes and sizes */
  		summarise( p ) ;
***************
*** 150,156 ****
--- 155,165 ----
  # endif
  	Summary.sm_kloaded += p->pr_p.p_rssize ;
  	Summary.sm_kswapped += p->pr_p.p_swrss ;
+ # ifdef ULTRIX40
+ 	if ( p->pr_p.p_sched & SLOAD )
+ # else
  	if ( p->pr_p.p_flag & SLOAD )
+ # endif
  		Summary.sm_nloaded++ ;
  	else
  		Summary.sm_nswapped++ ;
diff -c /old/sps/percentmem.c sps/percentmem.c
*** /old/sps/percentmem.c	Sun Nov 25 23:52:57 1990
--- sps/percentmem.c	Thu Nov 22 08:31:59 1990
***************
*** 34,40 ****
--- 34,44 ----
  	fracmem = ( (double)p->pr_p.p_rssize + szptudot ) ;
  # else
  	tp = p->pr_p.p_textp ;
+ # ifdef ULTRIX40
+ 	if ( !(p->pr_p.p_sched & SLOAD) || !tp )
+ # else
  	if ( !(p->pr_p.p_flag & SLOAD) || !tp )
+ # endif
  		return ( 0.0 ) ;
  	szptudot = UPAGES + clrnd( ctopt( p->pr_p.p_dsize + p->pr_p.p_ssize ) );
  	fracmem = ( (double)p->pr_p.p_rssize + szptudot ) / CLSIZE ;
diff -c /old/sps/printproc.c sps/printproc.c
*** /old/sps/printproc.c	Sun Nov 25 23:52:57 1990
--- sps/printproc.c	Thu Nov 22 08:38:06 1990
***************
*** 138,146 ****
--- 138,158 ----
  			break ;
  	}
  	/* If the process is loaded, list the status information in capitals */
+ # ifdef ULTRIX40
+ 	printf( "%-6.6s ", p->pr_p.p_sched & SLOAD ?
+ # else
  	printf( "%-6.6s ", p->pr_p.p_flag & SLOAD ?
+ # endif
  		(capitals( chp, chbuf ), chbuf) : chp ) ;
  	/* List process flags */
+ # ifdef ULTRIX40
+ 	printf( "%c%c%c", p->pr_p.p_type & SSYS ? 'U' :
+ 		p->pr_p.p_trace & STRC ? 'T' : ' ',
+ 		p->pr_p.p_vm & SVFORK ? 'V' :
+ 		p->pr_p.p_vm & SPHYSIO ? 'I' : ' ',
+ 		p->pr_p.p_vm & SUANOM ? 'A' :
+ 		p->pr_p.p_vm & SSEQL ? 'S' : ' ' ) ;
+ # else
  	printf( "%c%c%c", p->pr_p.p_flag & SSYS ? 'U' :
  		p->pr_p.p_flag & STRC ? 'T' : ' ',
  		p->pr_p.p_flag & SVFORK ? 'V' :
***************
*** 147,152 ****
--- 159,165 ----
  		p->pr_p.p_flag & SPHYSIO ? 'I' : ' ',
  		p->pr_p.p_flag & SUANOM ? 'A' :
  		p->pr_p.p_flag & SSEQL ? 'S' : ' ' ) ;
+ # endif
  	/* List process niceness */
  	if ( p->pr_p.p_nice != NZERO )          
  		printf( "%3d ", p->pr_p.p_nice - NZERO ) ;
diff -c /old/sps/waitingfor.c sps/waitingfor.c
*** /old/sps/waitingfor.c	Sun Nov 25 23:52:57 1990
--- sps/waitingfor.c	Thu Nov 22 08:41:47 1990
***************
*** 79,85 ****
--- 79,89 ----
  		return ( "null" ) ;
  	/* Waiting for a child process, alternatively in a vfork() ? */
  	if ( INRANGE( w, Info.i_proc0, &Info.i_proc0[ Info.i_nproc ] ) )
+ # ifdef ULTRIX40
+ 		return ( p->pr_p.p_vm & SNOVM ? "vfork" : "child" ) ;
+ # else
  		return ( p->pr_p.p_flag & SNOVM ? "vfork" : "child" ) ;
+ # endif
  # ifndef SUNOS40
  	/* Waiting for a page to be brought in ? */
  	if ( INRANGE( w, Info.i_swbuf0, &Info.i_swbuf0[ Info.i_nswbuf ] ) )
-- 
Michael Fingerhut	email: mf at ircam.fr	voice: 	+33 1 42770105
IRCAM, 31 rue St Merri, 75004 Paris, France	fax: 	+33 1 42772947	



More information about the Alt.sources mailing list