FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/riviera/rvf/rvf_msg.c @ 339:2f88c5b89113
OSL reconstruction: got to os_GetTaskData()
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> | 
|---|---|
| date | Fri, 02 May 2014 23:44:12 +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: 
118 
diff
changeset
 | 
16 #include "rvf_api.h" | 
| 
 
e7d4ec9c4c32
All of RVF compiles
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
118 
diff
changeset
 | 
17 #include "rvf_i.h" | 
| 
 
e7d4ec9c4c32
All of RVF compiles
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
118 
diff
changeset
 | 
18 #include "../rvm/rvm_use_id_list.h" | 
| 
 
e7d4ec9c4c32
All of RVF compiles
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
118 
diff
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 } | 
