{
#if defined(HAVE_LIBKSTAT)
+# if HAVE_KSTAT_IO_T_WRITES && HAVE_KSTAT_IO_T_NWRITES && HAVE_KSTAT_IO_T_WTIME
+# define KIO_ROCTETS reads
+# define KIO_WOCTETS writes
+# define KIO_ROPS nreads
+# define KIO_WOPS nwrites
+# define KIO_RTIME rtime
+# define KIO_WTIME wtime
+# elif HAVE_KSTAT_IO_T_NWRITTEN && HAVE_KSTAT_IO_T_WRITES && HAVE_KSTAT_IO_T_WTIME
+# define KIO_ROCTETS nread
+# define KIO_WOCTETS nwritten
+# define KIO_ROPS reads
+# define KIO_WOPS writes
+# define KIO_RTIME rtime
+# define KIO_WTIME wtime
+# else
+# error "kstat_io_t does not have the required members"
+# endif
static kstat_io_t kio;
int i;
if (strncmp (ksp[i]->ks_class, "tape", 4) == 0)
{
- tape_submit (ksp[i]->ks_name, "tape_octets", kio.reads, kio.writes);
- tape_submit (ksp[i]->ks_name, "tape_ops", kio.nreads, kio.nwrites);
+ tape_submit (ksp[i]->ks_name, "tape_octets",
+ kio.KIO_ROCTETS, kio.KIO_WOCTETS);
+ tape_submit (ksp[i]->ks_name, "tape_ops",
+ kio.KIO_ROPS, kio.KIO_WOPS);
/* FIXME: Convert this to microseconds if necessary */
- tape_submit (ksp[i]->ks_name, "tape_time", kio.rtime, kio.wtime);
+ tape_submit (ksp[i]->ks_name, "tape_time",
+ kio.KIO_RTIME, kio.KIO_WTIME);
}
}
#endif /* defined(HAVE_LIBKSTAT) */
}
#endif /* TAPE_HAVE_READ */
-void module_register (void)
+void module_register (modreg_e load)
{
- plugin_register_data_set (&octets_ds);
- plugin_register_data_set (&operations_ds);
- plugin_register_data_set (&merged_ds);
- plugin_register_data_set (&time_ds);
+ if (load & MR_DATASETS)
+ {
+ plugin_register_data_set (&octets_ds);
+ plugin_register_data_set (&operations_ds);
+ plugin_register_data_set (&merged_ds);
+ plugin_register_data_set (&time_ds);
+ }
#if TAPE_HAVE_READ
- plugin_register_init ("tape", tape_init);
- plugin_register_read ("tape", tape_read);
+ if (load & MR_READ)
+ {
+ plugin_register_init ("tape", tape_init);
+ plugin_register_read ("tape", tape_read);
+ }
#endif /* TAPE_HAVE_READ */
}