file_system_usage impl
This commit is contained in:
parent
0964c3d2ff
commit
5fd3175b04
|
@ -235,9 +235,18 @@ int sigar_proc_modules_get(sigar_t *sigar, sigar_pid_t pid,
|
||||||
|
|
||||||
int sigar_os_fs_type_get(sigar_file_system_t *fsp)
|
int sigar_os_fs_type_get(sigar_file_system_t *fsp)
|
||||||
{
|
{
|
||||||
fsp->type = SIGAR_FSTYPE_UNKNOWN;
|
char *type = fsp->sys_type_name;
|
||||||
|
|
||||||
return SIGAR_OK;
|
switch (*type) {
|
||||||
|
case 'a':
|
||||||
|
if (strEQ(type, "advfs")) {
|
||||||
|
fsp->type = SIGAR_FSTYPE_LOCAL_DISK;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
/* XXX */
|
||||||
|
}
|
||||||
|
|
||||||
|
return fsp->type;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sigar_fsstat(struct statfs **fs, int *num)
|
static int sigar_fsstat(struct statfs **fs, int *num)
|
||||||
|
@ -290,15 +299,25 @@ int sigar_file_system_list_get(sigar_t *sigar,
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define SIGAR_FS_BLOCKS_TO_BYTES(buf, f) \
|
||||||
|
((buf.f * (buf.f_bsize / 512)) >> 1)
|
||||||
|
|
||||||
int sigar_file_system_usage_get(sigar_t *sigar,
|
int sigar_file_system_usage_get(sigar_t *sigar,
|
||||||
const char *dirname,
|
const char *dirname,
|
||||||
sigar_file_system_usage_t *fsusage)
|
sigar_file_system_usage_t *fsusage)
|
||||||
{
|
{
|
||||||
fsusage->total = -1;
|
struct statfs buf;
|
||||||
fsusage->free = -1;
|
|
||||||
fsusage->avail = -1;
|
if (statfs((char *)dirname, &buf) != 0) {
|
||||||
fsusage->files = -1;
|
return errno;
|
||||||
fsusage->free_files = -1;
|
}
|
||||||
|
|
||||||
|
fsusage->total = SIGAR_FS_BLOCKS_TO_BYTES(buf, f_blocks);
|
||||||
|
fsusage->free = SIGAR_FS_BLOCKS_TO_BYTES(buf, f_bfree);
|
||||||
|
fsusage->avail = SIGAR_FS_BLOCKS_TO_BYTES(buf, f_bavail);
|
||||||
|
fsusage->files = buf.f_files;
|
||||||
|
fsusage->free_files = buf.f_ffree;
|
||||||
|
fsusage->use_percent = sigar_file_system_usage_calc_used(sigar, fsusage);
|
||||||
|
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue