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 }
};