devstat
compute_stats(struct devstat *current, struct devstat *previous,
compute_stats_read(struct devstat *current, struct devstat *previous,
compute_stats_write(struct devstat *current, struct devstat *previous,
dssize =(dinfo->numdevs * sizeof(struct devstat)) +sizeof(long);
dssize =(dinfo->numdevs * sizeof(struct devstat)) +sizeof(long);
dssize = (dinfo->numdevs * sizeof(struct devstat)) +
dssize = (dinfo->numdevs * sizeof(struct devstat)) +
dinfo->devices = (struct devstat *)(dinfo->mem_ptr + sizeof(long));
long current_generation, struct devstat *devices, int numdevs,
int compute_stats(struct devstat *current, struct devstat *previous,
int compute_stats_read(struct devstat *current, struct devstat *previous,
int compute_stats_write(struct devstat *current, struct devstat *previous,
struct devstat *devices;
long current_generation, struct devstat *devices, int numdevs,
if (lstat(name, &devstat) < 0)
if (stbuf.st_dev == devstat.st_rdev &&
(devstat.st_mode & IFMT) == IFCHR)
struct stat stbuf, devstat;
struct stat devstat, mntdevstat;
if (stat(name, &devstat) != 0)
if (S_ISCHR(devstat.st_mode) || S_ISBLK(devstat.st_mode))
mntdevstat.st_rdev == devstat.st_rdev)
struct stat devstat, mntdevstat;
if (stat(name, &devstat) != 0 ||
!(S_ISCHR(devstat.st_mode) || S_ISBLK(devstat.st_mode)))
mntdevstat.st_rdev == devstat.st_rdev)
struct devstat *stat = &statinfo.dinfo->devices[i];
struct devstat *stat = &statinfo.dinfo->devices[i];
struct devstat *ds)
struct devstat;
struct devstat *ds);
struct devstat device_stats;
struct devstat device_stats;
struct devstat device_stats;
struct devstat device_stats;
struct devstat device_stats;
struct devstat device_stats;
struct devstat device_stats;
struct devstat device_stats;
struct devstat device_stats;
struct devstat stats;
struct devstat device_stats;
struct devstat stats;
struct devstat device_stats;
struct devstat stats; /* devstat entry */
devstat_remove_entry(&rdp->devstat);
devstat_add_entry(&rdp->devstat, "ar", rdp->lun,
devstat_start_transaction(&rdp->devstat);
devstat_end_transaction_buf(&rdp->devstat, bbp);
struct devstat devstat; /* device statistics */
struct devstat stats; /* devstat entry */
struct devstat stats;
struct devstat stats; /* devstat entry */
struct devstat stats;
struct devstat stats;
struct devstat ad_stats;
struct devstat amrd_stats;
struct devstat stats;
struct devstat stats;
struct devstat ld_devstat;
struct devstat pd_devstat;
struct devstat mlxd_stats;
struct devstat twed_stats; /* accounting */
struct devstat stats;
struct devstat stats;
struct devstat stats;
devstat_remove_entry(struct devstat *ds)
STAILQ_REMOVE(devstat_head, ds, devstat, dev_links);
devstat_start_transaction(struct devstat *ds)
devstat_end_transaction(struct devstat *ds, u_int32_t bytes,
devstat_end_transaction_buf(struct devstat *ds, struct buf *bp)
struct devstat *nds;
error = SYSCTL_OUT(req, nds, sizeof(struct devstat));
SYSCTL_NODE(_kern, OID_AUTO, devstat, CTLFLAG_RD, 0, "Device Statistics");
static STAILQ_HEAD(devstatlist, devstat) device_statq;
devstat_add_entry(struct devstat *ds, const char *dev_name,
struct devstat *ds_tmp;
struct devstat *ds_next;
struct devstat *stats;
nestiobuf_done(struct bio *mbio, int donebytes, int error, struct devstat *stats)
nestiobuf_add(struct bio *mbio, struct buf *bp, int offset, size_t size, struct devstat *stats)
struct devstat;
void nestiobuf_done(struct bio *mbio, int donebytes, int error, struct devstat *stats);
void nestiobuf_add(struct bio *mbio, struct buf *bp, int off, size_t size, struct devstat *stats);
struct devstat device_stats; /* device statistics */
STAILQ_ENTRY(devstat) dev_links;
void devstat_add_entry(struct devstat *ds, const char *dev_name,
void devstat_remove_entry(struct devstat *ds);
void devstat_start_transaction(struct devstat *ds);
void devstat_end_transaction(struct devstat *ds, u_int32_t bytes,
void devstat_end_transaction_buf(struct devstat *ds, struct buf *);