FreeCalypso > hg > fc-tourmaline
diff src/cs/services/fcbm/fcbm_send_msg.c @ 230:baa738eeb842
FCBM code implemented in first pass
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 01 May 2021 10:05:53 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/services/fcbm/fcbm_send_msg.c Sat May 01 10:05:53 2021 +0000 @@ -0,0 +1,33 @@ +/* + * The implementation of our fcbm_message_to_task() function lives here. + */ + +#include "fcbm/fcbm_env.h" +#include "fcbm/fcbm_send_msg.h" +#include "rv/rv_general.h" +#include "rvf/rvf_api.h" +#include "rvm/rvm_use_id_list.h" + +T_RV_RET fcbm_message_to_task(enum fcbm_msg_id msg_id) +{ + T_RV_HDR *msg; + + if (rvf_get_buf(fcbm_prim_id, sizeof(T_RV_HDR), + (T_RVF_BUFFER **)&msg) == RVF_RED) { + rvf_send_trace( + "rvf_get_buf() failed in fcbm_message_to_task()", 46, + NULL_PARAM, RV_TRACE_LEVEL_ERROR, FCBM_USE_ID); + return RV_MEMORY_ERR; + } + msg->msg_id = msg_id; + msg->src_addr_id = fcbm_addr_id; + msg->dest_addr_id = fcbm_addr_id; + msg->callback_func = NULL; + if (rvf_send_msg(fcbm_addr_id, msg) != RV_OK) { + rvf_send_trace("fcbm_message_to_task(): Send failed!", 36, + NULL_PARAM, RV_TRACE_LEVEL_ERROR, FCBM_USE_ID); + rvf_free_buf(msg); + return RV_INTERNAL_ERR; + } + return RV_OK; +}