annotate libdha/kernelhelper/test.c @ 4470:2d28c737ed13

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