X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fcompat.h;h=badca67498c57ba36b8b4b0362da7accc925e2f0;hb=ab198dcb10b2c6b0e445a59af00dc292207454f3;hp=ab18aea40c50929d437600349419257ec60c33b4;hpb=28d1ab8272cf0688dd1090e66987ff7d5b369522;p=util-vserver.git diff --git a/util-vserver/compat.h b/util-vserver/compat.h index ab18aea..badca67 100644 --- a/util-vserver/compat.h +++ b/util-vserver/compat.h @@ -19,23 +19,46 @@ #ifndef H_UTIL_VSERVER_COMPAT_H #define H_UTIL_VSERVER_COMPAT_H -#if defined(__dietlibc__) && defined(__STRICT_ANSI__) && defined(__STDC_VERSION__) +#if defined(__dietlibc__) && !defined(ENSC_DIETLIBC_C99) && defined(__STRICT_ANSI__) && defined(__STDC_VERSION__) # include # undef inline + +# undef __STRICT_ANSI__ +# include +# define __STRICT_ANSI__ +#endif + +#if defined(__dietlibc__) +# define ENSC_FIX_IOCTL(X) do { if ((X)<-1) { errno=-(X); (X) = -1; } } while (0) +#else +# define ENSC_FIX_IOCTL(X) do { } while (0) #endif #if defined(__GNUC__) # define UNUSED __attribute__((__unused__)) # define NORETURN __attribute__((__noreturn__)) -# if __GNUC__ >= 3 +# if __GNUC__>3 || (__GNUC__==3 && __GNUC_MINOR__>=3) +# define NONNULL(ARGS) __attribute__((__nonnull__ ARGS)) # define ALWAYSINLINE __attribute__((__always_inline__)) # else +# define NONNULL(ARGS) # define ALWAYSINLINE # endif +# if __GNUC__>3 +# define PURE __attribute__((__pure__)) +# else +# define PURE +# endif #else +# define NONNULL(ARGS) # define UNUSED # define NORETURN # define ALWAYSINLINE +# define PURE +#endif + +#if !defined(__STDC_VERSION__) || (__STDC_VERSION__<199901L) +# define restrict #endif #if !defined(HAVE_DECL_MS_MOVE) || !(HAVE_DECL_MS_MOVE) @@ -43,8 +66,20 @@ # define MS_MOVE 8192 #endif -#ifndef HAVE_CTX_T -typedef short int ctx_t; +#ifndef HAVE_XID_T +#include +typedef uint32_t xid_t; #endif +#if defined(__dietlibc__) + #define TEMP_FAILURE_RETRY(expression) \ + (__extension__ \ + ({ long int __result; \ + do __result = (long int) (expression); \ + while (__result == -1L && errno == EINTR); \ + __result; })) +#endif + +#define FMT_PREFIX utilvserver_fmt_ + #endif // H_UTIL_VSERVER_COMPAT_H