diff --git a/sysdeps/freebsd/ChangeLog b/sysdeps/freebsd/ChangeLog index e6a1e2cc..d4157c1a 100644 --- a/sysdeps/freebsd/ChangeLog +++ b/sysdeps/freebsd/ChangeLog @@ -1,3 +1,8 @@ +2005-02-28 Benoît Dejean + + * fsusage.c: (_glibtop_freebsd_get_fsusage_read_write): Forgot to add + this file :) + 2005-02-28 Benoît Dejean * Makefile.am: diff --git a/sysdeps/freebsd/fsusage.c b/sysdeps/freebsd/fsusage.c new file mode 100644 index 00000000..b8245407 --- /dev/null +++ b/sysdeps/freebsd/fsusage.c @@ -0,0 +1,41 @@ +#include +#include +#include + +#include + +#include + +#include +#include +#include + +#include +#include +#include + +void +G_GNUC_INTERNAL +_glibtop_freebsd_get_fsusage_read_write(glibtop *server, + glibtop_fsusage *buf, + const char *path); + +void G_GNUC_INTERNAL +_glibtop_freebsd_get_fsusage_read_write(glibtop *server, + glibtop_fsusage *buf, + const char *path) +{ + int result; + struct statfs sfs; + + result = statfs (path, &sfs); + + if (result == -1) { + return; + } + + buf->read = sfs.f_syncreads + sfs.f_asyncreads; + buf->write = sfs.f_syncwrites + sfs.f_asyncwrites; + + buf->flags |= (1 << GLIBTOP_FSUSAGE_READ) | (1 << GLIBTOP_FSUSAGE_WRITE); +}