+
+#ifdef HAVE_MMAP
+ if (use_mmap) {
+ struct stat s;
+ if (fstat (fd, & s)) {
+ fprintf (stderr, "Could not stat fd #%d @ %s\n", n, path);
+ return 1;
+ }
+ if (s.st_size < block_size) {
+ fprintf (stderr, "file is shorter than blocksize #%d @ %s\n", n, path);
+ return 1;
+ }
+ flen[n] = s.st_size;
+ addr[n] = mmap (0, s.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
+ if (addr[n] == MAP_FAILED) {
+ fprintf (stderr, "Could not mmap file #%d @ %s (%s)\n", n, path, strerror (errno));
+ return 1;
+ }
+ }
+#endif