view src/cs/services/fcbm/fcbm_send_msg.c @ 291:a72feaed133a

PWT buzzer driver: conditionalize on TARGET_HAS_BUZZER Here we add a new target config preprocessor symbol TARGET_HAS_BUZZER, currently defined for c11x and c139; later we also expect to have it on for FC Venus, and in FC Magnetite we are going to turn it on for target dsample, just for the sake of completeness and philosophical correctness.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 26 Mar 2022 19:31:18 +0000
parents baa738eeb842
children
line wrap: on
line source

/*
 * 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;
}