void sc_vtb_copy(sc_vtb_t *vtb1, int from, sc_vtb_t *vtb2, int to, int count) { vm_offset_t p1, p2; p1 = vtb_pointer(vtb1, from); p2 = vtb_pointer(vtb2, to); if (vtb2->vtb_type == VTB_FRAMEBUFFER) { bcopy_toio(p1, p2, count*sizeof(u_int16_t)); bcopy_toio(p1 + attr_offset(vtb1), p2 + ATTR_OFFSET_FB, count*sizeof(u_int16_t)); } else if (vtb1->vtb_type == VTB_FRAMEBUFFER) { bcopy_fromio(p1, p2, count*sizeof(u_int16_t)); bcopy_fromio(p1 + ATTR_OFFSET_FB, p2 + attr_offset(vtb2), count*sizeof(u_int16_t)); } else { bcopy((void *)p1, (void *)p2, count*sizeof(u_int16_t)); bcopy((void *)(p1 + attr_offset(vtb1)), (void *)(p2 + attr_offset(vtb2)), count*sizeof(u_int16_t)); } }
void sc_vtb_copy(sc_vtb_t *vtb1, int from, sc_vtb_t *vtb2, int to, int count) { /* XXX if both are VTB_VRAMEBUFFER... */ if (vtb2->vtb_type == VTB_FRAMEBUFFER) { bcopy_toio(vtb1->vtb_buffer + from, vtb2->vtb_buffer + to, count*sizeof(uint16_t)); } else if (vtb1->vtb_type == VTB_FRAMEBUFFER) { bcopy_fromio(vtb1->vtb_buffer + from, vtb2->vtb_buffer + to, count*sizeof(uint16_t)); } else { bcopy(vtb1->vtb_buffer + from, vtb2->vtb_buffer + to, count*sizeof(uint16_t)); } }
void sc_vtb_copy(sc_vtb_t *vtb1, int from, sc_vtb_t *vtb2, int to, int count) { #ifndef __sparc64__ /* XXX if both are VTB_VRAMEBUFFER... */ if (vtb2->vtb_type == VTB_FRAMEBUFFER) bcopy_toio(sc_vtb_pointer(vtb1, from), sc_vtb_pointer(vtb2, to), count*sizeof(u_int16_t)); else if (vtb1->vtb_type == VTB_FRAMEBUFFER) bcopy_fromio(sc_vtb_pointer(vtb1, from), sc_vtb_pointer(vtb2, to), count*sizeof(u_int16_t)); else #endif bcopy((void *)sc_vtb_pointer(vtb1, from), (void *)sc_vtb_pointer(vtb2, to), count*sizeof(u_int16_t)); }