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

static const struct xlat siginfo_codes[] = {
#if defined(SI_KERNEL) || (defined(HAVE_DECL_SI_KERNEL) && HAVE_DECL_SI_KERNEL)
	XLAT(SI_KERNEL),
#endif
#if defined(SI_USER) || (defined(HAVE_DECL_SI_USER) && HAVE_DECL_SI_USER)
	XLAT(SI_USER),
#endif
#if defined(SI_QUEUE) || (defined(HAVE_DECL_SI_QUEUE) && HAVE_DECL_SI_QUEUE)
	XLAT(SI_QUEUE),
#endif
#if defined(SI_TIMER) || (defined(HAVE_DECL_SI_TIMER) && HAVE_DECL_SI_TIMER)
	XLAT(SI_TIMER),
#endif
#if defined(SI_MESGQ) || (defined(HAVE_DECL_SI_MESGQ) && HAVE_DECL_SI_MESGQ)
	XLAT(SI_MESGQ),
#endif
#if defined(SI_ASYNCIO) || (defined(HAVE_DECL_SI_ASYNCIO) && HAVE_DECL_SI_ASYNCIO)
	XLAT(SI_ASYNCIO),
#endif
#if defined(SI_SIGIO) || (defined(HAVE_DECL_SI_SIGIO) && HAVE_DECL_SI_SIGIO)
	XLAT(SI_SIGIO),
#endif
#if defined(SI_TKILL) || (defined(HAVE_DECL_SI_TKILL) && HAVE_DECL_SI_TKILL)
	XLAT(SI_TKILL),
#endif
#if defined(SI_DETHREAD) || (defined(HAVE_DECL_SI_DETHREAD) && HAVE_DECL_SI_DETHREAD)
	XLAT(SI_DETHREAD),
#endif
#if defined(SI_ASYNCNL) || (defined(HAVE_DECL_SI_ASYNCNL) && HAVE_DECL_SI_ASYNCNL)
	XLAT(SI_ASYNCNL),
#endif
#if defined(SI_NOINFO) || (defined(HAVE_DECL_SI_NOINFO) && HAVE_DECL_SI_NOINFO)
	XLAT(SI_NOINFO),
#endif
#if defined(SI_LWP) || (defined(HAVE_DECL_SI_LWP) && HAVE_DECL_SI_LWP)
	XLAT(SI_LWP),
#endif
	XLAT_END
};
