Use devstat instead of GEOM private statistics structure.

This commit is contained in:
Poul-Henning Kamp 2003-03-18 09:53:46 +00:00
parent 7e69ddc973
commit 2892a228ad
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=112372
2 changed files with 7 additions and 8 deletions

View File

@ -40,8 +40,8 @@
#include <sys/mman.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/devicestat.h>
#include <geom/geom_stats.h>
/************************************************************/
static uint npages, pagesize, spp;
@ -85,11 +85,11 @@ geom_stats_open(void)
if (statsfd != -1)
return (EBUSY);
statsfd = open(_PATH_DEV GEOM_STATS_DEVICE, O_RDONLY);
statsfd = open(_PATH_DEV DEVSTAT_DEVICE_NAME, O_RDONLY);
if (statsfd < 0)
return (errno);
pagesize = getpagesize();
spp = pagesize / sizeof(struct g_stat);
spp = pagesize / sizeof(struct devstat);
p = mmap(NULL, pagesize, PROT_READ, 0, statsfd, 0);
if (p == MAP_FAILED) {
error = errno;
@ -166,14 +166,14 @@ geom_stats_snapshot_reset(void *arg)
sp->u = sp->v = 0;
}
struct g_stat *
struct devstat *
geom_stats_snapshot_next(void *arg)
{
struct g_stat *gsp;
struct devstat *gsp;
struct snapshot *sp;
sp = arg;
gsp = (struct g_stat *)
gsp = (struct devstat *)
(sp->ptr + sp->u * pagesize + sp->v * sizeof *gsp);
if (++sp->v >= sp->perpage) {
if (++sp->u >= sp->pages)

View File

@ -33,7 +33,6 @@
#include <sys/queue.h>
#include <sys/time.h>
#include <geom/geom_stats.h>
void geom_stats_close(void);
void geom_stats_resync(void);
@ -42,7 +41,7 @@ void *geom_stats_snapshot_get(void);
void geom_stats_snapshot_free(void *arg);
void geom_stats_snapshot_timestamp(void *arg, struct timespec *tp);
void geom_stats_snapshot_reset(void *arg);
struct g_stat *geom_stats_snapshot_next(void *arg);
struct devstat *geom_stats_snapshot_next(void *arg);
char *geom_getxml(void);