compat.h revision afb71cb81cb806d8b32238f393c5d2e8e3f4511f
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync/* well, this is obviously wrong since it assumes it's 64bit, but older
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync GCCs don't define it and we really want it. */
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsynctypedef _Bool bool;
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsynctypedef int bool;
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync/* native support */
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsynctypedef unsigned int uoff_t;
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsynctypedef unsigned long uoff_t;
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsynctypedef unsigned long long uoff_t;
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsynctypedef unsigned long long uintmax_t;
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsynctypedef unsigned long uintmax_t;
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsynctypedef unsigned int uint_fast32_t;
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsynctypedef unsigned long uint_fast32_t;
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync# define CMP_DEV_T(a, b) (major(a) == major(b) && minor(a) == minor(b))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync# define CMP_DEV_T(a, b) ((a) == (b))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync# define CMP_ST_MTIME(st1, st2) ((st1)->st_mtime == (st2)->st_mtime)
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync# define CMP_ST_CTIME(st1, st2) ((st1)->st_ctime == (st2)->st_ctime)
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync/* strcasecmp(), strncasecmp() */
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncint my_strncasecmp(const char *s1, const char *s2, size_t max_chars);
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncint my_inet_aton(const char *cp, struct in_addr *inp);
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncvoid my_vsyslog(int priority, const char *format, va_list args);
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync const void *iov_base;
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync/* IOV_MAX should be in limits.h nowadays. Linux still (2005) requires
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync defining _XOPEN_SOURCE to get that value. UIO_MAXIOV works with it though,
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync so use it instead. 16 is the lowest acceptable value for all OSes. */
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncssize_t my_writev(int fd, const struct iovec *iov, int iov_len);
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#if !defined (HAVE_PREAD) || defined (PREAD_WRAPPERS)
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncssize_t my_pread(int fd, void *buf, size_t count, off_t offset);
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncssize_t my_pwrite(int fd, const void *buf, size_t count, off_t offset);
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsyncunsigned long long int my_strtoull(const char *nptr, char **endptr, int base);
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync/* ctype.h isn't safe with signed chars,
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync use our own instead if really needed */
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_toupper(x) ((char) toupper((int) (unsigned char) (x)))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_tolower(x) ((char) tolower((int) (unsigned char) (x)))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_isalnum(x) isalnum((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_isalpha(x) isalpha((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_isascii(x) isascii((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_isblank(x) isblank((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_iscntrl(x) iscntrl((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_isdigit(x) isdigit((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_isgraph(x) isgraph((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_islower(x) islower((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_isprint(x) isprint((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_ispunct(x) ispunct((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_isspace(x) isspace((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_isupper(x) isupper((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync#define i_isxdigit(x) isxdigit((int) (unsigned char) (x))
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync# define ENOSPACE(errno) ((errno) == ENOSPC || (errno) == EDQUOT)
a734c64bff58bda2fa48c2795453e092167b0ff7vboxsync/* EPERM is returned sometimes if device doesn't support such modification */