How to printk/sprintf uint64_t on Sparc without format and argumenttypes mismatch

From: Vladislav Bolkhovitin
Date: Wed Jun 16 2010 - 15:07:50 EST


Hello,

We in SCST project need to printk/sprintf variables of type uint64_t. Size of those variables is required to be 64-bit integer. On x86 we printk/sprintf them as %lld, but on Sparc we have a compiler warnings like:

scst/src/scst_targ.c:2136: warning: format ‘%llx’ expects type ‘long long unsigned int’, but argument 4 has type ‘uint64_t’.

It is because on Sparc uint64_t defined as unsigned long, but on x86 - as unsigned long long.

Sure, we can cast all the cases to unsigned long long, but we wonder, maybe there is a more elegant way to do that without the warning? For instance, like %z for size_t or PRId64 in the user space.

Thanks,
Vlad

--
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/