00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <stdio.h>
00018 #include <stdlib.h>
00019
00020
00021
00022
00023
00024 #define PageSize 4096
00025 #define TLBSize 64
00026
00027
00028 #define ArraySize ((TLBSize+5)*PageSize)
00029 char tlbtest[ArraySize];
00030
00031 int
00032 main()
00033 {
00034 int i,j;
00035
00036 printf("Starting the tlbfaulter program\n");
00037
00038
00039 for (i=0; i<ArraySize; i++) {
00040 tlbtest[i]= 'a';
00041 }
00042
00043 printf("tlbfaulter: array initialization completed\n");
00044
00045
00046 for(j=0; j<5; j++) {
00047 for (i=0; i<ArraySize; i+=PageSize) {
00048 tlbtest[i] += 1;
00049 }
00050 }
00051
00052 printf("tlbfaulter: array updates completed\n");
00053
00054
00055 for (i=0; i<ArraySize; i+=PageSize) {
00056 if (tlbtest[i] != ('a'+5)) {
00057 printf("Test failed! Unexpected value at array position %d\n", i);
00058 return(1);
00059 }
00060 }
00061
00062 printf("SUCCESS\n");
00063
00064 return 0;
00065 }
00066