On Jun 16, 09 10:56:39 +1000, Peter Hutterer wrote: > This patch adds the following three macros: > count_bytes(bits) - the number of bytes needed to hold 'bits' > count_4byte_units(bytes) - the number of 4-byte units to hold 'bytes' > pad_to_4(bytes) - the closest multiple of 4 equal to or larger than 'bytes'.
Generally I like abstraction like this. I only have few minor comments: - Macros should consist of capital letters - for a reason. They tend to behave weird if the arguments are lvalues with side effects (like i++). That said, these macros are save. - The names are not describing. count_bytes() counts bytes, but from what? And it actually doesn't count. Suggesting something like bytes_needed_for_bits(), dwords_needed_for_bytes(), pad_to_dwords() - pad_to_dwords(bytes) would probably be better (((bytes) + 3) & ~3) but that could result in the same code eventually if the compiler is smart enough and the code equivalent enough. Which I doubt (negative values?) - They should all explicitly cast to unsigned. But that again makes it difficult to use the same macros for different types (32/64). Dunno what to do about that :-( If they should be able to work with signed values, they will definitely be more complex. CU Matthias -- Matthias Hopf <[email protected]> __ __ __ Maxfeldstr. 5 / 90409 Nuernberg (_ | | (_ |__ [email protected] Phone +49-911-74053-715 __) |_| __) |__ R & D www.mshopf.de _______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
