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

Reply via email to