1
1

Ahem...it requires 2 hex chars to describe each byte of a bitmask...

This commit was SVN r23001.
Этот коммит содержится в:
Ralph Castain 2010-04-20 05:11:16 +00:00
родитель 86228aee38
Коммит 7717c970a3

Просмотреть файл

@ -135,24 +135,25 @@ char *opal_paffinity_base_print_binding(opal_paffinity_base_cpu_set_t cpumask)
size_t i, j, masksize, save;
/* get space for element separators and trailing NULL */
tmp = (char*)malloc(OPAL_PAFFINITY_CPU_SET_NUM_BYTES+OPAL_PAFFINITY_BITMASK_NUM_ELEMENTS + 1);
masksize = (2*OPAL_PAFFINITY_CPU_SET_NUM_BYTES)+OPAL_PAFFINITY_BITMASK_NUM_ELEMENTS + 1;
tmp = (char*)malloc(masksize);
if (NULL == tmp) {
return NULL;
}
memset(tmp, 0, OPAL_PAFFINITY_CPU_SET_NUM_BYTES+OPAL_PAFFINITY_BITMASK_NUM_ELEMENTS + 1);
memset(tmp, 0, masksize);
masksize = sizeof(opal_paffinity_base_bitmask_t);
if (4 == masksize) {
for (i=0, j=0; i < OPAL_PAFFINITY_BITMASK_NUM_ELEMENTS; i++) {
sprintf(&tmp[j], "%04lx", cpumask.bitmask[i]);
j += 4;
sprintf(&tmp[j], "%08lx", cpumask.bitmask[i]);
j += 8;
tmp[j] = ':';
j++;
}
} else if (8 == masksize) {
for (i=0, j=0; i < OPAL_PAFFINITY_BITMASK_NUM_ELEMENTS; i++) {
sprintf(&tmp[j], "%08lx", cpumask.bitmask[i]);
j += 8;
sprintf(&tmp[j], "%016lx", cpumask.bitmask[i]);
j += 16;
tmp[j] = ':';
j++;
}