4470
|
1 #include <unistd.h>
|
|
2 #include <errno.h>
|
|
3 #include <fcntl.h>
|
|
4 #include <sys/mman.h>
|
|
5
|
|
6 #include "dhahelper.h"
|
|
7
|
|
8 int main(int argc, char *argv[])
|
|
9 {
|
|
10 int fd;
|
|
11 int ret;
|
|
12
|
|
13 fd = open("/dev/dhahelper", O_RDWR);
|
|
14
|
|
15 ioctl(fd, DHAHELPER_GET_VERSION, &ret);
|
|
16
|
|
17 printf("api version: %d\n", ret);
|
|
18 if (ret != API_VERSION)
|
|
19 printf("incompatible api!\n");
|
|
20
|
|
21 {
|
|
22 dhahelper_memory_t mem;
|
|
23
|
|
24 mem.operation = MEMORY_OP_MAP;
|
|
25 //mem.start = 0xe0000000;
|
|
26 mem.start = 0xe4000008;
|
|
27 mem.offset = 0;
|
|
28 mem.size = 0x4000;
|
|
29 mem.ret = 0;
|
|
30
|
|
31 ret = ioctl(fd, DHAHELPER_MEMORY, &mem);
|
|
32
|
|
33 printf("ret: %s\n", strerror(errno));
|
|
34
|
|
35 mem.ret = (int)mmap(NULL, (size_t)mem.size, PROT_READ, MAP_SHARED, fd, (off_t)0);
|
|
36 printf("allocated to %p\n", mem.ret);
|
|
37
|
|
38 if (argc > 1)
|
|
39 if (mem.ret != 0)
|
|
40 {
|
|
41 int i;
|
|
42
|
|
43 for (i = 0; i < 256; i++)
|
|
44 printf("[%x] ", *(int *)(mem.ret+i));
|
|
45 printf("\n");
|
|
46 }
|
|
47
|
|
48 munmap((void *)mem.ret, mem.size);
|
|
49
|
|
50 mem.operation = MEMORY_OP_UNMAP;
|
|
51 mem.start = mem.ret;
|
|
52
|
|
53 ioctl(fd, DHAHELPER_MEMORY, &mem);
|
|
54 }
|
|
55 }
|