FreeCalypso > hg > fc-tourmaline
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 |