OSDN Git Service

initial commit
[openbsd-octeon/openbsd-octeon.git] / src / regress / misc / X11 / bltone / bltone.c
1 /*      $OpenBSD: bltone.c,v 1.4 2005/08/27 14:00:57 kettenis Exp $     */
2 /*
3  *      Written by Mark Kettenis <kettenis@openbsd.org> 2004 Public Domain
4  */
5
6 #include <sys/types.h>
7 #include <sys/mman.h>
8
9 #include <assert.h>
10 #include <stddef.h>
11
12 typedef unsigned FbStip;
13 typedef unsigned FbBits;
14 typedef int FbStride;
15
16 extern void fbBltOne (FbStip *, FbStride, int, FbBits *, FbStride, int, int,
17                       int, int, FbBits, FbBits, FbBits, FbBits);
18
19 FbStip mask[] = { 0x77ff7700, 0x11335577 };
20
21 int
22 main (void)
23 {
24         int pagesize;
25         FbStip *src;
26         FbBits *dst;
27         int srcX, dstX;
28         int dstBpp;
29
30         pagesize = getpagesize();
31
32         src = mmap(NULL, 2 * pagesize, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0);
33         assert(src);
34
35         dst = mmap(NULL, 2 * pagesize, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0);
36         assert(dst);
37
38         mprotect((char *)src + pagesize, pagesize, PROT_NONE);
39         src = (FbStip *)((char *)src + (pagesize - sizeof mask));
40         memcpy (src, mask, sizeof mask);
41
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,
47                                     0, 0, 0xffffffff, 0);
48
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,
54                                     0, 0, 0xffffffff, 0);
55
56   return 0;
57 }