diff --git a/src/contextswitch.c b/src/contextswitch.c
index b53b5740bd6358ff21a739b59a71a283da0c4980..06055ca59372299616a6f8b1bf105d30e34760f4 100644 (file)
--- a/src/contextswitch.c
+++ b/src/contextswitch.c
# error "No applicable input method."
#endif
-static void cs_submit (unsigned long context_switches)
+static void cs_submit (derive_t context_switches)
{
value_t values[1];
value_list_t vl = VALUE_LIST_INIT;
char buffer[64];
int numfields;
char *fields[3];
- unsigned long result = 0;
+ derive_t result = 0;
int status = -2;
fh = fopen ("/proc/stat", "r");
char *endptr;
numfields = strsplit(buffer, fields, STATIC_ARRAY_SIZE (fields));
- if (numfields != 2) {
- ERROR ("contextswitch plugin: ctxt in /proc/stat "
- "contains more than 2 fields.");
+ if (numfields != 2)
continue;
- }
if (strcmp("ctxt", fields[0]) != 0)
continue;
errno = 0;
endptr = NULL;
- result = strtoul(fields[1], &endptr, 10);
+ result = (derive_t) strtoll (fields[1], &endptr, /* base = */ 10);
if ((endptr == fields[1]) || (errno != 0)) {
ERROR ("contextswitch plugin: Cannot parse ctxt value: %s",
fields[1]);