Ahem...it requires 2 hex chars to describe each byte of a bitmask...
This commit was SVN r23001.
Этот коммит содержится в:
родитель
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;
|
size_t i, j, masksize, save;
|
||||||
|
|
||||||
/* get space for element separators and trailing NULL */
|
/* 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) {
|
if (NULL == tmp) {
|
||||||
return NULL;
|
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);
|
masksize = sizeof(opal_paffinity_base_bitmask_t);
|
||||||
|
|
||||||
if (4 == masksize) {
|
if (4 == masksize) {
|
||||||
for (i=0, j=0; i < OPAL_PAFFINITY_BITMASK_NUM_ELEMENTS; i++) {
|
for (i=0, j=0; i < OPAL_PAFFINITY_BITMASK_NUM_ELEMENTS; i++) {
|
||||||
sprintf(&tmp[j], "%04lx", cpumask.bitmask[i]);
|
sprintf(&tmp[j], "%08lx", cpumask.bitmask[i]);
|
||||||
j += 4;
|
j += 8;
|
||||||
tmp[j] = ':';
|
tmp[j] = ':';
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
} else if (8 == masksize) {
|
} else if (8 == masksize) {
|
||||||
for (i=0, j=0; i < OPAL_PAFFINITY_BITMASK_NUM_ELEMENTS; i++) {
|
for (i=0, j=0; i < OPAL_PAFFINITY_BITMASK_NUM_ELEMENTS; i++) {
|
||||||
sprintf(&tmp[j], "%08lx", cpumask.bitmask[i]);
|
sprintf(&tmp[j], "%016lx", cpumask.bitmask[i]);
|
||||||
j += 8;
|
j += 16;
|
||||||
tmp[j] = ':';
|
tmp[j] = ':';
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user