diff --git a/sys/geom/eli/g_eli.c b/sys/geom/eli/g_eli.c index fc97bece040f..2030380a9935 100644 --- a/sys/geom/eli/g_eli.c +++ b/sys/geom/eli/g_eli.c @@ -1093,6 +1093,35 @@ g_eli_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, return; if (pp != NULL || cp != NULL) return; /* Nothing here. */ + sbuf_printf(sb, "%s", indent); + if (sc->sc_flags == 0) + sbuf_printf(sb, "NONE"); + else { + int first = 1; + +#define ADD_FLAG(flag, name) do { \ + if ((sc->sc_flags & (flag)) != 0) { \ + if (!first) \ + sbuf_printf(sb, ", "); \ + else \ + first = 0; \ + sbuf_printf(sb, name); \ + } \ +} while (0) + ADD_FLAG(G_ELI_FLAG_ONETIME, "ONETIME"); + ADD_FLAG(G_ELI_FLAG_BOOT, "BOOT"); + ADD_FLAG(G_ELI_FLAG_WO_DETACH, "W-DETACH"); + ADD_FLAG(G_ELI_FLAG_RW_DETACH, "RW-DETACH"); + ADD_FLAG(G_ELI_FLAG_WOPEN, "W-OPEN"); + ADD_FLAG(G_ELI_FLAG_DESTROY, "DESTROY"); +#undef ADD_FLAG + } + sbuf_printf(sb, "\n"); + + if ((sc->sc_flags & G_ELI_FLAG_ONETIME) == 0) { + sbuf_printf(sb, "%s%u\n", indent, + sc->sc_nkey); + } sbuf_printf(sb, "%s", indent); switch (sc->sc_crypto) { case G_ELI_CRYPTO_HW: @@ -1106,6 +1135,9 @@ g_eli_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, break; } sbuf_printf(sb, "\n"); + sbuf_printf(sb, "%s%u\n", indent, sc->sc_keylen); + sbuf_printf(sb, "%s%s\n", indent, + g_eli_algo2str(sc->sc_algo)); } static void