fio: factor out endian_check
[fio.git] / fio.c
diff --git a/fio.c b/fio.c
index 5a99318ed4b4e89fa355b4a80b40082c631dd2ca..99d6209adb5bc4c6c6cd6d555ec2a3ac3040c935 100644 (file)
--- a/fio.c
+++ b/fio.c
  *
  */
 #include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <limits.h>
-#include <signal.h>
-#include <time.h>
 #include <locale.h>
-#include <assert.h>
 #include <time.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <sys/mman.h>
 
 #include "fio.h"
 #include "hash.h"
 #include "verify.h"
 #include "trim.h"
 #include "diskutil.h"
-#include "cgroup.h"
 #include "profile.h"
 #include "lib/rand.h"
 #include "memalign.h"
+#include "client.h"
 #include "server.h"
+#include "endian_check.h"
 
 unsigned long page_mask;
 unsigned long page_size;
 
-static int endian_check(void)
-{
-       union {
-               uint8_t c[8];
-               uint64_t v;
-       } u;
-       int le = 0, be = 0;
-
-       u.v = 0x12;
-       if (u.c[7] == 0x12)
-               be = 1;
-       else if (u.c[0] == 0x12)
-               le = 1;
-
-#if defined(FIO_LITTLE_ENDIAN)
-       if (be)
-               return 1;
-#elif defined(FIO_BIG_ENDIAN)
-       if (le)
-               return 1;
-#else
-       return 1;
-#endif
-
-       if (!le && !be)
-               return 1;
-
-       return 0;
-}
-
 int main(int argc, char *argv[], char *envp[])
 {
        long ps;
@@ -117,7 +77,7 @@ int main(int argc, char *argv[], char *envp[])
                return 1;
 
        if (nr_clients)
-               return fio_handle_clients();
+               return fio_handle_clients(&fio_client_ops);
        else
                return fio_backend();
 }