diff --git a/headers/os/support/ByteOrder.h b/headers/os/support/ByteOrder.h index 05c4589cc6..de6e959a15 100644 --- a/headers/os/support/ByteOrder.h +++ b/headers/os/support/ByteOrder.h @@ -29,11 +29,6 @@ typedef enum { # define ntohl(x) B_BENDIAN_TO_HOST_INT32(x) # define htons(x) B_HOST_TO_BENDIAN_INT16(x) # define ntohs(x) B_BENDIAN_TO_HOST_INT16(x) - -static inline uint16 __swap_int16(uint16 arg) -{ - return (arg >> 8) | (arg << 8); -} #endif /* always swap macros */ @@ -128,9 +123,11 @@ extern float __swap_float(float arg); #if __GNUC__ >= 4 #define __swap_int64(arg) __builtin_bswap64(arg) #define __swap_int32(arg) __builtin_bswap32(arg) +#define __swap_int16(arg) __builtin_bswap16(arg) #else extern uint64 __swap_int64(uint64 arg); extern uint32 __swap_int32(uint32 arg); +extern uint16 __swap_int16(uint16 arg); #endif #ifdef __cplusplus diff --git a/headers/posix/netinet/in.h b/headers/posix/netinet/in.h index 169a6cb04c..ab891cb8dd 100644 --- a/headers/posix/netinet/in.h +++ b/headers/posix/netinet/in.h @@ -31,10 +31,6 @@ typedef uint32_t in_addr_t; # else extern unsigned int __swap_int32(unsigned int); /* private */ # endif - static inline uint16_t __swap_int16(uint16_t arg) - { - return (arg >> 8) | (arg << 8); - } extern uint16_t __swap_int16(uint16_t); /* private */ # if BYTE_ORDER == LITTLE_ENDIAN # define htonl(x) ((uint32_t)__swap_int32(x)) diff --git a/src/build/libroot/byteorder.cpp b/src/build/libroot/byteorder.cpp index ebd6ae0955..fdcbf328ae 100644 --- a/src/build/libroot/byteorder.cpp +++ b/src/build/libroot/byteorder.cpp @@ -7,6 +7,12 @@ #include +uint16 +__swap_int16(uint16 value) +{ + return (value >> 8) | (value << 8); +} + uint32 __swap_int32(uint32 value) {