static void peer_ids_init() { fds_record_desc_t record_desc; fds_flash_record_t record; fds_find_token_t find_tok = {0}; uint16_t const record_key = peer_data_id_to_record_key(PM_PEER_DATA_ID_BONDING); if (!m_pds.peer_ids_initialized) { while(fds_record_find_by_key(record_key, &record_desc, &find_tok) == FDS_SUCCESS) { pm_peer_id_t peer_id; // It is safe to ignore the return value since we just obtained // this descriptor and also 'record' is different from NULL. (void)fds_record_open(&record_desc, &record); peer_id = file_id_to_peer_id(record.p_header->ic.file_id); (void)fds_record_close(&record_desc); (void)peer_id_allocate(peer_id); } m_pds.peer_ids_initialized = true; } }
pm_peer_id_t pds_peer_id_allocate(void) { if (!MODULE_INITIALIZED) { return PM_PEER_ID_INVALID; } PEER_IDS_INITIALIZE(); return peer_id_allocate(PM_PEER_ID_INVALID); }
static void peer_ids_load() { fds_record_desc_t record_desc; fds_flash_record_t record; fds_find_token_t ftok; memset(&ftok, 0x00, sizeof(fds_find_token_t)); uint16_t const record_key = peer_data_id_to_record_key(PM_PEER_DATA_ID_BONDING); while (fds_record_find_by_key(record_key, &record_desc, &ftok) == FDS_SUCCESS) { pm_peer_id_t peer_id; // It is safe to ignore the return value since the descriptor was // just obtained and also 'record' is different from NULL. (void)fds_record_open(&record_desc, &record); peer_id = file_id_to_peer_id(record.p_header->ic.file_id); (void)fds_record_close(&record_desc); (void)peer_id_allocate(peer_id); } }
pm_peer_id_t pds_peer_id_allocate(void) { NRF_PM_DEBUG_CHECK(m_module_initialized); return peer_id_allocate(PM_PEER_ID_INVALID); }