#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 <sys/cdefs.h>
# undef inline
#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
#else
+# define NONNULL(ARGS)
# define UNUSED
# define NORETURN
# define ALWAYSINLINE
#endif
+#if !defined(__STDC_VERSION__) || (__STDC_VERSION__<199901L)
+# define restrict
+#endif
+
#if !defined(HAVE_DECL_MS_MOVE) || !(HAVE_DECL_MS_MOVE)
// from <linux/fs.h>
# define MS_MOVE 8192
#endif
-#ifndef HAVE_CTX_T
+#ifndef HAVE_XID_T
#include <stdint.h>
-typedef uint32_t ctx_t;
+typedef uint32_t xid_t;
#endif
#if defined(__dietlibc__)