Fix byte_swap_16, ntohs and htons types
authorCyprien Laplace <cyprien@cypou.net>
Mon, 11 Mar 2019 02:15:59 +0000 (22:15 -0400)
committerNathael Pajani <nathael.pajani@ed3l.fr>
Tue, 8 Nov 2022 16:03:05 +0000 (17:03 +0100)
All these functions are using 16-bits arguments and results.

include/core/lpc_core.h
include/lib/utils.h

index 26e7bd7..fb0e5cd 100644 (file)
@@ -209,7 +209,7 @@ static inline uint16_t byte_swap_16(volatile uint16_t value)
 {
        uint16_t result = 0;
        __asm volatile ("rev16 %0, %1" : "=l" (result) : "l" (value));
-       return (result & 0xFFFF);
+       return result;
 }
 /* Change endianness of a 32-bit word */
 static inline uint32_t byte_swap_32(volatile uint32_t value)
index 29e5e7b..93d2630 100644 (file)
@@ -61,8 +61,8 @@ uint8_t bits_set(uint32_t x);
 static inline uint32_t ntohl(uint32_t val) __attribute__ ((alias ("byte_swap_32")));
 static inline uint32_t htonl(uint32_t val) __attribute__ ((alias ("byte_swap_32")));
 /* Short versions */
-static inline uint16_t ntohs(uint32_t val) __attribute__ ((alias ("byte_swap_16")));
-static inline uint16_t htons(uint32_t val) __attribute__ ((alias ("byte_swap_16")));
+static inline uint16_t ntohs(uint16_t val) __attribute__ ((alias ("byte_swap_16")));
+static inline uint16_t htons(uint16_t val) __attribute__ ((alias ("byte_swap_16")));
 
 
 /* MIN and MAX */