FreeCalypso > hg > fc-tourmaline
diff src/cs/drivers/drv_app/r2d/r2d_blrr_api.c @ 217:6541e43f88e5
R2D display on/off control implemented
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 24 Apr 2021 23:38:18 +0000 |
parents | |
children | bb1f572ac098 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_app/r2d/r2d_blrr_api.c Sat Apr 24 23:38:18 2021 +0000 @@ -0,0 +1,37 @@ +/* + * This module implements the blrr_display_ctrl() function defined + * in r2d_blrr_api.h; this implementation consists of posting the + * necessary internal message to the R2D task. + */ + +#include "r2d/r2d_blrr_api.h" +#include "r2d/r2d_i.h" +#include "r2d/r2d_messages.h" +#include "rv/rv_general.h" +#include "rvf/rvf_api.h" +#include "rvm/rvm_use_id_list.h" + +T_RV_RET blrr_display_ctrl(enum blrr_display_state arg) +{ + T_R2D_EVT *msg; + + if (rvf_get_buf(r2d_mb_id, sizeof(T_R2D_EVT), (T_RVF_BUFFER **)&msg) + == RVF_RED) { + rvf_send_trace( + "rvf_get_buf() failed in blrr_display_ctrl()", 43, + NULL_PARAM, RV_TRACE_LEVEL_ERROR, R2D_USE_ID); + return RV_MEMORY_ERR; + } + msg->os_hdr.msg_id = R2D_MESSAGE_ONOFF; + msg->os_hdr.src_addr_id = r2d_addr_id; + msg->os_hdr.dest_addr_id = r2d_addr_id; + msg->os_hdr.callback_func = NULL; + msg->status = arg; + if (rvf_send_msg(r2d_addr_id, msg) != RV_OK) { + rvf_send_trace("blrr_display_ctrl(): Send failed!", 33, + NULL_PARAM, RV_TRACE_LEVEL_ERROR, R2D_USE_ID); + rvf_free_buf(msg); + return RV_INTERNAL_ERR; + } + return RV_OK; +}