[lttng-dev] [PATCH v3 babeltrace] Added fallback for betoh/htobe if they do not exist
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Thu Apr 24 02:14:42 EDT 2014
Merged. I added the missing space between "." and "*" in one
comment. I also changed the patch title to present tense "Add
fallback...".
Thanks!
Mathieu
----- Original Message -----
> From: "Jesper Derehag" <jderehag at hotmail.com>
> To: "mathieu desnoyers" <mathieu.desnoyers at efficios.com>
> Cc: lttng-dev at lists.lttng.org, "Jesper Derehag" <jderehag at hotmail.com>
> Sent: Wednesday, April 23, 2014 5:45:26 PM
> Subject: [PATCH v3 babeltrace] Added fallback for betoh/htobe if they do not exist
>
> For older systems endian.h may not contain the betoh/htobe macros.
> If they are missing, add them and make sure that any user of
> htobe/betoh uses the compat/endian.h
>
> Signed-off-by: Jesper Derehag <jderehag at hotmail.com>
> Tested-by: Jesper Derehag <jderehag at hotmail.com>
> ---
> Compared to v2 this fixes the coding style for comments.
> I just want to mention that I did run checkpatch for v2 and
> that it passed. But fixed according to Mr. Desnoyers
> comments anyway.
>
> formats/lttng-live/lttng-live-comm.c | 1 +
> include/babeltrace/endian.h | 93
> +++++++++++++++++++++++++++++++++++-
> 2 files changed, 93 insertions(+), 1 deletion(-)
>
> diff --git a/formats/lttng-live/lttng-live-comm.c
> b/formats/lttng-live/lttng-live-comm.c
> index 9feb718..3aad981 100644
> --- a/formats/lttng-live/lttng-live-comm.c
> +++ b/formats/lttng-live/lttng-live-comm.c
> @@ -50,6 +50,7 @@
> #include <babeltrace/ctf/events-internal.h>
> #include <formats/ctf/events-private.h>
>
> +#include <babeltrace/endian.h>
> #include <babeltrace/compat/memstream.h>
>
> #include "lttng-live.h"
> diff --git a/include/babeltrace/endian.h b/include/babeltrace/endian.h
> index f15a44f..fcfe583 100644
> --- a/include/babeltrace/endian.h
> +++ b/include/babeltrace/endian.h
> @@ -47,7 +47,98 @@
> #define BYTE_ORDER __BYTE_ORDER
> #else
> #include <endian.h>
> -#endif
> +
> +/*
> + * htobe/betoh are not defined for glibc <2.9, so add them
> + * explicitly if they are missing.
> + */
> +# ifdef __USE_BSD
> +/* Conversion interfaces.*/
> +# include <byteswap.h>
> +
> +# if __BYTE_ORDER == __LITTLE_ENDIAN
> +# ifndef htobe16
> +# define htobe16(x) __bswap_16(x)
> +# endif
> +# ifndef htole16
> +# define htole16(x) (x)
> +# endif
> +# ifndef be16toh
> +# define be16toh(x) __bswap_16(x)
> +# endif
> +# ifndef le16toh
> +# define le16toh(x) (x)
> +# endif
> +
> +# ifndef htobe32
> +# define htobe32(x) __bswap_32(x)
> +# endif
> +# ifndef htole32
> +# define htole32(x) (x)
> +# endif
> +# ifndef be32toh
> +# define be32toh(x) __bswap_32(x)
> +# endif
> +# ifndef le32toh
> +# define le32toh(x) (x)
> +# endif
> +
> +# ifndef htobe64
> +# define htobe64(x) __bswap_64(x)
> +# endif
> +# ifndef htole64
> +# define htole64(x) (x)
> +# endif
> +# ifndef be64toh
> +# define be64toh(x) __bswap_64(x)
> +# endif
> +# ifndef le64toh
> +# define le64toh(x) (x)
> +# endif
> +
> +# else /* __BYTE_ORDER == __LITTLE_ENDIAN */
> +# ifndef htobe16
> +# define htobe16(x) (x)
> +# endif
> +# ifndef htole16
> +# define htole16(x) __bswap_16(x)
> +# endif
> +# ifndef be16toh
> +# define be16toh(x) (x)
> +# endif
> +# ifndef le16toh
> +# define le16toh(x) __bswap_16(x)
> +# endif
> +
> +# ifndef htobe32
> +# define htobe32(x) (x)
> +# endif
> +# ifndef htole32
> +# define htole32(x) __bswap_32(x)
> +# endif
> +# ifndef be32toh
> +# define be32toh(x) (x)
> +# endif
> +# ifndef le32toh
> +# define le32toh(x) __bswap_32(x)
> +# endif
> +
> +# ifndef htobe64
> +# define htobe64(x) (x)
> +# endif
> +# ifndef htole64
> +# define htole64(x) __bswap_64(x)
> +# endif
> +# ifndef be64toh
> +# define be64toh(x) (x)
> +# endif
> +# ifndef le64toh
> +# define le64toh(x) __bswap_64(x)
> +# endif
> +
> +# endif /* __BYTE_ORDER == __LITTLE_ENDIAN */
> +# endif /* __USE_BSD */
> +#endif /* else -- __FreeBSD__ */
>
> #ifndef FLOAT_WORD_ORDER
> #ifdef __FLOAT_WORD_ORDER
> --
> 1.8.4.1
>
>
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list