Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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);
}