diff options
author | John Levon <john.levon@joyent.com> | 2018-08-10 16:05:23 +0100 |
---|---|---|
committer | Dan McDonald <danmcd@joyent.com> | 2018-08-13 14:44:43 -0400 |
commit | 309b04b88ca20521fb8141c40ad19b8528b37d7d (patch) | |
tree | f9ae6e1f69fb3c23920bb0a769ffb86c59868054 /usr/src/cmd/mdb/i86pc/modules/unix/unix.c | |
parent | 734b3a42d9fd315e40f7ce511604865fb3c2e799 (diff) | |
download | illumos-gate-309b04b88ca20521fb8141c40ad19b8528b37d7d.tar.gz |
9723 provide support for VMM's GDT handling
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Yuri Pankov <yuripv@yuripv.net>
Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src/cmd/mdb/i86pc/modules/unix/unix.c')
-rw-r--r-- | usr/src/cmd/mdb/i86pc/modules/unix/unix.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/usr/src/cmd/mdb/i86pc/modules/unix/unix.c b/usr/src/cmd/mdb/i86pc/modules/unix/unix.c index 2d37b73243..92ac3f83ca 100644 --- a/usr/src/cmd/mdb/i86pc/modules/unix/unix.c +++ b/usr/src/cmd/mdb/i86pc/modules/unix/unix.c @@ -904,9 +904,11 @@ x86_featureset_cmd(uintptr_t addr, uint_t flags, int argc, #ifdef _KMDB /* ARGSUSED */ static int -crregs_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) +sysregs_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) { ulong_t cr0, cr2, cr3, cr4; + desctbr_t gdtr; + static const mdb_bitmask_t cr0_flag_bits[] = { { "PE", CR0_PE, CR0_PE }, { "MP", CR0_MP, CR0_MP }, @@ -953,6 +955,9 @@ crregs_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) cr2 = kmdb_unix_getcr2(); cr3 = kmdb_unix_getcr3(); cr4 = kmdb_unix_getcr4(); + + kmdb_unix_getgdtr(&gdtr); + mdb_printf("%%cr0 = 0x%lx <%b>\n", cr0, cr0, cr0_flag_bits); mdb_printf("%%cr2 = 0x%lx <%a>\n", cr2, cr2); @@ -966,6 +971,9 @@ crregs_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) mdb_printf("%%cr4 = 0x%lx <%b>\n", cr4, cr4, cr4_flag_bits); + mdb_printf("%%gdtr.base = 0x%lx, %%gdtr.limit = 0x%hx\n", + gdtr.dtr_base, gdtr.dtr_limit); + return (DCMD_OK); } #endif @@ -997,7 +1005,7 @@ static const mdb_dcmd_t dcmds[] = { { "x86_featureset", NULL, "dump the x86_featureset vector", x86_featureset_cmd }, #ifdef _KMDB - { "crregs", NULL, "dump control registers", crregs_dcmd }, + { "sysregs", NULL, "dump system registers", sysregs_dcmd }, #endif { NULL } }; |