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

#ifdef IN_MPERS

extern const struct xlat adjtimex_status[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
const struct xlat adjtimex_status[] = {
#if defined(STA_PLL) || (defined(HAVE_DECL_STA_PLL) && HAVE_DECL_STA_PLL)
  XLAT(STA_PLL),
#endif
#if defined(STA_PPSFREQ) || (defined(HAVE_DECL_STA_PPSFREQ) && HAVE_DECL_STA_PPSFREQ)
  XLAT(STA_PPSFREQ),
#endif
#if defined(STA_PPSTIME) || (defined(HAVE_DECL_STA_PPSTIME) && HAVE_DECL_STA_PPSTIME)
  XLAT(STA_PPSTIME),
#endif
#if defined(STA_FLL) || (defined(HAVE_DECL_STA_FLL) && HAVE_DECL_STA_FLL)
  XLAT(STA_FLL),
#endif
#if defined(STA_INS) || (defined(HAVE_DECL_STA_INS) && HAVE_DECL_STA_INS)
  XLAT(STA_INS),
#endif
#if defined(STA_DEL) || (defined(HAVE_DECL_STA_DEL) && HAVE_DECL_STA_DEL)
  XLAT(STA_DEL),
#endif
#if defined(STA_UNSYNC) || (defined(HAVE_DECL_STA_UNSYNC) && HAVE_DECL_STA_UNSYNC)
  XLAT(STA_UNSYNC),
#endif
#if defined(STA_FREQHOLD) || (defined(HAVE_DECL_STA_FREQHOLD) && HAVE_DECL_STA_FREQHOLD)
  XLAT(STA_FREQHOLD),
#endif
#if defined(STA_PPSSIGNAL) || (defined(HAVE_DECL_STA_PPSSIGNAL) && HAVE_DECL_STA_PPSSIGNAL)
  XLAT(STA_PPSSIGNAL),
#endif
#if defined(STA_PPSJITTER) || (defined(HAVE_DECL_STA_PPSJITTER) && HAVE_DECL_STA_PPSJITTER)
  XLAT(STA_PPSJITTER),
#endif
#if defined(STA_PPSWANDER) || (defined(HAVE_DECL_STA_PPSWANDER) && HAVE_DECL_STA_PPSWANDER)
  XLAT(STA_PPSWANDER),
#endif
#if defined(STA_PPSERROR) || (defined(HAVE_DECL_STA_PPSERROR) && HAVE_DECL_STA_PPSERROR)
  XLAT(STA_PPSERROR),
#endif
#if defined(STA_CLOCKERR) || (defined(HAVE_DECL_STA_CLOCKERR) && HAVE_DECL_STA_CLOCKERR)
  XLAT(STA_CLOCKERR),
#endif
#if defined(STA_NANO) || (defined(HAVE_DECL_STA_NANO) && HAVE_DECL_STA_NANO)
  XLAT(STA_NANO),
#endif
#if defined(STA_MODE) || (defined(HAVE_DECL_STA_MODE) && HAVE_DECL_STA_MODE)
  XLAT(STA_MODE),
#endif
#if defined(STA_CLK) || (defined(HAVE_DECL_STA_CLK) && HAVE_DECL_STA_CLK)
  XLAT(STA_CLK),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
