On Wed, 26 Sep 2007 17:18:06 +0530, Balbir Singh wrote: > Andreas Schwab wrote: > > Maxim Uvarov <[EMAIL PROTECTED]> writes: > > > >> diff --git a/Documentation/accounting/getdelays.c > >> b/Documentation/accounting/getdelays.c > >> index cbee3a2..73924df 100644 > >> --- a/Documentation/accounting/getdelays.c > >> +++ b/Documentation/accounting/getdelays.c > >> @@ -208,7 +208,7 @@ void print_delayacct(struct taskstats *t) > >> void task_context_switch_counts(struct taskstats *t) > >> { > >> printf("\n\nTask %15s%15s\n" > >> - " %15lu%15lu\n", > >> + " %15llu%15llu\n", > >> "voluntary", "nonvoluntary", > >> t->nvcsw, t->nivcsw); > > > > __u64 is not always long long. > > What is the maximum size of long long across all architectures? > How does one format __u64 for printing?
With %lu you get warnings when u64 is long long (32-bit). With %llu you get warnings when u64 is plain long (most 64-bit). Hence %llu + long long cast, i.e.: printf("%llu", (unsigned long long)value); This is ugly but luckily imposes no runtime overheads on current 32- or 64-bit machines. This could be done more cleanly if the u64 typedef also #define:d a corresponding FMT_U64 format string. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/