|
|
1.1 ! root 1: /* uba.c 4.1 11/9/80 */ ! 2: ! 3: #include "../h/param.h" ! 4: #include "../h/inode.h" ! 5: #include "../h/pte.h" ! 6: #include "../h/uba.h" ! 7: #include "../h/vm.h" ! 8: #include "saio.h" ! 9: ! 10: ubasetup(io, bdp) ! 11: register struct iob *io; ! 12: { ! 13: register int i; ! 14: int npf; ! 15: unsigned v; ! 16: register struct pte *pte; ! 17: int o, vaddr, temp; ! 18: ! 19: v = btop(io->i_ma); ! 20: o = (int)io->i_ma & PGOFSET; ! 21: npf = btoc(io->i_cc + o) +1; ! 22: pte = &(((struct uba_regs *)PHYSUBA0)->uba_map[0]); ! 23: temp = (bdp << 21) | MRV; ! 24: if (bdp && (o & 01)) ! 25: temp |= BO; ! 26: v &= 0x1fffff; /* drop to physical addr */ ! 27: while (--npf != 0) ! 28: *(int *)pte++ = v++ | temp; ! 29: *(int *)pte++ = 0; ! 30: return ((bdp << 28) | o); ! 31: } ! 32: ! 33: ubafree(mr) ! 34: int mr; ! 35: { ! 36: register int bdp, reg, npf, a; ! 37: ! 38: bdp = (mr >> 28) & 0x0f; ! 39: if (bdp) ! 40: ((struct uba_regs *)PHYSUBA0)->uba_dpr[bdp] |= BNE; ! 41: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.