On Mon, Dec 08, 2014 at 03:42:10PM +0000, Steven Rostedt wrote:
> On Fri,  5 Dec 2014 19:04:12 +0000
> "Javi Merino" <javi.mer...@arm.com> wrote:

[...]

> > +
> > +DEFINE_PRINT_ARRAY(u8, unsigned int, "0x%x");
> > +DEFINE_PRINT_ARRAY(u16, unsigned int, "0x%x");
> > +DEFINE_PRINT_ARRAY(u32, unsigned int, "0x%x");
> > +DEFINE_PRINT_ARRAY(u64, unsigned long long, "0x%llx");
> > +
> 
> I would really like to avoid adding a bunch of macros for each type.
> Can't we have something like this:
> ftrace_print_array(struct trace_seq *p, void *buf, int buf_len, 
>               int size)
> {
>       char *prefix = "";
>       void *ptr = buf;
> 
>       while (ptr < buf + buf_len) {
>               switch(size) {
>               case 8:
>                       trace_seq_printf("%s0x%x", prefix,
>                               *(unsigned char *)ptr);

I think this should be *(u8 *) etc.

Otherwise, I don't have a problem with this approach.  It's less
ugly than my original.

>                       break;
>               case 16:
>                       trace_seq_printf("%s0x%x", prefix,
>                               *(unsigned short *)ptr);
>                       break;
>               case 32:
>                       trace_seq_printf("%s0x%x", prefix,
>                               *(unsigned int *)ptr);
>                       break;
>               case 64:
>                       trace_seq_printf("%s0x%llx", prefix,
>                               *(unsigned long long *)ptr);
>                       break;
>               default:
>                       BUG();
>               }
>               prefix = ",";
>               ptr += size;
>       }
> 
> }
> 
> We probably could even make the "BUG()" into a build bug, with a little
> work.

That sounds possible.

Javi?

Cheers
---Dave
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to