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

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

DEFINITIONS

This source file includes following definitions.
  1. write_data
  2. read_data
  3. main

   1 #include <stdio.h>
   2 #include <stdlib.h>
   3 #include <string.h>
   4 
   5 /* This is creating a program that has
   6  * a few more text pages than the average
   7  * program we usually have.
   8  */
   9 
  10 extern void     call_all();
  11 void write_data(void);
  12 void read_data(void);
  13 
  14 #define PAGE_SIZE (4096)
  15 #define PAGES     (128)
  16 #define SIZE      (PAGE_SIZE * PAGES / sizeof(int))
  17 #define NUM_REFS  (2)
  18 
  19 unsigned int array[SIZE];
  20 
  21 void
  22 write_data(void)
  23 {
  24         unsigned int refs = 0;
  25         unsigned int i = 0;
  26 
  27         for (refs = 0; refs < NUM_REFS-1; refs++) {
  28                 for (i=0; i<SIZE; i+= PAGE_SIZE) {
  29                         array[i] = i;
  30                 }
  31         }
  32 }
  33 
  34 void
  35 read_data(void)
  36 {
  37         unsigned int i = 0;
  38 
  39         for (i=0; i<SIZE; i+= PAGE_SIZE) {
  40                 if (array[i] != i) {
  41                         printf("FAILED array[%d] = %u != %d\n", i, array[i], i);
  42                         exit(1);
  43                 }
  44         }
  45 }
  46 
  47 
  48 int
  49 main()
  50 {
  51         unsigned int i = 0;
  52 
  53         for (i=0; i<5; i++) {
  54           call_all();
  55           write_data();
  56           call_all();
  57           read_data();
  58         }
  59 
  60         printf("SUCCEEDED\n");
  61         exit(0);
  62 }

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