Move init code info libfio.c
Kill off endian_check.{c,h} and fio_initialization.{c,h}
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/Makefile b/Makefile
index a127027..510237b 100644
--- a/Makefile
+++ b/Makefile
@@ -17,8 +17,7 @@
rbtree.c smalloc.c filehash.c profile.c debug.c lib/rand.c \
lib/num2str.c lib/ieee754.c $(wildcard crc/*.c) engines/cpu.c \
engines/mmap.c engines/sync.c engines/null.c engines/net.c \
- memalign.c server.c client.c iolog.c backend.c libfio.c flow.c \
- endian_check.c fio_initialization.c
+ memalign.c server.c client.c iolog.c backend.c libfio.c flow.c
ifeq ($(UNAME), Linux)
SOURCE += diskutil.c fifo.c blktrace.c helpers.c cgroup.c trim.c \
diff --git a/endian_check.c b/endian_check.c
deleted file mode 100644
index c6fc3e2..0000000
--- a/endian_check.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#include <stdint.h>
-#include "os/os.h"
-
-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;
-}
-
diff --git a/endian_check.h b/endian_check.h
deleted file mode 100644
index 2e06c3b..0000000
--- a/endian_check.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef ENDIAN_CHECK_H
-#define ENDIAN_CHECK_H
-
-int endian_check(void);
-
-#endif
diff --git a/fio.c b/fio.c
index 52ed944..d628cfc 100644
--- a/fio.c
+++ b/fio.c
@@ -36,7 +36,6 @@
#include "memalign.h"
#include "client.h"
#include "server.h"
-#include "fio_initialization.h"
int main(int argc, char *argv[], char *envp[])
{
diff --git a/fio.h b/fio.h
index 3efda51..9af047c 100644
--- a/fio.h
+++ b/fio.h
@@ -608,6 +608,10 @@
extern char *num2str(unsigned long, int, int, int);
extern int ioengine_load(struct thread_data *);
+extern unsigned long page_mask;
+extern unsigned long page_size;
+extern int initialize_fio(char *envp[]);
+
#define FIO_GETOPT_JOB 0x89000000
#define FIO_GETOPT_IOENGINE 0x98000000
#define FIO_NR_OPTIONS (FIO_MAX_OPTS + 128)
diff --git a/fio_initialization.c b/fio_initialization.c
deleted file mode 100644
index 8bd3374..0000000
--- a/fio_initialization.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <locale.h>
-
-#include "endian_check.h"
-#include "smalloc.h"
-#include "fio.h"
-
-
-unsigned long page_mask;
-unsigned long page_size;
-
-int initialize_fio(char *envp[])
-{
- long ps;
-
- if (endian_check()) {
- log_err("fio: endianness settings appear wrong.\n");
- log_err("fio: please report this to fio@vger.kernel.org\n");
- return 1;
- }
-
- arch_init(envp);
-
- sinit();
-
- /*
- * We need locale for number printing, if it isn't set then just
- * go with the US format.
- */
- if (!getenv("LC_NUMERIC"))
- setlocale(LC_NUMERIC, "en_US");
-
- ps = sysconf(_SC_PAGESIZE);
- if (ps < 0) {
- log_err("Failed to get page size\n");
- return 1;
- }
-
- page_size = ps;
- page_mask = ps - 1;
-
- fio_keywords_init();
- return 0;
-}
diff --git a/fio_initialization.h b/fio_initialization.h
deleted file mode 100644
index 877cd44..0000000
--- a/fio_initialization.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef FIO_INITIALIZATION
-#define FIO_INITIALIZATION
-
-extern unsigned long page_mask;
-extern unsigned long page_size;
-extern int initialize_fio(char *envp[]);
-
-#endif
diff --git a/gfio.c b/gfio.c
index 852214e..1832220 100644
--- a/gfio.c
+++ b/gfio.c
@@ -26,7 +26,6 @@
#include <glib.h>
#include <gtk/gtk.h>
-#include "fio_initialization.h"
#include "fio.h"
#define ARRAYSIZE(x) (sizeof((x)) / (sizeof((x)[0])))
diff --git a/libfio.c b/libfio.c
index 668df45..95938c8 100644
--- a/libfio.c
+++ b/libfio.c
@@ -25,7 +25,12 @@
#include <string.h>
#include <sys/types.h>
#include <signal.h>
+#include <stdint.h>
+#include <locale.h>
+
#include "fio.h"
+#include "smalloc.h"
+#include "os/os.h"
/*
* Just expose an empty list, if the OS does not support disk util stats
@@ -36,6 +41,9 @@
unsigned long arch_flags = 0;
+unsigned long page_mask;
+unsigned long page_size;
+
static const char *fio_os_strings[os_nr] = {
"Invalid",
"Linux",
@@ -187,4 +195,66 @@
}
}
+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 initialize_fio(char *envp[])
+{
+ long ps;
+
+ if (endian_check()) {
+ log_err("fio: endianness settings appear wrong.\n");
+ log_err("fio: please report this to fio@vger.kernel.org\n");
+ return 1;
+ }
+
+ arch_init(envp);
+
+ sinit();
+
+ /*
+ * We need locale for number printing, if it isn't set then just
+ * go with the US format.
+ */
+ if (!getenv("LC_NUMERIC"))
+ setlocale(LC_NUMERIC, "en_US");
+
+ ps = sysconf(_SC_PAGESIZE);
+ if (ps < 0) {
+ log_err("Failed to get page size\n");
+ return 1;
+ }
+
+ page_size = ps;
+ page_mask = ps - 1;
+
+ fio_keywords_init();
+ return 0;
+}