Skip to content

Commit

Permalink
mx_util: Clean up mx_*cpuset*()
Browse files Browse the repository at this point in the history
  * fix indent
  * fix new lines
  * unnest if statements
  • Loading branch information
mariux committed Oct 16, 2015
1 parent 61f47da commit 98030b5
Showing 1 changed file with 53 additions and 41 deletions.
94 changes: 53 additions & 41 deletions mx_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
#include <libgen.h>
#include <unistd.h>

#include <ctype.h>

//#include <sys/types.h>
//#include <sys/stat.h>
#include <fcntl.h>
Expand Down Expand Up @@ -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;
Expand All @@ -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_low) {
return -(errno=EINVAL);
}
for (i=cpu_low;i<=cpu_high;i++) {
CPU_SET(i,cpuset_ptr);
} c=*str++;
if (c=='\0') {
break;
} else if (c==',') {
/* noop */
} else {
return -(errno=EINVAL);
}
} else {
return -(errno=EINVAL);
}
} else {
} else if (c != ',') {
return -(errno=EINVAL);
}

str++;
}
return 0;
}
Expand Down Expand Up @@ -1278,16 +1286,20 @@ char *mx_cpuset_to_str(cpu_set_t* cpuset_ptr)
char *out;

strvec=mx_strvec_new();
if (!strvec) return NULL;
if (!strvec)
return NULL;

cpu=0;
while(1) {
if (cpu>=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) {
Expand Down

0 comments on commit 98030b5

Please sign in to comment.