static char * _memset_to_str(nodemask_t *mask, char *str) { int base, begin = 0; char *ptr = str; char *ret = 0; for (base = NUMA_NUM_NODES - 4; base >= 0; base -= 4) { char val = 0; if (nodemask_isset(mask, base)) val |= 1; if (nodemask_isset(mask, base + 1)) val |= 2; if (nodemask_isset(mask, base + 2)) val |= 4; if (nodemask_isset(mask, base + 3)) val |= 8; if ((begin == 0) && (val == 0) && (base > 124)) { /* try to keep output to 32 bit mask */ continue; } begin = 1; if (!ret && val) ret = ptr; *ptr++ = val_to_char(val); } *ptr = 0; return ret ? ret : ptr - 1; }
static char * cpuset_to_str(cpu_set_t *mask, char *str) { int base; char *ptr = str; char *ret = 0; for (base = CPU_SETSIZE - 4; base >= 0; base -= 4) { char val = 0; if (CPU_ISSET(base, mask)) val |= 1; if (CPU_ISSET(base + 1, mask)) val |= 2; if (CPU_ISSET(base + 2, mask)) val |= 4; if (CPU_ISSET(base + 3, mask)) val |= 8; if (!ret && val) ret = ptr; *ptr++ = val_to_char(val); } *ptr = 0; return ret ? ret : ptr - 1; }