projects
/
psensor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
code style
[psensor.git]
/
src
/
lib
/
cpu.c
diff --git
a/src/lib/cpu.c
b/src/lib/cpu.c
index
66c6df9
..
d3fa7ee
100644
(file)
--- a/
src/lib/cpu.c
+++ b/
src/lib/cpu.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 2010-201
2
jeanfi@gmail.com
+ * Copyright (C) 2010-201
4
jeanfi@gmail.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@
-26,22
+26,24
@@
#include "cpu.h"
#include "cpu.h"
-static glibtop_cpu *cpu;
static float last_used;
static float last_total;
struct psensor *create_cpu_usage_sensor(int measures_len)
{
static float last_used;
static float last_total;
struct psensor *create_cpu_usage_sensor(int measures_len)
{
- char *label;
+ char *label
, *id
;
int type;
int type;
- char *id;
struct psensor *psensor;
id = strdup("cpu usage");
label = strdup("cpu usage");
struct psensor *psensor;
id = strdup("cpu usage");
label = strdup("cpu usage");
- type = SENSOR_TYPE_CPU_USAGE;
+ type = SENSOR_TYPE_
GTOP | SENSOR_TYPE_
CPU_USAGE;
- psensor = psensor_create(id, label, type, measures_len);
+ psensor = psensor_create(id,
+ label,
+ strdup(_("CPU")),
+ type,
+ measures_len);
return psensor;
}
return psensor;
}
@@
-58,24
+60,24
@@
cpu_psensor_list_add(struct psensor **sensors, int measures_len)
static double get_usage()
{
static double get_usage()
{
- unsigned long int used = 0;
+ glibtop_cpu cpu;
+ unsigned long int used;
unsigned long int dt;
unsigned long int dt;
- double cpu_rate
= UNKNOWN_DBL_VALUE
;
+ double cpu_rate;
- if (!cpu)
- cpu = malloc(sizeof(glibtop_cpu));
+ glibtop_get_cpu(&cpu);
-
glibtop_get_cpu(cpu)
;
+
used = cpu.user + cpu.nice + cpu.sys
;
- used = cpu->user + cpu->nice + cpu->sys;
-
- dt = cpu->total - last_total;
+ dt = cpu.total - last_total;
if (dt)
if (dt)
- cpu_rate = 100 * (used - last_used) / dt;
+ cpu_rate = 100.0 * (used - last_used) / dt;
+ else
+ cpu_rate = UNKNOWN_DBL_VALUE;
last_used = used;
last_used = used;
- last_total = cpu
->
total;
+ last_total = cpu
.
total;
return cpu_rate;
}
return cpu_rate;
}
@@
-87,21
+89,15
@@
void cpu_usage_sensor_update(struct psensor *s)
void cpu_psensor_list_update(struct psensor **sensors)
{
void cpu_psensor_list_update(struct psensor **sensors)
{
- struct psensor *
*ss, *
s;
+ struct psensor *s;
- ss = sensors;
- while (*ss) {
- s = *ss;
+ while (*sensors) {
+ s = *sensors;
- if (s->type == SENSOR_TYPE_CPU_USAGE)
+ if (s->type & SENSOR_TYPE_GTOP
+ && s->type & SENSOR_TYPE_CPU_USAGE)
cpu_usage_sensor_update(s);
cpu_usage_sensor_update(s);
- ss++;
+ s
ensor
s++;
}
}
}
}
-
-void cpu_cleanup()
-{
- if (cpu)
- free(cpu);
-}