On 13 Mar 2001, Gjermund Gusland Thorsen wrote: > What does it take to make code not depending on little or big endian
- Never make assumptions about the ordering of bytes in a multi-word entity (short, int, long, long long). I.e. don't cast the address of an int to a char pointer and access the individual bytes. Avoid casts of pointers to pointers to entities of different sizes. - When accessing the hardware, use the correct functions for the specific bus type. PCI memory space requires {read,write}[bwl](), PCI I/O space requires {in,out}[bwl](). These functions take care of the PCI bus being little endian. - When handling data that is in a specific endianness, use the cpu_to[bl]e*() and [bl]e*_to_cpu() conversion routines. In the case of TCP/IP (which is big endian), use the hton*() and ntoh*() functions. Anything I'm missing? Is this part of a HOWTO? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [EMAIL PROTECTED] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds