1 /* $OpenBSD: bltone.c,v 1.4 2005/08/27 14:00:57 kettenis Exp $ */
3 * Written by Mark Kettenis <kettenis@openbsd.org> 2004 Public Domain
12 typedef unsigned FbStip;
13 typedef unsigned FbBits;
16 extern void fbBltOne (FbStip *, FbStride, int, FbBits *, FbStride, int, int,
17 int, int, FbBits, FbBits, FbBits, FbBits);
19 FbStip mask[] = { 0x77ff7700, 0x11335577 };
30 pagesize = getpagesize();
32 src = mmap(NULL, 2 * pagesize, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0);
35 dst = mmap(NULL, 2 * pagesize, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0);
38 mprotect((char *)src + pagesize, pagesize, PROT_NONE);
39 src = (FbStip *)((char *)src + (pagesize - sizeof mask));
40 memcpy (src, mask, sizeof mask);
42 for (dstBpp = 8; dstBpp <= 32; dstBpp += 8)
43 for (dstX = 0; dstX < 64; dstX += 8)
44 for (srcX = 0; srcX < 32; srcX++)
45 fbBltOne(src, 1, srcX, dst, 128, dstX, dstBpp,
46 (32 - srcX) * dstBpp, 2,
49 for (dstBpp = 8; dstBpp <= 32; dstBpp += 8)
50 for (dstX = 0; dstX < 64; dstX += 8)
51 for (srcX = 0; srcX < 32; srcX++)
52 fbBltOne(src, 1, srcX, dst, 128, dstX, dstBpp,
53 (64 - srcX) * dstBpp, 1,