From f51eac00b285c225d459979701f4bcaac9676acb Mon Sep 17 00:00:00 2001 From: Doug MacEachern Date: Mon, 11 Feb 2008 04:07:31 +0000 Subject: [PATCH] [SIGAR-86] Add options field to sigar_file_system_t --- bindings/SigarWrapper.pm | 5 +++++ bindings/java/src/jni/javasigar.c | 8 ++++++++ .../java/src/org/hyperic/sigar/test/TestFileSystem.java | 1 + include/sigar.h | 1 + src/os/linux/linux_sigar.c | 1 + src/os/solaris/solaris_sigar.c | 1 + 6 files changed, 17 insertions(+) diff --git a/bindings/SigarWrapper.pm b/bindings/SigarWrapper.pm index febe1a58..d803e73e 100644 --- a/bindings/SigarWrapper.pm +++ b/bindings/SigarWrapper.pm @@ -700,6 +700,11 @@ our %classes = ( desc => 'File system os specific type name', plat => '*' }, + { + name => 'options', type => 'String', + desc => 'File system mount options', + plat => '*' + }, { name => 'type', type => 'Int', desc => 'File system type', diff --git a/bindings/java/src/jni/javasigar.c b/bindings/java/src/jni/javasigar.c index 0613f150..ba34c97c 100644 --- a/bindings/java/src/jni/javasigar.c +++ b/bindings/java/src/jni/javasigar.c @@ -353,6 +353,7 @@ enum { FS_FIELD_DIRNAME, FS_FIELD_DEVNAME, FS_FIELD_SYS_TYPENAME, + FS_FIELD_OPTIONS, FS_FIELD_TYPE, FS_FIELD_TYPENAME, FS_FIELD_MAX @@ -388,6 +389,9 @@ JNIEXPORT jobjectArray SIGAR_JNIx(getFileSystemListNative) ids[FS_FIELD_SYS_TYPENAME] = JENV->GetFieldID(env, cls, "sysTypeName", STRING_SIG); + ids[FS_FIELD_OPTIONS] = + JENV->GetFieldID(env, cls, "options", STRING_SIG); + ids[FS_FIELD_TYPE] = JENV->GetFieldID(env, cls, "type", "I"); @@ -429,6 +433,10 @@ JNIEXPORT jobjectArray SIGAR_JNIx(getFileSystemListNative) ids[FS_FIELD_SYS_TYPENAME], fs->sys_type_name); + JENV->SetStringField(env, fsobj, + ids[FS_FIELD_OPTIONS], + fs->options); + JENV->SetStringField(env, fsobj, ids[FS_FIELD_TYPENAME], fs->type_name); diff --git a/bindings/java/src/org/hyperic/sigar/test/TestFileSystem.java b/bindings/java/src/org/hyperic/sigar/test/TestFileSystem.java index 554cff49..d7e10bcf 100644 --- a/bindings/java/src/org/hyperic/sigar/test/TestFileSystem.java +++ b/bindings/java/src/org/hyperic/sigar/test/TestFileSystem.java @@ -48,6 +48,7 @@ public class TestFileSystem extends SigarTestCase { assertLengthTrace("DirName", fs.getDirName()); assertLengthTrace("TypeName", fs.getTypeName()); assertLengthTrace("SysTypeName", fs.getSysTypeName()); + traceln("Options=" + fs.getOptions()); FileSystemUsage usage; diff --git a/include/sigar.h b/include/sigar.h index ce0dde0a..10b18da6 100644 --- a/include/sigar.h +++ b/include/sigar.h @@ -430,6 +430,7 @@ typedef struct { char dev_name[SIGAR_FS_NAME_LEN]; char type_name[SIGAR_FS_NAME_LEN]; /* e.g. "local" */ char sys_type_name[SIGAR_FS_NAME_LEN]; /* e.g. "ext3" */ + char options[SIGAR_FS_NAME_LEN]; sigar_file_system_type_e type; unsigned long flags; } sigar_file_system_t; diff --git a/src/os/linux/linux_sigar.c b/src/os/linux/linux_sigar.c index 5626b223..395e2fca 100644 --- a/src/os/linux/linux_sigar.c +++ b/src/os/linux/linux_sigar.c @@ -1205,6 +1205,7 @@ int sigar_file_system_list_get(sigar_t *sigar, SIGAR_SSTRCPY(fsp->dir_name, ent.mnt_dir); SIGAR_SSTRCPY(fsp->dev_name, ent.mnt_fsname); SIGAR_SSTRCPY(fsp->sys_type_name, ent.mnt_type); + SIGAR_SSTRCPY(fsp->options, ent.mnt_opts); sigar_fs_type_get(fsp); } diff --git a/src/os/solaris/solaris_sigar.c b/src/os/solaris/solaris_sigar.c index 305aeefd..eeaf5ed3 100644 --- a/src/os/solaris/solaris_sigar.c +++ b/src/os/solaris/solaris_sigar.c @@ -1348,6 +1348,7 @@ int sigar_file_system_list_get(sigar_t *sigar, SIGAR_SSTRCPY(fsp->dir_name, ent.mnt_mountp); SIGAR_SSTRCPY(fsp->dev_name, ent.mnt_special); SIGAR_SSTRCPY(fsp->sys_type_name, ent.mnt_fstype); + SIGAR_SSTRCPY(fsp->options, ent.mnt_mntopts); sigar_fs_type_init(fsp); }