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;
for (i = 1; i < fields_num; i++)
{
errno = 0;
- value = strtol (fields[i], &endptr, 10);
+ value = strtoull (fields[i], &endptr, 10);
if ((*endptr != '\0') || (errno != 0))
break;
irq_value += value;
} /* for (i) */
- irq_submit (irq, irq_value);
+ /* Force 32bit wrap-around */
+ irq_submit (irq, irq_value % 4294967296ULL);
}
+
fclose (fh);
return (0);