#define STATFILE "/proc/stat"
-int cpu_parser(char *data)
+int cpu_parser(char *data, void *p)
{
char buf[1024];
char *str = buf;
#define MEMFILE "/proc/meminfo"
-int mem_parser(char *data)
+int mem_parser(char *data, void *p)
{
char buf[1024], word[1024];
int free = 0, buffered = 0, cache = 0, active = 0, inactive = 0,
return 0;
}
-int cpu_mem_parser(char *data)
+int cpu_mem_parser(char *data, void *p)
{
char cpu[1024], mem[1024];
- cpu_parser(cpu);
- mem_parser(mem);
+ cpu_parser(cpu, p);
+ mem_parser(mem, p);
sprintf(data, "%s:%s", cpu, mem);
return 0;
}
-int digitemp_parser(char *data)
+int digitemp_parser(char *data, void *p)
{
const char digitemp_cmd[] = "/usr/bin/digitemp";
char *const digitemp_args[] = { "", "-o2", "-a", "-q", 0 };
return 0;
}
-int digitemp_parser_mod(char *data)
+int digitemp_parser_mod(char *data, void *p)
{
char buf[1024];
int ret;
- ret = digitemp_parser(buf);
+ ret = digitemp_parser(buf, p);
sprintf(data, "U:%s", buf);
return ret;
#ifndef _PARSER_H
#define _PARSER_H
-int cpu_parser(char *data);
-int mem_parser(char *data);
-int cpu_mem_parser(char *data);
-int digitemp_parser(char *data);
-int digitemp_parser_mod(char *data);
+int cpu_parser(char *data, void *p);
+int mem_parser(char *data, void *p);
+int cpu_mem_parser(char *data, void *p);
+int digitemp_parser(char *data, void *p);
+int digitemp_parser_mod(char *data, void *p);
#endif
struct rrd_database {
char *filename; /* rrd database location */
int interval; /* Update interval */
- int (*parse)(char *data); /* Parser to aquire data */
+
+ /* Parser to aquire data for rrd */
+ int (*parse)(char *rrd_data, void *parser_data);
+ void *parser_data; /* data to be fed to the parser */
+
struct rrd_image **images; /* Images to draw */
struct rrd_data_source *sources; /* These are currently only used */