* @return Pointer to the data on success, otherwise NULL
* @param[in] buf Buffer to read data in
* @param[in] size Number of bytes to read
*
* @note It is mandatory to call \ref rtc_store_critical_data_release_and_unlock() if \ref rtc_store_critical_data_read_and_lock() is successful.
* @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock.
* @brief Release the utilized data read using \ref rtc_store_critical_data_read_and_lock()
* @brief Release the size bytes critical data from RTC storage
*
* This API releases the utilized data read using \ref rtc_store_critical_data_read_and_lock().
* Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc.
* This API can be used to remove data from buffer when data is sent asynchronously.
*
* @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed).
* @param[in] size Number of bytes to free.
*
* @return ESP_OK on success, appropriate error code otherwise.
*
* @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock.
* @brief Read non critical data from the RTC storage
*
* @param[out] size Number of bytes read
*
* @return Pointer to the data on success, otherwise NULL
* @param[in] buf Buffer to read data in
* @param[in] size Number of bytes read
*
* @note It is mandatory to call \ref rtc_store_non_critical_data_release_and_unlock() if \ref rtc_store_non_critical_data_read_and_lock() is successful.
* @brief Release the utilized data read using \ref rtc_store_non_critical_data_read_and_lock()
*
* This API releases the utilized data read using \ref rtc_store_non_critical_data_read_and_lock().
* Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc.
* @brief Release the size bytes non critical data from RTC storage
*
* @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_non_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed).
* @param[in] size Number of bytes to free.
*
* @return ESP_OK on success, appropriate error code otherwise.
* @return Pointer to the data on success, otherwise NULL
* @param[in] buf Buffer to read data in
* @param[in] size Number of bytes to read
*
* @note It is mandatory to call \ref rtc_store_critical_data_release_and_unlock() if \ref rtc_store_critical_data_read_and_lock() is successful.
* @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock.
* @brief Release the utilized data read using \ref rtc_store_critical_data_read_and_lock()
* @brief Release the size bytes critical data from RTC storage
*
* This API releases the utilized data read using \ref rtc_store_critical_data_read_and_lock().
* Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc.
* This API can be used to remove data from buffer when data is sent asynchronously.
*
* @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed).
* @param[in] size Number of bytes to free.
*
* @return ESP_OK on success, appropriate error code otherwise.
*
* @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock.
* @brief Read non critical data from the RTC storage
*
* @param[out] size Number of bytes read
*
* @return Pointer to the data on success, otherwise NULL
* @param[in] buf Buffer to read data in
* @param[in] size Number of bytes read
*
* @note It is mandatory to call \ref rtc_store_non_critical_data_release_and_unlock() if \ref rtc_store_non_critical_data_read_and_lock() is successful.
* @brief Release the utilized data read using \ref rtc_store_non_critical_data_read_and_lock()
*
* This API releases the utilized data read using \ref rtc_store_non_critical_data_read_and_lock().
* Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc.
* @brief Release the size bytes non critical data from RTC storage
*
* @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_non_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed).
* @param[in] size Number of bytes to free.
*
* @return ESP_OK on success, appropriate error code otherwise.
* @return Pointer to the data on success, otherwise NULL
* @param[in] buf Buffer to read data in
* @param[in] size Number of bytes to read
*
* @note It is mandatory to call \ref rtc_store_critical_data_release_and_unlock() if \ref rtc_store_critical_data_read_and_lock() is successful.
* @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock.
* @brief Release the utilized data read using \ref rtc_store_critical_data_read_and_lock()
* @brief Release the size bytes critical data from RTC storage
*
* This API releases the utilized data read using \ref rtc_store_critical_data_read_and_lock().
* Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc.
* This API can be used to remove data from buffer when data is sent asynchronously.
*
* @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed).
* @param[in] size Number of bytes to free.
*
* @return ESP_OK on success, appropriate error code otherwise.
*
* @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock.
* @brief Read non critical data from the RTC storage
*
* @param[out] size Number of bytes read
*
* @return Pointer to the data on success, otherwise NULL
* @param[in] buf Buffer to read data in
* @param[in] size Number of bytes read
*
* @note It is mandatory to call \ref rtc_store_non_critical_data_release_and_unlock() if \ref rtc_store_non_critical_data_read_and_lock() is successful.
* @brief Release the utilized data read using \ref rtc_store_non_critical_data_read_and_lock()
*
* This API releases the utilized data read using \ref rtc_store_non_critical_data_read_and_lock().
* Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc.
* @brief Release the size bytes non critical data from RTC storage
*
* @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_non_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed).
* @param[in] size Number of bytes to free.
*
* @return ESP_OK on success, appropriate error code otherwise.
* @return Pointer to the data on success, otherwise NULL
* @param[in] buf Buffer to read data in
* @param[in] size Number of bytes to read
*
* @note It is mandatory to call \ref rtc_store_critical_data_release_and_unlock() if \ref rtc_store_critical_data_read_and_lock() is successful.
* @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock.
* @brief Release the utilized data read using \ref rtc_store_critical_data_read_and_lock()
* @brief Release the size bytes critical data from RTC storage
*
* This API releases the utilized data read using \ref rtc_store_critical_data_read_and_lock().
* Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc.
* This API can be used to remove data from buffer when data is sent asynchronously.
*
* @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed).
* @param[in] size Number of bytes to free.
*
* @return ESP_OK on success, appropriate error code otherwise.
*
* @note Please avoid adding \ref ESP_DIAG_EVENT(), error/warning logs using esp_log module in between rtc_store_critical_data_read_and_lock() and rtc_store_critical_data_release_and_unlock() API calls. It may lead to a deadlock.
* @brief Read non critical data from the RTC storage
*
* @param[out] size Number of bytes read
*
* @return Pointer to the data on success, otherwise NULL
* @param[in] buf Buffer to read data in
* @param[in] size Number of bytes read
*
* @note It is mandatory to call \ref rtc_store_non_critical_data_release_and_unlock() if \ref rtc_store_non_critical_data_read_and_lock() is successful.
* @brief Release the utilized data read using \ref rtc_store_non_critical_data_read_and_lock()
*
* This API releases the utilized data read using \ref rtc_store_non_critical_data_read_and_lock().
* Utilization may involve encoding data, sending data to the cloud, post processing or printing on the console, etc.
* @brief Release the size bytes non critical data from RTC storage
*
* @param[in] size Number of bytes to free. If all the data is utilized then pass the size returned by \ref rtc_store_non_critical_data_read_and_lock() or 0 if no data is utilized (e.g. sending to cloud failed).
* @param[in] size Number of bytes to free.
*
* @return ESP_OK on success, appropriate error code otherwise.