#include #include #include #include #include int main(int argc, char **argv) { int i, j; char *resname; if (argc > 1 && !strcmp(argv[1], "wc")) resname = "/sys/bus/pci/devices/0000:01:00.1/resource0_wc"; else resname = "/sys/bus/pci/devices/0000:01:00.1/resource0"; int fd = open(resname, O_RDWR); if (fd == -1) return -1; void *ptr = mmap(NULL, 64*1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); if (!ptr) return -1; volatile uint32_t *uptr = ptr; for (j = 0; j < 1024*1024; j++) for (i = 0; i < 16*1024; i++) { uptr[i] = 0; } munmap(ptr, 64*1024); close(fd); }