Re: [PATCH 1/2] Add C99-style constructor macros for specific-sizedintegers

From: H. Peter Anvin
Date: Sun Mar 02 2008 - 23:43:44 EST


Matthew Wilcox wrote:
On Sun, Mar 02, 2008 at 04:09:51PM -0800, H. Peter Anvin wrote:
first place. C99 has macros of the form [U]INT#_C() to construct
numbers of an arbitrary size; this patch creates analogous macros for
the kernel s# and u# types.

Why put this in asm/types.h instead of, say, linux/types.h?


Because that's where the s* and u* types are defined.

Realistically, those probably could/should be folded into a pair of asm-generic files (for 32 and 64 bits), but that is a separate change.

I appreciate you have:

+#define S64_C(x) x ## L
+#define U64_C(x) x ## UL

and:

+#define S64_C(x) x ## LL
+#define U64_C(x) x ## ULL

but can't we use the latter for all arches?


You really don't want to, as the whole point is that you want it to match what u64/s64 is defined as, in order to avoid spurious warnings.

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/