530 struct fmd_cmd_data ud;
531
532 ud.argc = argc;
533 ud.argv = argv;
534
535 if (mdb_walk("fmd_module", module_stat, &ud) == -1) {
536 mdb_warn("failed to walk 'fmd_module'");
537 return (DCMD_ERR);
538 }
539 return (DCMD_OK);
540 }
541
542 if (mdb_vread(&s, sizeof (s), addr) != sizeof (s)) {
543 mdb_warn("failed to read statistic at %p", addr);
544 return (DCMD_ERR);
545 }
546
547 switch (s.fmds_type) {
548 case FMD_TYPE_BOOL:
549 mdb_printf("%-11p %-4s %-32s %s\n", addr, "bool",
550 s.fmds_name, s.fmds_value.bool ? "true" : "false");
551 break;
552 case FMD_TYPE_INT32:
553 mdb_printf("%-11p %-4s %-32s %d\n", addr, "i32",
554 s.fmds_name, s.fmds_value.i32);
555 break;
556 case FMD_TYPE_UINT32:
557 mdb_printf("%-11p %-4s %-32s %u\n", addr, "ui32",
558 s.fmds_name, s.fmds_value.i32);
559 break;
560 case FMD_TYPE_INT64:
561 mdb_printf("%-11p %-4s %-32s %lld\n", addr, "i64",
562 s.fmds_name, s.fmds_value.i64);
563 break;
564 case FMD_TYPE_UINT64:
565 mdb_printf("%-11p %-4s %-32s %llu\n", addr, "ui64",
566 s.fmds_name, s.fmds_value.ui64);
567 break;
568 case FMD_TYPE_STRING:
569 if (mdb_readstr(buf, sizeof (buf),
570 (uintptr_t)s.fmds_value.str) < 0) {
|
530 struct fmd_cmd_data ud;
531
532 ud.argc = argc;
533 ud.argv = argv;
534
535 if (mdb_walk("fmd_module", module_stat, &ud) == -1) {
536 mdb_warn("failed to walk 'fmd_module'");
537 return (DCMD_ERR);
538 }
539 return (DCMD_OK);
540 }
541
542 if (mdb_vread(&s, sizeof (s), addr) != sizeof (s)) {
543 mdb_warn("failed to read statistic at %p", addr);
544 return (DCMD_ERR);
545 }
546
547 switch (s.fmds_type) {
548 case FMD_TYPE_BOOL:
549 mdb_printf("%-11p %-4s %-32s %s\n", addr, "bool",
550 s.fmds_name, s.fmds_value.b ? "true" : "false");
551 break;
552 case FMD_TYPE_INT32:
553 mdb_printf("%-11p %-4s %-32s %d\n", addr, "i32",
554 s.fmds_name, s.fmds_value.i32);
555 break;
556 case FMD_TYPE_UINT32:
557 mdb_printf("%-11p %-4s %-32s %u\n", addr, "ui32",
558 s.fmds_name, s.fmds_value.i32);
559 break;
560 case FMD_TYPE_INT64:
561 mdb_printf("%-11p %-4s %-32s %lld\n", addr, "i64",
562 s.fmds_name, s.fmds_value.i64);
563 break;
564 case FMD_TYPE_UINT64:
565 mdb_printf("%-11p %-4s %-32s %llu\n", addr, "ui64",
566 s.fmds_name, s.fmds_value.ui64);
567 break;
568 case FMD_TYPE_STRING:
569 if (mdb_readstr(buf, sizeof (buf),
570 (uintptr_t)s.fmds_value.str) < 0) {
|