Print this page
11584 ::xcall would be useful
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

*** 800,810 **** */ #define NSEC_SHIFT 5 /*ARGSUSED*/ static int ! scalehrtime_cmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) { uint32_t nsec_scale; hrtime_t tsc = addr, hrt, tsc_last, base, mult = 1; unsigned int *tscp = (unsigned int *)&tsc; uintptr_t scalehrtimef; --- 800,810 ---- */ #define NSEC_SHIFT 5 /*ARGSUSED*/ static int ! scalehrtime_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) { uint32_t nsec_scale; hrtime_t tsc = addr, hrt, tsc_last, base, mult = 1; unsigned int *tscp = (unsigned int *)&tsc; uintptr_t scalehrtimef;
*** 902,912 **** * macro. We have the names for each of these features in unix's text segment * so we do not have to duplicate them and instead just look them up. */ /*ARGSUSED*/ static int ! x86_featureset_cmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) { void *fset; GElf_Sym sym; uintptr_t nptr; --- 902,912 ---- * macro. We have the names for each of these features in unix's text segment * so we do not have to duplicate them and instead just look them up. */ /*ARGSUSED*/ static int ! x86_featureset_dcmd(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) { void *fset; GElf_Sym sym; uintptr_t nptr;
*** 1033,1042 **** --- 1033,1045 ---- return (DCMD_OK); } #endif + extern void xcall_help(void); + extern int xcall_dcmd(uintptr_t, uint_t, int, const mdb_arg_t *); + static const mdb_dcmd_t dcmds[] = { { "gate_desc", ":", "dump a gate descriptor", gate_desc }, { "idt", ":[-v]", "dump an IDT", idt }, { "ttrace", "[-x] [-t kthread]", "dump trap trace buffers", ttrace }, { "vatopfn", ":[-a as]", "translate address to physical page",
*** 1056,1068 **** pfntomfn_dcmd }, { "mfntopfn", ":", "convert hypervisor machine page to physical page", mfntopfn_dcmd }, { "memseg_list", ":", "show memseg list", memseg_list }, { "scalehrtime", ":[-a|-r]", "scale an unscaled high-res time", ! scalehrtime_cmd, scalehrtime_help }, { "x86_featureset", NULL, "dump the x86_featureset vector", ! x86_featureset_cmd }, #ifdef _KMDB { "sysregs", NULL, "dump system registers", sysregs_dcmd }, #endif { NULL } }; --- 1059,1072 ---- pfntomfn_dcmd }, { "mfntopfn", ":", "convert hypervisor machine page to physical page", mfntopfn_dcmd }, { "memseg_list", ":", "show memseg list", memseg_list }, { "scalehrtime", ":[-a|-r]", "scale an unscaled high-res time", ! scalehrtime_dcmd, scalehrtime_help }, { "x86_featureset", NULL, "dump the x86_featureset vector", ! x86_featureset_dcmd }, ! { "xcall", ":", "print CPU cross-call state", xcall_dcmd, xcall_help }, #ifdef _KMDB { "sysregs", NULL, "dump system registers", sysregs_dcmd }, #endif { NULL } };