home *** CD-ROM | disk | FTP | other *** search
- From: robert@olsen.UUCP (Robert Ward)
- Newsgroups: alt.sources
- Subject: SPS for SunOS4.1 and DEC 3100's - Shar 1 of 3
- Message-ID: <199@frey.UUCP>
- Date: 19 Nov 90 15:41:53 GMT
-
-
- #!/bin/sh
- #
- # This is a shar (shell archive) file.
- # In order to extract the contents of this archive, remove everything
- # above the "#!/bin/sh" line. Then execute the remaining file with
- # /bin/sh. The following file(s) will be extracted:
- # BUG-libkvm
- # Makefile.4.1
- # Makefile.4.2
- # Makefile.4.3
- # Makefile.4.3+NFS
- # Makefile.dec3100
- # Makefile.sun.2.0
- # Makefile.sun.3.0
- # Makefile.sun.3.2
- # Makefile.sun.4.0
- # Makefile.sun.4.0+386i
- # Makefile.sun.4.1
- # Makefile.sun4.3.2
- # Makefile.ultrix.2.0
- # Makefile.ultrix.3.0
- # README
- # RELEASENOTES
- #
- #
- # This archive was generated on Tue Sep 11 15:55:19 MET DST 1990
- #
- #
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if [ -f 'BUG-libkvm' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "BUG-libkvm"
- exit 2
- fi
- echo x - BUG-libkvm
- sed -e 's/^X//' > BUG-libkvm << '---END-OF-BUG-libkvm---'
- XThere is a bug in kvm_getcmd(3) which occurs when the arguments for a command
- Xcontain an '=', or if an '=' in the environment is removed. In user space,
- Xcommand arguments are laid out like this:
- X
- Xa r g 0 '\0' a r g 1 '\0' ... e n v 1 = e n v '\0' e n v 2 = e n v ...
- X
- XThe only way to tell where the arguments end and the environment begins is to
- Xlook for arguments which contain '=', or environment strings which don't. Most
- Xprograms used to use the first approach. The libkvm library uses the latter,
- Xand gets it wrong if it sees a '=' in any strings before the last string
- Xwhich doesn't have one. The korn shell nulls out some '=' in it's environment,
- Xand if you have it, it's the most noticable tickler of this bug. But even if
- Xyou don't, you can tickle it with "vi a=b c".
- X
- XHere's the fix. You could probably patch the binary to ignore the
- X"&& (argd.cnt == 0)" test, which will cause slightly incorrect results,
- Xbut ones a bit closer to the truth. Just search for "\0=" in the
- Xlibrary, and look past it a bit.
- X
- X*** /tmp/,RCSt1a01687 Wed Sep 28 01:50:36 1988
- X--- kvmgetcmd.c Mon Aug 29 23:23:43 1988
- X***************
- X*** 141,150 ****
- X if (*cp == '=')
- X eqseen++;
- X if (*cp-- == '\0') {
- X! if (eqseen && (argd.cnt == 0)) {
- X envd.cnt++;
- X envd.sp = Uvaddr(cp+2);
- X eqseen = 0;
- X } else {
- X argd.cnt++;
- X }
- X--- 141,154 ----
- X if (*cp == '=')
- X eqseen++;
- X if (*cp-- == '\0') {
- X! if (eqseen) {
- X envd.cnt++;
- X envd.sp = Uvaddr(cp+2);
- X eqseen = 0;
- X+ if (argd.cnt != 0) {
- X+ envd.cnt += argd.cnt;
- X+ argd.cnt = 0;
- X+ }
- X } else {
- X argd.cnt++;
- X }
- ---END-OF-BUG-libkvm---
- LEN=`wc -c < BUG-libkvm`
- if [ $LEN != 1656 ] ; then
- echo shar: File "BUG-libkvm" was $LEN, should have been 1656 bytes
- fi
- if [ -f 'Makefile.4.1' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.4.1"
- exit 2
- fi
- echo x - Makefile.4.1
- sed -e 's/^X//' > Makefile.4.1 << '---END-OF-Makefile.4.1---'
- X# Makefile for SPS (4.1BSD UNIX Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
- X
- XINCS = sps.h
- XLIBS = -ltermlib
- XCFLAGS = -I/usr/src/sys -DCHAOS
- X
- Xall: $(PROG)
- X.c.o:
- X cc $(CFLAGS) -c -O -R $<
- Xglobals1.o waitingfor.o:
- X cc $(CFLAGS) -c -O $<
- X
- X$(OBJS): $(INCS)
- X
- X$(PROG): $(OBJS)
- X cc -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) /bin/$(PROG)
- X /etc/chown root /bin/$(PROG)
- X chmod 4711 /bin/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.4.1---
- LEN=`wc -c < Makefile.4.1`
- if [ $LEN != 882 ] ; then
- echo shar: File "Makefile.4.1" was $LEN, should have been 882 bytes
- fi
- if [ -f 'Makefile.4.2' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.4.2"
- exit 2
- fi
- echo x - Makefile.4.2
- sed -e 's/^X//' > Makefile.4.2 << '---END-OF-Makefile.4.2---'
- X# Makefile for SPS (Vax 4.2BSD and Ultrix1.2 UNIX Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DBSD42 -I/sys
- XLIBS = -ltermlib
- XDIRINSTALL = /bin
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): $(INCS)
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.4.2---
- LEN=`wc -c < Makefile.4.2`
- if [ $LEN != 977 ] ; then
- echo shar: File "Makefile.4.2" was $LEN, should have been 977 bytes
- fi
- if [ -f 'Makefile.4.3' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.4.3"
- exit 2
- fi
- echo x - Makefile.4.3
- sed -e 's/^X//' > Makefile.4.3 << '---END-OF-Makefile.4.3---'
- X# Makefile for SPS (Vax 4.3BSD Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DBSD42 -DBSD43 -I/sys
- XLIBS = -ltermlib
- XDIRINSTALL = /bin
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): $(INCS)
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.4.3---
- LEN=`wc -c < Makefile.4.3`
- if [ $LEN != 966 ] ; then
- echo shar: File "Makefile.4.3" was $LEN, should have been 966 bytes
- fi
- if [ -f 'Makefile.4.3+NFS' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.4.3+NFS"
- exit 2
- fi
- echo x - Makefile.4.3+NFS
- sed -e 's/^X//' > Makefile.4.3+NFS << '---END-OF-Makefile.4.3+NFS---'
- X# Makefile for SPS (Vax 4.3BSD+NFS Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DBSD42 -DBSD43 -DNFS -I/sys
- XLIBS = -ltermlib
- XDIRINSTALL = /bin
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): $(INCS)
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.4.3+NFS---
- LEN=`wc -c < Makefile.4.3+NFS`
- if [ $LEN != 976 ] ; then
- echo shar: File "Makefile.4.3+NFS" was $LEN, should have been 976 bytes
- fi
- if [ -f 'Makefile.dec3100' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.dec3100"
- exit 2
- fi
- echo x - Makefile.dec3100
- sed -e 's/^X//' > Makefile.dec3100 << '---END-OF-Makefile.dec3100---'
- X# Makefile for SPS (Ultrix 2.0 UNIX Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DBSD42 -DULTRIX20 -DULTRIX30 -DVPRINTF -DDEC3100 -I/sys
- XLIBS = -ltermlib
- XDIRINSTALL = /bin
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -g -R $<
- X
- Xglobals1.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -g $<
- X
- X$(OBJS): $(INCS)
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.dec3100---
- LEN=`wc -c < Makefile.dec3100`
- if [ $LEN != 1005 ] ; then
- echo shar: File "Makefile.dec3100" was $LEN, should have been 1005 bytes
- fi
- if [ -f 'Makefile.sun.2.0' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.sun.2.0"
- exit 2
- fi
- echo x - Makefile.sun.2.0
- sed -e 's/^X//' > Makefile.sun.2.0 << '---END-OF-Makefile.sun.2.0---'
- X# Makefile for SPS (Sun-2, Sun UNIX 4.2 Release 2.x Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DSUN -DBSD42 -DNFS -DNOQUOTA -I/sys
- XLIBS = -ltermlib
- XDIRINSTALL = /bin
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): $(INCS)
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c $(LIBS)
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.sun.2.0---
- LEN=`wc -c < Makefile.sun.2.0`
- if [ $LEN != 1009 ] ; then
- echo shar: File "Makefile.sun.2.0" was $LEN, should have been 1009 bytes
- fi
- if [ -f 'Makefile.sun.3.0' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.sun.3.0"
- exit 2
- fi
- echo x - Makefile.sun.3.0
- sed -e 's/^X//' > Makefile.sun.3.0 << '---END-OF-Makefile.sun.3.0---'
- X# Makefile for SPS (Sun-2 and Sun-3, Sun UNIX 4.2 Release 3.0 Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DSUN -DBSD42 -DNFS -I/sys
- XLIBS = -ltermlib
- XDIRINSTALL = /bin
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): $(INCS)
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c $(LIBS)
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.sun.3.0---
- LEN=`wc -c < Makefile.sun.3.0`
- if [ $LEN != 1009 ] ; then
- echo shar: File "Makefile.sun.3.0" was $LEN, should have been 1009 bytes
- fi
- if [ -f 'Makefile.sun.3.2' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.sun.3.2"
- exit 2
- fi
- echo x - Makefile.sun.3.2
- sed -e 's/^X//' > Makefile.sun.3.2 << '---END-OF-Makefile.sun.3.2---'
- X# Makefile for SPS (Sun-2 and Sun-3, Sun UNIX 4.2 Release 3.x Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DSUN -DBSD42 -DNFS -DVPRINTF -I/sys
- XLIBS = -ltermlib
- XDIRINSTALL = /bin
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): $(INCS)
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c $(LIBS)
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.sun.3.2---
- LEN=`wc -c < Makefile.sun.3.2`
- if [ $LEN != 1019 ] ; then
- echo shar: File "Makefile.sun.3.2" was $LEN, should have been 1019 bytes
- fi
- if [ -f 'Makefile.sun.4.0' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.sun.4.0"
- exit 2
- fi
- echo x - Makefile.sun.4.0
- sed -e 's/^X//' > Makefile.sun.4.0 << '---END-OF-Makefile.sun.4.0---'
- X# Makefile for SPS (Sun-2, Sun-3 and Sun-4, SunOS 4.0 Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o stream.o termwidth.o ttystatus.o \
- X vmstat.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DSUN -DBSD42 -DNFS -DVPRINTF -DKVM -DSUNOS40 -Isys
- XLIBS = -ltermlib -lkvm
- XDIRINSTALL = /usr/kvm
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o stream.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): sys $(INCS)
- X
- Xsys:
- X -mkdir sys
- X -ln -s /sys/* sys
- X -ln -s /sys/sys sys/h
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c $(LIBS)
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.sun.4.0---
- LEN=`wc -c < Makefile.sun.4.0`
- if [ $LEN != 1134 ] ; then
- echo shar: File "Makefile.sun.4.0" was $LEN, should have been 1134 bytes
- fi
- if [ -f 'Makefile.sun.4.0+386i' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.sun.4.0+386i"
- exit 2
- fi
- echo x - Makefile.sun.4.0+386i
- sed -e 's/^X//' > Makefile.sun.4.0+386i << '---END-OF-Makefile.sun.4.0+386i---'
- X# Makefile for SPS (Sun-2, Sun-3 and Sun-4, SunOS 4.0 Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o stream.o termwidth.o ttystatus.o \
- X vmstat.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DSUN -DBSD42 -DNFS -DVPRINTF -DKVM -DSUNOS40 -DSUN386I -Isys
- XLIBS = -ltermlib -lkvm
- XDIRINSTALL = /usr/kvm
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o stream.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): sys $(INCS)
- X
- Xsys:
- X -mkdir sys
- X -ln -s /sys/* sys
- X -ln -s /sys/sys sys/h
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c $(LIBS)
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.sun.4.0+386i---
- LEN=`wc -c < Makefile.sun.4.0+386i`
- if [ $LEN != 1144 ] ; then
- echo shar: File "Makefile.sun.4.0+386i" was $LEN, should have been 1144 bytes
- fi
- if [ -f 'Makefile.sun.4.1' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.sun.4.1"
- exit 2
- fi
- echo x - Makefile.sun.4.1
- sed -e 's/^X//' > Makefile.sun.4.1 << '---END-OF-Makefile.sun.4.1---'
- X# Makefile for SPS (Sun-2, Sun-3 and Sun-4, SunOS 4.1 Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o stream.o termwidth.o ttystatus.o \
- X waitingfor.o
- XINCS = sps.h
- XCC = cc
- X# You'll need both "-DSUNOS40" and "-DSUNOS41" for SunOS 4.1
- XCFLAGS = -DSUN -DBSD42 -DNFS -DVPRINTF -DKVM -DSUNOS40 -DSUNOS41 -Isys
- XLIBS = -ltermlib -lkvm
- XDIRINSTALL = /usr/kvm
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o stream.o waitingfor.o filecount.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): sys $(INCS)
- X
- Xsys:
- X -mkdir sys
- X -ln -s /sys/* sys
- X -ln -s /sys/sys sys/h
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c $(LIBS)
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.sun.4.1---
- LEN=`wc -c < Makefile.sun.4.1`
- if [ $LEN != 1201 ] ; then
- echo shar: File "Makefile.sun.4.1" was $LEN, should have been 1201 bytes
- fi
- if [ -f 'Makefile.sun4.3.2' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.sun4.3.2"
- exit 2
- fi
- echo x - Makefile.sun4.3.2
- sed -e 's/^X//' > Makefile.sun4.3.2 << '---END-OF-Makefile.sun4.3.2---'
- X# Makefile for SPS (Sun-4, SunOS Sys 4-3.2 Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DSUN -DBSD42 -DNFS -DVPRINTF -Isys
- XLIBS = -ltermlib
- XDIRINSTALL = /bin
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): sys $(INCS)
- X
- Xsys:
- X -mkdir sys
- X -ln -s /sys/* sys
- X -ln -s /sys/sys sys/h
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c $(LIBS)
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.sun4.3.2---
- LEN=`wc -c < Makefile.sun4.3.2`
- if [ $LEN != 1066 ] ; then
- echo shar: File "Makefile.sun4.3.2" was $LEN, should have been 1066 bytes
- fi
- if [ -f 'Makefile.ultrix.2.0' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.ultrix.2.0"
- exit 2
- fi
- echo x - Makefile.ultrix.2.0
- sed -e 's/^X//' > Makefile.ultrix.2.0 << '---END-OF-Makefile.ultrix.2.0---'
- X# Makefile for SPS (Ultrix 2.0 UNIX Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DBSD42 -DULTRIX20 -DVPRINTF -I/sys
- XLIBS = -ltermlib
- XDIRINSTALL = /bin
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): $(INCS)
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.ultrix.2.0---
- LEN=`wc -c < Makefile.ultrix.2.0`
- if [ $LEN != 984 ] ; then
- echo shar: File "Makefile.ultrix.2.0" was $LEN, should have been 984 bytes
- fi
- if [ -f 'Makefile.ultrix.3.0' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "Makefile.ultrix.3.0"
- exit 2
- fi
- echo x - Makefile.ultrix.3.0
- sed -e 's/^X//' > Makefile.ultrix.3.0 << '---END-OF-Makefile.ultrix.3.0---'
- X# Makefile for SPS (Ultrix 2.0 UNIX Version)
- X
- XPROG = sps
- XOBJS = filecount.o findtty.o flagdecode.o flagsetup.o \
- X getcmd.o getupage.o globals1.o globals2.o hashuid.o \
- X initialise.o initsymbols.o inittty.o main.o mktree.o \
- X needed.o openfiles.o percentmem.o prcmd.o prcpu.o \
- X prheader.o printall.o printproc.o prsummary.o readstatus.o \
- X selectproc.o selecttty.o termwidth.o ttystatus.o waitingfor.o
- XINCS = sps.h
- XCC = cc
- XCFLAGS = -DBSD42 -DULTRIX20 -DULTRIX30 -DVPRINTF -I/sys
- XLIBS = -ltermlib
- XDIRINSTALL = /bin
- X
- Xall: $(PROG)
- X.c.o:
- X $(CC) $(CFLAGS) -c -O -R $<
- X
- Xglobals1.o waitingfor.o:
- X $(CC) $(CFLAGS) -c -O $<
- X
- X$(OBJS): $(INCS)
- X
- X$(PROG): $(OBJS)
- X $(CC) -o $@ $(OBJS) $(LIBS)
- X
- Xinstall: $(PROG)
- X strip $(PROG)
- X mv $(PROG) $(DIRINSTALL)/$(PROG)
- X /etc/chown root $(DIRINSTALL)/$(PROG)
- X chgrp kmem $(DIRINSTALL)/$(PROG)
- X chmod 2755 $(DIRINSTALL)/$(PROG)
- X
- Xlint:
- X lint -x -b $(CFLAGS) *.c
- Xclean:
- X rm -f $(OBJS) $(PROG)
- ---END-OF-Makefile.ultrix.3.0---
- LEN=`wc -c < Makefile.ultrix.3.0`
- if [ $LEN != 995 ] ; then
- echo shar: File "Makefile.ultrix.3.0" was $LEN, should have been 995 bytes
- fi
- if [ -f 'README' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "README"
- exit 2
- fi
- echo x - README
- sed -e 's/^X//' > README << '---END-OF-README---'
- X SPS - Show Process Status
- X ===========================
- X
- X
- XIntroduction:
- X SPS is a intended to be used as a replacement for the standard
- X ps(1) program. Its advantages over ps(1) are that it shows more
- X useful information, that the displayed information is more
- X comprehensible and that it is faster.
- X
- X
- X SPS is currently implemented for the following operating systems and
- X architectures. The corresponding Makefiles are also shown here:
- X
- X Makefile.4.1 Standard 4.1bsd for Vax
- X Makefile.4.2 Standard 4.2bsd, Ultrix 1.x for Vax
- X Makefile.4.3 Standard 4.3bsd (or 4.3-tahoe) for Vax
- X Makefile.4.3+NFS 4.3bsd+NFS from Wisconsin (Mt. Xinu?, others?)
- X Makefile.dec3100 DECStation 3100 + Ultrix 3.0 (incomplete)
- X Makefile.sun.2.0 Sun 4.2 UNIX Release 2.0 - 2.2 for Sun-2
- X Makefile.sun.3.0 Sun 4.2 UNIX Release 3.0 for Sun-2, Sun-3
- X Makefile.sun.3.2 Sun 4.2 UNIX Release 3.2 for Sun-2, Sun-3
- X Makefile.sun.4.0 SunOS 4.0 for Sun-2, Sun-3, Sun-4
- X Makefile.sun.4.0+386i SunOS 4.0 for Sun 386i
- X Makefile.sun.4.1 SunOS 4.1 for Sun-2, Sun-3, Sun-4
- X Makefile.sun4.3.2 SunOS Sys 4-3.2 for Sun-4
- X Makefile.ultrix.2.0 DEC Ultrix 2.0 - 2.2
- X Makefile.ultrix.3.0 DEC Ultrix 3.0
- X
- X (I also have a somewhat ancient implementation for V7 on a PDP-11 as well
- X as Unisoft Version 1.3 on a MC68000 if anyone is interested).
- X
- X
- XWhat SPS does:
- X SPS displays wait channels symbolically, rather than as hexadecimal
- X addresses. (If you wish to teach SPS about a new sort of device,
- X you must add an entry in the symbol table (globals2.c) as well as
- X increasing the size of that table (NWAITSTATE in sps.h)).
- X
- X SPS sorts processes before listing them, the order reflecting the
- X relationship of the processes. A child process is listed
- X underneath its corresponding parent and is indented to depict the
- X exact relationship. SPS also indicates setuid processes.
- X
- X SPS displays such values as the resident and virtual sizes of
- X system processes. It accepts a whole range of options to control
- X the output. By default, SPS lists information about one's own
- X processes. Other options instruct it to be verbose (the "v"
- X option), to list all the command arguments of a process (the "w"
- X option) or to list the environment strings of that process (the "e"
- X option). Similarly, there are options to control which processes
- X are to be displayed. The "a" option tells it to describe all
- X processes and the "b" option tells it to describe "busy" processes;
- X the latter is useful if you wish to find out what is loading your
- X system. There are also options to select the output according to
- X user, controlling tty or process number.
- X
- X SPS keeps its information in an information file; by default, this
- X is /tmp/.spsinfo. This means that it can avoid having to do an
- X expensive nlist() operation each time it is run. It must be
- X reinitialised (with the "i" option) if new users are added to
- X /etc/passwd or if a new version of /vmunix is installed.
- X
- X
- XHow to build SPS:
- X 1. In order to compile and install SPS, first unbundle the four shell
- X archive files.
- X 2. Check that the define statements in sps.h are large enough for
- X your system. In particular, you may need to increase MAXTTYS
- X to reflect the number of tty devices in /dev. The parameter
- X MAXUSERS defines the maximum number of users defined in the
- X password file (or through the Yellow Pages). Because the
- X user-ids are held in an internal hash table, this should
- X probably be at least double the number of actual users.
- X 3. Choose an appropriate Makefile from the table above and compile
- X the source files. For example:
- X % make -f Makefile.sun.3.2
- X 4. Try running SPS. First, a suitable information file must be
- X initialised. It should then be able to display information
- X concerning running processes on your system:
- X # Initialise SPS. Ignore any error messages at this stage.
- X % sps i
- X # Instruct SPS to list all active processes in verbose format.
- X % sps va
- X 5. If this all works, install SPS with the appropriate Makefile
- X and reinitialise it:
- X % make -f Makefile.sun.3.2 install
- X % sps -i
- X
- X
- XBug reports:
- X Send all bug reports, fixes, comments and suggestions to Robert Ward at -
- X
- X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- X J. Robert Ward,
- X Olsen & Associates, Seefeldstrasse 233, CH-8008 Zuerich, Switzerland
- X
- XTel.: +41 1 552224 Fax: +41 1 552282 Telex: 816656
- XEmail: robert@olsen.uu.ch Uucp: uunet!chx400!olsen!robert
- XX.400: s=robert/ou=olsen/o=uucp/p=switch/a=arcom/c=ch
- X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ---END-OF-README---
- LEN=`wc -c < README`
- if [ $LEN != 4769 ] ; then
- echo shar: File "README" was $LEN, should have been 4769 bytes
- fi
- if [ -f 'RELEASENOTES' -a "${1}" != "-c" ] ; then
- echo shar: Won\'t overwrite existing file "RELEASENOTES"
- exit 2
- fi
- echo x - RELEASENOTES
- sed -e 's/^X//' > RELEASENOTES << '---END-OF-RELEASENOTES---'
- X NEW RELEASE OF SPS
- X =====================
- X
- X
- XThe files in this directory represent a major new release of the SPS
- Xprogram. One or two minor bugs have been corrected but, more
- Ximportantly, SPS has now been ported to run under the SunOS 4.0, 4.1 and
- XUltrix 2.x and 3.x operating systems.
- X
- X
- XGratitude and heart-felt thanks for these achievments should be
- Xdirected to Rob Lehman (and others?) at CUCCA, Charlie Kim
- X<cck@cunixc.cc.columbia.edu> at CUCCA and, in particular, to Alexander
- XDupuy <dupuy@ncs.columbia.edu> at the Columbia C.S. Dept. Rob Lehman
- Xadded the Ultrix 2.x support. Charlie Kim and Alexander Dupuy
- Ximplemented the SunOS 4.0 support and Alexander added support for the
- XNFS additions as well as incorporating general improvements to the code.
- XSakari Jalovaara <sja@sirius.hut.fi> at the Helsinki University of Technology
- XComputing Centre added the support for SunOS4.1.
- X
- X
- XThis release of SPS includes support for all(?) systems previously
- Xsupported, although it has not been tested under 4.1 or 4.2bsd, or Sun 4.2
- XUNIX Release 2.x. New systems supported include Ultrix 2.x and SunOS 4.0
- Xand SunOS 4.1. The support for Sun 2.x and 3.x releases has been
- Ximproved. Support for the DEC 3100 has been included, as yet incomplete.
- X
- XMinor fixes include:
- X One additional option [-c], identical to the ps(1) -c option,
- X has been added.
- X The code to warn if the passwd file is older than the info file
- X has been ifdef'ed out since this caused more grief than
- X benefit. The old code may be reactivated by a -DWARNPASSWD
- X compiler flag.
- X Under SunOS, a status of itty?? indicates a process that is waiting
- X to read or write to an iconified window.
- X
- X
- XFor SunOS 4.x users:
- X One additional file is included in this distribution, BUG-libkvm,
- X containing a (source-only, sorry) patch to fix a bug in the libkvm
- X library where the command arguments for the ksh (or "vi a=b c", for
- X that matter) are returned incorrectly buy kvm_getcmd(3).
- X
- XFor DecStation 3100 users:
- X The code that mimics the virtual to physical address translation is
- X incomplete. Upage information is accessed correctly but not the
- X command line arguments. If anyone knows how to make this code work,
- X please contact me.
- X
- X
- XBuilding and installing SPS works much like it did before, only now there are
- Xeven more Makefiles to choose from:
- X Makefile.4.1 Standard 4.1bsd for Vax
- X Makefile.4.2 Standard 4.2bsd, Ultrix 1.x for Vax
- X Makefile.4.3 Standard 4.3bsd (or 4.3-tahoe) for Vax
- X Makefile.4.3+NFS 4.3bsd+NFS from Wisconsin (Mt. Xinu?, others?)
- X Makefile.dec3100 DECStation 3100 + Ultrix 3.0 (incomplete)
- X Makefile.sun.2.0 Sun 4.2 UNIX Release 2.0 - 2.2 for Sun-2
- X Makefile.sun.3.0 Sun 4.2 UNIX Release 3.0 for Sun-2, Sun-3
- X Makefile.sun.3.2 Sun 4.2 UNIX Release 3.2 for Sun-2, Sun-3
- X Makefile.sun.4.0 SunOS 4.0 for Sun-2, Sun-3, Sun-4
- X Makefile.sun.4.0+386i SunOS 4.0 for Sun 386i
- X Makefile.sun.4.1 SunOS 4.1 for Sun-2, Sun-3, Sun-4
- X Makefile.sun4.3.2 SunOS Sys 4-3.2 for Sun-4
- X Makefile.ultrix.2.0 DEC Ultrix 2.0 - 2.2
- X Makefile.ultrix.3.0 DEC Ultrix 3.0
- X
- X
- X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- X J. Robert Ward,
- X Olsen & Associates, Seefeldstrasse 233, CH-8008 Zuerich, Switzerland
- X
- XTel.: +41 1 552224 Fax: +41 1 552282 Telex: 816656
- XEmail: robert@olsen.uu.ch Uucp: uunet!chx400!olsen!robert
- XX.400: s=robert/ou=olsen/o=uucp/p=switch/a=arcom/c=ch
- X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ---END-OF-RELEASENOTES---
- LEN=`wc -c < RELEASENOTES`
- if [ $LEN != 3510 ] ; then
- echo shar: File "RELEASENOTES" was $LEN, should have been 3510 bytes
- fi
- exit 0
-