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

#ifndef IN_MPERS

const struct xlat dirent_types[] = {
#if defined(DT_UNKNOWN) || (defined(HAVE_DECL_DT_UNKNOWN) && HAVE_DECL_DT_UNKNOWN)
  XLAT(DT_UNKNOWN),
#endif
#if defined(DT_FIFO) || (defined(HAVE_DECL_DT_FIFO) && HAVE_DECL_DT_FIFO)
  XLAT(DT_FIFO),
#endif
#if defined(DT_CHR) || (defined(HAVE_DECL_DT_CHR) && HAVE_DECL_DT_CHR)
  XLAT(DT_CHR),
#endif
#if defined(DT_DIR) || (defined(HAVE_DECL_DT_DIR) && HAVE_DECL_DT_DIR)
  XLAT(DT_DIR),
#endif
#if defined(DT_BLK) || (defined(HAVE_DECL_DT_BLK) && HAVE_DECL_DT_BLK)
  XLAT(DT_BLK),
#endif
#if defined(DT_REG) || (defined(HAVE_DECL_DT_REG) && HAVE_DECL_DT_REG)
  XLAT(DT_REG),
#endif
#if defined(DT_LNK) || (defined(HAVE_DECL_DT_LNK) && HAVE_DECL_DT_LNK)
  XLAT(DT_LNK),
#endif
#if defined(DT_SOCK) || (defined(HAVE_DECL_DT_SOCK) && HAVE_DECL_DT_SOCK)
  XLAT(DT_SOCK),
#endif
#if defined(DT_WHT) || (defined(HAVE_DECL_DT_WHT) && HAVE_DECL_DT_WHT)
  XLAT(DT_WHT),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
