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

#ifdef IN_MPERS

# error static const struct xlat tcp_state_flags in mpers mode

#else

static
const struct xlat tcp_state_flags[] = {
/* this file should be included after xlat/tcp_states.h */
#if defined(TCP_ESTABLISHED) || (defined(HAVE_DECL_TCP_ESTABLISHED) && HAVE_DECL_TCP_ESTABLISHED)
  XLAT_PAIR(1ULL<<TCP_ESTABLISHED, "1<<TCP_ESTABLISHED"),
#endif
#if defined(TCP_SYN_SENT) || (defined(HAVE_DECL_TCP_SYN_SENT) && HAVE_DECL_TCP_SYN_SENT)
  XLAT_PAIR(1ULL<<TCP_SYN_SENT, "1<<TCP_SYN_SENT"),
#endif
#if defined(TCP_SYN_RECV) || (defined(HAVE_DECL_TCP_SYN_RECV) && HAVE_DECL_TCP_SYN_RECV)
  XLAT_PAIR(1ULL<<TCP_SYN_RECV, "1<<TCP_SYN_RECV"),
#endif
#if defined(TCP_FIN_WAIT1) || (defined(HAVE_DECL_TCP_FIN_WAIT1) && HAVE_DECL_TCP_FIN_WAIT1)
  XLAT_PAIR(1ULL<<TCP_FIN_WAIT1, "1<<TCP_FIN_WAIT1"),
#endif
#if defined(TCP_FIN_WAIT2) || (defined(HAVE_DECL_TCP_FIN_WAIT2) && HAVE_DECL_TCP_FIN_WAIT2)
  XLAT_PAIR(1ULL<<TCP_FIN_WAIT2, "1<<TCP_FIN_WAIT2"),
#endif
#if defined(TCP_TIME_WAIT) || (defined(HAVE_DECL_TCP_TIME_WAIT) && HAVE_DECL_TCP_TIME_WAIT)
  XLAT_PAIR(1ULL<<TCP_TIME_WAIT, "1<<TCP_TIME_WAIT"),
#endif
#if defined(TCP_CLOSE) || (defined(HAVE_DECL_TCP_CLOSE) && HAVE_DECL_TCP_CLOSE)
  XLAT_PAIR(1ULL<<TCP_CLOSE, "1<<TCP_CLOSE"),
#endif
#if defined(TCP_CLOSE_WAIT) || (defined(HAVE_DECL_TCP_CLOSE_WAIT) && HAVE_DECL_TCP_CLOSE_WAIT)
  XLAT_PAIR(1ULL<<TCP_CLOSE_WAIT, "1<<TCP_CLOSE_WAIT"),
#endif
#if defined(TCP_LAST_ACK) || (defined(HAVE_DECL_TCP_LAST_ACK) && HAVE_DECL_TCP_LAST_ACK)
  XLAT_PAIR(1ULL<<TCP_LAST_ACK, "1<<TCP_LAST_ACK"),
#endif
#if defined(TCP_LISTEN) || (defined(HAVE_DECL_TCP_LISTEN) && HAVE_DECL_TCP_LISTEN)
  XLAT_PAIR(1ULL<<TCP_LISTEN, "1<<TCP_LISTEN"),
#endif
#if defined(TCP_CLOSING) || (defined(HAVE_DECL_TCP_CLOSING) && HAVE_DECL_TCP_CLOSING)
  XLAT_PAIR(1ULL<<TCP_CLOSING, "1<<TCP_CLOSING"),
#endif
#if defined(TCP_NEW_SYN_RECV) || (defined(HAVE_DECL_TCP_NEW_SYN_RECV) && HAVE_DECL_TCP_NEW_SYN_RECV)
  XLAT_PAIR(1ULL<<TCP_NEW_SYN_RECV, "1<<TCP_NEW_SYN_RECV"),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
