+int blerg_remap_data(struct blerg *blerg) {
+ struct stat st;
+
+ if (blerg->data != NULL)
+ munmap(blerg->data, blerg->data_size);
+ fstat(blerg->data_fd, &st);
+ blerg->data_size = st.st_size;
+ if (blerg->data_size == 0) {
+ /* Can't map an empty data file. */
+ return 1;
+ }
+ blerg->data = (char *) mmap(NULL, blerg->data_size, PROT_READ, MAP_SHARED, blerg->data_fd, 0);
+ if (blerg->data == MAP_FAILED) {
+ perror("Could not remap data");
+ return 0;
+ }
+ return 1;
+}
+