/* Generated by ./xlat/gen.sh from ./xlat/shmctl_flags.in; do not edit. */
#if !(defined(SHM_STAT) || (defined(HAVE_DECL_SHM_STAT) && HAVE_DECL_SHM_STAT))
# define SHM_STAT 13
#endif
#if !(defined(SHM_INFO) || (defined(HAVE_DECL_SHM_INFO) && HAVE_DECL_SHM_INFO))
# define SHM_INFO 14
#endif

#ifdef IN_MPERS

extern const struct xlat shmctl_flags[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
const struct xlat shmctl_flags[] = {
#if defined(IPC_RMID) || (defined(HAVE_DECL_IPC_RMID) && HAVE_DECL_IPC_RMID)
  XLAT(IPC_RMID),
#endif
#if defined(IPC_SET) || (defined(HAVE_DECL_IPC_SET) && HAVE_DECL_IPC_SET)
  XLAT(IPC_SET),
#endif
#if defined(IPC_STAT) || (defined(HAVE_DECL_IPC_STAT) && HAVE_DECL_IPC_STAT)
  XLAT(IPC_STAT),
#endif
#if defined(IPC_INFO) || (defined(HAVE_DECL_IPC_INFO) && HAVE_DECL_IPC_INFO)
  XLAT(IPC_INFO),
#endif
 XLAT(SHM_STAT),
 XLAT(SHM_INFO),
#if defined(SHM_LOCK) || (defined(HAVE_DECL_SHM_LOCK) && HAVE_DECL_SHM_LOCK)
  XLAT(SHM_LOCK),
#endif
#if defined(SHM_UNLOCK) || (defined(HAVE_DECL_SHM_UNLOCK) && HAVE_DECL_SHM_UNLOCK)
  XLAT(SHM_UNLOCK),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
