Re: __LITTLE_ENDIAN vs. __LITTLE_ENDIAN_BITFIELD

From: Andreas Schwab
Date: Fri Oct 05 2007 - 16:04:32 EST


Timur Tabi <timur@xxxxxxxxxxxxx> writes:

> I'm writing a driver that talks to hardware that has a shift register.
> The register can be shifted either left or right, so all the bits
> obviously have to be in order, but it can be either order.

Bit addressing is strictly internal to the cpu, the smallest unit that
the cpu can address externally is a byte. The only place where bit
order matters on the C level is in a bitfield that is overlayed over a
block of memory, but this is not visible outside the cpu.

> What I want to do is to have the driver detect when byte-endianness
> doesn't match bit-endianness when it writes the the word to a
> memory-mapped device.

The bit mapping on your device is strictly internal to the device and
has nothing to do with bit order on the C level.

Andreas.

--
Andreas Schwab, SuSE Labs, schwab@xxxxxxx
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
-
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/