10#ifndef ZEPHYR_INCLUDE_BLUETOOTH_ADDR_H_ 
   11#define ZEPHYR_INCLUDE_BLUETOOTH_ADDR_H_ 
   28#define BT_ADDR_LE_PUBLIC       0x00 
   29#define BT_ADDR_LE_RANDOM       0x01 
   30#define BT_ADDR_LE_PUBLIC_ID    0x02 
   31#define BT_ADDR_LE_RANDOM_ID    0x03 
   32#define BT_ADDR_LE_UNRESOLVED   0xFE  
   35#define BT_ADDR_LE_ANONYMOUS    0xFF  
   49#define BT_ADDR_LE_SIZE 7 
   64#define BT_ADDR_ANY     (&bt_addr_any) 
   66#define BT_ADDR_NONE    (&bt_addr_none) 
   68#define BT_ADDR_LE_ANY  (&bt_addr_le_any) 
   70#define BT_ADDR_LE_NONE (&bt_addr_le_none) 
   81        return memcmp(a, b, 
sizeof(*a));
 
   95        return memcmp(a, b, 
sizeof(*a));
 
  118        memcpy(dst, src, 
sizeof(*dst));
 
  132#define BT_ADDR_IS_RPA(a)     (((a)->val[5] & 0xc0) == 0x40) 
  135#define BT_ADDR_IS_NRPA(a)    (((a)->val[5] & 0xc0) == 0x00) 
  137#define BT_ADDR_IS_STATIC(a)  (((a)->val[5] & 0xc0) == 0xc0) 
  140#define BT_ADDR_SET_RPA(a)    ((a)->val[5] = (((a)->val[5] & 0x3f) | 0x40)) 
  142#define BT_ADDR_SET_NRPA(a)   ((a)->val[5] &= 0x3f) 
  144#define BT_ADDR_SET_STATIC(a) ((a)->val[5] |= 0xc0) 
  193#define BT_ADDR_STR_LEN 18 
  202#define BT_ADDR_LE_STR_LEN 30 
  216        return snprintk(str, len, 
"%02X:%02X:%02X:%02X:%02X:%02X",
 
  217                        addr->
val[5], addr->
val[4], addr->
val[3],
 
  218                        addr->
val[2], addr->
val[1], addr->
val[0]);
 
  236        switch (addr->
type) {
 
  244                strcpy(type, 
"public-id");
 
  247                strcpy(type, 
"random-id");
 
  254        return snprintk(str, len, 
"%02X:%02X:%02X:%02X:%02X:%02X (%s)",
 
const bt_addr_t bt_addr_none
 
#define BT_ADDR_IS_STATIC(a)
Definition: addr.h:133
 
static int bt_addr_to_str(const bt_addr_t *addr, char *str, size_t len)
Converts binary Bluetooth address to string.
Definition: addr.h:210
 
#define BT_ADDR_LE_PUBLIC
Definition: addr.h:28
 
#define BT_ADDR_LE_PUBLIC_ID
Definition: addr.h:30
 
int bt_addr_le_from_str(const char *str, const char *type, bt_addr_le_t *addr)
Convert LE Bluetooth address from string to binary.
 
#define BT_ADDR_IS_RPA(a)
Definition: addr.h:128
 
const bt_addr_le_t bt_addr_le_any
 
static int bt_addr_cmp(const bt_addr_t *a, const bt_addr_t *b)
Compare Bluetooth device addresses.
Definition: addr.h:75
 
static bool bt_addr_le_is_rpa(const bt_addr_le_t *addr)
Check if a Bluetooth LE address is a random private resolvable address.
Definition: addr.h:155
 
static int bt_addr_le_cmp(const bt_addr_le_t *a, const bt_addr_le_t *b)
Compare Bluetooth LE device addresses.
Definition: addr.h:89
 
static void bt_addr_copy(bt_addr_t *dst, const bt_addr_t *src)
Copy Bluetooth device address.
Definition: addr.h:112
 
#define BT_ADDR_SIZE
Definition: addr.h:36
 
#define BT_ADDR_LE_RANDOM
Definition: addr.h:29
 
static int bt_addr_le_to_str(const bt_addr_le_t *addr, char *str, size_t len)
Converts binary LE Bluetooth address to string.
Definition: addr.h:227
 
static bool bt_addr_le_is_identity(const bt_addr_le_t *addr)
Check if a Bluetooth LE address is valid identity address.
Definition: addr.h:173
 
static bool bt_addr_le_eq(const bt_addr_le_t *a, const bt_addr_le_t *b)
Determine equality of two Bluetooth LE device addresses.
Definition: addr.h:102
 
static void bt_addr_le_copy(bt_addr_le_t *dst, const bt_addr_le_t *src)
Copy Bluetooth LE device address.
Definition: addr.h:122
 
int bt_addr_le_create_static(bt_addr_le_t *addr)
Create a Bluetooth LE random static address.
 
int bt_addr_from_str(const char *str, bt_addr_t *addr)
Convert Bluetooth address from string to binary.
 
const bt_addr_t bt_addr_any
 
const bt_addr_le_t bt_addr_le_none
 
int bt_addr_le_create_nrpa(bt_addr_le_t *addr)
Create a Bluetooth LE random non-resolvable private address.
 
#define BT_ADDR_LE_RANDOM_ID
Definition: addr.h:31
 
int snprintk(char *str, size_t size, const char *fmt,...)
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
 
char * strcpy(char *ZRESTRICT d, const char *ZRESTRICT s)
 
int memcmp(const void *m1, const void *m2, size_t n)
 
void * memcpy(void *ZRESTRICT d, const void *ZRESTRICT s, size_t n)
 
uint8_t type
Definition: addr.h:49
 
bt_addr_t a
Definition: addr.h:50
 
uint8_t val[6]
Definition: addr.h:40