From e61ca217bc489cdacebc5302583128c4d73dd4e7 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Fri, 24 Feb 2012 12:51:31 +0100 Subject: [PATCH] Move init code info libfio.c Kill off endian_check.{c,h} and fio_initialization.{c,h} Signed-off-by: Jens Axboe --- Makefile | 3 +- endian_check.c | 33 --------------------- endian_check.h | 6 ---- fio.c | 1 - fio.h | 4 +++ fio_initialization.c | 43 --------------------------- fio_initialization.h | 8 ----- gfio.c | 1 - libfio.c | 70 ++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 75 insertions(+), 94 deletions(-) delete mode 100644 endian_check.c delete mode 100644 endian_check.h delete mode 100644 fio_initialization.c delete mode 100644 fio_initialization.h diff --git a/Makefile b/Makefile index a1270276..510237b7 100644 --- a/Makefile +++ b/Makefile @@ -17,8 +17,7 @@ SOURCE := gettime.c ioengines.c init.c stat.c log.c time.c filesetup.c \ 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 c6fc3e2f..00000000 --- a/endian_check.c +++ /dev/null @@ -1,33 +0,0 @@ -#include -#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 2e06c3b9..00000000 --- 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 52ed944a..d628cfcd 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 3efda51a..9af047c2 100644 --- a/fio.h +++ b/fio.h @@ -608,6 +608,10 @@ extern void add_job_opts(const char **); 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 8bd33745..00000000 --- a/fio_initialization.c +++ /dev/null @@ -1,43 +0,0 @@ -#include - -#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 877cd44f..00000000 --- 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 852214e6..18322203 100644 --- a/gfio.c +++ b/gfio.c @@ -26,7 +26,6 @@ #include #include -#include "fio_initialization.h" #include "fio.h" #define ARRAYSIZE(x) (sizeof((x)) / (sizeof((x)[0]))) diff --git a/libfio.c b/libfio.c index 668df455..95938c88 100644 --- a/libfio.c +++ b/libfio.c @@ -25,7 +25,12 @@ #include #include #include +#include +#include + #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 @@ FLIST_HEAD(disk_list); 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 @@ void fio_terminate_threads(int group_id) } } +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; +} -- 2.25.1