projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
use kern.cp_times sysctl for FreeBSD smp support
[collectd.git]
/
src
/
irq.c
diff --git
a/src/irq.c
b/src/irq.c
index
986efaf
..
1aef344
100644
(file)
--- a/
src/irq.c
+++ b/
src/irq.c
@@
-151,8
+151,8
@@
static int irq_read (void)
FILE *fh;
char buffer[BUFSIZE];
unsigned int irq;
FILE *fh;
char buffer[BUFSIZE];
unsigned int irq;
- unsigned
int
irq_value;
- long value;
+ unsigned
long long
irq_value;
+
unsigned long
long value;
char *endptr;
int i;
char *endptr;
int i;
@@
-182,7
+182,7
@@
static int irq_read (void)
for (i = 1; i < fields_num; i++)
{
errno = 0;
for (i = 1; i < fields_num; i++)
{
errno = 0;
- value = strtol (fields[i], &endptr, 10);
+ value = strto
ul
l (fields[i], &endptr, 10);
if ((*endptr != '\0') || (errno != 0))
break;
if ((*endptr != '\0') || (errno != 0))
break;
@@
-190,8
+190,10
@@
static int irq_read (void)
irq_value += value;
} /* for (i) */
irq_value += value;
} /* for (i) */
- irq_submit (irq, irq_value);
+ /* Force 32bit wrap-around */
+ irq_submit (irq, irq_value % 4294967296ULL);
}
}
+
fclose (fh);
return (0);
fclose (fh);
return (0);