#include #include #include #include #include #include #include #include // #define VIDEO_MMAP // #define TEST_UNALIGNED static void *srcpool; static void *dstpool; unsigned int sizes[] = {5, 16, 100, 256, 1000, 16384, 1048576}; unsigned int nums[] = {100000, 50000, 10000, 5000, 1000, 50, 1}; #define TESTRUNS 10 unsigned int memtest(int size, int num, int srcaligned, int dstaligned) { struct timeval tv0, tv1; unsigned char *src=(unsigned char *)srcpool, *dst=(unsigned char *)dstpool; unsigned char *sp, *dp; unsigned int t,i; long int usecs; unsigned long int secs; /* Get src and dst 32-byte aligned */ src = (unsigned char *)((unsigned int)(src+31) & 0xffffffe0); dst = (unsigned char *)((unsigned int)(dst+31) & 0xffffffe0); /* Now unalign them if desired (some random offset) */ if(!srcaligned) src += 11; if(!dstaligned) dst += 13; /* "Train" the system (caches, paging, etc...) */ sp = src; dp = dst; for(i=0; i