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

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

#if defined(SHM_EXEC) || (defined(HAVE_DECL_SHM_EXEC) && HAVE_DECL_SHM_EXEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SHM_EXEC) == (0100000), "SHM_EXEC != 0100000");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SHM_EXEC 0100000
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat shm_flags in mpers mode

# else

static
const struct xlat shm_flags[] = {
#if defined(SHM_RDONLY) || (defined(HAVE_DECL_SHM_RDONLY) && HAVE_DECL_SHM_RDONLY)
  XLAT(SHM_RDONLY),
#endif
#if defined(SHM_RND) || (defined(HAVE_DECL_SHM_RND) && HAVE_DECL_SHM_RND)
  XLAT(SHM_RND),
#endif
#if defined(SHM_REMAP) || (defined(HAVE_DECL_SHM_REMAP) && HAVE_DECL_SHM_REMAP)
  XLAT(SHM_REMAP),
#endif
 XLAT(SHM_EXEC),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
