Re: Differences in bitops argument types

From: Paul Mackerras
Date: Fri Nov 02 2007 - 01:31:35 EST


Jan Kara writes:

> I've just found out that operations like constant_test_bit() take pointer
> of different types on different architectures. In particular, x86_64,
> blackfin and frv take void * while i386, s390 and m68k take unsigned long
> *. Is this intended difference? Wouldn't using void * everywhere be more
> appropriate? Thanks for answer in advance.

A bitmap is defined to be an array of unsigned longs. Using an array
of a smaller or longer type will give different results on big-endian
architectures. Therefore using unsigned long * is better, because it
finds errors where callers are using an array of some other type.

Paul.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/