Re: [RFC][PATCH] printk: Add %pb to print bitmaps

Joe Perches
2012-05-09T16:39:32Z

On Wed, 2012-05-09 at 18:06 +0200, Peter Zijlstra wrote:
> On Wed, 2012-05-09 at 17:41 +0200, Ingo Molnar wrote:
> > * Peter Zijlstra <peterz@infradead.org> wrote:
> >
> > > On Wed, 2012-05-09 at 16:15 +0200, Ingo Molnar wrote:
> > > > > I guess I should use %.*pb and keep the field_width in case someone
> > > > > manages to actually make bitmap_scnlistprintf() conform to it. The
> > > > > precision is unused anyway.
> > > >
> > > > That's a cute trick, and it's intuitive as well.
> > >
> > > kernel/sched/core.c:5570:3: warning: precision used with ‘%p’ gnu_printf format [-Wformat]
> > >
> > > /me curses a bit.. anybody?
> >
> > Yeah, that's a floating point precision thing (or for strings,
> > right-align) - could you use %30pb, etc?
>
> %*pb you mean? Yeah that works, field width is allowed for %p. It does
> mean we cannot ever make bitmaps respect field width though.

You could also fill a new struct with info
about the bitmap and pass a pointer to that.

struct print_bitmap_info {
int foo;
int precision;
int width;
void *bitmap;
};
...
struct print_bitmap_info bi;
bi.foo = bar;
...
bi.bitmap = &bitmap;
...
printk("%pb", &bi);