blob: 3c540c9ca5fd16f20c0916a6c4d11cc0baf285a3 [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001#include <errno.h>
2#include <stdio.h>
3#include <stdlib.h>
4#include <sys/mman.h>
5#include <unistd.h>
6#include <fcntl.h>
7
8static void *map_memory(const char *fn, unsigned base, unsigned size)
9{
10 int fd;
11 void *ptr;
12
13 fd = open(fn, O_RDWR | O_SYNC);
14 if(fd < 0) {
15 perror("cannot open %s for mapping");
16 return MAP_FAILED;
17 }
18
19 ptr = mmap(0, size, PROT_READ | PROT_WRITE,
20 MAP_SHARED, fd, base);
21 close(fd);
22
23 if(ptr == MAP_FAILED) {
24 fprintf(stderr,"cannot map %s (@%08x,%08x)\n", fn, base, size);
25 }
26 return ptr;
27}
28
29
30int main(int argc, char** argv)
31{
32 void *grp_regs = map_memory("/dev/hw3d", 0, 1024 * 1024);
33 printf("GPU base mapped at %p\n", grp_regs);
34 int state_offset = 0x10140;
35 printf("GPU state = %08lx\n",
36 *((long*)((char*)grp_regs + state_offset)) );
37
38 return 0;
39}