+#else
+static void *map_file(const char *fname, int *size)
+{
+ FILE *fp;
+ long sz;
+ void *buf;
+
+ if(!(fp = fopen(fname, "rb"))) {
+ fprintf(stderr, "failed to open midi file: %s: %s\n", fname, strerror(errno));
+ return 0;
+ }
+ fseek(fp, 0, SEEK_END);
+ sz = ftell(fp);
+ rewind(fp);
+
+ if(!(buf = malloc(sz))) {
+ fprintf(stderr, "failed to allocate space for %s in memory (%ld bytes)\n", fname, sz);
+ fclose(fp);
+ return 0;
+ }
+ if(fread(buf, 1, sz, fp) != sz) {
+ fprintf(stderr, "failed to load midi file: %s: %s\n", fname, strerror(errno));
+ free(buf);
+ fclose(fp);
+ return 0;
+ }
+ fclose(fp);
+
+ *size = sz;
+ return buf;
+}
+
+static void unmap_file(void *mem, int size)
+{
+ free(mem);
+}
+#endif