/* mba.c 4.10 83/07/01 */
#include "../machine/pte.h"
#include "../vaxmba/mbareg.h"
#include "../vaxmba/hpreg.h"
struct mba_regs
*mba
= mbamba(io
->i_unit
);
struct mba_drv
*drv
= mbadrv(io
->i_unit
);
register struct pte
*pte
= mba
->mba_map
;
o
= (int)io
->i_ma
& PGOFSET
;
npf
= btoc(io
->i_cc
+ o
);
*(int *)pte
++ = v
++ | PG_V
;
mba
->mba_bcr
= -io
->i_cc
;
drv
->mbd_of
|= HPOF_SSEI
;
switch (io
->i_flgs
& F_TYPEMASK
) {
case F_RDDATA
: /* standard read */
drv
->mbd_cs1
= MB_RCOM
|MB_GO
;
case F_WRDATA
: /* standard write */
drv
->mbd_cs1
= MB_WCOM
|MB_GO
;
/* the following commands apply to disks only */
drv
->mbd_cs1
= HP_RHDR
|HP_GO
;
drv
->mbd_cs1
= HP_WHDR
|HP_GO
;
drv
->mbd_cs1
= HP_WCDATA
|HP_GO
;
drv
->mbd_cs1
= HP_WCHDR
|HP_GO
;
if ((drv
->mbd_dt
& MBDT_TAP
) == 0)
io
->i_flgs
&= ~F_TYPEMASK
;
struct mba_regs
*mba
= mbamba(io
->i_unit
);
struct mba_drv
*drv
= mbadrv(io
->i_unit
);
while (mba
->mba_sr
& MBSR_DTBUSY
)
register struct mba_regs
*mba
= mbaddr
[mbanum
];
if (mbaact
& (1<<mbanum
))