Users of umad require ntohll/htonll to set/extract data from MADs. Move the definition from libibmad to libibumad.
Signed-off-by: Sean Hefty <sean.he...@intel.com> --- libibmad/include/infiniband/mad.h | 29 +---------------------------- libibmad/include/infiniband/mad_osd.h | 2 -- libibumad/include/infiniband/umad.h | 18 ++++++++++++++++-- 3 files changed, 17 insertions(+), 32 deletions(-) mode change 100644 => 100755 libibmad/include/infiniband/mad_osd.h diff --git a/libibmad/include/infiniband/mad.h b/libibmad/include/infiniband/mad.h index f3733a2..80630f4 100755 --- a/libibmad/include/infiniband/mad.h +++ b/libibmad/include/infiniband/mad.h @@ -36,6 +36,7 @@ #define _MAD_H_ #include <infiniband/mad_osd.h> +#include <infiniband/umad.h> #include <infiniband/umad_sa.h> #include <infiniband/umad_sm.h> #include <infiniband/umad_types.h> @@ -1041,34 +1042,6 @@ MAD_EXPORT void mad_dump_fields(char *buf, int bufsz, void *val, int valsz, extern MAD_EXPORT int ibdebug; -#if __BYTE_ORDER == __LITTLE_ENDIAN -#ifndef ntohll -static inline uint64_t ntohll(uint64_t x) -{ - return bswap_64(x); -} -#endif -#ifndef htonll -static inline uint64_t htonll(uint64_t x) -{ - return bswap_64(x); -} -#endif -#elif __BYTE_ORDER == __BIG_ENDIAN -#ifndef ntohll -static inline uint64_t ntohll(uint64_t x) -{ - return x; -} -#endif -#ifndef htonll -static inline uint64_t htonll(uint64_t x) -{ - return x; -} -#endif -#endif /* __BYTE_ORDER == __BIG_ENDIAN */ - /* Misc. macros: */ /** align value \a l to \a size (ceil) */ #define ALIGN(l, size) (((l) + ((size) - 1)) / (size) * (size)) diff --git a/libibmad/include/infiniband/mad_osd.h b/libibmad/include/infiniband/mad_osd.h old mode 100644 new mode 100755 index ee73561..ce5397f --- a/libibmad/include/infiniband/mad_osd.h +++ b/libibmad/include/infiniband/mad_osd.h @@ -39,9 +39,7 @@ #include <stdio.h> #include <sys/types.h> #include <unistd.h> -#include <byteswap.h> #include <inttypes.h> -#include <arpa/inet.h> #define MAD_EXPORT #define IBND_EXPORT diff --git a/libibumad/include/infiniband/umad.h b/libibumad/include/infiniband/umad.h index 153c5f1..d8a0cb3 100755 --- a/libibumad/include/infiniband/umad.h +++ b/libibumad/include/infiniband/umad.h @@ -34,6 +34,9 @@ #define _UMAD_H #include <stdint.h> +#include <stdlib.h> +#include <byteswap.h> +#include <arpa/inet.h> #ifdef __cplusplus # define BEGIN_C_DECLS extern "C" { @@ -202,8 +205,6 @@ int umad_debug(int level); void umad_addr_dump(ib_mad_addr_t * addr); void umad_dump(void *umad); -#include <stdlib.h> - static inline void *umad_alloc(int num, size_t size) { /* alloc array of umad buffers */ return calloc(num, size); @@ -214,5 +215,18 @@ static inline void umad_free(void *umad) free(umad); } +#if __BYTE_ORDER == __LITTLE_ENDIAN + #ifndef ntohll + #define ntohll(x) bswap_64(x) + #endif +#elif __BYTE_ORDER == __BIG_ENDIAN + #ifndef ntohll + #define ntohll(x) (x) + #endif +#endif +#ifndef htonll + #define htonll ntohll +#endif + END_C_DECLS #endif /* _UMAD_H */ -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html