- io0 = mbaloc[0] + (MBA_MAP/4);
- io1 = mbaloc[1] + (MBA_MAP/4);
- b = (int *)Sysmap + ((((int) buffers)>>9)&PG_PFNUM);
- j = NBUF * CLSIZE + ((int)buffers & 0x1ff ? 1 : 0);
- do {
- t = PG_V | (*b++ & PG_PFNUM);
- *io0++ = t;
- *io1++ = t;
- } while (--j>0);
- *io0 = 0; /* invalidate next entry */
- *io1 = 0;
- mbaboff = (int)buffers & 0x1ff;
+ mi = &mbainfo[mbanum];
+ v = btop((int)mi->mi_phys);
+ b = mi->mi_map;
+ for (i = 0; i < 8192; i += NBPG) {
+ *(int *)b++ = PG_V | PG_KW | v;
+ mtpr(TBIS, ptob(v));
+ v++;
+ }
+ mbap = mi->mi_loc;
+ mbap->mba_cr = MBAINIT;
+ mbap->mba_cr = MBAIE;
+ io = mbap->mba_map;
+ b = &Sysmap[btop(((int)buffers[0])&0x7fffffff)];
+ for (i = NBUF * CLSIZE; i > 0; i--) {
+ *(int *)io++ = PG_V | b->pg_pfnum;
+ b++;
+ }
+ *(int *)io = 0;
+ mbaact |= (1<<mbanum);