void handle_clear(struct cfw_message *msg) { ll_storage_clear_req_msg_t * req = (ll_storage_clear_req_msg_t *) msg; ll_storage_clear_rsp_msg_t * resp = (ll_storage_clear_rsp_msg_t *) cfw_alloc_rsp_msg(msg, MSG_ID_LL_CLEAR_RSP, sizeof(*resp)); if (cir_storage_clear((cir_storage_t *)req->storage, req->size) == CBUFFER_STORAGE_SUCCESS) resp->rsp_header.status = DRV_RC_OK; else resp->rsp_header.status = DRV_RC_FAIL; cfw_send_message(resp); }
void handle_clear(struct cfw_message *msg) { circular_storage_clear_req_msg_t *req = (circular_storage_clear_req_msg_t *)msg; circular_storage_service_clear_rsp_msg_t *resp = (circular_storage_service_clear_rsp_msg_t *)cfw_alloc_rsp_msg( msg, MSG_ID_CIRCULAR_STORAGE_SERVICE_CLEAR_RSP, sizeof(*resp)); if (cir_storage_clear((cir_storage_t *)req->storage, req->elt_count) == CBUFFER_STORAGE_SUCCESS) resp->status = DRV_RC_OK; else resp->status = DRV_RC_FAIL; cfw_send_message(resp); }
cir_storage_err_t cir_storage_pop(cir_storage_t *self, uint8_t *buf, uint32_t buf_size) { cir_storage_flash_t *storage = (cir_storage_flash_t *)self; if ( (buf_size > storage->block_size) || (buf_size <= 0) || (buf == NULL) ) { return CBUFFER_STORAGE_ERROR; } /* nothing to read */ if (READ_PTR(storage) == WRITE_PTR(storage)) { return CBUFFER_STORAGE_EMPTY_ERROR; } if (storage->read(READ_PTR(storage), buf_size, buf) != 0) { return CBUFFER_STORAGE_ERROR; } /* We increase data pointer read and copy it in pointers block */ return cir_storage_clear(self, buf_size); }