24#include "nimble/nimble/include/nimble/ble.h"
30#define BLE_STORE_OBJ_TYPE_OUR_SEC 1
31#define BLE_STORE_OBJ_TYPE_PEER_SEC 2
32#define BLE_STORE_OBJ_TYPE_CCCD 3
33#define BLE_STORE_OBJ_TYPE_PEER_DEV_REC 4
35#if MYNEWT_VAL(ENC_ADV_DATA)
36#define BLE_STORE_OBJ_TYPE_ENC_ADV_DATA 5
38#define BLE_STORE_OBJ_TYPE_PEER_ADDR 6
40#define BLE_STORE_OBJ_TYPE_LOCAL_IRK 7
42#define BLE_STORE_EVENT_OVERFLOW 1
45#define BLE_STORE_EVENT_FULL 2
66 unsigned ediv_rand_present:1;
86 uint8_t ltk_present:1;
89 uint8_t irk_present:1;
92 uint8_t csrk_present:1;
93 uint32_t sign_counter;
95 unsigned authenticated:1;
126 ble_addr_t peer_addr;
127 uint16_t chr_val_handle;
129 unsigned value_changed:1;
132#if MYNEWT_VAL(ENC_ADV_DATA)
137struct ble_store_key_ead {
142 ble_addr_t peer_addr;
152struct ble_store_value_ead {
153 ble_addr_t peer_addr;
154 unsigned km_present:1;
155 struct key_material *km;
159struct ble_store_key_local_irk {
165struct ble_store_value_local_irk {
171struct ble_store_key_rpa_rec{
172 ble_addr_t peer_rpa_addr;
175struct ble_store_value_rpa_rec{
176 ble_addr_t peer_rpa_addr;
177 ble_addr_t peer_addr;
187#if MYNEWT_VAL(ENC_ADV_DATA)
188 struct ble_store_key_ead ead;
190 struct ble_store_key_rpa_rec rpa_rec;
191 struct ble_store_key_local_irk local_irk;
201#if MYNEWT_VAL(ENC_ADV_DATA)
202 struct ble_store_value_ead ead;
204 struct ble_store_value_rpa_rec rpa_rec;
205 struct ble_store_value_local_irk local_irk;
208struct ble_store_status_event {
243 uint16_t conn_handle;
265typedef int ble_store_read_fn(
int obj_type,
const union ble_store_key *key,
281typedef int ble_store_write_fn(
int obj_type,
const union ble_store_value *val);
296typedef int ble_store_delete_fn(
int obj_type,
const union ble_store_key *key);
312typedef int ble_store_status_fn(
struct ble_store_status_event *event,
315int ble_store_read(
int obj_type,
const union ble_store_key *key,
318int ble_store_delete(
int obj_type,
const union ble_store_key *key);
319int ble_store_overflow_event(
int obj_type,
const union ble_store_value *value);
320int ble_store_full_event(
int obj_type, uint16_t conn_handle);
340#if MYNEWT_VAL(ENC_ADV_DATA)
341int ble_store_read_ead(
const struct ble_store_key_ead *key,
342 struct ble_store_value_ead *out_value);
343int ble_store_write_ead(
const struct ble_store_value_ead *value);
344int ble_store_delete_ead(
const struct ble_store_key_ead *key);
345void ble_store_key_from_value_ead(
struct ble_store_key_ead *out_key,
346 const struct ble_store_value_ead *value);
349int ble_store_read_local_irk(
const struct ble_store_key_local_irk *key,
350 struct ble_store_value_local_irk *out_value);
351int ble_store_write_local_irk(
const struct ble_store_value_local_irk *value);
352int ble_store_delete_local_irk(
const struct ble_store_key_local_irk *key);
353void ble_store_key_from_value_local_irk(
struct ble_store_key_local_irk *out_key,
354 const struct ble_store_value_local_irk *value);
358int ble_store_read_rpa_rec(
const struct ble_store_key_rpa_rec *key,
359 struct ble_store_value_rpa_rec *out_value);
360int ble_store_write_rpa_rec(
const struct ble_store_value_rpa_rec *value);
361int ble_store_delete_rpa_rec(
const struct ble_store_key_rpa_rec *key);
362void ble_store_key_from_value_rpa_rec(
struct ble_store_key_rpa_rec *out_key,
363 const struct ble_store_value_rpa_rec *value);
365void ble_store_key_from_value(
int obj_type,
369typedef int ble_store_iterator_fn(
int obj_type,
373int ble_store_iterate(
int obj_type,
374 ble_store_iterator_fn *callback,
377int ble_store_clear(
void);
381int ble_store_util_bonded_peers(ble_addr_t *out_peer_id_addrs,
384int ble_store_util_delete_all(
int type,
const union ble_store_key *key);
385int ble_store_util_delete_peer(
const ble_addr_t *peer_id_addr);
386int ble_store_util_delete_oldest_peer(
void);
387int ble_store_util_count(
int type,
int *out_count);
388int ble_store_util_status_rr(
struct ble_store_status_event *event,
void *arg);
Definition ble_store.h:104
ble_addr_t peer_addr
Definition ble_store.h:109
uint16_t chr_val_handle
Definition ble_store.h:115
uint8_t idx
Definition ble_store.h:118
Definition ble_store.h:53
uint16_t ediv
Definition ble_store.h:61
uint64_t rand_num
Definition ble_store.h:64
uint8_t idx
Definition ble_store.h:69
ble_addr_t peer_addr
Definition ble_store.h:58
Definition ble_store.h:125
Definition ble_store.h:78
Definition ble_store.h:184
Definition ble_store.h:198