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

#ifdef IN_MPERS

# error static const struct xlat tcflsh_options in mpers mode

#else

static
const struct xlat tcflsh_options[] = {
#if defined(TCIFLUSH) || (defined(HAVE_DECL_TCIFLUSH) && HAVE_DECL_TCIFLUSH)
  XLAT(TCIFLUSH),
#endif
#if defined(TCOFLUSH) || (defined(HAVE_DECL_TCOFLUSH) && HAVE_DECL_TCOFLUSH)
  XLAT(TCOFLUSH),
#endif
#if defined(TCIOFLUSH) || (defined(HAVE_DECL_TCIOFLUSH) && HAVE_DECL_TCIOFLUSH)
  XLAT(TCIOFLUSH),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
