FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/riviera/rvf/rvf_msg.c @ 234:024042383a26
tiffs IVA: ls reports file sizes
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> | 
|---|---|
| date | Sun, 26 Jan 2014 11:47:13 +0000 | 
| parents | afceeeb2cba1 | 
| children | 
| rev | line source | 
|---|---|
| 118 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 1 /****************************************************************************/ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 2 /* */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 3 /* Name rvf_msg.c */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 4 /* */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 5 /* Function this file contains rvf message handling functions */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 6 /* */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 7 /* Version 0.1 */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 8 /* */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 9 /* Date Modification */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 10 /* ------------------------------------ */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 11 /* 18-March-2002 */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 12 /* */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 13 /* (C) Copyright 2002 by Texas Instruments Incorporated, All Rights Reserved*/ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 14 /****************************************************************************/ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 15 | 
| 120 
e7d4ec9c4c32
All of RVF compiles
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: 
118diff
changeset | 16 #include "rvf_api.h" | 
| 
e7d4ec9c4c32
All of RVF compiles
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: 
118diff
changeset | 17 #include "rvf_i.h" | 
| 
e7d4ec9c4c32
All of RVF compiles
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: 
118diff
changeset | 18 #include "../rvm/rvm_use_id_list.h" | 
| 
e7d4ec9c4c32
All of RVF compiles
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: 
118diff
changeset | 19 #include "../rvm/rvm_api.h" // RVM_TMS_MSG & RVM_MSG_OFFSET | 
| 118 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 20 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 21 // PRIVATE | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 22 static const UINT8 BOUNDBUFVAL=20; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 23 T_RVF_RET _send_msg (T_RVF_G_ADDR_ID addr_id, void *msg, UINT8 mbox, UINT8 bindbuf); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 24 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 25 /******************************************************************************* | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 26 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 27 ** Function rvf_get_msg_buf | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 28 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 29 ** Description Request for a message buffer. | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 30 ** Automatically update the message id of the buffer | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 31 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 32 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 33 ** Returns T_RVF_MB_STATUS: RVF_GREEN if everything is ok, | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 34 ** RVF_YELLOW if watermark limit has been reached, | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 35 ** RVF_RED if max size has been reached (does not return a buffer) | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 36 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 37 *******************************************************************************/ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 38 T_RVF_MB_STATUS rvf_get_msg_buf(T_RVF_MB_ID mb_id, | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 39 UINT32 message_size, | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 40 T_RVF_MSG_ID msg_id, | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 41 T_RVF_MSG ** pp_msg) | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 42 { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 43 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 44 T_RVF_MB_STATUS mb_status; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 45 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 46 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 47 mb_status = rvf_get_buf(mb_id,message_size,(T_RVF_BUFFER**) pp_msg); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 48 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 49 if (mb_status != RVF_RED) | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 50 { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 51 (*pp_msg)->msg_id = msg_id; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 52 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 53 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 54 return mb_status; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 55 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 56 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 57 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 58 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 59 /******************************************************************************* | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 60 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 61 ** Function rvf_fre_msg | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 62 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 63 ** Description Deallocate a message buffer | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 64 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 65 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 66 ** Returns T_RVF_RET: T_RVF_OK if succesful,... | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 67 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 68 *******************************************************************************/ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 69 T_RVF_RET rvf_free_msg(T_RVF_MSG *p_msg) | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 70 { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 71 return rvf_free_buf( (T_RVF_BUFFER *) p_msg); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 72 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 73 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 74 T_RVF_RET rvf_free_timer_msg(T_RVF_MSG *p_msg) | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 75 { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 76 return rvf_free_buf( (T_RVF_BUFFER *) p_msg); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 77 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 78 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 79 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 80 /******************************************************************************* | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 81 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 82 ** Function rvf_send_msg | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 83 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 84 ** Description Called by applications to send a buffer to a SWE. | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 85 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 86 ** Returns RVF_OK if successful, else an error code. | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 87 ** | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 88 ** Comments Priority is defined the inverse of NU. for legacy reasons | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 89 *******************************************************************************/ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 90 T_RVF_RET rvf_send_msg (T_RVF_G_ADDR_ID addr_id, void *msg) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 91 return _send_msg ( addr_id, msg, 0, FALSE); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 92 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 93 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 94 T_RVF_RET rvf_send_priority_msg (T_RVF_G_ADDR_ID addr_id, void *msg) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 95 return _send_msg ( addr_id, msg, 1, TRUE); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 96 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 97 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 98 T_RVF_RET _send_msg (T_RVF_G_ADDR_ID addr_id, void *msg, UINT8 mbox, UINT8 bindbuf) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 99 T_RVF_INTERNAL_BUF *p_hdr; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 100 T_RVF_INTERNAL_BUF* cur=NULL; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 101 UINT8 i=0; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 102 T_RVF_G_ADDR_ID tid=RVF_INVALID_ADDR_ID; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 103 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 104 /* If task non-existant or not started, drop buffer */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 105 if ((addr_id >= MAX_RVF_G_ADDR_ID)) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 106 rvf_send_trace( "RVF: rvf_send_msg(): invalid taskid", 35, NULL_PARAM, RV_TRACE_LEVEL_ERROR, RVM_USE_ID ); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 107 rvf_free_buf (msg); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 108 return RVF_INVALID_PARAMETER; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 109 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 110 if((tid=resolveHostAddrId(addr_id))==RVF_INVALID_ADDR_ID) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 111 rvf_free_buf (msg); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 112 return RVF_INTERNAL_ERR; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 113 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 114 if(!pRtAddrIdTable[tid]) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 115 rvf_free_buf (msg); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 116 return RVF_INTERNAL_ERR; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 117 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 118 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 119 // Reject all msg or only continuous tm msg if bound buf limit | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 120 if(bindbuf) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 121 for(i=0, cur=pRtAddrIdTable[tid]->OSTaskQFirst[mbox]; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 122 cur && cur->p_next; cur=cur->p_next, i++) ; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 123 if(((T_RV_HDR*)msg)->msg_id==RVM_TMS_MSG) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 124 if(i>=BOUNDBUFVAL && ((T_RVF_TMS_MSG*)msg)->cont) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 125 rvf_free_buf(msg); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 126 return RVF_MEMORY_ERR; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 127 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 128 } else { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 129 if(i>=BOUNDBUFVAL) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 130 rvf_free_buf(msg); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 131 return RVF_MEMORY_ERR; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 132 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 133 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 134 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 135 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 136 #if RVF_ENABLE_BUF_CORRUPTION_CHECK | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 137 /* check for buffer corruption */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 138 if (_rvf_chk_buf_damage(msg) == TRUE) | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 139 { rvf_send_trace( "RVF: rvf_send_msg(): buffer corrupted", 37, NULL_PARAM, RV_TRACE_LEVEL_ERROR, RVM_USE_ID ); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 140 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 141 #endif | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 142 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 143 /* update the addr_id field of the message */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 144 ((T_RV_HDR *)msg)->dest_addr_id = addr_id; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 145 p_hdr = USER2MEM(msg); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 146 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 147 #if RVF_ENABLE_BUF_LINKAGE_CHECK | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 148 /* check if the buffer has been already enqueued */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 149 if ( RVF_BUF_IS_LINKED( p_hdr) ) | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 150 { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 151 rvf_send_trace( "RVF: rvf_send_msg(): buffer already enqueued", 44, NULL_PARAM, RV_TRACE_LEVEL_ERROR, RVM_USE_ID ); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 152 return RVF_MEMORY_ERR; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 153 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 154 #endif | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 155 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 156 rvf_disable(8); /* enter critical section */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 157 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 158 /* chained the buffer in the mailbox list */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 159 /*if (OSTaskQFirst[task_id][mbox]) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 160 OSTaskQLast[task_id][mbox]->p_next = p_hdr; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 161 } else { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 162 OSTaskQFirst[task_id][mbox] = p_hdr; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 163 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 164 OSTaskQLast[task_id][mbox] = p_hdr; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 165 p_hdr->p_next = NULL;*/ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 166 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 167 if (pRtAddrIdTable[tid]->OSTaskQFirst[mbox]) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 168 pRtAddrIdTable[tid]->OSTaskQLast[mbox]->p_next = p_hdr; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 169 } else { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 170 pRtAddrIdTable[tid]->OSTaskQFirst[mbox] = p_hdr; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 171 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 172 pRtAddrIdTable[tid]->OSTaskQLast[mbox] = p_hdr; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 173 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 174 p_hdr->p_next = NULL; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 175 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 176 #if RVF_ENABLE_BUF_LINKAGE_CHECK | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 177 RVF_SET_BUF_LINKED(p_hdr); /* change buffer status */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 178 #endif | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 179 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 180 rvf_enable(); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 181 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 182 /* send a rvf event */ | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 183 rvf_send_event(tid, (UINT16) (EVENT_MASK(mbox)) ); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 184 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 185 return RVF_OK; | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 186 } | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 187 | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 188 // Poss. Deprecate ! [Only used by: rvf.Buffer::_rvf_send_msg_to_mbox() ] | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 189 // May conflict with "msg::rvf_send_priority_msg()" | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 190 T_RVF_RET rvf_adapt_send_msg (T_RVF_G_ADDR_ID addr_id, void *msg, UINT8 mbox) { | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 191 return _send_msg ( addr_id, msg, mbox, FALSE); | 
| 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 192 } | 
