return p;
}
+/**
+ * A wrapper for truncate(2)
+ *
+ * \param path Name of the regular file to truncate
+ * \param size Number of bytes to \b shave \b off
+ *
+ * Truncate the regular file named by \a path by \a size bytes.
+ *
+ * \return Standard.
+ *
+ * \sa truncate(2)
+ */
+int para_truncate(const char *path, off_t size)
+{
+ int ret;
+ struct stat statbuf;
+
+ ret = -E_OSL_STAT;
+ if (stat(path, &statbuf) < 0)
+ goto out;
+ ret = -E_OSL_BAD_SIZE;
+ if (statbuf.st_size < size)
+ goto out;
+ ret = -E_OSL_TRUNC;
+ if (truncate(path, statbuf.st_size - size) < 0)
+ goto out;
+ ret = 1;
+out:
+ return ret;
+}
+
int osl_munmap(void *start, size_t length);
int write_all(int fd, const char *buf, size_t *len);
int write_file(const char *filename, const void *buf, size_t size);
+int para_truncate(const char *filename, off_t size);
/**
* A wrapper for mkdir(2).
return ret;
}
-/**
- * A wrapper for truncate(2)
- *
- * \param path Name of the regular file to truncate
- * \param size Number of bytes to \b shave \b off
- *
- * Truncate the regular file named by \a path by \a size bytes.
- *
- * \return Standard.
- *
- * \sa truncate(2)
- */
-int para_truncate(const char *path, off_t size)
-{
- int ret;
- struct stat statbuf;
-
- ret = -E_OSL_STAT;
- if (stat(path, &statbuf) < 0)
- goto out;
- ret = -E_OSL_BAD_SIZE;
- if (statbuf.st_size < size)
- goto out;
- ret = -E_OSL_TRUNC;
- if (truncate(path, statbuf.st_size - size) < 0)
- goto out;
- ret = 1;
-out:
- return ret;
-}
-
static int truncate_mapped_file(const struct osl_table *t, unsigned col_num,
off_t size)
{
int row_is_invalid(struct osl_table *t, uint32_t row_num);
int get_mapped_object(const struct osl_table *t, unsigned col_num,
uint32_t row_num, struct osl_object *obj);
-int para_truncate(const char *filename, off_t size);
int unmap_table(struct osl_table *t, enum osl_close_flags flags);
int init_rbtrees(struct osl_table *t);