Page MenuHomeFreeBSD

D56748.id176965.diff
No OneTemporary

D56748.id176965.diff

diff --git a/sys/dev/asmc/asmc.c b/sys/dev/asmc/asmc.c
--- a/sys/dev/asmc/asmc.c
+++ b/sys/dev/asmc/asmc.c
@@ -1090,6 +1090,26 @@
uint8_t maxlen;
int i, error = 1, try = 0;
+ if (sc->sc_is_mmio) {
+ uint8_t len = 0;
+
+ error = asmc_key_dump_by_index(dev, number, key, type, &len);
+ if (error != 0)
+ return (error);
+ memset(v, 0, sizeof(v));
+ if (len > sizeof(v))
+ len = sizeof(v);
+ error = asmc_key_read(dev, key, v, len);
+ if (error != 0)
+ return (error);
+ device_printf(dev, "key %d: %s, type %s (len %u), data",
+ number, key, type, (unsigned)len);
+ for (i = 0; i < len; i++)
+ printf(" %02x", v[i]);
+ printf("\n");
+ return (0);
+ }
+
mtx_lock_spin(&sc->sc_mtx);
index[0] = (number >> 24) & 0xff;
@@ -1144,22 +1164,22 @@
}
mtx_unlock_spin(&sc->sc_mtx);
- if (error)
+ if (error != 0)
return (error);
+ /* CMDGETINFO response: type[0] = data length, type[1..4] = ASCII type string. */
maxlen = type[0];
- type[0] = ' ';
type[5] = '\0';
if (maxlen > sizeof(v))
maxlen = sizeof(v);
memset(v, 0, sizeof(v));
error = asmc_key_read(dev, key, v, maxlen);
- if (error)
+ if (error != 0)
return (error);
- device_printf(dev, "key %d: %s, type%s (len %d), data",
- number, key, type, maxlen);
+ device_printf(dev, "key %d: %s, type %s (len %u), data",
+ number, key, &type[1], (unsigned)maxlen);
for (i = 0; i < maxlen; i++)
printf(" %02x", v[i]);
printf("\n");

File Metadata

Mime Type
text/plain
Expires
Thu, Sep 3, 11:29 AM (59 m, 48 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38102954
Default Alt Text
D56748.id176965.diff (1 KB)

Event Timeline