Kill leftover debug printf() and re-format a long line
[fio.git] / os / os-linux.h
index b6ba569a46f603a389a12d959b19820be801079a..20f2a94ef4d06783aa006e202a37644ce64f7a1e 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/major.h>
 
 #include "indirect.h"
+#include "binject.h"
 
 #define FIO_HAVE_LIBAIO
 #define FIO_HAVE_POSIXAIO
 #define FIO_HAVE_CL_SIZE
 #define FIO_HAVE_CGROUPS
 #define FIO_HAVE_FDATASYNC
-#define FIO_HAVE_SYNC_FILE_RANGE
 #define FIO_HAVE_FS_STAT
+#define FIO_HAVE_TRIM
+#define FIO_HAVE_BINJECT
+
+#ifdef SYNC_FILE_RANGE_WAIT_BEFORE
+#define FIO_HAVE_SYNC_FILE_RANGE
+#endif
 
 #define OS_MAP_ANON            MAP_ANONYMOUS
 
@@ -182,6 +188,10 @@ enum {
 #define BLKFLSBUF      _IO(0x12,97)
 #endif
 
+#ifndef BLKDISCARD
+#define BLKDISCARD     _IO(0x12,119)
+#endif
+
 static inline int blockdev_invalidate_cache(int fd)
 {
        return ioctl(fd, BLKFLSBUF);
@@ -295,4 +305,18 @@ static inline unsigned long long get_fs_size(const char *path)
        return ret;
 }
 
+static inline int os_trim(int fd, unsigned long long start,
+                         unsigned long long len)
+{
+       uint64_t range[2];
+
+       range[0] = start;
+       range[1] = len;
+
+       if (!ioctl(fd, BLKDISCARD, range))
+               return 0;
+
+       return errno;
+}
+
 #endif