Subject: Part 9 of 22 /boot,/mdec,[T]MSCP updates Index: /sys/, /usr/src/etc/ 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 }