/boot,/mdec,/[T]MSCP (Part 9 of 22)

Steven M. Schultz sms at wlv.imsd.contel.com
Sat May 18 16:39:06 AEST 1991


Subject: Part 9 of 22 /boot,/mdec,[T]MSCP updates
Index:	/sys/<many>, /usr/src/etc/<several> 2.11BSD

Description:
Repeat-By:
Fix:
	See part 0 (the README) for the Description, the Reason and
	the instructions on how update your system.

This is part 9 of 22

The RL02 driver could not be used in the GENERIC kernel on a UNIBUS
system.

*** /usr/src/sys/pdpuba/rl.c.old	Tue Apr  3 13:26:00 1990
--- /usr/src/sys/pdpuba/rl.c	Wed Apr 24 20:51:12 1991
***************
*** 32,37 ****
--- 32,39 ----
  
  struct	rldevice *RLADDR;
  
+ static	int	q22bae = 1;
+ 
  struct	buf	rrlbuf[NRL];	/* Raw header for each drive */
  struct	buf	rlutab[NRL];	/* Seek structure for each device */
  struct	buf	rltab;
***************
*** 274,282 ****
  	rladdr->rlda = (rl.chn << 6) | rl.sn;
  	rladdr->rlba = (caddr_t)rl.rl_un.w[1];
  	rladdr->rlmp = -(rl.bpart >> 1);
! #ifdef Q22
! 	rladdr->rlbae = rl.rl_un.w[0];
! #endif
  	rladdr->rlcs = rl.com | (rl.rl_un.w[0] & 03) << 4;
  #ifdef UCB_METER
  	if (rl_dkn >= 0) {
--- 276,285 ----
  	rladdr->rlda = (rl.chn << 6) | rl.sn;
  	rladdr->rlba = (caddr_t)rl.rl_un.w[1];
  	rladdr->rlmp = -(rl.bpart >> 1);
! 	if	(q22bae == 1)
! 		q22bae = (fioword(&rladdr->rlbae) == -1 ? -1 : 0);
! 	if	(q22bae == 0)
! 		rladdr->rlbae = rl.rl_un.w[0];
  	rladdr->rlcs = rl.com | (rl.rl_un.w[0] & 03) << 4;
  #ifdef UCB_METER
  	if (rl_dkn >= 0) {
***************
*** 458,466 ****
  		} else {
  #endif
  			rladdr->rlba = loint(paddr);
! #ifdef Q22
! 			rladdr->rlbae = hiint(paddr);
! #endif
  			com |= (hiint(paddr) & 03) << 4;
  #ifdef UNIBUS_MAP
  		}
--- 461,470 ----
  		} else {
  #endif
  			rladdr->rlba = loint(paddr);
! 			if	(q22bae == 1)
! 				q22bae = (fioword(&rladdr->rlbae) == -1 ? -1:0);
! 			if	(q22bae == 0)
! 				rladdr->rlbae = hiint(paddr);
  			com |= (hiint(paddr) & 03) << 4;
  #ifdef UNIBUS_MAP
  		}



More information about the Comp.bugs.2bsd mailing list