Add lib/getrusage.c
Abstract out the SELF/THREAD complication.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/lib/getrusage.c b/lib/getrusage.c
new file mode 100644
index 0000000..96dcf6d
--- /dev/null
+++ b/lib/getrusage.c
@@ -0,0 +1,14 @@
+#include <errno.h>
+#include "getrusage.h"
+
+int fio_getrusage(struct rusage *ru)
+{
+#ifdef CONFIG_RUSAGE_THREAD
+ if (!getrusage(RUSAGE_THREAD, ru))
+ return 0;
+ if (errno != EINVAL)
+ return -1;
+ /* Fall through to RUSAGE_SELF */
+#endif
+ return getrusage(RUSAGE_SELF, ru);
+}
diff --git a/lib/getrusage.h b/lib/getrusage.h
new file mode 100644
index 0000000..49e6427
--- /dev/null
+++ b/lib/getrusage.h
@@ -0,0 +1,9 @@
+#ifndef FIO_GETRUSAGE_H
+#define FIO_GETRUSAGE_H
+
+#include <sys/time.h>
+#include <sys/resource.h>
+
+extern int fio_getrusage(struct rusage *ru);
+
+#endif