void handle_pop(struct cfw_message *msg) { ll_storage_pop_req_msg_t * req = (ll_storage_pop_req_msg_t *) msg; ll_storage_pop_rsp_msg_t * resp = (ll_storage_pop_rsp_msg_t *) cfw_alloc_rsp_msg(msg, MSG_ID_LL_POP_RSP, sizeof(*resp)); DRIVER_API_RC ret = DRV_RC_FAIL; resp->buffer = balloc(req->size, NULL); if (cir_storage_pop((cir_storage_t *)req->storage, resp->buffer, req->size) == CBUFFER_STORAGE_SUCCESS) { ret = DRV_RC_OK; } resp->rsp_header.status = ret; cfw_send_message(resp); }
void handle_pop(struct cfw_message *msg) { circular_storage_pop_req_msg_t *req = (circular_storage_pop_req_msg_t *)msg; circular_storage_service_pop_rsp_msg_t *resp = (circular_storage_service_pop_rsp_msg_t *)cfw_alloc_rsp_msg( msg, MSG_ID_CIRCULAR_STORAGE_SERVICE_POP_RSP, sizeof(*resp)); DRIVER_API_RC ret = DRV_RC_FAIL; resp->buffer = balloc(((cir_storage_t *)req->storage)->elt_size, NULL); if (cir_storage_pop((cir_storage_t *)req->storage, resp->buffer) == CBUFFER_STORAGE_SUCCESS) { ret = DRV_RC_OK; } resp->status = ret; cfw_send_message(resp); }