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