/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- main
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 #define PAGE_SIZE (4096)
5 #define PAGES (2048) /* 8 MB worth of data : won't all fit */
6 #define SIZE (PAGE_SIZE * PAGES / sizeof(int))
7 #define NUM_REFS (2)
8 #define PAGES_TO_TOUCH (1536) /* Touching 6 MB of data */
9
10 /* Create a very large array */
11 unsigned int array[SIZE];
12
13 int
14 main()
15 {
16 unsigned int i = 0;
17 unsigned int index = 0;
18 unsigned int refs = 0;
19
20 for (refs = 0; refs < NUM_REFS; refs++) {
21 for (i=0; i<PAGES_TO_TOUCH; i++) {
22 index = i * PAGE_SIZE / sizeof(int);
23 array[index] = i;
24 }
25 }
26
27 for (i=0; i<PAGES_TO_TOUCH; i++) {
28 index = i * PAGE_SIZE / sizeof(int);
29 if (array[index] != i) {
30 printf("FAILED array[%d] = %u != %d\n", i, array[index], i);
31 exit(1);
32 }
33 }
34
35 printf("SUCCEEDED\n");
36 exit(0);
37 }