create netif directory
[unix-history] / usr / src / sys / vax / stand / mba.c
/* mba.c 4.4 82/07/15 */
#include "../h/param.h"
#include "../h/inode.h"
#include "../h/pte.h"
#include "../h/mbareg.h"
#include "../h/fs.h"
#include "../h/mtpr.h"
#include "../h/vm.h"
#include "saio.h"
#include "savax.h"
mbastart(io, func)
register struct iob *io;
int func;
{
struct mba_regs *mba = mbamba(io->i_unit);
struct mba_drv *drv = mbadrv(io->i_unit);
register struct pte *pte = mba->mba_map;
int npf;
unsigned v;
int o;
int vaddr;
v = btop(io->i_ma);
o = (int)io->i_ma & PGOFSET;
npf = btoc(io->i_cc + o);
vaddr = o;
while (--npf >= 0)
*(int *)pte++ = v++ | PG_V;
mba->mba_sr = -1;
mba->mba_bcr = -io->i_cc;
mba->mba_var = vaddr;
if (func == WRITE)
drv->mbd_cs1 = MB_WCOM | MB_GO;
else
drv->mbd_cs1 = MB_RCOM | MB_GO;
}
mbainit(mbanum)
int mbanum;
{
register struct mba_regs *mba = mbaddr[mbanum];
/* SHOULD BADADDR IT */
if (mbaact & (1<<mbanum))
return;
mba->mba_cr = MBCR_INIT;
mbaact |= 1<<mbanum;
}