Path: utzoo!attcan!uunet!mcsun!ukc!warwick!cudcv From: cudcv@warwick.ac.uk (Rob McMahon) Newsgroups: comp.sources.bugs Subject: Re: sps and SunOS 4.1 Message-ID: <1990Jul3.125358.3247@warwick.ac.uk> Date: 3 Jul 90 12:53:58 GMT References: <1990Jun28.035921.1537@contact.uucp> Sender: news@warwick.ac.uk (Network news) Organization: Computing Services, Warwick University, UK Lines: 112 In article <1990Jun28.035921.1537@contact.uucp> rasmus@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@uk.ac.warwick INET: cudcv@warwick.ac.uk Rob McMahon, Computing Services, Warwick University, Coventry CV4 7AL, England