From 98030b58941412e3f1ea5b70e1a7e73135ecd4ab Mon Sep 17 00:00:00 2001 From: Marius Tolzmann Date: Fri, 16 Oct 2015 15:27:48 +0200 Subject: [PATCH] mx_util: Clean up mx_*cpuset*() * fix indent * fix new lines * unnest if statements --- mx_util.c | 94 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 53 insertions(+), 41 deletions(-) diff --git a/mx_util.c b/mx_util.c index 04e5a6d..70f532f 100644 --- a/mx_util.c +++ b/mx_util.c @@ -9,6 +9,8 @@ #include #include +#include + //#include //#include #include @@ -1173,7 +1175,7 @@ char **mx_strvec_from_str(char *str) return strvec; } -int mx_str_to_cpuset(cpu_set_t* cpuset_ptr,char *str) +int mx_str_to_cpuset(cpu_set_t* cpuset_ptr, char *str) { char c; int cpu_low; @@ -1184,51 +1186,57 @@ int mx_str_to_cpuset(cpu_set_t* cpuset_ptr,char *str) CPU_ZERO(cpuset_ptr); while (1) { - c=*str; - if (c=='\0') { + c = *str; + + if (c == '\0') break; - } else if (c>='0' && c<='9') { - cpu_low=strtol(str,&next,10); - str=next; - } else { + + if (!isdigit(c)) return -(errno=EINVAL); - } - if (cpu_low<0 || cpu_low>=CPU_SETSIZE) { + cpu_low = strtol(str, &next, 10); + str = next; + + if (cpu_low < 0 || cpu_low >= CPU_SETSIZE) + return -(errno=ERANGE); + + c = *str; + + CPU_SET(cpu_low, cpuset_ptr); + + if (c == '\0') { + break; + } else if (c == ',') { + str++; + continue; + } else if (c != '-') { return -(errno=EINVAL); } - c=*str; - if (c=='\0') { - CPU_SET(cpu_low,cpuset_ptr); + str++; + c = *str; + + if (!isdigit(c)) + return -(errno=EINVAL); + + cpu_high = strtol(str, &next, 10); + str = next; + + if (cpu_high < 0 || cpu_high >= CPU_SETSIZE || cpu_high < cpu_low) + return -(errno=ERANGE); + + for (i = cpu_low+1; i <= cpu_high; i++) + CPU_SET(i, cpuset_ptr); + + c = *str; + + if (c == '\0') { break; - } else if (c==',') { - CPU_SET(cpu_low,cpuset_ptr); - str++; - } else if (c=='-') { - c=*++str; - if (c>='0' && c<='9') { - cpu_high=strtol(str,&next,10); - str=next; - if (cpu_high<0 || cpu_high>=CPU_SETSIZE || cpu_high=CPU_SETSIZE) break; + if (cpu>=CPU_SETSIZE) + break; + if (CPU_ISSET(cpu,cpuset_ptr)) { - cpu_low=cpu++; + cpu_low=cpu; while (1) { - if (cpu>=CPU_SETSIZE || !CPU_ISSET(cpu,cpuset_ptr)) break; cpu++; + if (cpu>=CPU_SETSIZE || !CPU_ISSET(cpu,cpuset_ptr)) + break; } cpu_high=cpu-1; if (cpu_low==cpu_high) {