added demo of signal/uid handling feature
[tridge/junkcode.git] / memread.c
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <sys/mman.h>
4 #include <fcntl.h>
5 #include <sys/file.h>
6 #include <sys/time.h>
7
8 struct timeval tp1,tp2;
9
10 static void start_timer()
11 {
12   gettimeofday(&tp1,NULL);
13 }
14
15 static double end_timer()
16 {
17   gettimeofday(&tp2,NULL);
18   return((tp2.tv_sec - tp1.tv_sec) + 
19          (tp2.tv_usec - tp1.tv_usec)*1.0e-6);
20 }
21
22
23 #define MB (1024*1024)
24
25 static void fmemcpy(char *dest, char *src, int size)
26 {
27         double d;
28         double *dp, *sp;
29
30         dp = (double *)dest;
31         sp = (double *)src;
32         
33         while (size >= sizeof(d)) {
34                 d = sp[0];
35                 dp[0] = d;
36                 dp++; sp++;
37                 size -= sizeof(d);
38         }
39 }
40
41 static void frame_copy(char *dst, char *src)
42 {
43         int ysize = 512;
44         while (ysize--) {
45                 dlmemcpy(dst, src, 512*2);
46                 src += 1024*2;
47                 dst += 1280*2;
48         }
49
50 }
51
52 int main(int argc, char *argv[])
53 {
54         int fd;
55         char *p, *p2;
56         int size = 4*MB;
57         int i;
58
59         fd = open(argv[1], O_RDWR);
60         p = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0xe0000000);
61         p2= mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0xe4400000 - 0x1000);
62         close(fd);
63
64         printf("p2=%p p=%p\n", p2, p);
65
66         while (1)
67                 frame_copy(p, p2);
68
69         return 0;
70 }