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