/* Generated by ./xlat/gen.sh from ./xlat/wait4_options.in; do not edit. */

#include "gcc_compat.h"
#include "static_assert.h"

#ifndef WSTOPPED
#endif
#if defined(__WCLONE) || (defined(HAVE_DECL___WCLONE) && HAVE_DECL___WCLONE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((__WCLONE) == (0x80000000), "__WCLONE != 0x80000000");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define __WCLONE 0x80000000
#endif
#if defined(__WALL) || (defined(HAVE_DECL___WALL) && HAVE_DECL___WALL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((__WALL) == (0x40000000), "__WALL != 0x40000000");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define __WALL 0x40000000
#endif
#if defined(__WNOTHREAD) || (defined(HAVE_DECL___WNOTHREAD) && HAVE_DECL___WNOTHREAD)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((__WNOTHREAD) == (0x20000000), "__WNOTHREAD != 0x20000000");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define __WNOTHREAD 0x20000000
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat wait4_options in mpers mode

# else

static
const struct xlat wait4_options[] = {
#if defined(WNOHANG) || (defined(HAVE_DECL_WNOHANG) && HAVE_DECL_WNOHANG)
  XLAT(WNOHANG),
#endif
#ifndef WSTOPPED
#if defined(WUNTRACED) || (defined(HAVE_DECL_WUNTRACED) && HAVE_DECL_WUNTRACED)
  XLAT(WUNTRACED),
#endif
#endif
#if defined(WEXITED) || (defined(HAVE_DECL_WEXITED) && HAVE_DECL_WEXITED)
  XLAT(WEXITED),
#endif
#if defined(WTRAPPED) || (defined(HAVE_DECL_WTRAPPED) && HAVE_DECL_WTRAPPED)
  XLAT(WTRAPPED),
#endif
#if defined(WSTOPPED) || (defined(HAVE_DECL_WSTOPPED) && HAVE_DECL_WSTOPPED)
  XLAT(WSTOPPED),
#endif
#if defined(WCONTINUED) || (defined(HAVE_DECL_WCONTINUED) && HAVE_DECL_WCONTINUED)
  XLAT(WCONTINUED),
#endif
#if defined(WNOWAIT) || (defined(HAVE_DECL_WNOWAIT) && HAVE_DECL_WNOWAIT)
  XLAT(WNOWAIT),
#endif
 XLAT(__WCLONE),
 XLAT(__WALL),
 XLAT(__WNOTHREAD),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
