diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-11-22 11:01:09 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-11-22 11:28:23 +0100 |
commit | eafaffa0f09b7c22eed906ef5356b1460d44da55 (patch) | |
tree | e77a1c3ddf714301b93810c2d123b6a7fcdc2ee8 /include/util/compat.h | |
parent | 435c9ef3de5797d7c49fa8fae12a02fd6bd209d6 (diff) |
Cleanup: move all the compatibillity fluff to a dedicated "libcompat"
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include/util/compat.h')
-rw-r--r-- | include/util/compat.h | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/include/util/compat.h b/include/util/compat.h deleted file mode 100644 index fae9d92..0000000 --- a/include/util/compat.h +++ /dev/null @@ -1,124 +0,0 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ -/* - * util.h - * - * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at> - */ -#ifndef COMPAT_H -#define COMPAT_H - -#if defined(__APPLE__) -#include <libkern/OSByteOrder.h> - -#define htole16(x) OSSwapHostToLittleInt16(x) -#define htole32(x) OSSwapHostToLittleInt32(x) -#define htole64(x) OSSwapHostToLittleInt64(x) - -#define le32toh(x) OSSwapLittleToHostInt32(x) -#define le16toh(x) OSSwapLittleToHostInt16(x) -#define le64toh(x) OSSwapLittleToHostInt64(x) -#elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) -#include <sys/endian.h> -#elif defined(_WIN32) || defined(__WINDOWS__) -#define htole16(x) (x) -#define htole32(x) (x) -#define htole64(x) (x) - -#define le16toh(x) (x) -#define le32toh(x) (x) -#define le64toh(x) (x) -#else -#include <endian.h> -#endif - -#if defined(_WIN32) || defined(__WINDOWS__) -#include "sqfs/inode.h" - -#define S_IFSOCK SQFS_INODE_MODE_SOCK -#define S_IFLNK SQFS_INODE_MODE_LNK -#define S_IFREG SQFS_INODE_MODE_REG -#define S_IFBLK SQFS_INODE_MODE_BLK -#define S_IFDIR SQFS_INODE_MODE_DIR -#define S_IFCHR SQFS_INODE_MODE_CHR -#define S_IFIFO SQFS_INODE_MODE_FIFO -#define S_IFMT SQFS_INODE_MODE_MASK - -#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) -#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) -#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) -#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) -#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) -#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) - -#define S_ISUID SQFS_INODE_SET_UID -#define S_ISGID SQFS_INODE_SET_GID -#define S_ISVTX SQFS_INODE_STICKY - -#define S_IRWXU SQFS_INODE_OWNER_MASK -#define S_IRUSR SQFS_INODE_OWNER_R -#define S_IWUSR SQFS_INODE_OWNER_W -#define S_IXUSR SQFS_INODE_OWNER_X - -#define S_IRWXG SQFS_INODE_GROUP_MASK -#define S_IRGRP SQFS_INODE_GROUP_R -#define S_IWGRP SQFS_INODE_GROUP_W -#define S_IXGRP SQFS_INODE_GROUP_X - -#define S_IRWXO SQFS_INODE_OTHERS_MASK -#define S_IROTH SQFS_INODE_OTHERS_R -#define S_IWOTH SQFS_INODE_OTHERS_W -#define S_IXOTH SQFS_INODE_OTHERS_X - -struct stat { - sqfs_u32 st_dev; - sqfs_u32 st_ino; - sqfs_u16 st_mode; - sqfs_u16 st_nlink; - sqfs_u32 st_uid; - sqfs_u32 st_gid; - sqfs_u32 st_rdev; - sqfs_u64 st_size; - sqfs_u32 st_blksize; - sqfs_u32 st_blocks; - sqfs_u64 st_atime; - sqfs_u64 st_mtime; - sqfs_u64 st_ctime; -}; - -/* lifted from musl libc */ -#define major(x) \ - ((unsigned)( (((x)>>31>>1) & 0xfffff000) | (((x)>>8) & 0x00000fff) )) - -#define minor(x) \ - ((unsigned)( (((x)>>12) & 0xffffff00) | ((x) & 0x000000ff) )) - -#define makedev(x,y) ( \ - (((x)&0xfffff000ULL) << 32) | \ - (((x)&0x00000fffULL) << 8) | \ - (((y)&0xffffff00ULL) << 12) | \ - (((y)&0x000000ffULL)) ) -#else -#include <sys/types.h> -#include <sys/stat.h> - -#ifdef __linux__ -#include <sys/sysmacros.h> -#endif -#endif - -#ifndef HAVE_GETLINE -#include <stdio.h> - -ssize_t getline(char **line, size_t *n, FILE *fp); -#endif - -#ifndef HAVE_STRNDUP -char *strndup(const char *str, size_t max_len); -#endif - -#ifndef HAVE_GETSUBOPT -int getsubopt(char **opt, char *const *keys, char **val); -#endif - -#endif /* COMPAT_H */ |