diff options
author | jhb <jhb@FreeBSD.org> | 2006-09-28 19:07:13 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2006-09-28 19:07:13 +0000 |
commit | 7a85c13bc9248b76c1b77416703fcaeabe8e9a3a (patch) | |
tree | 1490c8c14fff3e53cfe3f16178a606871a16727e /sys/boot | |
parent | 181759445845fd7299a5c25b027d80096b7be2d9 (diff) | |
download | FreeBSD-src-7a85c13bc9248b76c1b77416703fcaeabe8e9a3a.zip FreeBSD-src-7a85c13bc9248b76c1b77416703fcaeabe8e9a3a.tar.gz |
Add an 'smap' command that dumps out the BIOS SMAP.
MFC after: 1 week
Diffstat (limited to 'sys/boot')
-rw-r--r-- | sys/boot/i386/libi386/biossmap.c | 15 | ||||
-rw-r--r-- | sys/boot/i386/loader/help.i386 | 7 |
2 files changed, 22 insertions, 0 deletions
diff --git a/sys/boot/i386/libi386/biossmap.c b/sys/boot/i386/libi386/biossmap.c index 9648d23..056bc22 100644 --- a/sys/boot/i386/libi386/biossmap.c +++ b/sys/boot/i386/libi386/biossmap.c @@ -95,6 +95,7 @@ bios_getsmap(void) break; } while (v86.ebx != 0 && smaplen < n); } + void bios_addsmapdata(struct preloaded_file *kfp) { @@ -105,3 +106,17 @@ bios_addsmapdata(struct preloaded_file *kfp) len = smaplen * sizeof(*smapbase); file_addmetadata(kfp, MODINFOMD_SMAP, len, smapbase); } + +COMMAND_SET(smap, "smap", "show BIOS SMAP", command_smap); + +static int +command_smap(int argc, char *argv[]) +{ + int i; + + if (smapbase == 0 || smaplen == 0) + return; + for (i = 0; i < smaplen; i++) + printf("SMAP type=%02x base=%016llx len=%016llx\n", + smapbase[i].type, smapbase[i].base, smapbase[i].length); +} diff --git a/sys/boot/i386/loader/help.i386 b/sys/boot/i386/loader/help.i386 index e8a8277..6928c8e 100644 --- a/sys/boot/i386/loader/help.i386 +++ b/sys/boot/i386/loader/help.i386 @@ -54,3 +54,10 @@ forced by setting this variable. ################################################################################ +# Tsmap DDisplay BIOS SMAP table + + smap + + Displays the BIOS SMAP (system memory map) table. + +################################################################################ |