Messages in this thread | | | From | Oliver Xymoron <> | Subject | Re: Constant byteorder macros. | Date | Thu, 20 Jan 2000 12:52:23 -0600 |
| |
On Thu, 20 Jan 2000, H. Peter Anvin wrote:
> > switch (status) { > > case cpu_to_le16(CONSTANT_XYZ): > > > > ... I need to define new macros __constant_cpu_to_le16(), etc. > > Given that gcc has a __builtin_constant_p(x), you ought to be able to > do: > > #define cpu_to_le16(x) ( __builtin_constant_p(x) ? __constant_cpu_to_le16(x) : __cpu_to_le16(x) )
This is ugly and potentially means changing tons of macros. Couldn't you just do the appropriate byteswap on the switch variable instead? There aren't many (any?) other places in C aside from the preprocessor and array sizing that insist on constant expressions.
-- "Love the dolphins," she advised him. "Write by W.A.S.T.E.."
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |