Re: How do I printk <type> correctly?

From: Randy Dunlap
Date: Wed Oct 29 2008 - 11:34:41 EST


On Wed, 29 Oct 2008 10:00:04 +0200 Artem Bityutskiy wrote:

> On Tue, 2008-10-28 at 16:11 -0700, Randy Dunlap wrote:
> > On Thu, 23 Oct 2008 15:41:33 +0400 Alexey Dobriyan wrote:
> >
> > > If variable is of Type use printk format specifier.
> > > ---------------------------------------------------------
> > > int %d or %x
> > > unsigned int %u or %x
> > > long %ld ot %lx
> > > unsigned long %lu or %lx
> > > long long %lld or %llx
> > > unsigned long long %llu or %llx
> > > size_t %zu or %zx
> > > ssize_t %zd or %zx
> > >
> > > Raw pointer value SHOULD be printed with %p.
> > >
> > > u64 SHOULD be printed with %llu/%llx, (unsigned long long):
> > >
> > > printk("%llu", (unsigned long long)u64_var);
> > >
> > > s64 SHOULD be printed with %lld/%llx, (long long):
> > >
> > > printk("%lld", (long long)s64_var);
> > >
> > > If type is dependent on config option (sector_t), use format specifier
> > > of biggest type and explicitly cast to it.
> > >
> > > Reminder: sizeof() result is of type size_t.
>
> Do we have this somewhere in Documentation? Would be nice to have it.

It's in the C standard, which we don't try to put into Documentation/ AFAIK.

section 6.5.3.4, The sizeof operator:

4 The value of the result is implementation-defined, and its type (an unsigned integer type)
is size_t, defined in <stddef.h> (and other headers).


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