diff --git a/system/btcore/include/bdaddr.h b/system/btcore/include/bdaddr.h index 3ef8b16eab31eeb8f3ab8192f3e921639083559d..b9a99ce0796aaa2a468823e8fefd60ccdba281dd 100644 --- a/system/btcore/include/bdaddr.h +++ b/system/btcore/include/bdaddr.h @@ -38,6 +38,10 @@ bool bdaddr_is_empty(const bt_bdaddr_t *addr); // may be NULL. bool bdaddr_equals(const bt_bdaddr_t *first, const bt_bdaddr_t *second); +// Returns destination bdaddr |dest| after copying |src| to |dest|. +// |dest| and |src| must not be NULL. +bt_bdaddr_t *bdaddr_copy(bt_bdaddr_t *dest, const bt_bdaddr_t *src); + // Makes a string representation of |addr| and places it into |string|. |size| // refers to the size of |string|'s buffer and must be >= 18. On success, this // function returns |string|, otherwise it returns NULL. Neither |addr| nor |string| diff --git a/system/btcore/src/bdaddr.c b/system/btcore/src/bdaddr.c index 8503c69768cb3850580b50949bd3f9398cec0ebf..f0f85ddf1c92b4b2a5d4f69bbd838681ba19ca65 100644 --- a/system/btcore/src/bdaddr.c +++ b/system/btcore/src/bdaddr.c @@ -37,6 +37,13 @@ bool bdaddr_equals(const bt_bdaddr_t *first, const bt_bdaddr_t *second) { return memcmp(first, second, sizeof(bt_bdaddr_t)) == 0; } +bt_bdaddr_t *bdaddr_copy(bt_bdaddr_t *dest, const bt_bdaddr_t *src) { + assert(dest != NULL); + assert(src != NULL); + + return (bt_bdaddr_t *)memcpy(dest, src, sizeof(bt_bdaddr_t)); +} + const char *bdaddr_to_string(const bt_bdaddr_t *addr, char *string, size_t size) { assert(addr != NULL); assert(string != NULL);