root/user/uw-testbin/vm-data2/vm-data2.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. 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 }

/* [<][>][^][v][top][bottom][index][help] */