Re: [PATCH 03/22] tools lib traceevent: Addtraceevent_host_bigendian function

From: Steven Rostedt
Date: Sat Nov 23 2013 - 03:27:17 EST


On Fri, 22 Nov 2013 23:22:52 +0900
Namhyung Kim <namhyung@xxxxxxxxxx> wrote:

> 2013-11-21 (ë), 12:01 +0100, Jiri Olsa:
> > Adding traceevent_host_bigendian function to get host
> > endianity. It's used in following patches.
>
> [SNIP]
> > +static inline int traceevent_host_bigendian(void)
> > +{
> > + unsigned char str[] = { 0x1, 0x2, 0x3, 0x4 };
> > + unsigned int *ptr;
> > +
> > + ptr = (unsigned int *)str;
> > + return *ptr == 0x01020304;
>
> Is it safe for every architecture supported - especially ones that
> require stricter alignment? I know many architectures/compilers align
> stack but not sure doing this is safe for all architecture.

Would you prefer this (I tested it on both a big and little endian)

{
unsigned char str[] = { 0x1, 0x2, 0x3, 0x4 };
unsigned int val;

memcpy(&val, str, 4);
return val == 0x01020304;
}

-- Steve

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