*** /old/src/local/Makefile	Mon Jul  2 12:18:52 1990
--- /usr/src/local/Makefile	Fri Jul 12 06:02:45 1991
***************
*** 10,16 ****
  # C programs that live in the current directory and do not need
  # explicit make lines.
  #
! STD= none
  
  # C programs that live in the current directory and need explicit make lines.
  #
--- 10,16 ----
  # C programs that live in the current directory and do not need
  # explicit make lines.
  #
! STD= trace decompr16
  
  # C programs that live in the current directory and need explicit make lines.
  #
***************
*** 32,42 ****
  
  # Files listed in ${NSTD} have explicit make lines given below.
  
! install:
  	-for i in ${SUBDIR}; do \
  		(cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install); done
  	-for i in ${STD} ${NSTD}; do \
  		(install $$i ${DESTDIR}/usr/local/$$i); done
  	-for i in ${SHELL}; do \
  		(install -c -m 755 $$i.sh ${DESTDIR}/usr/local/$$i); done
  
--- 32,44 ----
  
  # Files listed in ${NSTD} have explicit make lines given below.
  
! install: ${SUBDIR} ${STD} ${NSTD}
  	-for i in ${SUBDIR}; do \
  		(cd $$i; make ${MFLAGS} DESTDIR=${DESTDIR} install); done
  	-for i in ${STD} ${NSTD}; do \
  		(install $$i ${DESTDIR}/usr/local/$$i); done
+ 	-chmod 2755 ${DESTDIR}/usr/local/trace
+ 	-chgrp kmem ${DESTDIR}/usr/local/trace
  	-for i in ${SHELL}; do \
  		(install -c -m 755 $$i.sh ${DESTDIR}/usr/local/$$i); done
  
*** /old/src/man/man4/dh.4	Thu Jan 28 11:56:23 1988
--- /usr/src/man/man4/dh.4	Thu Jul 23 20:29:11 1992
***************
*** 2,8 ****
  .\" All rights reserved.  The Berkeley software License Agreement
  .\" specifies the terms and conditions for redistribution.
  .\"
! .\"	@(#)dh.4	6.2 (Berkeley) 1/28/88
  .\"
  .TH DH 4 "January 28, 1988"
  .UC 2
--- 2,8 ----
  .\" All rights reserved.  The Berkeley software License Agreement
  .\" specifies the terms and conditions for redistribution.
  .\"
! .\"	@(#)dh.4	6.3 (Berkeley) 7/23/92
  .\"
  .TH DH 4 "January 28, 1988"
  .UC 2
***************
*** 26,32 ****
  	raw: 3
  minor device encoding:
  	bits 0017 specify line on DH unit
! 	bits 0160 specify DH unit
  	bit  0200 specifies non-blocking open (``CD always on'')
  .fi
  .ft R
--- 26,33 ----
  	raw: 3
  minor device encoding:
  	bits 0017 specify line on DH unit
! 	bits 0060 specify DH unit
! 	bit  0100 unused
  	bit  0200 specifies non-blocking open (``CD always on'')
  .fi
  .ft R
***************
*** 63,69 ****
  the driver polls for input 30 times per second.
  .SH FILES
  .ta \w'/dev/MAKEDEV.local  'u
! /dev/tty[h-o][0-9a-f]
  .br
  /dev/ttyd[0-9a-f]
  .br
--- 64,70 ----
  the driver polls for input 30 times per second.
  .SH FILES
  .ta \w'/dev/MAKEDEV.local  'u
! /dev/tty[h-k][0-9a-f]
  .br
  /dev/ttyd[0-9a-f]
  .br
*** /old/src/man/man8/autoconfig.8	Sat Jan 24 07:53:42 1987
--- /usr/src/man/man8/autoconfig.8	Sat Nov 30 08:41:52 1991
***************
*** 2,15 ****
  .\" All rights reserved.  The Berkeley software License Agreement
  .\" specifies the terms and conditions for redistribution.
  .\"
! .\"	@(#)autoconfig.8	2.4 (Berkeley) 1/24/87
  .\"
! .TH AUTOCONFIG 8 "January 24, 1987"
  .UC 2
  .SH NAME
  autoconfig \- configure the running system to the hardware
  .SH SYNOPSIS
! .B autoconfig [ \-i ifile ] [ \-n nfile ] [ \-k kfile ] [ \-v ] [ \-c ]
  .SH DESCRIPTION
  .PP
  .I Autoconfig
--- 2,15 ----
  .\" All rights reserved.  The Berkeley software License Agreement
  .\" specifies the terms and conditions for redistribution.
  .\"
! .\"	@(#)autoconfig.8	2.5 (Berkeley) 11/30/91
  .\"
! .TH AUTOCONFIG 8 "November 30, 1991"
  .UC 2
  .SH NAME
  autoconfig \- configure the running system to the hardware
  .SH SYNOPSIS
! .B "autoconfig [\-i ifile] [\-n nfile] [\-k kfile] [\-v] [\-c]"
  .SH DESCRIPTION
  .PP
  .I Autoconfig
***************
*** 23,30 ****
  .I /etc/dtab
  for a list of devices which may be on the system.
  It first verifies that the kernel has an attach routine
! for each device (and therefore has a device handler),
! and that either the kernel
  has a probe routine.
  It then checks each of these devices to see if it is present,
  and if it is,
--- 23,30 ----
  .I /etc/dtab
  for a list of devices which may be on the system.
  It first verifies that the kernel has an attach routine
! for each device (and therefore has a device handler)
! and that the kernel
  has a probe routine.
  It then checks each of these devices to see if it is present,
  and if it is,
***************
*** 82,87 ****
--- 82,94 ----
  and vectors initialized in the kernel;
  the kernel uses a root attach entry in the block device switch
  to allow disk drivers to do any probes necessary before autoconfiguration.
+ .PP
+ Must be run only by
+ .IR init (8).
+ There is a flag set in the kernel that autoconfig has already run, running
+ autoconfig a second time results in the error:
+ .TP
+ "namelist doesn't match running kernel."
  .SH FILES
  .ta 2i
  /etc/dtab	device table
*** /old/src/man/man8/newfs.8	Mon Aug 22 18:26:38 1988
--- /usr/src/man/man8/newfs.8	Sat Dec 28 22:27:33 1991
***************
*** 2,10 ****
  .\" All rights reserved.  The Berkeley software License Agreement
  .\" specifies the terms and conditions for redistribution.
  .\"
! .\"	@(#)newfs.8	6.3 (Berkeley) 5/21/86
  .\"
! .TH NEWFS 8 "May 21, 1986"
  .UC 5
  .SH NAME
  newfs \- construct a new file system
--- 2,10 ----
  .\" All rights reserved.  The Berkeley software License Agreement
  .\" specifies the terms and conditions for redistribution.
  .\"
! .\"	@(#)newfs.8	7.0 (Berkeley) 12/28/91
  .\"
! .TH NEWFS 8 "December 28, 1991"
  .UC 5
  .SH NAME
  newfs \- construct a new file system
***************
*** 14,25 ****
  .B \-N
  ]
  [
  .B \-b
  ]
  [
  .B \-B bootblock
  ]
! .B special disk-type cpu-type
  .SH DESCRIPTION
  .I Newfs
  is a ``friendly'' front-end to the
--- 14,28 ----
  .B \-N
  ]
  [
+ .B \-m free-gap
+ ]
+ [
  .B \-b
  ]
  [
  .B \-B bootblock
  ]
! .B special disk-type
  .SH DESCRIPTION
  .I Newfs
  is a ``friendly'' front-end to the
***************
*** 34,39 ****
--- 37,43 ----
  parameters to use in calling
  .IR mkfs ,
  then build the file system by forking \fImkfs\fP.
+ .PP
  The
  .I \-N
  option causes the file system parameters to be printed out
***************
*** 40,46 ****
  without actually creating the file system.
  .PP
  The
! .IR \-b and \-B
  options specify that a primary block zero bootstrap should be installed in
  block zero of
  .IR special .
--- 44,70 ----
  without actually creating the file system.
  .PP
  The
! .I \-m
! option allows the specification of the block interleaving of the free list
! (the
! .I m
! parameter of 
! .IR mkfs ).
! If not specified or outside the range 0 thru 31 then 
! .I m
! is given a value of 2.
! The 
! .I n
! parameter to 
! .I mkfs
! is calcuated by
! .I newfs
! to be 1 cylinder in size.
! .PP
! The
! .IR \-b 
! and
! .IR \-B
  options specify that a primary block zero bootstrap should be installed in
  block zero of
  .IR special .
***************
*** 51,56 ****
--- 75,81 ----
  .I newfs
  will attempt to use a default boot block (defined in
  .IR /etc/disktab ).
+ .PP
  The
  .I \-B
  option allows one to specify the file to read the boot block from
***************
*** 59,67 ****
  .PP
  	\fBdd if=\fIbootblock\fB of=\fIspecial\fB bs=512 count=1 conv=sync\fR
  .PP
- \fINewfs\fP without arguments will print a list of the disk and cpu
- types that it is familiar with.
- .PP
  .SH FILES
  /etc/disktab	for disk geometry and file system partition information 
  .br
--- 84,89 ----
***************
*** 69,83 ****
  .br
  /mdec/*	block zero bootstraps
  .SH "SEE ALSO"
! disktab(5), fs(5), diskpart(8), fsck(8), format(8), mkfs(8), tunefs(8)
  .SH BUGS
- Should figure out the disk and cpu types without the user's help.
- .PP
- The standard 4.3BSD C libarary disktab structure, as declared in
- \fI/usr/include/disktab.h\fP, was not sufficient to convey the
- information the PDP-11 needs, such as the relationship between the cpu
- type and the M/N values.  Therefore, the relevant values were
- extracted from the \fI/etc/disktab\fP file and hardwired into the
- \fInewfs\fP program.  If you have an unknown disk or cpu type, you
- may want to read through \fI/etc/disktab\fP and \fInewfs\fP to find
- a similar disk or cpu.
--- 91,95 ----
  .br
  /mdec/*	block zero bootstraps
  .SH "SEE ALSO"
! disktab(5), fs(5), diskpart(8), fsck(8), format(8), mkfs(8)
  .SH BUGS
*** /old/src/new/shortc/shortc.c	Tue Sep  6 16:47:45 1988
--- /usr/src/new/shortc/shortc.c	Sun Apr 19 09:56:21 1992
***************
*** 15,22 ****
--- 15,24 ----
   * Hacked by m.d. marquez to allow pipe into stdin and add -s (sed) option.
   */
  
+ #if	!defined(lint) && !defined(pdp11)
  static char rcsid[] =
      "$Header: shortc.c,v 1.2 88/09/06 01:30:58 bin Exp Locker: bin $";
+ #endif
  
  #include <stdio.h>
  #include <ctype.h>
***************
*** 24,30 ****
  
  #define SYMLEN  7           /* symbols must be unique within ... chars */
  #define MAXLEN  128         /* need a limit for tokenizing */
! #define HASHSIZ 2048        /* power of 2; not an upper limit */
  
  typedef struct Symbol symbol;
  struct Symbol {
--- 26,32 ----
  
  #define SYMLEN  7           /* symbols must be unique within ... chars */
  #define MAXLEN  128         /* need a limit for tokenizing */
! #define HASHSIZ 512        /* power of 2; not an upper limit */
  
  typedef struct Symbol symbol;
  struct Symbol {
***************
*** 53,62 ****
  int	read_file = 0;	    /* flag if read file arguments */
  
  symbol  *lookup();
! char    *token(), *truncname();
  char    *myalloc();
  
  extern  char *malloc();
  
  /*
   * entry point
--- 55,65 ----
  int	read_file = 0;	    /* flag if read file arguments */
  
  symbol  *lookup();
! char    *token(), *truncname(), *curarg = "stdin";
  char    *myalloc();
  
  extern  char *malloc();
+ extern	int  errno;
  
  /*
   * entry point
***************
*** 65,70 ****
--- 68,77 ----
  register argc;
  register char **argv;
  {
+ 	char	obuf[BUFSIZ];
+ 
+ 	setbuf(stdout, obuf);
+ 
  	while (--argc > 0)
  	    doarg(*++argv);
  
***************
*** 81,86 ****
--- 88,95 ----
  doarg(arg)
  char *arg;
  {
+ 	char	ibuf[BUFSIZ];
+ 
  	if (*arg == '-') {
  	    arg++;
  	    if (isdigit(*arg))
***************
*** 97,106 ****
  	}
  
  	if (freopen(arg, "r", stdin) == NULL) {
! 	    perror(arg);
  	    return;
  	}
  
  	process();
  
  	read_file++;
--- 106,117 ----
  	}
  
  	if (freopen(arg, "r", stdin) == NULL) {
! 	    fprintf(stderr, "freopen(%s) err: %d\n", errno);
  	    return;
  	}
+ 	setbuf(stdin, ibuf);
  
+ 	curarg = arg;
  	process();
  
  	read_file++;
***************
*** 328,334 ****
  	register char *p;
  
  	if (!(p = malloc((unsigned)n))) {
! 	    fprintf(stderr, "Out of space\n");
  	    exit(1);
  	}
  	return p;
--- 339,345 ----
  	register char *p;
  
  	if (!(p = malloc((unsigned)n))) {
! 	    fprintf(stderr, "Out of space in %s\n", curarg);
  	    exit(1);
  	}
  	return p;
*** /old/src/sys/GENERIC/Make.pdp	Sun Jul  1 00:22:23 1990
--- /usr/src/sys/GENERIC/Make.pdp	Sat Jul 11 23:05:54 1992
***************
*** 32,43 ****
  	${M}/mch_click.s ${M}/mch_copy.s ${M}/mch_csv.s ${M}/mch_dump.s \
  	${M}/mch_dzpdma.s ${M}/mch_fpsim.s ${M}/mch_KScall.s \
  	${M}/mch_profile.s ${M}/mch_start.s ${M}/mch_trap.s \
! 	${M}/mch_vars.s ${M}/mch_xxx.s ${M}/scb.s
  SOBJS=	libc_bcmp.o libc_bcopy.o libc_bzero.o libc_ffs.o libc_insque.o \
  	libc_ldiv.o libc_lmul.o libc_lrem.o libc_remque.o libc_strlen.o \
  	libc_udiv.o mch_backup.o mch_click.o mch_copy.o mch_csv.o \
  	mch_dump.o mch_dzpdma.o mch_fpsim.o mch_KScall.o mch_profile.o \
! 	mch_start.o mch_trap.o mch_vars.o mch_xxx.o scb.o
  
  .c.o:
  	${CC} ${CFLAGS} -S $*.c
--- 32,43 ----
  	${M}/mch_click.s ${M}/mch_copy.s ${M}/mch_csv.s ${M}/mch_dump.s \
  	${M}/mch_dzpdma.s ${M}/mch_fpsim.s ${M}/mch_KScall.s \
  	${M}/mch_profile.s ${M}/mch_start.s ${M}/mch_trap.s \
! 	${M}/mch_vars.s ${M}/mch_xxx.s ${M}/scb.s ${M}/toy.s
  SOBJS=	libc_bcmp.o libc_bcopy.o libc_bzero.o libc_ffs.o libc_insque.o \
  	libc_ldiv.o libc_lmul.o libc_lrem.o libc_remque.o libc_strlen.o \
  	libc_udiv.o mch_backup.o mch_click.o mch_copy.o mch_csv.o \
  	mch_dump.o mch_dzpdma.o mch_fpsim.o mch_KScall.o mch_profile.o \
! 	mch_start.o mch_trap.o mch_vars.o mch_xxx.o scb.o toy.o
  
  .c.o:
  	${CC} ${CFLAGS} -S $*.c
*** /old/src/sys/GENERIC/Make.pdpuba	Sun Jul  1 00:22:23 1990
--- /usr/src/sys/GENERIC/Make.pdpuba	Sun Dec 22 16:16:21 1991
***************
*** 14,23 ****
  U=	../pdpuba
  VPATH=	../pdpuba
  
! CFILES=	${U}/br.c ${U}/dh.c ${U}/dn.c ${U}/dhu.c ${U}/dkbad.c ${U}/dr.c \
! 	${U}/dz.c ${U}/hk.c ${U}/ht.c ${U}/lp.c ${U}/ra.c ${U}/rk.c \
  	${U}/rl.c ${U}/rx.c ${U}/si.c ${U}/tm.c ${U}/tmscp.c ${U}/ts.c ${U}/xp.c
! OBJS=	br.o dh.o dhu.o dkbad.o dn.o dr.o dz.o hk.o ht.o lp.o ra.o rk.o \
  	rl.o rx.o si.o tm.o tmscp.o ts.o xp.o dn.o
  
  .c.o:
--- 14,23 ----
  U=	../pdpuba
  VPATH=	../pdpuba
  
! CFILES=	${U}/br.c ${U}/dh.c ${U}/dn.c ${U}/dhu.c ${U}/dhv.c ${U}/dkbad.c \
! 	${U}/dr.c ${U}/dz.c ${U}/hk.c ${U}/ht.c ${U}/lp.c ${U}/ra.c ${U}/rk.c \
  	${U}/rl.c ${U}/rx.c ${U}/si.c ${U}/tm.c ${U}/tmscp.c ${U}/ts.c ${U}/xp.c
! OBJS=	br.o dh.o dhu.o dhv.o dkbad.o dn.o dr.o dz.o hk.o ht.o lp.o ra.o rk.o \
  	rl.o rx.o si.o tm.o tmscp.o ts.o xp.o dn.o
  
  .c.o:
*** /old/src/sys/GENERIC/Makefile	Sun Nov 11 14:50:22 1990
--- /usr/src/sys/GENERIC/Makefile	Sat Jul 11 23:08:55 1992
***************
*** 45,64 ****
  	mch_dump.o mch_dzpdma.o mch_fpsim.o mch_profile.o mch_start.o \
  	mch_trap.o mch_vars.o mch_xxx.o conf.o ioconf.o boot.o
  
! BASE=	br.o dh.o dhu.o dkbad.o dr.o dz.o hk.o init_sysent.o kern_clock.o \
  	kern_descrip.o kern_mman.o kern_proc.o kern_sig.o kern_subr.o \
! 	kern_synch.o lp.o ram.o rk.o rl.o rx.o si.o \
  	subr_rmap.o subr_xxx.o sys_inode.o sys_pipe.o trap.o tty.o \
  	tty_conf.o tty_subr.o tty_tb.o tty_tty.o ufs_alloc.o ufs_bio.o \
  	ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_namei.o \
! 	ufs_subr.o vm_proc.o vm_sched.o vm_swap.o vm_text.o xp.o
  OV1=	sys_generic.o ufs_syscalls.o mem.o
  OV2=	kern_acct.o kern_exec.o kern_exit.o kern_fork.o kern_resource.o
! OV3=	clock.o init_main.o kern_pdp.o kern_rtp.o kern_time.o \
! 	kern_xxx.o quota_sys.o subr_prf.o sys_process.o \
! 	syscalls.o ufs_mount.o subr_log.o vm_swp.o
! OV4=	tty_pty.o quota_kern.o quota_subr.o quota_ufs.o machdep2.o \
! 	cons.o ra.o kern_prot.o machdep.o
  OV5=	ht.o tm.o ts.o
  OV6=	tmscp.o
  
--- 45,64 ----
  	mch_dump.o mch_dzpdma.o mch_fpsim.o mch_profile.o mch_start.o \
  	mch_trap.o mch_vars.o mch_xxx.o conf.o ioconf.o boot.o
  
! BASE=	br.o dh.o dhu.o dhv.o dkbad.o dr.o dz.o init_sysent.o kern_clock.o \
  	kern_descrip.o kern_mman.o kern_proc.o kern_sig.o kern_subr.o \
! 	kern_synch.o lp.o machdep.o ra.o ram.o rk.o rl.o rx.o si.o \
  	subr_rmap.o subr_xxx.o sys_inode.o sys_pipe.o trap.o tty.o \
  	tty_conf.o tty_subr.o tty_tb.o tty_tty.o ufs_alloc.o ufs_bio.o \
  	ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_namei.o \
! 	ufs_subr.o vm_sched.o vm_swp.o vm_text.o xp.o
  OV1=	sys_generic.o ufs_syscalls.o mem.o
  OV2=	kern_acct.o kern_exec.o kern_exit.o kern_fork.o kern_resource.o
! OV3=	clock.o cons.o kern_pdp.o kern_rtp.o kern_time.o \
! 	kern_xxx.o machdep2.o quota_sys.o subr_prf.o sys_process.o \
! 	syscalls.o ufs_mount.o
! OV4=	hk.o init_main.o kern_prot.o tty_pty.o quota_kern.o quota_subr.o \
! 	quota_ufs.o subr_log.o vm_swap.o vm_proc.o toy.o
  OV5=	ht.o tm.o ts.o
  OV6=	tmscp.o
  
*** /old/src/sys/GENERIC/SPLFIX	Sun Jul  1 00:22:22 1990
--- /usr/src/sys/GENERIC/SPLFIX	Wed Jan  8 09:52:22 1992
***************
*** 1,32 ****
  g/jsr	pc,__spl0/s//clrb 177776/
! g/jsr	pc,__spl1/s//movb $40, 177776/
  g/jsr	pc,__splsof/s//movb $40, 177776/
- g/jsr	pc,__spl2/s//movb $100, 177776/
  g/jsr	pc,__splnet/s//movb $100, 177776/
- g/jsr	pc,__spl3/s//movb $140, 177776/
- g/jsr	pc,__spl4/s//movb $200, 177776/
- g/jsr	pc,__spl5/s//movb $240, 177776/
  g/jsr	pc,__splimp/s//movb $240, 177776/
  g/jsr	pc,__splbio/s//movb $240, 177776/
  g/jsr	pc,__spltty/s//movb $240, 177776/
- g/jsr	pc,__spl6/s//movb $300, 177776/
  g/jsr	pc,__splclo/s//movb $300, 177776/
- g/jsr	pc,__spl7/s//movb $340, 177776/
  g/jsr	pc,__splhig/s//movb $340, 177776/
  g/jsr	pc,_spl0/s//movb 177776,r0;clrb 177776/
! g/jsr	pc,_spl1/s//movb 177776,r0;movb $40, 177776/
  g/jsr	pc,_splsoft/s//movb 177776,r0;movb $40, 177776/
- g/jsr	pc,_spl2/s//movb 177776,r0;movb $100, 177776/
  g/jsr	pc,_splnet/s//movb 177776,r0;movb $100, 177776/
- g/jsr	pc,_spl3/s//movb 177776,r0;movb $140, 177776/
- g/jsr	pc,_spl4/s//movb 177776,r0;movb $200, 177776/
- g/jsr	pc,_spl5/s//movb 177776,r0;movb $240, 177776/
  g/jsr	pc,_splbio/s//movb 177776,r0;movb $240, 177776/
  g/jsr	pc,_splimp/s//movb 177776,r0;movb $240, 177776/
  g/jsr	pc,_spltty/s//movb 177776,r0;movb $240, 177776/
- g/jsr	pc,_spl6/s//movb 177776,r0;movb $300, 177776/
  g/jsr	pc,_splcloc/s//movb 177776,r0;movb $300, 177776/
- g/jsr	pc,_spl7/s//movb 177776,r0;movb $340,177776/
  g/jsr	pc,_splhigh/s//movb 177776,r0;movb $340, 177776/
  w
  q
--- 1,20 ----
  g/jsr	pc,__spl0/s//clrb 177776/
! g/jsr	pc,__spl\([1-7]\)/s//movb $40*\1, 177776/
  g/jsr	pc,__splsof/s//movb $40, 177776/
  g/jsr	pc,__splnet/s//movb $100, 177776/
  g/jsr	pc,__splimp/s//movb $240, 177776/
  g/jsr	pc,__splbio/s//movb $240, 177776/
  g/jsr	pc,__spltty/s//movb $240, 177776/
  g/jsr	pc,__splclo/s//movb $300, 177776/
  g/jsr	pc,__splhig/s//movb $340, 177776/
  g/jsr	pc,_spl0/s//movb 177776,r0;clrb 177776/
! g/jsr	pc,_spl\([1-7]\)/s//movb 177776,r0;movb $40*\1, 177776/
  g/jsr	pc,_splsoft/s//movb 177776,r0;movb $40, 177776/
  g/jsr	pc,_splnet/s//movb 177776,r0;movb $100, 177776/
  g/jsr	pc,_splbio/s//movb 177776,r0;movb $240, 177776/
  g/jsr	pc,_splimp/s//movb 177776,r0;movb $240, 177776/
  g/jsr	pc,_spltty/s//movb 177776,r0;movb $240, 177776/
  g/jsr	pc,_splcloc/s//movb 177776,r0;movb $300, 177776/
  g/jsr	pc,_splhigh/s//movb 177776,r0;movb $340, 177776/
  w
  q
*** /old/src/sys/GENERIC/localopts.h	Tue Jul 17 15:56:26 1990
--- /usr/src/sys/GENERIC/localopts.h	Sun May 19 01:10:43 1991
***************
*** 16,22 ****
  #define MAXMEM	(300*16)
  #define LINEHZ	60
  #ifdef KERNEL
! #define NBUF	20
  #define	Q22	1
  #define UNIBUS_MAP 1
  #define VIRUS_VFORK 1
--- 16,22 ----
  #define MAXMEM	(300*16)
  #define LINEHZ	60
  #ifdef KERNEL
! #define NBUF	32
  #define	Q22	1
  #define UNIBUS_MAP 1
  #define VIRUS_VFORK 1
*** /old/src/sys/OTHERS/README	Thu Aug 27 22:52:10 1987
--- /usr/src/sys/OTHERS/README	Sat Nov 30 11:38:26 1991
***************
*** 9,19 ****
  STEP #1:
  --------
  	Install the source code in the proper directory.  A pdp MASSBUS
! driver would go in pdpmba, a pdp UNIBUS driver would go in pdpuba.  We'll
! use the versatec driver as an example.  Since it's a UNIBUS driver, we'll
! move vp.c into pdpuba.  If you're installing a driver from the OTHERS
! directory, or you've got a local work of art that you wish to use, there
! are a few things you should check so that it will work correctly with 2.10BSD:
  
  	Note, in the following examples, "XX" is the two or three letter
  	designation that device drivers under UNIX get assigned, e.g. "vp"
--- 9,21 ----
  STEP #1:
  --------
  	Install the source code in the proper directory.  A pdp MASSBUS
! driver would go in pdpmba, a pdp UNIBUS driver would go in pdpuba.  In
! reality (the present system) all drivers are in pdpuba regardless of
! being MASSBUS or UNIBUS.  We'll use the versatec driver as an example.  
! Since it's a UNIBUS driver, we'll move vp.c into pdpuba.  If you're installing 
! a driver from the OTHERS directory, or you've got a local work of art that 
! you wish to use, there are a few things you should check so that it will 
! work correctly with 2.11BSD:
  
  	Note, in the following examples, "XX" is the two or three letter
  	designation that device drivers under UNIX get assigned, e.g. "vp"
***************
*** 23,39 ****
  
  	b) If your XXread and XXwrite routines use physio(), make sure that
  	   you're passing the correct number and types of arguments.
- 	   Between 2.9BSD and 2.10BSD a new argument was added to the
- 	   physio call that specifies whether WORD or BYTE transfers are
- 	   being attempted.
  
  	c) The XXread and XXwrite routines should return 0, if successful,
  	   and the correct errno value (for later assignment to u.u_error)
! 	   if they fail.  It's cool to just return the result of physio(),
! 	   it does the right thing.
  
! 	d) The XXioctl routine has changed a *lot* between 2.9 and 2.10:
  
  		+ XXioctl() now takes four arguments, (dev, cmd, data,
  		  flags) a device (dev_t), the ioctl command (u_int), a
  		  buffer address (caddr_t), and some flags (int).  Of real
--- 25,52 ----
  
  	b) If your XXread and XXwrite routines use physio(), make sure that
  	   you're passing the correct number and types of arguments.
  
+ 	   Between the initial release of 2.11BSD and the present the 
+ 	   WORD/BYTE argument (added between 2.9 and 2.10) was removed.
+ 	   If it is important to enforce alignment this can be done in
+ 	   either the strategy routine or in XXread/XXwrite before calling
+ 	   physio().
+ 
  	c) The XXread and XXwrite routines should return 0, if successful,
  	   and the correct errno value (for later assignment to u.u_error)
! 	   if they fail.  All the XXread and XXwrite routines which only
! 	   called physio() have been removed (the common routines rawread()
! 	   and rawwrite() replacing XXread() and XXwrite() in the cdevsw[]
! 	   table).
  
! 	   Note:  If XXread() and/or XXwrite() only calls physio() then
! 	   the XXread and XXwrite entry points can be removed and the common
! 	   routines 'rawread', 'rawwrite' used in the cdevsw[] table.  See
! 	   the entries for any of the disc or tape drivers for examples of
! 	   this.
  
+ 	d) The XXioctl routine has changed a *lot* between 2.9 and 2.11:
+ 
  		+ XXioctl() now takes four arguments, (dev, cmd, data,
  		  flags) a device (dev_t), the ioctl command (u_int), a
  		  buffer address (caddr_t), and some flags (int).  Of real
***************
*** 62,74 ****
  	   on "UNIBUS_MAP".  You should ifdef *real* 22-bit QBUS addressing
  	   with the define "Q22" (see the comments in conf/GENERIC and
  	   pdp/machdep2.c.)  Buffer cache buffers have to be mapped in to
! 	   be accessed in 2.9BSD and 2.10BSD.  I don't really understand
  	   how it worked before then, but some of the drivers in the OTHERS
  	   directory predate that, so be paranoid.
  
  	f) The device addresses and partition table sizes should be
  	   included in the device driver itself, not in ioconf.c (which
! 	   doesn't exist anymore.)  See the drivers in pdpuba for examples.
  
  	g) You should have an XXopen() routine that validates the unit
  	   number for the read, write, and ioctl system calls.  See the
--- 75,88 ----
  	   on "UNIBUS_MAP".  You should ifdef *real* 22-bit QBUS addressing
  	   with the define "Q22" (see the comments in conf/GENERIC and
  	   pdp/machdep2.c.)  Buffer cache buffers have to be mapped in to
! 	   be accessed in 2.9BSD and 2.11BSD.  I don't really understand
  	   how it worked before then, but some of the drivers in the OTHERS
  	   directory predate that, so be paranoid.
  
  	f) The device addresses and partition table sizes should be
  	   included in the device driver itself, not in ioconf.c (which
! 	   is used for an entirely different purpose now.)  See the drivers 
! 	   in pdpuba for examples.
  
  	g) You should have an XXopen() routine that validates the unit
  	   number for the read, write, and ioctl system calls.  See the
***************
*** 100,116 ****
  --------
  	Write some code that will attempt to "probe" the routine.  See any
  of the other device drivers for examples.  Install this code in the
! same directory, only call it "XXauto.c", where XX is the prefix for the
! driver.  In our example, we'll install it in "pdpuba/vpauto.c".  This is
! the code that is used by the auto configuration program to get to the
! device.  By convention, this routine must be named "XXprobe()".  It's also
! useful to check and see if any of the probe routines already written would
! be identical to your probe routine.  For example, the "xpauto.c" file
! contains the probe routine for several flavors of disk drive.  If you're
! porting a 4BSD driver, it probably already has a probe routine in it which
! may be close to what you want.  Also, in any case, rip the XXprobe stuff
! out of the main file ... it is never used by the kernel and it just wastes
! text space.
  
  STEP #3:
  --------
--- 114,135 ----
  --------
  	Write some code that will attempt to "probe" the routine.  See any
  of the other device drivers for examples.  Install this code in the
! "sys/autoconfig" directory, only call it "XXauto.c", where XX is
! the prefix for the driver.  In our example, we'll install it as
! "sys/autoconfig/vpauto.c".  This is the code that is used by the auto 
! configuration program to get to the device.  By convention, this routine 
! must be named "XXprobe()".  It's also useful to check and see if any of 
! the probe routines already written would be identical to your probe routine.
! For example, the "xpauto.c" file contains the probe routine for several 
! flavors of disk drive.  If you're porting a 4BSD driver, it probably 
! already has a probe routine in it which may be close to what you want.  
! Also, in any case, rip the XXprobe stuff out of the main file ... it is never 
! used by the kernel and it just wastes text space.
! 	Previously the XXauto.c files were kept in the same directory as
! the device drivers themselves.  This lead to the misleading assumption that 
! '/etc/autoconfig' would automatically be rebuilt if the probe routine in
! the XXauto.c files in sys/pdpuba were modified.  To clarify matters the 
! XXauto.c files were moved into the sys/autoconfig directory.
  
  STEP #3:
  --------
***************
*** 211,221 ****
--- 230,242 ----
  #include "vp.h"
  #if NVP > 0
  int	vpopen(), vpclose(), vpwrite(), vpioctl();
+ #define	vpstrategy	nulldev
  #else
  #define	vpopen		nodev
  #define	vpclose		nodev
  #define	vpwrite		nodev
  #define	vpioctl		nodev
+ #define	vpstrategy	nodev
  #endif	NVP
  
  to the character device definition section of conf.c, and
***************
*** 222,231 ****
  
  /* vp = 20 */
  	vpopen,		vpclose,	nodev,		vpwrite,
! 	vpioctl,	nulldev,	0,		SELECT(nodev)
  
  to the character device switch table (cdevsw[]).
  
  	Note, in our example, we've been assuming that NVP is the define that
  governs whether or not the device is included, as well as how many of them
  we have.  For example, "#define NVP 5" in the file "vp.h" means that we
--- 243,274 ----
  
  /* vp = 20 */
  	vpopen,		vpclose,	nodev,		vpwrite,
! 	vpioctl,	nulldev,	0,		SELECT(nodev),
! 	vpstrategy,
  
  to the character device switch table (cdevsw[]).
  
+ The strategy member of the cdevsw[] structure is new since 2.11BSD was 
+ released.  Since VP does not have a strategy routine a dummy definition 
+ is created.  Other devices (such as disc and tape drivers) do have
+ strategy routines and their entries look like:
+ 
+ #include "tms.h"
+ #if NTMS > 0
+ int	tmscpopen(), tmscpclose(), tmscpstrategy(), tmscpioctl();
+ #else
+ #define	tmscpopen	nodev
+ #define	tmscpclose	nodev
+ #define	tmscpioctl	nodev
+ #define	tmscpstrategy	nodev
+ #endif
+ 
+ /* tmscp = 23 (tu81/tk50) */
+ 	tmscpopen,	tmscpclose,	rawread,	rawwrite,
+ 	tmscpioctl,	nulldev,	0,		seltrue,
+ 	tmscpstrategy,
+ };
+ 
  	Note, in our example, we've been assuming that NVP is the define that
  governs whether or not the device is included, as well as how many of them
  we have.  For example, "#define NVP 5" in the file "vp.h" means that we
***************
*** 310,317 ****
  2.9BSD and you'd probably be better off rewriting it from scratch or buying
  an IBM PC" ...
  
! Keith Bostic & Casey Leedom
  
  
  ORIGINAL README:
  ----------------
--- 353,368 ----
  2.9BSD and you'd probably be better off rewriting it from scratch or buying
  an IBM PC" ...
  
! 	Several of the drivers in the OTHERS directory should eventually
! be removed because working versions exist in the pdpuba directory.  These
! are the ts-11 (OTHERS/ts - pdpuba/ts.c), rp04/rp06 (OTHERS/rp04.06 - 
! pdpuba/xp.c), TMSCP (OTHERS/tk - pdpuba/tmscp.c), RX01&RX02 (OTHERS/rx01, 
! OTHERS/rx02 - pdpuba/rx.c), MSCP (OTHERS/ra - pdpuba/ra.c), TU-16 (OTHERS/ht -
! pdpuba/ht.c), rm02/rm03/rm05 (OTHERS/rm02.03.05 - pdpuba/xp.c), Fuji-160
! (OTHERS/fuji_160 - pdpuba/xp.c), dm11 (OTHERS/dm11 - pdpuba/dh.c).
  
+ 
+ Keith Bostic & Casey Leedom (revised by Steven Schultz)
  
  ORIGINAL README:
  ----------------
*** /old/src/sys/OTHERS/bad144/xp.c	Sat Dec 31 14:25:17 1988
--- /usr/src/sys/OTHERS/bad144/xp.c	Sun Sep 22 09:23:17 1991
***************
*** 225,231 ****
  #endif
  
  struct	buf	xptab;
- struct	buf	rxpbuf[NXPD];
  struct	buf	xputab[NXPD];
  
  #ifdef BADSECT
--- 225,230 ----
***************
*** 841,858 ****
  			(as & (1 << xp_drive[unit].xp_unit)))
  			xpustart(unit);
  	xpstart(xc);
- }
- 
- xpread(dev)
- 	dev_t	dev;
- {
- 	return (physio(xpstrategy, &rxpbuf[xpunit(dev)], dev, B_READ, WORD));
- }
- 
- xpwrite(dev)
- 	dev_t	dev;
- {
- 	return (physio(xpstrategy, &rxpbuf[xpunit(dev)], dev, B_WRITE, WORD));
  }
  
  xpioctl(dev, cmd, data, flag)
--- 840,845 ----
*** /old/src/sys/OTHERS/dv/dv.c	Wed Apr 11 11:10:34 1990
--- /usr/src/sys/OTHERS/dv/dv.c	Sun Sep 22 08:55:53 1991
***************
*** 70,76 ****
  int wcwcnt[4];
  
  struct	buf	dvtab;
- struct	buf	rdvbuf;
  
  char	dvsecmap[] {
  	0, 4, 8,
--- 70,75 ----
***************
*** 407,440 ****
  	iodone(bp);
  	if(n==0)
  		dvstart();
- }
- dvread(dev, uio)
- 	dev_t dev;
- 	struct uio *uio;
- {
- 
- 	if(dvphys(dev))
- 	physio(dvstrategy, &rdvbuf, dev, B_READ, WORD, uio);
- }
- 
- dvwrite(dev, uio)
- 	dev_t dev;
- 	struct uio *uio;
- {
- 
- 	if(dvphys(dev))
- 	physio(dvstrategy, &rdvbuf, dev, B_WRITE, WORD, uio);
- }
- 
- dvphys(dev, uio)
- {
- 	long c;
- 
- 	c = uio->uio_offset >> 9;
- 	c += (uio->uio_resid+511) / 512;
- 	if(c > dv_sizes[minor(dev) & 07].nblocks) {
- 		u.u_error = ENXIO;
- 		return(0);
- 	}
- 	return(1);
  }
--- 406,409 ----
*** /old/src/sys/OTHERS/dvhp/dvhp.c	Wed May  7 17:37:34 1986
--- /usr/src/sys/OTHERS/dvhp/dvhp.c	Sun Sep 22 08:49:12 1991
***************
*** 39,49 ****
  };
  
  struct	buf	dvhptab;
- #ifdef	UCB_DBUFS
- struct	buf	rdvhpbuf[NHP];
- #else
- struct	buf	rdvhpbuf;
- #endif
  struct	buf	dvhputab[NDVHP];
  
  #ifdef	INTRLVE
--- 39,44 ----
***************
*** 384,419 ****
  		if (as & (1 << unit))
  			dvhpustart(unit);
  	dvhpstart();
- }
- 
- dvhpread(dev)
- dev_t	dev;
- {
- #ifdef	UCB_DBUFS
- 	register int unit = (minor(dev) >> 3) & 07;
- 
- 	if (unit >= NHP)
- 		u.u_error = ENXIO;
- 	else
- 		physio(dvhpstrategy, &rdvhpbuf[unit], dev, B_READ, WORD);
- #else
- 	physio(dvhpstrategy, &rdvhpbuf, dev, B_READ, WORD);
- #endif
- }
- 
- dvhpwrite(dev)
- dev_t	dev;
- {
- #ifdef	UCB_DBUFS
- 	register int unit = (minor(dev) >> 3) & 07;
- 
- 	if (unit >= NHP)
- 		u.u_error = ENXIO;
- 	else
- 		physio(dvhpstrategy, &rdvhpbuf[unit], dev, B_WRITE, WORD);
- #else
- 	physio(dvhpstrategy, &rdvhpbuf, dev, B_WRITE, WORD);
- #endif
  }
  
  #ifdef	UCB_ECC
--- 379,384 ----
*** /old/src/sys/OTHERS/fuji_160/dev/xp.c	Wed May 27 22:12:16 1987
--- /usr/src/sys/OTHERS/fuji_160/dev/xp.c	Sun Sep 22 09:15:05 1991
***************
*** 55,61 ****
  struct	xp_controller xp_controller[NXP_CONTROLLER];
  
  struct	buf	xptab;
- struct	buf	rxpbuf[NXP];
  struct	buf	xputab[NXP];
  
  #ifdef	INTRLVE
--- 55,60 ----
***************
*** 246,252 ****
  		mapalloc(bp);
  #endif	UNIBUS_MAP
  #ifdef EXT_LSI
! 	if(bp == &rxpbuf)
  		if(Sofub_alloc(bp) == 0)
  			return;
  #endif
--- 245,251 ----
  		mapalloc(bp);
  #endif	UNIBUS_MAP
  #ifdef EXT_LSI
! 	if(bp->b_flags & B_PHYS)
  		if(Sofub_alloc(bp) == 0)
  			return;
  #endif
***************
*** 553,559 ****
  			xd->xp_cc = bp->b_cylin;
  			bp->b_resid = - (xpaddr->hpwc << 1);
  #ifdef EXT_LSI
! 			if(bp == &rxpbuf)
  				Sofub_relse(bp,bp->b_bcount);
  #endif
  			iodone(bp);
--- 552,558 ----
  			xd->xp_cc = bp->b_cylin;
  			bp->b_resid = - (xpaddr->hpwc << 1);
  #ifdef EXT_LSI
! 			if(bp->b_flags & B_PHYS)
  				Sofub_relse(bp,bp->b_bcount);
  #endif
  			iodone(bp);
***************
*** 574,592 ****
  				xpustart(unit);
  	xpstart(xc);
  }
- 
- xpread(dev)
- dev_t	dev;
- {
- 	physio(xpstrategy, &rxpbuf[(minor(dev) >> 3) & 07], dev, B_READ);
- }
- 
- xpwrite(dev)
- dev_t	dev;
- {
- 	physio(xpstrategy, &rxpbuf[(minor(dev) >> 3) & 07], dev, B_WRITE);
- }
- 
  
  #ifdef	UCB_ECC
  #define	exadr(x,y)	(((long)(x) << 16) | (unsigned)(y))
--- 573,578 ----
*** /old/src/sys/OTHERS/ht/ht.c	Wed Apr 11 13:46:32 1990
--- /usr/src/sys/OTHERS/ht/ht.c	Sun Sep 22 09:11:41 1991
***************
*** 25,31 ****
  #endif
  
  struct	buf	httab;
- struct	buf	rhtbuf;
  struct	buf	chtbuf;
  
  struct	htdevice	*HTADDR;
--- 25,30 ----
***************
*** 179,184 ****
--- 178,191 ----
  	register daddr_t *p;
  	register struct tu_softc *sc = &tu_softc[TUUNIT(bp->b_dev)];
  
+ /* This is almost certainly not in the right place and more work needs
+  * to be done in htstart().  See /sys/pdpuba/ht.c
+ */
+ 	if (bp->b_flags & B_PHYS) {
+ 		sc->sc_blkno = sc->sc_nxrec = dbtofsb(bp->b_blkno);
+ 		sc->sc_nxrec++;
+ 	}
+ 
  	if(bp != &chtbuf) {
  #ifdef	UNIBUS_MAP
  		if ((httab.b_flags & B_RH70) == 0)
***************
*** 321,327 ****
  		err = HTADDR->hter;
  		if (HTADDR->htcs2 & HTCS2_ERR || (err & HTER_HARD))
  			state = 0;
! 		if (bp == &rhtbuf)
  			err &= ~HTER_FCE;
  		if ((bp->b_flags & B_READ) && (HTADDR->htfs & HTFS_PES))
  			err &= ~(HTER_CSITM | HTER_CORCRC);
--- 328,334 ----
  		err = HTADDR->hter;
  		if (HTADDR->htcs2 & HTCS2_ERR || (err & HTER_HARD))
  			state = 0;
! 		if (bp->b_flags & B_PHYS)
  			err &= ~HTER_FCE;
  		if ((bp->b_flags & B_READ) && (HTADDR->htfs & HTFS_PES))
  			err &= ~(HTER_CSITM | HTER_CORCRC);
***************
*** 416,447 ****
  	HTADDR->htcs2 = ocs2;
  	HTADDR->httc = omttc;
  	HTADDR->htcs1 = HT_DCLR | HT_GO;
- }
- 
- htread(dev)
- register dev_t	dev;
- {
- 	htphys(dev);
- 	physio(htstrategy, &rhtbuf, dev, B_READ);
- }
- 
- htwrite(dev)
- register dev_t	dev;
- {
- 	htphys(dev);
- 	physio(htstrategy, &rhtbuf, dev, B_WRITE);
- }
- 
- htphys(dev, uio)
- dev_t dev;
- struct uio *uio;
- {
- 	daddr_t a;
- 	register struct tu_softc *sc = &tu_softc[TUUNIT(dev)];
- 
- 	a = dbtofsb(uio->uio_offset >> PGSHIFT);
- 	sc->sc_blkno = a;
- 	sc->sc_nxrec = a + 1;
  }
  
  #ifdef	HT_IOCTL
--- 423,428 ----
*** /old/src/sys/OTHERS/ml11/ml.c	Wed May  7 17:37:54 1986
--- /usr/src/sys/OTHERS/ml11/ml.c	Sun Sep 22 08:51:45 1991
***************
*** 39,45 ****
  short	ml_sizes[NML];
  
  struct	buf	mltab;
- struct	buf	rmlbuf;
  
  void
  mlprobe()
--- 39,44 ----
***************
*** 212,228 ****
  	bp->b_resid = 0;
  	iodone(bp);
  	mlstart();
- }
- 
- mlread(dev)
- dev_t	dev;
- {
- 	physio(mlstrategy, &rmlbuf, dev, B_READ, WORD);
- }
- 
- mlwrite(dev)
- dev_t	dev;
- {
- 	physio(mlstrategy, &rmlbuf, dev, B_WRITE, WORD);
  }
  #endif	NML
--- 211,215 ----
*** /old/src/sys/OTHERS/rf11/rf.c	Wed May  7 17:23:37 1986
--- /usr/src/sys/OTHERS/rf11/rf.c	Sun Sep 22 08:51:22 1991
***************
*** 16,22 ****
  struct	rfdevice *RFADDR = (struct rfdevice *)0177460;
  
  struct	buf	rftab;
- struct	buf	rrfbuf;
  
  rfattach(addr, unit)
  struct rfdevice *addr;
--- 16,21 ----
***************
*** 126,142 ****
  	bp->b_resid = -(rfaddr->rfwc << 1);
  	iodone(bp);
  	rfstart();
- }
- 
- rfread(dev)
- dev_t	dev;
- {
- 	physio(rfstrategy, &rrfbuf, dev, B_READ, WORD);
- }
- 
- rfwrite(dev)
- dev_t	dev;
- {
- 	physio(rfstrategy, &rrfbuf, dev, B_WRITE, WORD);
  }
  #endif	NRF
--- 125,129 ----
*** /old/src/sys/OTHERS/rm02.03.05/rm.c	Thu Feb 19 12:11:48 1987
--- /usr/src/sys/OTHERS/rm02.03.05/rm.c	Sun Sep 22 09:12:15 1991
***************
*** 74,80 ****
  #define	RM_RDIST	6
  
  struct	buf	rmtab;
- struct	buf	rrmbuf[NRM];
  #if	NRM > 1
  struct	buf	rmutab[NRM];
  #endif
--- 74,79 ----
***************
*** 525,550 ****
  			rmustart(unit);
  #endif
  	rmstart();
- }
- 
- rmread(dev)
- 	register dev_t dev;
- {
- 	register int unit = (minor(dev) >> 3) & 07;
- 
- 	if (unit >= NRM)
- 		return (ENXIO);
- 	return (physio(rmstrategy, &rrmbuf[unit], dev, B_READ, WORD));
- }
- 
- rmwrite(dev)
- 	register dev_t dev;
- {
- 	register int unit = (minor(dev) >> 3) & 07;
- 
- 	if (unit >= NRM)
- 		return (ENXIO);
- 	return (physio(rmstrategy, &rrmbuf[unit], dev, B_WRITE, WORD));
  }
  
  #define	exadr(x,y)	(((long)(x) << 16) | (unsigned)(y))
--- 524,529 ----
*** /old/src/sys/OTHERS/rp03/rp.c	Wed May  7 17:25:41 1986
--- /usr/src/sys/OTHERS/rp03/rp.c	Sun Sep 22 08:50:08 1991
***************
*** 60,70 ****
  };
  
  struct	buf	rptab;
- #ifdef	UCB_DBUFS
- struct	buf	rrpbuf[NRP];
- #else
- struct	buf	rrpbuf;
- #endif
  
  #define	RP_NSECT	10
  #define	RP_NTRAC	20
--- 60,65 ----
***************
*** 207,242 ****
  	bp->b_resid = -(rpaddr->rpwc << 1);
  	iodone(bp);
  	rpstart();
- }
- 
- rpread(dev)
- dev_t	dev;
- {
- #ifdef	UCB_DBUFS
- 	register int unit = (minor(dev) >> 3) & 07;
- 
- 	if (unit >= NRP)
- 		u.u_error = ENXIO;
- 	else
- 		physio(rpstrategy, &rrpbuf[unit], dev, B_READ, WORD);
- #else
- 	physio(rpstrategy, &rrpbuf, dev, B_READ, WORD);
- #endif
- }
- 
- rpwrite(dev)
- dev_t	dev;
- {
- #ifdef	UCB_DBUFS
- 	register int unit = (minor(dev) >> 3) & 07;
- 
- 	if (unit >= NRP)
- 		u.u_error = ENXIO;
- 	else
- 		physio(rpstrategy, &rrpbuf[unit], dev, B_WRITE, WORD);
- #else
- 	physio(rpstrategy, &rrpbuf, dev, B_WRITE, WORD);
- #endif
  }
  #endif NRP
  #endif AUTOCONFIG
--- 202,207 ----
*** /old/src/sys/OTHERS/rp04.06/hp.c	Thu Feb 19 12:11:12 1987
--- /usr/src/sys/OTHERS/rp04.06/hp.c	Sun Sep 22 09:14:06 1991
***************
*** 77,83 ****
  };
  
  struct	buf	hptab;
- struct	buf	rhpbuf[NHP];
  struct	buf	hputab[NHP];
  #ifdef BADSECT
  struct	dkbad	hpbad[NHP];
--- 77,82 ----
***************
*** 484,509 ****
  		if (as & (1 << unit))
  			hpustart(unit);
  	hpstart();
- }
- 
- hpread(dev)
- 	register dev_t dev;
- {
- 	register int unit = (minor(dev) >> 3) & 07;
- 
- 	if (unit >= NHP)
- 		return (ENXIO);
- 	return (physio(hpstrategy, &rhpbuf[unit], dev, B_READ, WORD));
- }
- 
- hpwrite(dev)
- 	register dev_t dev;
- {
- 	register int unit = (minor(dev) >> 3) & 07;
- 
- 	if (unit >= NHP)
- 		return (ENXIO);
- 	return (physio(hpstrategy, &rhpbuf[unit], dev, B_WRITE, WORD));
  }
  
  #define	exadr(x,y)	(((long)(x) << 16) | (unsigned)(y))
--- 483,488 ----
*** /old/src/sys/OTHERS/rp04.06/hp_conf.c	Thu Feb 26 15:26:55 1987
--- /usr/src/sys/OTHERS/rp04.06/hp_conf.c	Sun Sep 22 09:28:32 1991
***************
*** 1,6 ****
  #include "hp.h"
  #if NHP > 0
! int	hpstrategy(), hpread(), hpwrite(), hproot();
  extern	struct	buf	hptab;
  #define	hpopen		nulldev
  #define	hpclose		nulldev
--- 1,6 ----
  #include "hp.h"
  #if NHP > 0
! int	hpstrategy(), hproot();
  extern	struct	buf	hptab;
  #define	hpopen		nulldev
  #define	hpclose		nulldev
***************
*** 10,17 ****
  #define	hpclose		nodev
  #define	hproot		nulldev
  #define	hpstrategy	nodev
- #define	hpread		nodev
- #define	hpwrite		nodev
  #define	_hptab		((struct buf *) NULL)
  #endif	NHP
  
--- 10,15 ----
***************
*** 19,22 ****
  	hpopen,		hpclose,	hpstrategy,	hproot,		_hptab,
  /* hp = 14 */
  	hpopen,		hpclose,	hpread,		hpwrite,
! 	nodev,		nulldev,	0,		SELECT(seltrue)
--- 17,21 ----
  	hpopen,		hpclose,	hpstrategy,	hproot,		_hptab,
  /* hp = 14 */
  	hpopen,		hpclose,	hpread,		hpwrite,
! 	nodev,		nulldev,	0,		SELECT(seltrue),
! 	hpstrategy,
