Signed-off-by: Gao Xiang <gaoxian...@huawei.com> --- configure.ac | 13 +++++- mkfs/erofs_types.h => include/erofs/defs.h | 66 ++++++++++++++++++++++-------- include/erofs/list.h | 9 +--- mkfs/Makefile.am | 1 - mkfs/erofs_cache.c | 2 +- mkfs/mkfs_erofs.h | 1 - mkfs/mkfs_file.c | 1 - 7 files changed, 62 insertions(+), 31 deletions(-) rename mkfs/erofs_types.h => include/erofs/defs.h (59%)
diff --git a/configure.ac b/configure.ac index 524252f..d9d6e0b 100644 --- a/configure.ac +++ b/configure.ac @@ -76,7 +76,18 @@ AC_ARG_WITH(lz4, ]) # Checks for header files. -AC_CHECK_HEADERS([fcntl.h inttypes.h limits.h stddef.h stdint.h stdlib.h string.h sys/time.h unistd.h]) +AC_CHECK_HEADERS(m4_flatten([ + fcntl.h + inttypes.h + linux/types.h + limits.h + stddef.h + stdint.h + stdlib.h + string.h + sys/time.h + unistd.h +])) # Checks for typedefs, structures, and compiler characteristics. AC_C_INLINE diff --git a/mkfs/erofs_types.h b/include/erofs/defs.h similarity index 59% rename from mkfs/erofs_types.h rename to include/erofs/defs.h index 11fa21b..f90aa19 100644 --- a/mkfs/erofs_types.h +++ b/include/erofs/defs.h @@ -1,31 +1,60 @@ /* SPDX-License-Identifier: GPL-2.0+ */ /* - * erofs_types.h + * include/erofs/defs.h * * Copyright (C) 2018 HUAWEI, Inc. * http://www.huawei.com/ * Created by Li Guifu <bluce.ligu...@huawei.com> + * Modified by Gao Xiang <gaoxian...@huawei.com> */ -#ifndef __EROFS_TYPES_H -#define __EROFS_TYPES_H -#include <inttypes.h> -#include <endian.h> -#include <linux/types.h> -#include <sys/types.h> -#include <asm/types.h> +#ifndef __EROFS_DEFS_H +#define __EROFS_DEFS_H + +#include <stddef.h> #include <stdint.h> -#include <sys/cdefs.h> #include <assert.h> -#include <bits/byteswap.h> +#include <inttypes.h> + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#ifdef HAVE_LINUX_TYPES_H +#include <linux/types.h> +#endif + +/* + * container_of - cast a member of a structure out to the containing structure + * @ptr: the pointer to the member. + * @type: the type of the container struct this is embedded in. + * @member: the name of the member within the struct. + */ +#define container_of(ptr, type, member) ({ \ + const typeof(((type *)0)->member) *__mptr = (ptr); \ + (type *)((char *)__mptr - offsetof(type, member)); }) -#define u8 uint8_t -#define u16 uint16_t -#define u32 uint32_t -#define u64 uint64_t -#define s8 int8_t -#define s16 int16_t -#define s32 int32_t -#define s64 int64_t +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; + +#ifndef HAVE_LINUX_TYPES_H +typedef u8 __u8; +typedef u16 __u16; +typedef u32 __u32; +typedef u64 __u64; +typedef u16 __le16; +typedef u32 __le32; +typedef u64 __le64; +typedef u16 __be16; +typedef u32 __be32; +typedef u64 __be64; +#endif + +typedef int8_t s8; +typedef int16_t s16; +typedef int32_t s32; +typedef int64_t s64; #if __BYTE_ORDER == __LITTLE_ENDIAN /* @@ -68,3 +97,4 @@ #define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long)) #endif + diff --git a/include/erofs/list.h b/include/erofs/list.h index 8dcbc5b..aeef713 100644 --- a/include/erofs/list.h +++ b/include/erofs/list.h @@ -9,20 +9,13 @@ #ifndef __EROFS_LIST_HEAD_H #define __EROFS_LIST_HEAD_H -#include <assert.h> -#include <stddef.h> +#include <erofs/defs.h> struct list_head { struct list_head *prev; struct list_head *next; }; -#define container_of(ptr, type, member) \ - ({ \ - const typeof(((type *)0)->member) *__mptr = (ptr); \ - (type *)((char *)__mptr - offsetof(type, member)); \ - }) - #define LIST_HEAD_INIT(name) \ { \ &(name), &(name) \ diff --git a/mkfs/Makefile.am b/mkfs/Makefile.am index faddec1..a17cc8c 100644 --- a/mkfs/Makefile.am +++ b/mkfs/Makefile.am @@ -19,7 +19,6 @@ noinst_HEADERS = erofs_config.h \ mkfs_erofs.h \ erofs_compressor.h \ erofs_io.h \ - erofs_types.h \ mkfs_file.h mkfs_erofs_CFLAGS = -Wall -Werror -DEROFS_MKFS_VERSION=\"v1.0\" -I$(top_srcdir)/include diff --git a/mkfs/erofs_cache.c b/mkfs/erofs_cache.c index c8af3de..aecca98 100644 --- a/mkfs/erofs_cache.c +++ b/mkfs/erofs_cache.c @@ -11,7 +11,7 @@ #include <stdint.h> #include <errno.h> -#include "erofs_types.h" +#include <erofs/defs.h> #include "erofs_cache.h" #include "erofs_error.h" #include "erofs_debug.h" diff --git a/mkfs/mkfs_erofs.h b/mkfs/mkfs_erofs.h index 26f891c..e8b6f1b 100644 --- a/mkfs/mkfs_erofs.h +++ b/mkfs/mkfs_erofs.h @@ -12,7 +12,6 @@ #include <linux/limits.h> #include <erofs/list.h> -#include "erofs_types.h" typedef unsigned int __u32; diff --git a/mkfs/mkfs_file.c b/mkfs/mkfs_file.c index bb9877e..382e9b6 100644 --- a/mkfs/mkfs_file.c +++ b/mkfs/mkfs_file.c @@ -27,7 +27,6 @@ #ifndef O_BINARY #define O_BINARY 0 #endif -#include "erofs_types.h" #include <erofs/list.h> #include "erofs_cache.h" #include "erofs_compressor.h" -- 2.14.4