[PATCH] shared: Add helpers for address convertion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This add shared helpers for address convertion to and from string.
Those are also more error resiliant comparing to bdaddr converters
from lib/bluetooth.h.
---
 src/shared/util.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/shared/util.h b/src/shared/util.h
index 3f5f6dfb5..e86fc9ffc 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -26,6 +26,8 @@
 #include <alloca.h>
 #include <byteswap.h>
 #include <string.h>
+#include <stdbool.h>
+#include <stdio.h>
 
 #if __BYTE_ORDER == __LITTLE_ENDIAN
 #define le16_to_cpu(val) (val)
@@ -113,6 +115,20 @@ const char *bt_uuid32_to_str(uint32_t uuid);
 const char *bt_uuidstr_to_str(const char *uuid);
 const char *bt_appear_to_str(uint16_t appearance);
 
+static inline bool bt_addr_to_str(const uint8_t addr[6], char *str, size_t len)
+{
+	return snprintf(str, len, "%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x",
+			addr[5], addr[4], addr[3], addr[2], addr[1],
+			addr[0]) == 17;
+}
+
+static inline bool str2addr(const char *str, uint8_t addr[6])
+{
+	return sscanf(str, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx",
+			&addr[5], &addr[4], &addr[3], &addr[2], &addr[1],
+			&addr[0]) == 6;
+}
+
 static inline int8_t get_s8(const void *ptr)
 {
 	return *((int8_t *) ptr);
-- 
2.14.3

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux