scripts: add onetest_gesamt for arm64
[testub10.git] / gesamt / codea_skinner33_03.call
1 #define TRIES 3
2
3 /* ugly. copied from 'bits/mman.h' */
4 #define PROT_READ       0x1
5 #define PROT_WRITE      0x2
6 #define MAP_PRIVATE     0x02
7 #define MAP_FIXED       0x10
8 #define MAP_ANONYMOUS   0x20
9
10 void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
11
12 long try0(long);
13 long try1(long);
14 long try2(long);
15
16 /* try these adresses until one is free */
17 long *tries[TRIES] = {
18         (long *)0x00100000,
19         (long *)0x01000000,
20         (long *)0xA0000000
21 };
22
23 int   t    = 0;
24 long *addr = NULL;
25
26 for (t = 0; t < TRIES; t++) {
27         addr = mmap(tries[t], 4096, PROT_READ | PROT_WRITE,
28                     MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
29
30         if (tries[t] == addr)
31                 break;
32 }
33
34 if ((void *)-1 == addr) {
35         puts("unable to map memory");
36         RET(1); /* keep the statistic clean */
37 }
38
39 addr[2] = 1337;
40
41 printf("try %d\n", t);
42
43 switch (t) {
44 case 0: RET(try0(0xcafebabe) == 1337);
45 case 1: RET(try1(0xcafebabe) == 1337);
46 case 2: RET(try2(0xcafebabe) == 1337);
47 }
48