Messages in this thread | ![/](/images/icornerl.gif) | | Subject | Re: format_cpumask() | Date | Mon, 17 Nov 2003 10:49:31 -0800 | From | "Luck, Tony" <> |
| |
> + for (k = sizeof(cpumask_t)/sizeof(long) - 1; k >= 0; ++k) { > + int m; > + cpumask_t tmp; > + > + cpus_shift_right(tmp, cpus, BITS_PER_LONG*k); > + if (BITS_PER_LONG == 32) > + m = sprintf(buf, "%08lx", cpus_coerce(tmp)); > + else /* BITS_PER_LONG == 64 */ > + m = sprintf(buf, "%16lx", cpus_coerce(tmp)); > + len += m; > + buf += m; > + }
That makes it had to write portable shell scripts (etc.) that can parse these values on both 32-bit and 64-bit systems? A bitmask with just cpu0 set looks like:
0000000100000000
on a 32-bit machine. And like:
0000000000000001
on a 64-bit machine. Heaven help the architectures (ia64, sparc, ppc) that support both 32-bit and 64-bit applications!
-Tony Luck
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |