comparison src/cs/drivers/drv_app/r2d/r2d_env.c @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children 76f65c8bb151
comparison
equal deleted inserted replaced
-1:000000000000 0:4e78acac3d88
1 /**
2
3 @file: r2d_env.c
4
5 @author Christophe Favergeon
6
7 @version 0.5
8
9 Purpose: Environment for the software entity
10 of Riviera 2D system (higher software layer)
11
12 */
13
14 /*
15
16 Date Modification
17 ------------------------------------
18 06/02/2001 Create
19 10/18/2001 Version 0.5 for first integration with Riviera database
20
21
22 (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved
23 */
24
25
26 #include "rv/general.h"
27
28 #include "rvm/rvm_gen.h"
29 #include "rvm/rvm_ext_priorities.h"
30 #include "rvm/rvm_use_id_list.h"
31
32
33 #include "r2d/r2d.h"
34 #include "r2d/r2d_env.h"
35 #include "r2d/r2d_messages.h"
36 #include "r2d/uwire.h"
37
38 #include <string.h>
39
40
41 extern void r2d_core(UINT32 param);
42
43 /* global pointer to the error function */
44 T_RVM_RETURN (*r2d_error_ft)(T_RVM_NAME swe_name, T_RVM_RETURN error_cause, \
45 T_RVM_ERROR_TYPE error_type,T_RVM_STRING error_msg);
46
47
48
49 /* global addr id */
50 T_RVF_ADDR_ID r2d_addr_id;
51
52
53
54 /* global memory bank ID */
55 T_RVF_MB_ID r2d_mb_id;
56
57 /* Global standard graphical context */
58 T_R2D_GC_PTR r2d_g_lcd_gc=NULL;
59
60 /* For communication with the task */
61 T_R2D_EVT * p_msg;
62
63 extern T_RVM_RETURN r2d_initializations(void);
64 extern T_RVM_RETURN r2d_cleanup();
65 extern UINT32 r2d_get_memory_bank_size();
66 /******************************************************************************
67 * Function : xxx_get_info
68 *
69 * Description : This function is called by the RV manager to learn
70 * xxx requirements in terms of memory, SWEs...
71 *
72 * Parameters : T_RVM_INFO_SWE * swe_info: pointer to the structure to fill
73 * containing infos related to the xxx SWE.
74 *
75 * Return : T_RVM_RETURN
76 *
77 * History : 0.1 (20-August-2000)
78 *
79 *
80 ******************************************************************************/
81 T_RVM_RETURN r2d_get_info(T_RVM_INFO_SWE * infoSWE)
82 {
83
84 /* SWE info */
85
86 memcpy ( (UINT8 *) infoSWE->type_info.type4.swe_name, "R2D", 4);
87 infoSWE->swe_type = RVM_SWE_TYPE_4;
88 infoSWE->type_info.type4.stack_size=R2D_STACK_SIZE;
89 infoSWE->type_info.type4.priority=RVM_R2D_TASK_PRIORITY;
90 infoSWE->type_info.type4.swe_use_id=R2D_USE_ID;
91
92
93
94
95 /* memory bank info */
96 infoSWE->type_info.type4.nb_mem_bank= 1;
97
98
99
100 memcpy ((UINT8 *) infoSWE->type_info.type4.mem_bank[0].bank_name, "R2D_PRIM", 9);
101 infoSWE->type_info.type4.mem_bank[0].initial_params.size = r2d_get_memory_bank_size();
102 infoSWE->type_info.type4.mem_bank[0].initial_params.watermark = r2d_get_memory_bank_size()-1000;
103
104
105 /* linked SWE info */
106 /* this SWE does not require any SWE to run */
107 infoSWE->type_info.type4.nb_linked_swe = 0;
108
109
110 /* generic functions */
111 infoSWE->type_info.type4.set_info=r2d_set_info;
112 infoSWE->type_info.type4.init = r2d_init;
113 infoSWE->type_info.type4.stop = r2d_stop;
114 infoSWE->type_info.type4.kill = r2d_kill;
115 infoSWE->type_info.type4.core = r2d_start;
116
117
118 return RVM_OK;
119 }
120
121
122 /******************************************************************************
123 * Function : xxx_set_info
124 *
125 * Description : This function is called by the RV manager to inform
126 * the xxx SWE about task_id, mb_id and error function.
127 *
128 * Parameters : - T_RVM_TASK_ID taskId[]: array of task_id.
129 * taskId[0] contains xxx task_id.
130 * - T_RVF_MB_ID mbId[]: array of memory bank ids.
131 * - callback function to call in case of unrecoverable error.
132 *
133 * Return : T_RVM_RETURN
134 *
135 * History : 0.1 (20-August-2000)
136 *
137 *
138 ******************************************************************************/
139 T_RVM_RETURN r2d_set_info ( T_RVF_ADDR_ID addr_id,
140 T_RV_RETURN return_path[],
141 T_RVF_MB_ID bk_id_table[],
142 T_RVM_CB_FUNC call_back_error_ft)
143
144
145 {
146
147 /* store the pointer to the error function */
148 r2d_error_ft = call_back_error_ft ;
149
150 r2d_addr_id=addr_id;
151
152
153 /* Store MB id */
154 r2d_mb_id = bk_id_table[0];
155
156 /* return_path of linked SWE -> not used */
157
158 return RVM_OK;
159 }
160
161
162
163
164 /******************************************************************************
165 * Function : xxx_start
166 *
167 * Description : This function is called by the RV manager to start the xxx
168 * SWE, it is the body of the task.
169 *
170 * Parameters : None
171 *
172 * Return : T_RVM_RETURN
173 *
174 * History : 0.1 (20-August-2000)
175 *
176 *
177 ******************************************************************************/
178 T_RVM_RETURN r2d_start(void)
179 {
180 /*
181 ** Branch to main task core
182 */
183 if (r2d_g_lcd_gc!=NULL)
184 {
185 r2d_erase(r2d_g_lcd_gc);
186 r2d_core(0);
187 return RV_OK;
188 }
189 else
190 return RV_MEMORY_ERR;
191 }
192
193
194
195 /******************************************************************************
196 * Function : xxx_stop
197 *
198 * Description : This function is called by the RV manager to stop the xxx SWE.
199 *
200 * Parameters : None
201 *
202 * Return : T_RVM_RETURN
203 *
204 * History : 0.1 (20-August-2000)
205 *
206 *
207 ******************************************************************************/
208 T_RVM_RETURN r2d_stop(void)
209 {
210 /*
211 ** other SWEs have not been killed yet, xxx can send messages to other SWEs
212 */
213 return RVM_OK;
214 }
215
216 /******************************************************************************
217 * Function : xxx_kill
218 *
219 * Description : This function is called by the RV manager to kill the xxx
220 * SWE, after the xxx_stop function has been called.
221 *
222 * Parameters : None
223 *
224 * Return : T_RVM_RETURN
225 *
226 * History : 0.1 (20-August-2000)
227 *
228 *
229 ******************************************************************************/
230 T_RVM_RETURN r2d_kill (void)
231 {
232 r2d_cleanup();
233 return RV_OK;
234 }
235
236
237
238
239 /******************************************************************************
240 * Function : xxx_init
241 *
242 * Description : This function is called by the RV manager to initialize the
243 * xxx SWE before creating the task and calling xxx_start.
244 *
245 * Parameters : None
246 *
247 * Return : T_RVM_RETURN
248 *
249 * History : 0.1 (20-August-2000)
250 *
251 *
252 ******************************************************************************/
253 T_RVM_RETURN r2d_init(void)
254 {
255 return(r2d_initializations());
256 }
257