#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
-#include <unistd.h>
#include <errno.h>
#define PCIUTILS_SETPCI
static int parse_x32(char *c, char **stopp, unsigned int *resp)
{
char *stop;
+ unsigned long int l;
if (!*c)
return -1;
errno = 0;
- unsigned long int l = strtoul(c, &stop, 16);
+ l = strtoul(c, &stop, 16);
if (errno)
return -1;
if ((l & ~0U) != l)
return 0;
}
else
- return 1;
+ {
+ if (stopp)
+ *stopp = NULL;
+ return 1;
+ }
}
static void parse_register(struct op *op, char *base)
if (parse_x32(value, &f, &ll) < 0 || f && *f != ':')
parse_err("Invalid value \"%s\"", value);
lim = max_values[op->width];
- if (ll > lim && ll < ~0UL - lim)
+ if (ll > lim && ll < ~0U - lim)
parse_err("Value \"%s\" is out of range", value);
op->values[j].value = ll;
if (f && *f == ':')
{
if (parse_x32(f+1, NULL, &ll) <= 0)
parse_err("Invalid mask \"%s\"", f+1);
- if (ll > lim && ll < ~0UL - lim)
+ if (ll > lim && ll < ~0U - lim)
parse_err("Mask \"%s\" is out of range", f+1);
op->values[j].mask = ll;
op->values[j].value &= ll;