Messages in this thread | | | Date | Wed, 16 Jun 2010 13:36:42 -0700 (PDT) | Subject | Re: How to printk/sprintf uint64_t on Sparc without format and argument types mismatch | From | David Miller <> |
| |
From: Vladislav Bolkhovitin <vst@vlnb.net> Date: Wed, 16 Jun 2010 23:08:03 +0400
> 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.
You must use %ll and explicitly cast the argument to "long long".
| |