/*=======================================================================*/ unsigned long dma_copy_from_user(void *to, const void *from, unsigned long n) { if(!idma_init) return __arch_copy_from_user((void *)to, (void *)from, n); dma_from_user++; DPRINTK(KERN_CRIT "dma_copy_from_user(0x%x, 0x%x, %lu): entering\n", (u32) to, (u32) from, n); return dma_copy(to, from, n, 0); }
void dma_drawimage3(int r, int c, int width, int height, const u16* image) { for (int i = 0; i < height; i++) { dma_copy(image+width*i, &videoBuffer[OFFSET(r+i, c, SCREEN_WIDTH)], width); } }