better file system type mapping
This commit is contained in:
parent
5fd3175b04
commit
7a58b58435
|
@ -235,17 +235,6 @@ 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)
|
||||||
{
|
{
|
||||||
char *type = fsp->sys_type_name;
|
|
||||||
|
|
||||||
switch (*type) {
|
|
||||||
case 'a':
|
|
||||||
if (strEQ(type, "advfs")) {
|
|
||||||
fsp->type = SIGAR_FSTYPE_LOCAL_DISK;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
/* XXX */
|
|
||||||
}
|
|
||||||
|
|
||||||
return fsp->type;
|
return fsp->type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -283,6 +272,7 @@ int sigar_file_system_list_get(sigar_t *sigar,
|
||||||
|
|
||||||
for (i=0; i<num; i++) {
|
for (i=0; i<num; i++) {
|
||||||
sigar_file_system_t *fsp;
|
sigar_file_system_t *fsp;
|
||||||
|
const char *typename = NULL;
|
||||||
|
|
||||||
SIGAR_FILE_SYSTEM_LIST_GROW(fslist);
|
SIGAR_FILE_SYSTEM_LIST_GROW(fslist);
|
||||||
|
|
||||||
|
@ -291,7 +281,60 @@ int sigar_file_system_list_get(sigar_t *sigar,
|
||||||
SIGAR_SSTRCPY(fsp->dir_name, fs[i].f_mntonname);
|
SIGAR_SSTRCPY(fsp->dir_name, fs[i].f_mntonname);
|
||||||
SIGAR_SSTRCPY(fsp->dev_name, fs[i].f_mntfromname);
|
SIGAR_SSTRCPY(fsp->dev_name, fs[i].f_mntfromname);
|
||||||
SIGAR_SSTRCPY(fsp->sys_type_name, mnt_names[fs[i].f_type]);
|
SIGAR_SSTRCPY(fsp->sys_type_name, mnt_names[fs[i].f_type]);
|
||||||
sigar_fs_type_init(fsp);
|
|
||||||
|
switch (fs[i].f_type) {
|
||||||
|
case MOUNT_UFS:
|
||||||
|
typename = "ufs";
|
||||||
|
fsp->type = SIGAR_FSTYPE_LOCAL_DISK;
|
||||||
|
break;
|
||||||
|
case MOUNT_MFS:
|
||||||
|
case MOUNT_MSFS:
|
||||||
|
typename = "advfs";
|
||||||
|
fsp->type = SIGAR_FSTYPE_LOCAL_DISK;
|
||||||
|
break;
|
||||||
|
case MOUNT_FDFS:
|
||||||
|
typename = "fdfs";
|
||||||
|
fsp->type = SIGAR_FSTYPE_LOCAL_DISK;
|
||||||
|
break;
|
||||||
|
case MOUNT_DVDFS:
|
||||||
|
case MOUNT_CDFS:
|
||||||
|
fsp->type = SIGAR_FSTYPE_CDROM;
|
||||||
|
break;
|
||||||
|
case MOUNT_DFS: /* DCE */
|
||||||
|
typename = "dfs";
|
||||||
|
fsp->type = SIGAR_FSTYPE_NETWORK;
|
||||||
|
break;
|
||||||
|
case MOUNT_EFS: /* DCE */
|
||||||
|
typename = "efs";
|
||||||
|
fsp->type = SIGAR_FSTYPE_NETWORK;
|
||||||
|
break;
|
||||||
|
case MOUNT_NFS:
|
||||||
|
case MOUNT_NFS3:
|
||||||
|
typename = "nfs";
|
||||||
|
fsp->type = SIGAR_FSTYPE_NETWORK;
|
||||||
|
break;
|
||||||
|
case MOUNT_CSPEC:
|
||||||
|
case MOUNT_CFS:
|
||||||
|
typename = "cfs";
|
||||||
|
fsp->type = SIGAR_FSTYPE_NETWORK;
|
||||||
|
break;
|
||||||
|
case MOUNT_NONE:
|
||||||
|
case MOUNT_PC:
|
||||||
|
case MOUNT_S5FS:
|
||||||
|
case MOUNT_PROCFS:
|
||||||
|
case MOUNT_FFM:
|
||||||
|
case MOUNT_ADDON:
|
||||||
|
case MOUNT_AUTOFS:
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* we set fsp->type, just looking up sigar.c:fstype_names[type] */
|
||||||
|
sigar_fs_type_get(fsp);
|
||||||
|
|
||||||
|
if (typename == NULL) {
|
||||||
|
typename = fsp->type_name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free(fs);
|
free(fs);
|
||||||
|
|
Loading…
Reference in New Issue