summaryrefslogtreecommitdiff
path: root/cp/msg/src/msg.c
diff options
context:
space:
mode:
Diffstat (limited to 'cp/msg/src/msg.c')
-rw-r--r--cp/msg/src/msg.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/cp/msg/src/msg.c b/cp/msg/src/msg.c
index 67bef89fb3..d706a36ed7 100644
--- a/cp/msg/src/msg.c
+++ b/cp/msg/src/msg.c
@@ -45,11 +45,13 @@ msg_list_mme_t msg_list[] =
};
u16
-msg_get_number(msg_mme_t msg[])
+msg_get_number(msg_mme_t *msg)
{
msg_mme_t * mme;
u16 mme_num;
+ dbg_assert( ! msg_check_wrong_mme_const_values(msg));
+
mme = msg;
mme_num = mme->mm_type;
@@ -59,6 +61,7 @@ msg_get_number(msg_mme_t msg[])
if(mme_num >= COUNT(msg_list))
{
+ dbg_assert(0);
return MSG_UNKNOW;
}
return mme_num;
@@ -69,6 +72,8 @@ msg_dispatch(msg_mme_t *msg)
{
u16 mme_num;
+ dbg_assert( ! msg_check_wrong_mme_const_values(msg));
+
mme_num = msg_get_number(msg);
if( (mme_num == MSG_UNKNOW) || (msg_list[mme_num].msg_func == NULL) )
{
@@ -79,3 +84,19 @@ msg_dispatch(msg_mme_t *msg)
return msg_list[mme_num].msg_func;
}
+void
+msg_set_mme_const_values(msg_mme_t *msg)
+{
+ dbg_assert(msg);
+
+ msg->m_type = MSG_MTYPE; // if you know how to init a const value in a struct, tell me !
+}
+
+bool
+msg_check_wrong_mme_const_values(msg_mme_t *msg)
+{
+ dbg_assert(msg);
+
+ return (msg->m_type != MSG_MTYPE);
+}
+