ret_code_t pm_peer_data_load(pm_peer_id_t peer_id, pm_peer_data_id_t data_id, void * p_data, uint16_t * p_length) { VERIFY_MODULE_INITIALIZED(); VERIFY_PARAM_NOT_NULL(p_data); VERIFY_PARAM_NOT_NULL(p_length); if (ALIGN_NUM(4, *p_length) != *p_length) { return NRF_ERROR_INVALID_PARAM; } pm_peer_data_t peer_data; memset(&peer_data, 0, sizeof(peer_data)); peer_data.length_words = BYTES_TO_WORDS(*p_length); peer_data.data_id = data_id; peer_data.p_all_data = p_data; ret_code_t err_code = pdb_peer_data_load(peer_id, data_id, &peer_data); *p_length = peer_data.length_words * BYTES_PER_WORD; return err_code; }
ret_code_t pm_peer_data_bonding_store(pm_peer_id_t peer_id, pm_peer_data_bonding_t const * p_data, pm_store_token_t * p_token) { return pm_peer_data_store(peer_id, PM_PEER_DATA_ID_BONDING, p_data, ALIGN_NUM(4, sizeof(pm_peer_data_bonding_t)), p_token); }
int BitMapInit(struct BitMap *psMap, int iSize) { iSize = MAX(iSize, MIN_BIT_SIZE); iSize = ALIGN_NUM(iSize, BIT_BLOCK); psMap->_szData = (uchar*)malloc(iSize / BIT_BLOCK); FAIL_CHK_EQ(psMap->_szData, NULL, -1); memset(psMap->_szData, 0, iSize / BIT_BLOCK); psMap->_iSize = iSize; return 0; }
ret_code_t pm_peer_data_store(pm_peer_id_t peer_id, pm_peer_data_id_t data_id, void const * p_data, uint16_t length, pm_store_token_t * p_token) { VERIFY_MODULE_INITIALIZED(); VERIFY_PARAM_NOT_NULL(p_data); if (ALIGN_NUM(4, length) != length) { return NRF_ERROR_INVALID_PARAM; } pm_peer_data_flash_t peer_data; memset(&peer_data, 0, sizeof(peer_data)); peer_data.length_words = BYTES_TO_WORDS(length); peer_data.data_id = data_id; peer_data.p_all_data = p_data; return pdb_raw_store(peer_id, &peer_data, p_token); }