/* Generated by ./xlat/gen.sh from ./xlat/smc_states.in; do not edit. */
#if !(defined(SMC_ACTIVE) || (defined(HAVE_DECL_SMC_ACTIVE) && HAVE_DECL_SMC_ACTIVE))
# define SMC_ACTIVE 1
#endif
#if !(defined(SMC_INIT) || (defined(HAVE_DECL_SMC_INIT) && HAVE_DECL_SMC_INIT))
# define SMC_INIT 2
#endif
#if !(defined(SMC_CLOSED) || (defined(HAVE_DECL_SMC_CLOSED) && HAVE_DECL_SMC_CLOSED))
# define SMC_CLOSED 7
#endif
#if !(defined(SMC_LISTEN) || (defined(HAVE_DECL_SMC_LISTEN) && HAVE_DECL_SMC_LISTEN))
# define SMC_LISTEN 10
#endif
#if !(defined(SMC_PEERCLOSEWAIT1) || (defined(HAVE_DECL_SMC_PEERCLOSEWAIT1) && HAVE_DECL_SMC_PEERCLOSEWAIT1))
# define SMC_PEERCLOSEWAIT1 20
#endif
#if !(defined(SMC_PEERCLOSEWAIT2) || (defined(HAVE_DECL_SMC_PEERCLOSEWAIT2) && HAVE_DECL_SMC_PEERCLOSEWAIT2))
# define SMC_PEERCLOSEWAIT2 21
#endif
#if !(defined(SMC_APPFINCLOSEWAIT) || (defined(HAVE_DECL_SMC_APPFINCLOSEWAIT) && HAVE_DECL_SMC_APPFINCLOSEWAIT))
# define SMC_APPFINCLOSEWAIT 24
#endif
#if !(defined(SMC_APPCLOSEWAIT1) || (defined(HAVE_DECL_SMC_APPCLOSEWAIT1) && HAVE_DECL_SMC_APPCLOSEWAIT1))
# define SMC_APPCLOSEWAIT1 22
#endif
#if !(defined(SMC_APPCLOSEWAIT2) || (defined(HAVE_DECL_SMC_APPCLOSEWAIT2) && HAVE_DECL_SMC_APPCLOSEWAIT2))
# define SMC_APPCLOSEWAIT2 23
#endif
#if !(defined(SMC_PEERFINCLOSEWAIT) || (defined(HAVE_DECL_SMC_PEERFINCLOSEWAIT) && HAVE_DECL_SMC_PEERFINCLOSEWAIT))
# define SMC_PEERFINCLOSEWAIT 25
#endif
#if !(defined(SMC_PEERABORTWAIT) || (defined(HAVE_DECL_SMC_PEERABORTWAIT) && HAVE_DECL_SMC_PEERABORTWAIT))
# define SMC_PEERABORTWAIT 26
#endif
#if !(defined(SMC_PROCESSABORT) || (defined(HAVE_DECL_SMC_PROCESSABORT) && HAVE_DECL_SMC_PROCESSABORT))
# define SMC_PROCESSABORT 27
#endif

#ifdef IN_MPERS

# error static const struct xlat smc_states in mpers mode

#else

static
const struct xlat smc_states[] = {
 XLAT(SMC_ACTIVE),
 XLAT(SMC_INIT),
 XLAT(SMC_CLOSED),
 XLAT(SMC_LISTEN),
 XLAT(SMC_PEERCLOSEWAIT1),
 XLAT(SMC_PEERCLOSEWAIT2),
 XLAT(SMC_APPFINCLOSEWAIT),
 XLAT(SMC_APPCLOSEWAIT1),
 XLAT(SMC_APPCLOSEWAIT2),
 XLAT(SMC_PEERFINCLOSEWAIT),
 XLAT(SMC_PEERABORTWAIT),
 XLAT(SMC_PROCESSABORT),
 XLAT_END
};

#endif /* !IN_MPERS */
