/* Generated by ./xlat/gen.sh from ./xlat/sigchld_codes.in; do not edit. */
#if !(defined(CLD_EXITED) || (defined(HAVE_DECL_CLD_EXITED) && HAVE_DECL_CLD_EXITED))
# define CLD_EXITED 1
#endif
#if !(defined(CLD_KILLED) || (defined(HAVE_DECL_CLD_KILLED) && HAVE_DECL_CLD_KILLED))
# define CLD_KILLED 2
#endif
#if !(defined(CLD_DUMPED) || (defined(HAVE_DECL_CLD_DUMPED) && HAVE_DECL_CLD_DUMPED))
# define CLD_DUMPED 3
#endif
#if !(defined(CLD_TRAPPED) || (defined(HAVE_DECL_CLD_TRAPPED) && HAVE_DECL_CLD_TRAPPED))
# define CLD_TRAPPED 4
#endif
#if !(defined(CLD_STOPPED) || (defined(HAVE_DECL_CLD_STOPPED) && HAVE_DECL_CLD_STOPPED))
# define CLD_STOPPED 5
#endif
#if !(defined(CLD_CONTINUED) || (defined(HAVE_DECL_CLD_CONTINUED) && HAVE_DECL_CLD_CONTINUED))
# define CLD_CONTINUED 6
#endif

#ifdef IN_MPERS

extern const struct xlat sigchld_codes[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
const struct xlat sigchld_codes[] = {
 XLAT(CLD_EXITED),
 XLAT(CLD_KILLED),
 XLAT(CLD_DUMPED),
 XLAT(CLD_TRAPPED),
 XLAT(CLD_STOPPED),
 XLAT(CLD_CONTINUED),
 XLAT_END
};

#endif /* !IN_MPERS */
