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

#ifdef IN_MPERS

# error static const struct xlat waitid_types in mpers mode

#else

static
const struct xlat waitid_types[] = {
#if defined(P_PID) || (defined(HAVE_DECL_P_PID) && HAVE_DECL_P_PID)
  XLAT(P_PID),
#endif
#if defined(P_PPID) || (defined(HAVE_DECL_P_PPID) && HAVE_DECL_P_PPID)
  XLAT(P_PPID),
#endif
#if defined(P_PGID) || (defined(HAVE_DECL_P_PGID) && HAVE_DECL_P_PGID)
  XLAT(P_PGID),
#endif
#if defined(P_SID) || (defined(HAVE_DECL_P_SID) && HAVE_DECL_P_SID)
  XLAT(P_SID),
#endif
#if defined(P_CID) || (defined(HAVE_DECL_P_CID) && HAVE_DECL_P_CID)
  XLAT(P_CID),
#endif
#if defined(P_UID) || (defined(HAVE_DECL_P_UID) && HAVE_DECL_P_UID)
  XLAT(P_UID),
#endif
#if defined(P_GID) || (defined(HAVE_DECL_P_GID) && HAVE_DECL_P_GID)
  XLAT(P_GID),
#endif
#if defined(P_ALL) || (defined(HAVE_DECL_P_ALL) && HAVE_DECL_P_ALL)
  XLAT(P_ALL),
#endif
#if defined(P_LWPID) || (defined(HAVE_DECL_P_LWPID) && HAVE_DECL_P_LWPID)
  XLAT(P_LWPID),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
