On Sun, Apr 12, 2009 at 2:35 AM, Rudolf Marek r.marek@assembler.cz wrote:
on all platforms, but I think little-endian makes much more sense (eg, rename the ntohl() calls to le32_to_cpu() ).
Hi,
Why not to use instead:
#define ntohl(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | \ (((x)&0xff0000) >> 8) | (((x)&0xff000000) >> 24))
#define ntohl(x) __asm__("bswap %0" : "=r" (x) : "0" (x));
I'm surprised that this issue has turned out to be an issue :-) It's definitely not the first thing I expected.
I'm fine with le32, although it may produce confusion in the future. People's fingers seem to want to type [nh]to[nh]. I don't see how ntoh* can cause so much bad code in seabios, but i want seabios to be happy, so a patch is fine too. Kevin, are you certain it's that big problem?
Also, w.r.t. getting rid of the offset in the file header: one nice thing about that design is the file header and the file data need not be contiguous in the flash. It is a much more flexible setup. Again, given the small number of entries in a CBFS (certainly < 64), is the savings of < 512 bytes or so worth this change?
thanks
ron