1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #include "common-cpu.h"
- #include "common-logging.h"
- char *parse_cpulist(char *cpulist, long *from, long *to)
- {
- if (!cpulist || *cpulist == '\0')
- return NULL;
- char *endp;
- *from = strtol(cpulist, &endp, 10);
- if (endp == cpulist)
- return NULL;
- if (*endp == '\0' || *endp == ',') {
- *to = *from;
- if (*endp == '\0')
- return endp;
- return endp + 1;
- }
- if (*endp != '-')
- return NULL;
- cpulist = endp + 1;
- *to = strtol(cpulist, &endp, 10);
- if (endp == cpulist)
- return NULL;
- if (*to < *from)
- return NULL;
- if (*endp == '\0')
- return endp;
- return endp + 1;
- }
|