+ return ret < 0? -E_FSEEK : 1;
+}
+
+/**
+ * *paraslash's wrapper for mmap
+ *
+ * \param length number of bytes to mmap
+ * \param prot either PROT_NONE or the bitwise OR of one or more of
+ * PROT_EXEC PROT_READ PROT_WRITE
+ * \param flags exactly one of MAP_SHARED and MAP_PRIVATE
+ * \param fd the file to mmap from
+ * \param offset mmap start
+ *
+ * \return This function either returns a valid pointer to the mapped area
+ * or calls exit() on errors.
+ */
+void *para_mmap(size_t length, int prot, int flags, int fd, off_t offset)
+{
+ void *ret = mmap(NULL, length, prot, flags, fd, offset);
+ if (ret != MAP_FAILED)
+ return ret;
+ PARA_EMERG_LOG("mmap failed: %s", strerror(errno));
+ exit(EXIT_FAILURE);