From 3b99af699baba3ddbec2fbe74af6392678fbe31d Mon Sep 17 00:00:00 2001 From: Jan Breuer <jan.breuer@jaybee.cz> Date: 周二, 10 11月 2015 01:04:30 +0800 Subject: [PATCH] Add array result functions --- libscpi/src/utils.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 47 insertions(+), 0 deletions(-) diff --git a/libscpi/src/utils.c b/libscpi/src/utils.c index f69428d..7902569 100644 --- a/libscpi/src/utils.c +++ b/libscpi/src/utils.c @@ -928,3 +928,50 @@ strncpy(__s, buffer, __ssize); return __s; } + +/** + * Get native CPU endiannes + * @return + */ +scpi_array_format_t SCPI_GetNativeFormat(void) { + // @todo: endianity runtime test + return SCPI_FORMAT_LITTLEENDIAN; +} + +/** + * Swap 16bit number + * @param val + * @return + */ +uint16_t SCPI_Swap16(uint16_t val) { + return ((val & 0x00FF) << 8) | + ((val & 0xFF00) >> 8); +} + +/** + * Swap 32bit number + * @param val + * @return + */ +uint32_t SCPI_Swap32(uint32_t val) { + return ((val & 0x000000FF) << 24) | + ((val & 0x0000FF00) << 8) | + ((val & 0x00FF0000) >> 8) | + ((val & 0xFF000000) >> 24); +} + +/** + * Swap 64bit number + * @param val + * @return + */ +uint64_t SCPI_Swap64(uint64_t val) { + return ((val & 0x00000000000000FFul) << 56) | + ((val & 0x000000000000FF00ul) << 40) | + ((val & 0x0000000000FF0000ul) << 24) | + ((val & 0x00000000FF000000ul) << 8) | + ((val & 0x000000FF00000000ul) >> 8) | + ((val & 0x0000FF0000000000ul) >> 24) | + ((val & 0x00FF000000000000ul) >> 40) | + ((val & 0xFF00000000000000ul) >> 56); +} \ No newline at end of file -- Gitblit v1.9.1