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