sps and SunOS 4.1

Rob McMahon cudcv at warwick.ac.uk
Tue Jul 3 22:53:58 AEST 1990


In article <1990Jun28.035921.1537 at contact.uucp> rasmus at contact.uucp (Rasmus Lerdorf) writes:
>I am still looking for a fix to sps which will allow it to run under SunOS
>4.1.

I've just done this last Friday, seems to work okay.  Define -Dsunos41 in
Makefile.sun.  I've punted with the open files printout from -d, but it should
give the correct results until more than NOFILE_IN_U (64) files have been
open.

Have fun, and please let me know what I've done wrong ... 

Rob

===================================================================
RCS file: filecount.c,v
retrieving revision 1.0
diff -c -r1.0 filecount.c
*** /tmp/,RCSt1a00614	Tue Jul  3 11:08:47 1990
--- filecount.c	Fri Jun 29 11:34:08 1990
***************
*** 9,15 ****
--- 9,20 ----
  	extern union userstate  User ;
  
  	count = 0 ;
+ #ifdef sunos41
+ 	/* too hard to do right at the moment ... */
+ 	for ( i = 0, f = User.u_us.u_ofile_arr ; i < NOFILE_IN_U ; i++ )
+ #else /*!sunos41*/
  	for ( i = 0, f = User.u_us.u_ofile ; i < NOFILE ; i++ )
+ #endif /*sunos41*/
  		if ( *f++ )
  			count++ ;
  	return ( count ) ;
===================================================================
RCS file: getcmd.c,v
retrieving revision 1.4
diff -c -r1.4 getcmd.c
*** /tmp/,RCSt1a00614	Tue Jul  3 11:08:48 1990
--- getcmd.c	Fri Jun 29 14:06:03 1990
***************
*** 28,34 ****
  	int			i;
  	extern kvm_t		*kvm_d;
  	extern struct flags     Flg ;
! 	extern struct userstate	User;
  	extern char		*getcore();
  
  	p->pr_csaved = 0 ;
--- 28,34 ----
  	int			i;
  	extern kvm_t		*kvm_d;
  	extern struct flags     Flg ;
! 	extern union userstate	User;
  	extern char		*getcore();
  
  	p->pr_csaved = 0 ;
===================================================================
RCS file: getupage.c,v
retrieving revision 1.4
diff -c -r1.4 getupage.c
*** /tmp/,RCSt1a00614	Tue Jul  3 11:08:49 1990
--- getupage.c	Fri Jun 29 11:18:18 1990
***************
*** 36,41 ****
--- 36,44 ----
  	struct user *u, *kvm_getu();
  	extern kvm_t		*kvm_d;
  	extern union userstate	User;
+ #ifdef sunos41
+ 	static struct sess Sess;
+ #endif
  
  	if ((u = kvm_getu(kvm_d, p)) == NULL)
  	    {
***************
*** 46,53 ****
  	else
  	    {
  		bcopy((char *)u, (char *)&User.u_us, sizeof(User.u_us));
- 		return(1);
  	    }
  #else !sunos4
  	register int            i ;
  	register int            ncl ;
--- 49,69 ----
  	else
  	    {
  		bcopy((char *)u, (char *)&User.u_us, sizeof(User.u_us));
  	    }
+ #ifdef sunos41
+ 	if (kvm_read(kvm_d, p->pr_p.p_sessp, (char *)&Sess, sizeof(Sess)) != sizeof(Sess))
+ 	    {
+ 		fprintf(stderr, "sps - Can't read session of process %d\n",
+ 			p->pr_p.p_pid);
+ 		return(0);
+ 	    }
+ 	else
+ 	    {
+ 		User.u_us.u_procp = &p->pr_p;
+ 		p->pr_p.p_sessp = &Sess;
+ 	    }
+ #endif /*sunos41*/
+ 	return(1);
  #else !sunos4
  	register int            i ;
  	register int            ncl ;
===================================================================
--
UUCP:   ...!mcsun!ukc!warwick!cudcv	PHONE:  +44 203 523037
JANET:  cudcv at uk.ac.warwick             INET:   cudcv at warwick.ac.uk
Rob McMahon, Computing Services, Warwick University, Coventry CV4 7AL, England



More information about the Comp.sources.bugs mailing list