Big-endian I/O memory
One of the few significant changes merged after 2.6.12-rc2 is a new set of I/O memory functions for working with big-endian devices. These functions are:
unsigned int ioread16be(void __iomem *addr); unsigned int ioread32be(void __iomem *addr) void iowrite16be (u16 datum, void __iomem *addr); viod iowrite32be (u32 datum, void __iomem *addr);
These functions will handle the necessary byte swapping (or lack thereof)
to present properly-ordered values on the host architecture. They are
exported to modules.
Index entries for this article | |
---|---|
Kernel | I/O memory |
Posted Apr 22, 2005 15:59 UTC (Fri)
by scarabaeus (guest, #7142)
[Link]
> These functions will handle the necessary byte swapping (or lack thereof)
to present properly-ordered values on the host architecture. Hmmm - looks like you took "byte-swapping" a little too literally there! ;-)
Big-endian I/O memory
> void iowrite16be (u16 datum, void __iomem *addr);
> viod iowrite32be (u32 datum, void __iomem *addr);
^^