lkml.org 
[lkml]   [2017]   [Jun]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 14/30] tools include: Add byte-swapping macros to kernel.h
    Date
    From: Adrian Hunter <adrian.hunter@intel.com>

    Add byte-swapping macros to kernel.h

    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Link: http://lkml.kernel.org/r/1495786658-18063-23-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/include/linux/kernel.h | 35 +++++++++++++++++++++++++++++------
    1 file changed, 29 insertions(+), 6 deletions(-)

    diff --git a/tools/include/linux/kernel.h b/tools/include/linux/kernel.h
    index 73ccc48126bb..039bb85e4171 100644
    --- a/tools/include/linux/kernel.h
    +++ b/tools/include/linux/kernel.h
    @@ -5,6 +5,8 @@
    #include <stddef.h>
    #include <assert.h>
    #include <linux/compiler.h>
    +#include <endian.h>
    +#include <byteswap.h>

    #ifndef UINT_MAX
    #define UINT_MAX (~0U)
    @@ -67,12 +69,33 @@
    #endif
    #endif

    -/*
    - * Both need more care to handle endianness
    - * (Don't use bitmap_copy_le() for now)
    - */
    -#define cpu_to_le64(x) (x)
    -#define cpu_to_le32(x) (x)
    +#if __BYTE_ORDER == __BIG_ENDIAN
    +#define cpu_to_le16 bswap_16
    +#define cpu_to_le32 bswap_32
    +#define cpu_to_le64 bswap_64
    +#define le16_to_cpu bswap_16
    +#define le32_to_cpu bswap_32
    +#define le64_to_cpu bswap_64
    +#define cpu_to_be16
    +#define cpu_to_be32
    +#define cpu_to_be64
    +#define be16_to_cpu
    +#define be32_to_cpu
    +#define be64_to_cpu
    +#else
    +#define cpu_to_le16
    +#define cpu_to_le32
    +#define cpu_to_le64
    +#define le16_to_cpu
    +#define le32_to_cpu
    +#define le64_to_cpu
    +#define cpu_to_be16 bswap_16
    +#define cpu_to_be32 bswap_32
    +#define cpu_to_be64 bswap_64
    +#define be16_to_cpu bswap_16
    +#define be32_to_cpu bswap_32
    +#define be64_to_cpu bswap_64
    +#endif

    int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
    int scnprintf(char * buf, size_t size, const char * fmt, ...);
    --
    2.9.4
    \
     
     \ /
      Last update: 2017-07-01 00:31    [W:5.253 / U:0.400 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site