diff --git a/f3read.c b/f3read.c index 500cde9..1514365 100644 --- a/f3read.c +++ b/f3read.c @@ -1,4 +1,5 @@ #define _POSIX_C_SOURCE 200112L +#define _XOPEN_SOURCE 600 #include #include @@ -10,6 +11,7 @@ #include #include #include +#include #include "utils.h" diff --git a/f3write.c b/f3write.c index 9d155a1..8cc9aaf 100644 --- a/f3write.c +++ b/f3write.c @@ -1,4 +1,5 @@ #define _POSIX_C_SOURCE 200112L +#define _XOPEN_SOURCE 600 #include #include @@ -9,10 +10,10 @@ #include #include #include +#include #include #include #include -#include #include #include "utils.h" @@ -341,7 +342,7 @@ static int create_and_fill_file(const char *path, long number, size_t size, char *full_fn; const char *filename; int fd, fine; - void *buf; + char buf[fw->block_size]; size_t remaining; uint64_t offset; ssize_t written; @@ -350,7 +351,7 @@ static int create_and_fill_file(const char *path, long number, size_t size, assert(size % fw->block_size == 0); /* Create the file. */ - + fine = 0; full_fn = full_fn_from_number(&filename, path, number); assert(full_fn); @@ -366,10 +367,6 @@ static int create_and_fill_file(const char *path, long number, size_t size, } assert(fd >= 0); - /* Obtain the buffer. */ - buf = alloca(fw->block_size); - assert(buf); - /* Write content. */ fine = 1; offset = (uint64_t)number * GIGABYTES; @@ -392,7 +389,7 @@ static int create_and_fill_file(const char *path, long number, size_t size, assert(!fine || remaining == 0); end_measurement(fd, fw); close(fd); - + printf("OK!\n"); out: diff --git a/utils.h b/utils.h index 5803780..4593a86 100644 --- a/utils.h +++ b/utils.h @@ -67,4 +67,8 @@ static inline int posix_fadvise(int fd, off_t offset, off_t len, int advice) #endif /* Apple Macintosh */ +#ifdef __FreeBSD__ +#define fdatasync(fd) fsync(fd) +#endif + #endif /* HEADER_UTILS_H */