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

static const struct xlat loop_crypt_type_options[] = {
#if defined(LO_CRYPT_NONE) || (defined(HAVE_DECL_LO_CRYPT_NONE) && HAVE_DECL_LO_CRYPT_NONE)
 XLAT(LO_CRYPT_NONE),
#endif
#if defined(LO_CRYPT_XOR) || (defined(HAVE_DECL_LO_CRYPT_XOR) && HAVE_DECL_LO_CRYPT_XOR)
 XLAT(LO_CRYPT_XOR),
#endif
#if defined(LO_CRYPT_DES) || (defined(HAVE_DECL_LO_CRYPT_DES) && HAVE_DECL_LO_CRYPT_DES)
 XLAT(LO_CRYPT_DES),
#endif
#if defined(LO_CRYPT_FISH2) || (defined(HAVE_DECL_LO_CRYPT_FISH2) && HAVE_DECL_LO_CRYPT_FISH2)
 XLAT(LO_CRYPT_FISH2),
#endif
#if defined(LO_CRYPT_BLOW) || (defined(HAVE_DECL_LO_CRYPT_BLOW) && HAVE_DECL_LO_CRYPT_BLOW)
 XLAT(LO_CRYPT_BLOW),
#endif
#if defined(LO_CRYPT_CAST128) || (defined(HAVE_DECL_LO_CRYPT_CAST128) && HAVE_DECL_LO_CRYPT_CAST128)
 XLAT(LO_CRYPT_CAST128),
#endif
#if defined(LO_CRYPT_IDEA) || (defined(HAVE_DECL_LO_CRYPT_IDEA) && HAVE_DECL_LO_CRYPT_IDEA)
 XLAT(LO_CRYPT_IDEA),
#endif
#if defined(LO_CRYPT_DUMMY) || (defined(HAVE_DECL_LO_CRYPT_DUMMY) && HAVE_DECL_LO_CRYPT_DUMMY)
 XLAT(LO_CRYPT_DUMMY),
#endif
#if defined(LO_CRYPT_SKIPJACK) || (defined(HAVE_DECL_LO_CRYPT_SKIPJACK) && HAVE_DECL_LO_CRYPT_SKIPJACK)
 XLAT(LO_CRYPT_SKIPJACK),
#endif
#if defined(LO_CRYPT_CRYPTOAPI) || (defined(HAVE_DECL_LO_CRYPT_CRYPTOAPI) && HAVE_DECL_LO_CRYPT_CRYPTOAPI)
 XLAT(LO_CRYPT_CRYPTOAPI),
#endif
 XLAT_END
};
