* files and then doing a byte at a time memory copy.
*
*/
+#ifdef linux
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#endif
+
+#include <unistd.h>
#include <stddef.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/fcntl.h>
#include <sys/stat.h>
-#include <strings.h>
+#include <string.h>
#include <errno.h>
+#include <getopt.h>
char * Progname;
char *path;
int fd;
struct stat st;
+#ifdef linux
+ void *p;
+#else
addr_t p;
+#endif
} mfile_t;
FLAG(PROT_READ, FL_PROT),
FLAG(PROT_WRITE, FL_PROT),
FLAG(PROT_EXEC, FL_PROT),
+#ifdef __sgi
FLAG(PROT_EXECUTE, FL_PROT),
+#endif
FLAG(MAP_SHARED, FL_MAP),
FLAG(MAP_PRIVATE, FL_MAP),
FLAG(MAP_FIXED, FL_MAP),
+#ifdef __sgi
FLAG(MAP_RENAME, FL_MAP),
FLAG(MAP_AUTOGROW, FL_MAP),
FLAG(MAP_LOCAL, FL_MAP),
FLAG(MAP_AUTORESRV, FL_MAP),
+#endif
FLAG(MAP_NONE, FL_MAP),
};
ifile->flags[FL_MAP].value = MAP_PRIVATE;
ifile->flags[FL_PROT].value = PROT_READ;
ifile->flags[FL_OPEN].value = O_RDONLY;
- ofile->flags[FL_MAP].value = MAP_SHARED|MAP_AUTOGROW;
+ ofile->flags[FL_MAP].value = MAP_SHARED;
+#ifdef __sgi
+ ofile->flags[FL_MAP].value = MAP_AUTOGROW;
+#endif
ofile->flags[FL_PROT].value = PROT_WRITE;
ofile->flags[FL_OPEN].value = O_RDWR|O_CREAT;