summaryrefslogtreecommitdiffstats
path: root/src/libs/zbxsysinfo/linux
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-11-07 14:40:26 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-11-07 14:40:26 +0000
commit59b0ca71889ff06c3a1c6057dc43b98009fa2799 (patch)
tree6365a8b76e696def876f61619a87086257fa3679 /src/libs/zbxsysinfo/linux
parenteda87e5d773f2a79dcfef59b850a58fe302a1120 (diff)
downloadzabbix-59b0ca71889ff06c3a1c6057dc43b98009fa2799.tar.gz
zabbix-59b0ca71889ff06c3a1c6057dc43b98009fa2799.tar.xz
zabbix-59b0ca71889ff06c3a1c6057dc43b98009fa2799.zip
- added support of system.cpu.intr for Linux (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@2289 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs/zbxsysinfo/linux')
-rw-r--r--src/libs/zbxsysinfo/linux/cpu.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/libs/zbxsysinfo/linux/cpu.c b/src/libs/zbxsysinfo/linux/cpu.c
index f45b39db..d0509fef 100644
--- a/src/libs/zbxsysinfo/linux/cpu.c
+++ b/src/libs/zbxsysinfo/linux/cpu.c
@@ -559,10 +559,37 @@ int SYSTEM_CPU_SWITCHES(const char *cmd, const char *param, unsigned flags,
int SYSTEM_CPU_INTR(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result)
{
+ int ret = SYSINFO_RET_FAIL;
+ char line[MAX_STRING_LEN];
+
+ char name[MAX_STRING_LEN];
+ unsigned long value = 0;
+
+ FILE *f;
+
assert(result);
clean_result(result);
-
- return SYSINFO_RET_FAIL;
+
+ f=fopen("/proc/stat","r");
+ if(f)
+ {
+ while(fgets(line,MAX_STRING_LEN,f) != NULL)
+ {
+ if(sscanf(line,"%s\t%lu\n", name, &value) != 2)
+ continue;
+
+ if(strncmp(name, "intr", MAX_STRING_LEN) == 0)
+ {
+ result->type |= AR_UINT64;
+ result->ui64 = (uint64_t) value;
+ ret = SYSINFO_RET_OK;
+ break;
+ }
+ }
+ fclose(f);
+ }
+
+ return ret;
}