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

static const struct xlat direnttypes[] = {
#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
};
