FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/riviera/rvm/rvm_swe_hdlr.c @ 502:cff42ff57c60
osx.c: osx_free_mem() done
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> | 
|---|---|
| date | Tue, 01 Jul 2014 18:34:53 +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 * @file rvm_swe_hdlr.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 * This file contains the functions related to SWEs management within RVM. | 
| 
 
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 * @author David Lamy-Charrier (d-lamy@ti.com) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
8 * @version 0.1 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
9 * | 
| 
 
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 | 
| 
 
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 * Revision History: | 
| 
 
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 * 10/26/2001 David Lamy-Charrier Create for Riviera 1.6. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
16 * | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
17 * (C) Copyright 2001 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
 | 
18 */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
19 #include <stdio.h> | 
| 
121
 
15e972110527
RVM compiles
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
118 
diff
changeset
 | 
20 #include "../rvf/rvf_env.h" | 
| 
 
15e972110527
RVM compiles
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
118 
diff
changeset
 | 
21 #include "rvm_gen.h" | 
| 
 
15e972110527
RVM compiles
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
118 
diff
changeset
 | 
22 #include "rvm_api.h" | 
| 
 
15e972110527
RVM compiles
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
118 
diff
changeset
 | 
23 #include "rvm_i.h" | 
| 
118
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
24 | 
| 
121
 
15e972110527
RVM compiles
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
118 
diff
changeset
 | 
25 #include "../rvf/rvf_i.h" /* ET2 rvf private invocation API */ | 
| 
 
15e972110527
RVM compiles
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
118 
diff
changeset
 | 
26 #include "../rvf/rvf_api.h" /* A-M-E-N-D-E-D! */ | 
| 
118
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
27 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
28 /* temporary inclusion for HCI pb on WINDOWS */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
29 /* TO DO: remove it. */ | 
| 
121
 
15e972110527
RVM compiles
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
118 
diff
changeset
 | 
30 #include "rvm_use_id_list.h" | 
| 
118
 
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 #include <string.h> | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
33 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
34 extern T_RVM_CONST_SWE_INFO RVM_SWE_GET_INFO_ARRAY[]; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
35 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
36 extern T_RVM_USE_ID * RVM_TYPE2_SWE_GROUPS[]; | 
| 
 
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 extern BOOLEAN rvm_allocated_task_id [MAX_RVF_TASKS]; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
39 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
40 extern T_RVM_KNOWN_SWE * rvm_swe_array; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
41 | 
| 
 
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 /* private */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
44 T_RVM_RETURN _fatal(T_RVM_PROCESSING_SWE* appli, UINT8 rm); | 
| 
 
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 * Function _resolve_t2_grouping (private) | 
| 
 
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 * Description resolves number of group directives & ret. group count | 
| 
 
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 UINT8 _resolve_t2_grouping(T_RVM_PROCESSING_SWE* appli, T_RVM_GROUP_DIRECTIVE* gd) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
52 T_RVM_INFO_SWE swe_info; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
53 T_RVM_PROCESSING_SWE* cur_swe = appli; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
54 UINT8 i=0, j=0, k=0; | 
| 
 
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 for(; cur_swe != NULL;) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
57 UINT8 swe_index = cur_swe->swe_id; | 
| 
 
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 rvm_swe_array[swe_index].swe_get_info(&swe_info); | 
| 
 
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 if (rvm_swe_array[swe_index].swe_state !=SWE_RUNNING && //== SWE_NOT_STARTED && | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
62 swe_info.swe_type==RVM_SWE_TYPE_2) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
63 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
64 for(i=0; i<MAX_GRPS; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
65 if(swe_info.type_info.type2.swe_group_directive == gd[i].group_directive) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
66 for(k=0; gd[i].hosted_swe_db_index[k]!=0; k++); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
67 if(k<MAX_COMPOSITES) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
68 gd[i].hosted_swe_db_index[k]=swe_index; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
69 } else { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
70 /* TO DO ... ERROR !!! */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
71 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
72 // RVM_TRACE_WARNING_PARAM("rvm.SweHndlr.resolve_t2_grouping(), appended to grp entry , nb=",\ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
73 // (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
74 //printf("rvm.SweHndlr.resolve_t2_grouping(): appended %d to group: %d\n",gd[i].hosted_swe_db_index[k], gd[i].host_task_addr); | 
| 
 
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 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
77 } else if( swe_info.type_info.type2.swe_group_directive != gd[i].group_directive && | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
78 gd[i].host_task_addr==0 ) { | 
| 
 
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 /* Constraint! Expects all group priorites and stack sz to be equal | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
81 * Additional method must be used to set highest entity pri. or resolve */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
82 gd[i].host_task_addr=RVF_INVALID_ADDR_ID; //rvm_allocate_task_id(1); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
83 gd[i].group_directive=swe_info.type_info.type2.swe_group_directive; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
84 gd[i].task_priority=swe_info.type_info.type2.priority; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
85 gd[i].stack_size=swe_info.type_info.type2.stack_size; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
86 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
87 gd[i].hosted_swe_db_index[0]=swe_index; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
88 j++; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
89 // RVM_TRACE_WARNING_PARAM("rvm.SweHndlr.resolve_t2_grouping(), created grp entry , nb=",\ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
90 // (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
91 //printf("rvm.SweHndlr.resolve_t2_grouping(): created host group: %d AND append %d\n",gd[i].host_task_addr, gd[i].hosted_swe_db_index[0]); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
92 break; | 
| 
 
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 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
95 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
96 } else RVM_TRACE_WARNING_PARAM("rvm.SweHndlr.resolve_t2_grouping(), SWE Not type 2: ", rvm_swe_array[swe_index].swe_use_id); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
97 cur_swe = cur_swe->next_swe; /* process next SWE */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
98 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
99 //printf("rvm.SweHndlr.resolve_t2_grouping(): total group count: %d\n", j); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
100 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
101 //for(i=0; i<j; i++) /* de'bugger only!! */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
102 // for(k=0; k<MAX_COMPOSITES && gd[i].hosted_swe_db_index[k]!=0; k++) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
103 // printf("host addr: %d, T2 swe_db_index %d\n", | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
104 // gd[i].host_task_addr, gd[i].hosted_swe_db_index[k]); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
105 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
106 return j; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
107 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
108 | 
| 
 
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 ** Function rvm_allocate_task_id | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
111 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
112 ** Description Internal function which allocate the first available | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
113 ** task id to a SWE in creation | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
114 *******************************************************************************/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
115 T_RVM_TASK_ID rvm_allocate_task_id(UINT8 isRealTask) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
116 /* UINT8 i=0; */ | 
| 
 
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 /* Find the 1st free task id | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
119 If we reach the max: all task ids are allocated => not possible to start SWE.*/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
120 /* while (rvm_allocated_task_id[i] == TRUE) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
121 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
122 i++; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
123 if (i == MAX_RVF_TASKS) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
124 return RVF_INVALID_TASK; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
125 }*/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
126 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
127 /* Lock task id and return its value. */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
128 /* rvm_allocated_task_id[i] = TRUE; */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
129 /* return ((T_RVM_TASK_ID) i); */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
130 return (T_RVM_TASK_ID) rvf_allocate_task_id(isRealTask); /* A-M-E-N-D-E-D! */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
131 } | 
| 
 
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 ** Function rvm_set_swe_info | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
137 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
138 ** Description This function call the set_info function of each SWEs required | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
139 ** to start a specified SWE. | 
| 
 
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 ** Parameters: T_RVM_PROCESSING_SWE * appli: list of required SWEs with their parameters. | 
| 
 
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 ** Returns T_RVM_RETURN: RVM_OK if successful. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
144 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
145 *******************************************************************************/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
146 T_RVM_RETURN rvm_set_swe_info(T_RVM_PROCESSING_SWE * appli) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
147 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
148 T_RVM_PROCESSING_SWE * cur_swe = appli; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
149 UINT8 i; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
150 T_RVF_MB_ID _bk_id_table[RVM_MAX_NB_MEM_BK]; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
151 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
152 /* for each SWE in the list */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
153 while( cur_swe != NULL ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
154 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
155 UINT8 swe_index = cur_swe->swe_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
156 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
157 if (rvm_swe_array[swe_index].swe_state != SWE_RUNNING) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
158 /* Call the set_info function for only those for which MB were just created */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
159 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
160 /* First build return path */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
161 T_RVM_INFO_SWE swe_info; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
162 T_RV_RETURN_PATH return_path[RVM_MAX_NB_LINKED_SWE]; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
163 T_RVM_USE_ID linked_swe_use_id[RVM_MAX_NB_LINKED_SWE]; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
164 UINT8 nb_linked_swe = 0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
165 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
166 rvm_swe_array[swe_index].swe_get_info(&swe_info); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
167 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
168 switch( swe_info.swe_type) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
169 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
170 case(RVM_SWE_TYPE_1): | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
171 { nb_linked_swe = swe_info.type_info.type1.nb_linked_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
172 memcpy( linked_swe_use_id, swe_info.type_info.type1.linked_swe_id, RVM_MAX_NB_LINKED_SWE * sizeof(T_RVM_USE_ID) ); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
173 if(rvm_swe_array[swe_index].swe_state != SWE_NOT_STARTED) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
174 for(i=0;i<swe_info.type_info.type1.nb_mem_bank; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
175 rvf_get_mb_id((char*)&swe_info.type_info.type1.mem_bank[i], | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
176 &_bk_id_table[i]); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
177 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
178 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
179 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
180 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
181 case(RVM_SWE_TYPE_2): | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
182 { nb_linked_swe = swe_info.type_info.type2.nb_linked_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
183 memcpy( linked_swe_use_id, swe_info.type_info.type2.linked_swe_id, RVM_MAX_NB_LINKED_SWE * sizeof(T_RVM_USE_ID) ); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
184 if((rvm_swe_array[cur_swe->swe_id].swe_addr_id = rvm_allocate_task_id(0))==RVF_INVALID_ADDR_ID) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
185 return RVM_INTERNAL_ERR; | 
| 
 
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 if(rvm_swe_array[swe_index].swe_state != SWE_NOT_STARTED) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
188 for(i=0;i<swe_info.type_info.type2.nb_mem_bank; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
189 rvf_get_mb_id((char*)&swe_info.type_info.type2.mem_bank[i], | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
190 &_bk_id_table[i]); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
191 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
192 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
193 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
194 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
195 case(RVM_SWE_TYPE_3): | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
196 { nb_linked_swe = swe_info.type_info.type3.nb_linked_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
197 memcpy( linked_swe_use_id, swe_info.type_info.type3.linked_swe_id, RVM_MAX_NB_LINKED_SWE * sizeof(T_RVM_USE_ID) ); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
198 if((rvm_swe_array[cur_swe->swe_id].swe_addr_id = rvm_allocate_task_id(1))==RVF_INVALID_ADDR_ID) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
199 return RVM_INTERNAL_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
200 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
201 if(rvm_swe_array[swe_index].swe_state != SWE_NOT_STARTED) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
202 for(i=0;i<swe_info.type_info.type3.nb_mem_bank; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
203 rvf_get_mb_id((char*)&swe_info.type_info.type3.mem_bank[i], | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
204 &_bk_id_table[i]); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
205 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
206 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
207 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
208 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
209 case(RVM_SWE_TYPE_4): | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
210 { nb_linked_swe = swe_info.type_info.type4.nb_linked_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
211 memcpy( linked_swe_use_id, swe_info.type_info.type4.linked_swe_id, RVM_MAX_NB_LINKED_SWE * sizeof(T_RVM_USE_ID) ); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
212 if((rvm_swe_array[cur_swe->swe_id].swe_addr_id = rvm_allocate_task_id(1))==RVF_INVALID_ADDR_ID) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
213 return RVM_INTERNAL_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
214 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
215 if(rvm_swe_array[swe_index].swe_state != SWE_NOT_STARTED) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
216 for(i=0;i<swe_info.type_info.type4.nb_mem_bank; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
217 rvf_get_mb_id((char*)&swe_info.type_info.type4.mem_bank[i], | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
218 &_bk_id_table[i]); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
219 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
220 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
221 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
222 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
223 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
224 rvm_swe_array[cur_swe->swe_id].swe_return_path.addr_id=rvm_swe_array[cur_swe->swe_id].swe_addr_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
225 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
226 for (i=0; i < nb_linked_swe; i++) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
227 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
228 UINT8 linked_swe_index; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
229 if (rvm_get_swe_index(&linked_swe_index, linked_swe_use_id[i]) != RVM_OK) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
230 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
231 return RVM_INTERNAL_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
232 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
233 return_path[i].callback_func = rvm_swe_array[linked_swe_index].swe_return_path.callback_func; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
234 /* TO DO: manage addr_id for GROUP_MEMBER SWEs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
235 return_path[i].addr_id = rvm_swe_array[linked_swe_index].swe_addr_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
236 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
237 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
238 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
239 if (cur_swe->rvm_functions.set_info != NULL ) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
240 if(rvm_swe_array[swe_index].swe_state == SWE_NOT_STARTED) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
241 cur_swe->rvm_functions.set_info(rvm_swe_array[cur_swe->swe_id].swe_addr_id, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
242 return_path, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
243 cur_swe->bk_id_table, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
244 rvm_error); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
245 } else { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
246 cur_swe->rvm_functions.set_info(rvm_swe_array[cur_swe->swe_id].swe_addr_id, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
247 return_path, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
248 _bk_id_table, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
249 rvm_error); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
250 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
251 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
252 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
253 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
254 cur_swe = cur_swe->next_swe; /* process next SWE */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
255 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
256 return RVM_OK; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
257 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
258 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
259 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
260 /******************************************************************************* | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
261 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
262 ** Function rvm_initialize_swe | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
263 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
264 ** Description This function initialize all the required SWEs which are not running. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
265 ** It also creates the tasks in a suspend state. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
266 ** Then it resumes the tasks and call the start function of each SWE. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
267 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
268 ** Parameters: T_RVM_PROCESSING_SWE * appli: list of required SWEs with their parameters. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
269 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
270 ** Returns T_RVM_RETURN: RVM_OK if successful. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
271 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
272 *******************************************************************************/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
273 T_RVM_RETURN rvm_initialize_swe( T_RVM_PROCESSING_SWE * appli, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
274 T_RVM_GROUP_DIRECTIVE* gd, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
275 UINT8 t2cnt) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
276 T_RVM_PROCESSING_SWE * cur_swe = appli; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
277 UINT8 i=0, j=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
278 UINT16 tuid=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
279 T_RVF_BUFFER* stack_ptr=NULL; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
280 T_RVM_INFO_SWE swe_info; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
281 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
282 #ifdef _WINDOWS | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
283 BOOLEAN hci_started = FALSE; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
284 #endif | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
285 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
286 /* for each SWE in the list, initialize it */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
287 while( cur_swe != NULL ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
288 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
289 UINT8 swe_index = cur_swe->swe_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
290 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
291 if ( rvm_swe_array[swe_index].swe_state != SWE_RUNNING) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
292 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
293 /* call its init function */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
294 if (cur_swe->rvm_functions.init) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
295 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
296 if (cur_swe->rvm_functions.init() != RVM_OK) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
297 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
298 rvf_send_trace("RVM: Error Calling init function of swe nb ", 43, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
299 (UINT32)swe_index, 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
 | 
300 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
301 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
302 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
303 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
304 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
305 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
306 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
307 /* for each SWE in the list, create the task if necessary. */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
308 cur_swe = appli; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
309 while( cur_swe != NULL ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
310 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
311 UINT8 swe_index = cur_swe->swe_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
312 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
313 if ( rvm_swe_array[swe_index].swe_state != SWE_RUNNING) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
314 /* start the task if necessary in SUSPEND mode */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
315 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
316 if ( cur_swe->swe_type == RVM_SWE_TYPE_4) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
317 /* allocate a buffer for the stack */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
318 if ( rvm_allocate_stack_buffer( cur_swe->stack_size, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
319 &rvm_swe_array[swe_index].stack_ptr) != RVM_OK) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
320 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
321 rvf_send_trace("RVM: Error allocating stack nb:", 28, (UINT32)rvm_swe_array[swe_index].swe_addr_id, 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
 | 
322 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
323 /* TO DO: manage the error case */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
324 return RVF_MEMORY_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
325 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
326 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
327 /* start the task in suspend mode */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
328 if (rvf_create_task((TASKPTR) cur_swe->rvm_functions.core, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
329 (UINT8)rvm_swe_array[swe_index].swe_addr_id,\ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
330 rvm_swe_array[swe_index].swe_name, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
331 rvm_swe_array[swe_index].stack_ptr, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
332 cur_swe->stack_size, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
333 cur_swe->priority, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
334 ET4_TASK,\ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
335 DEFAULT_TIME_SLICING, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
336 SUSPEND ) != RV_OK) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
337 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
338 rvf_send_trace("RVM: Error Creating Task nb:", 28, (UINT32)rvm_swe_array[swe_index].swe_addr_id, 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
 | 
339 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
340 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
341 rvf_setRtAddrSweIndex(rvm_swe_array[swe_index].swe_addr_id, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
342 swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
343 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
344 rvf_send_trace("RVM: Created task nb ", 21, (UINT32)rvm_swe_array[swe_index].swe_addr_id, RV_TRACE_LEVEL_DEBUG_LOW, RVM_USE_ID); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
345 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
346 } else if (cur_swe->swe_type == RVM_SWE_TYPE_3) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
347 /* allocate a buffer for the stack */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
348 if ( rvm_allocate_stack_buffer( cur_swe->stack_size, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
349 &rvm_swe_array[swe_index].stack_ptr) != RVM_OK) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
350 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
351 rvf_send_trace("RVM: Error allocating stack nb:", 28, (UINT32)rvm_swe_array[swe_index].swe_addr_id, 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
 | 
352 /* TO DO: manage the error case */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
353 return RVF_MEMORY_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
354 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
355 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
356 /* start the task in suspend mode */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
357 if (rvf_create_task((TASKPTR)rvm_t3_proxy, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
358 (UINT8)rvm_swe_array[swe_index].swe_addr_id,\ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
359 rvm_swe_array[swe_index].swe_name, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
360 rvm_swe_array[swe_index].stack_ptr, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
361 cur_swe->stack_size, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
362 cur_swe->priority, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
363 ET3_TASK,\ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
364 DEFAULT_TIME_SLICING, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
365 SUSPEND ) != RV_OK) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
366 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
367 rvf_send_trace("RVM: Error Creating E3 Task nb:", 28, (UINT32)rvm_swe_array[swe_index].swe_addr_id, 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
 | 
368 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
369 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
370 rvf_register_t3_handlers(rvm_swe_array[swe_index].swe_addr_id, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
371 cur_swe->rvm_functions.handle_message, /* traverse list hence: cur_swe->rvm_functions */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
372 cur_swe->rvm_functions.handle_timer ); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
373 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
374 rvf_setRtAddrSweIndex(rvm_swe_array[swe_index].swe_addr_id, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
375 swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
376 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
377 rvf_send_trace("RVM: Created task nb ", 21, (UINT32)rvm_swe_array[swe_index].swe_addr_id, RV_TRACE_LEVEL_DEBUG_LOW, RVM_USE_ID); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
378 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
379 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
380 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
381 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
382 cur_swe = cur_swe->next_swe; /* process next SWE */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
383 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
384 /* resolve T2 grouping */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
385 for(i=0; i<t2cnt; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
386 gd[i].host_task_addr=rvf_resolveHostingAddrId(gd[i]); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
387 if( gd[i].host_task_addr==RVF_INVALID_ADDR_ID) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
388 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
389 if ( rvm_allocate_stack_buffer( gd[i].stack_size, &stack_ptr) != RVM_OK){ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
390 /* TO DO: manage the error case - ABORT & Clean-up if one or more linked Ent. fail */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
391 //break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
392 return RVF_MEMORY_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
393 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
394 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
395 gd[i].host_task_addr=rvm_allocate_task_id(1); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
396 rvf_create_task((TASKPTR)rvm_t2_proxy, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
397 gd[i].host_task_addr, // | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
398 "hosting_task", | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
399 stack_ptr, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
400 gd[i].stack_size, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
401 gd[i].task_priority, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
402 ET2_HOST_TASK, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
403 DEFAULT_TIME_SLICING, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
404 SUSPEND); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
405 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
406 rvf_associateGrpToHost(gd[i].host_task_addr, gd[i].group_directive); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
407 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
408 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
409 for(j=0; j<MAX_COMPOSITES && gd[i].hosted_swe_db_index[j]!=0; j++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
410 /* create virtual task for each "hosted_swe_db_index[]" */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
411 rvm_swe_array[gd[i].hosted_swe_db_index[j]].swe_get_info(&swe_info); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
412 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
413 rvf_create_virtual_task(swe_info.type_info.type2.handle_message, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
414 swe_info.type_info.type2.handle_timer, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
415 rvm_swe_array[gd[i].hosted_swe_db_index[j]].swe_addr_id, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
416 gd[i].host_task_addr, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
417 rvm_swe_array[gd[i].hosted_swe_db_index[j]].swe_name, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
418 rvm_swe_array[gd[i].hosted_swe_db_index[j]].swe_priority, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
419 ET2_VTASK); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
420 rvf_setRtAddrSweIndex(rvm_swe_array[gd[i].hosted_swe_db_index[j]].swe_addr_id, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
421 gd[i].hosted_swe_db_index[j]); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
422 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
423 /* register each with associate host */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
424 rvf_registerToHost( gd[i].host_task_addr, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
425 rvm_swe_array[gd[i].hosted_swe_db_index[j]].swe_addr_id); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
426 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
427 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
428 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
429 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
430 /* resume all hosting tasks... */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
431 for(i=0; i<t2cnt; i++) rvf_resume_task((UINT8)gd[i].host_task_addr); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
432 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
433 /* start composites or virtual tasks */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
434 for(i=0; i<t2cnt; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
435 rvm_start_group_req((UINT8)gd[i].host_task_addr, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
436 gd[i].hosted_swe_db_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
437 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
438 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
439 /* for each SWE in the list, start it if necessary. */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
440 for(cur_swe = appli; cur_swe != NULL; ) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
441 UINT8 swe_index = cur_swe->swe_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
442 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
443 if ( rvm_swe_array[swe_index].swe_state != SWE_RUNNING) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
444 /* if the SWE is a task, resume it */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
445 if ( (cur_swe->swe_type == RVM_SWE_TYPE_3) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
446 || (cur_swe->swe_type == RVM_SWE_TYPE_4) ) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
447 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
448 /* TO DO: check the return value */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
449 if(rvf_resume_task((UINT8)rvm_swe_array[swe_index].swe_addr_id )!=RVF_OK) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
450 RVM_TRACE_WARNING("RVM: ERROR! UNABLE TO RESUME SWE"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
451 return RVF_INTERNAL_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
452 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
453 rvf_send_trace("RVM: Resumed task nb ", 21, (UINT32)rvm_swe_array[swe_index].swe_addr_id, RV_TRACE_LEVEL_DEBUG_LOW, RVM_USE_ID); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
454 rvf_send_trace("RVM: Resumed SWE ", 17, (UINT32)rvm_swe_array[swe_index].swe_use_id, RV_TRACE_LEVEL_DEBUG_LOW, RVM_USE_ID); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
455 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
456 #ifdef _WINDOWS | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
457 if (rvm_swe_array[swe_index].swe_use_id == HCI_USE_ID ) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
458 hci_started = TRUE; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
459 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
460 #endif | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
461 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
462 } else if(cur_swe->swe_type==RVM_SWE_TYPE_1) { /* A-M-E-N-D-E-D! */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
463 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
464 /* call its init function */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
465 if (cur_swe->rvm_functions.start) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
466 if (cur_swe->rvm_functions.start() != RVM_OK) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
467 rvf_send_trace("RVM: Error Calling start function of swe nb ", 44, \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
468 (UINT32)swe_index, 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
 | 
469 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
470 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
471 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
472 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
473 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
474 /* increment the number of using swe and points to the using appli */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
475 /* DOES NOT DEPEND ON THE STATE */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
476 /*rvm_swe_array[swe_index].swe_get_info(&swe_info); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
477 switch( swe_info.swe_type) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
478 case RVM_SWE_TYPE_1: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
479 if(!swe_info.type_info.type1.nb_linked_swe) rvm_swe_array[swe_index].nb_using_appli=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
480 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
481 case RVM_SWE_TYPE_2: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
482 if(!swe_info.type_info.type2.nb_linked_swe) rvm_swe_array[swe_index].nb_using_appli=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
483 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
484 case RVM_SWE_TYPE_3: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
485 if(!swe_info.type_info.type3.nb_linked_swe) rvm_swe_array[swe_index].nb_using_appli=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
486 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
487 case RVM_SWE_TYPE_4: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
488 if(!swe_info.type_info.type4.nb_linked_swe) rvm_swe_array[swe_index].nb_using_appli=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
489 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
490 default: rvm_swe_array[swe_index].nb_using_appli=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
491 }*/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
492 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
493 // if(rvm_swe_array[swe_index].nb_using_appli) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
494 // rvm_swe_array[swe_index].using_appli[rvm_swe_array[swe_index].nb_using_appli++] = appli->swe_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
495 // | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
496 // } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
497 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
498 if(rvm_swe_array[appli->swe_id].nb_using_appli<RVM_MAX_SWE_USING ) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
499 rvm_swe_array[appli->swe_id].using_appli[rvm_swe_array[appli->swe_id].nb_using_appli++]=swe_index; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
500 } else { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
501 RVM_TRACE_WARNING_PARAM("RVM: Unable to track 'Using Appli' list is full nb=", appli->swe_id); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
502 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
503 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
504 cur_swe = cur_swe->next_swe; /* process next SWE */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
505 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
506 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
507 for(cur_swe=appli; cur_swe!=NULL; ) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
508 rvm_swe_array[cur_swe->swe_id].swe_state = SWE_RUNNING; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
509 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
510 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
511 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
512 #ifdef _WINDOWS | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
513 if (hci_started == TRUE) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
514 rvf_delay(RVF_MS_TO_TICKS(1000)); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
515 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
516 #endif | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
517 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
518 return RVM_OK; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
519 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
520 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
521 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
522 /******************************************************************************* | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
523 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
524 ** Function rvm_stop_swe_list | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
525 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
526 ** Description This function will call the stop functions when possible. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
527 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
528 ** Parameters: T_RVM_PROCESSING_SWE * appli: list of required SWEs with their parameters. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
529 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
530 ** Returns T_RVM_OK if all allocation are successful, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
531 ** else T_RVM_INTERNAL_ERR (then some SWE are not stopped. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
532 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
533 *******************************************************************************/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
534 T_RVM_RETURN rvm_stop_swe_list( T_RVM_PROCESSING_SWE * appli, T_RV_HDR* hdr) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
535 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
536 T_RVM_PROCESSING_SWE * cur_swe = appli; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
537 T_RVM_INFO_SWE swe_info; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
538 volatile T_RVM_RETURN rvm_ret_value = RVM_OK; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
539 T_RVM_STOP_MSG* p_msg=NULL; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
540 UINT8 i=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
541 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
542 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
543 /* for each SWE in the list */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
544 while (cur_swe != NULL ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
545 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
546 UINT8 swe_index = cur_swe->swe_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
547 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
548 /* If nb_using_appli > 1, SWE cannot be stopped */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
549 /* if (rvm_swe_array[swe_index].nb_using_appli > 1) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
550 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
551 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
552 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
553 // If nb_using_appli == 1 but using_appli != appli, SWE cannot be stopped | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
554 if ((rvm_swe_array[swe_index].nb_using_appli == 1) && \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
555 (rvm_swe_array[swe_index].using_appli[0] != appli->swe_id)) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
556 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
557 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
558 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
559 */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
560 if (cur_swe->swe_type==RVM_SWE_TYPE_1) { //cater for de-init of lib | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
561 if(cur_swe->rvm_functions.stop1)cur_swe->rvm_functions.stop1(); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
562 if(cur_swe->rvm_functions.kill)cur_swe->rvm_functions.kill(); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
563 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
564 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
565 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
566 if (cur_swe->swe_type==RVM_SWE_TYPE_4) { // etype 4 restriction | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
567 RVM_TRACE_WARNING_PARAM("RVM: Stop & Kill is not applicable to Type 4 entities, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
568 for (rvm_swe_array[swe_index].nb_using_appli=0,i=0; i<RVM_MAX_SWE_USING; i++) { //reset using appli - workaround! | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
569 rvm_swe_array[swe_index].using_appli[i] = RVM_INVALID_SWE_INDEX; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
570 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
571 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
572 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
573 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
574 /* Retrieve stop function with a get_info */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
575 if (rvm_swe_array[swe_index].swe_get_info == NULL) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
576 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
577 RVM_TRACE_WARNING_PARAM("RVM: SWE with no get info, cannot be stopped, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
578 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
579 rvm_ret_value = RVM_INTERNAL_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
580 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
581 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
582 rvm_swe_array[swe_index].swe_get_info( &swe_info); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
583 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
584 if (cur_swe->rvm_functions.stop == NULL) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
585 RVM_TRACE_WARNING_PARAM("RVM: SWE with no stop function, cannot be stopped, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
586 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
587 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
588 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
589 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
590 if (rvf_get_buf( rvm_mem_bank, sizeof(T_RVM_STOP_MSG), (void **)&p_msg) == RVF_RED ) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
591 RVM_TRACE_WARNING_PARAM("RVM: Unable to create STOP msg, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
592 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
593 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
594 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
595 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
596 p_msg->header.msg_id = RVM_STOP_MSG; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
597 p_msg->header.src_addr_id = hdr->src_addr_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
598 p_msg->header.dest_addr_id = hdr->dest_addr_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
599 // p_msg->header.callback_func = hdr->callback_func; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
600 p_msg->rp.callback_func = ((T_RVM_STOP_MSG*)hdr)->rp.callback_func; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
601 p_msg->status = SWE_STOPPING; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
602 p_msg->swe_num = swe_index; //((T_RVM_STOP_MSG*)hdr)->swe_num; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
603 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
604 if ( rvf_send_msg( rvm_swe_array[swe_index].swe_addr_id, p_msg) != RVF_OK) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
605 rvm_ret_value = RVM_INTERNAL_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
606 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
607 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
608 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
609 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
610 rvm_swe_array[swe_index].swe_state=SWE_STOPPING; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
611 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
612 /*printf("SHUTDOWN: SWE %s nb %d USING APPLI= %d\n",rvm_swe_array[swe_index].swe_name, swe_index, rvm_swe_array[swe_index].nb_using_appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
613 for(i=0; i<rvm_swe_array[swe_index].nb_using_appli; i++)printf(" %d, ", rvm_swe_array[swe_index].using_appli[i]); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
614 printf("\n");*/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
615 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
616 for (rvm_swe_array[swe_index].nb_using_appli=0,i=0; i<RVM_MAX_SWE_USING; i++) { //reset using appli - workaround! | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
617 rvm_swe_array[swe_index].using_appli[i] = RVM_INVALID_SWE_INDEX; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
618 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
619 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
620 /*printf("SHUTDOWN: SWE %s nb %d USING APPLI= %d\n",rvm_swe_array[swe_index].swe_name, swe_index, rvm_swe_array[swe_index].nb_using_appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
621 for(i=0; i<rvm_swe_array[swe_index].nb_using_appli; i++)printf(" %d, ", rvm_swe_array[swe_index].using_appli[i]); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
622 printf("\n");*/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
623 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
624 /* Stop SWE - amended to ASYNC */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
625 /* TO DO: for type 2 and 3 SWEs, send a message to the host to call the stop function */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
626 //cur_swe->rvm_functions.stop(NULL); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
627 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
628 /* Proceed to the next SWE */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
629 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
630 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
631 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
632 return rvm_ret_value; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
633 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
634 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
635 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
636 /******************************************************************************* | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
637 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
638 ** Function rvm_suspend_swe_tasks | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
639 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
640 ** Description This function will suspend all SWE that are tasks. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
641 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
642 ** Parameters: T_RVM_PROCESSING_SWE * appli: list of required SWEs with their parameters. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
643 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
644 ** Returns T_RVM_OK if all allocation are successful, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
645 ** else T_RVM_INTERNAL_ERR (then some SWE are not stopped. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
646 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
647 *******************************************************************************/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
648 T_RVM_RETURN rvm_suspend_swe_tasks( T_RVM_PROCESSING_SWE * appli) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
649 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
650 T_RVM_PROCESSING_SWE * cur_swe = appli; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
651 T_RVM_INFO_SWE swe_info; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
652 volatile T_RVM_RETURN rvm_ret_value = RVM_OK; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
653 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
654 /* for each SWE in the list */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
655 while (cur_swe != NULL ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
656 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
657 UINT8 swe_index = cur_swe->swe_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
658 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
659 /* If nb_using_appli > 1, SWE cannot be stopped */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
660 if (rvm_swe_array[swe_index].nb_using_appli > 1) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
661 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
662 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
663 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
664 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
665 /* If nb_using_appli == 1 but using_appli != appli, SWE cannot be stopped */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
666 if ((rvm_swe_array[swe_index].nb_using_appli == 1) && \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
667 (rvm_swe_array[swe_index].using_appli[0] != appli->swe_id)) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
668 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
669 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
670 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
671 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
672 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
673 /* Retrieve task info with a get_info */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
674 if (rvm_swe_array[swe_index].swe_get_info == NULL) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
675 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
676 RVM_TRACE_WARNING_PARAM("RVM: SWE with no get info, cannot be stopped, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
677 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
678 rvm_ret_value = RVM_INTERNAL_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
679 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
680 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
681 rvm_swe_array[swe_index].swe_get_info( &swe_info); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
682 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
683 /* If SWE is not a task, continue */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
684 /* TO DO: manage group member SWEs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
685 if ( (swe_info.swe_type == RVM_SWE_TYPE_1) || | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
686 (swe_info.swe_type == RVM_SWE_TYPE_2) ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
687 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
688 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
689 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
690 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
691 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
692 /* Suspend SWE task */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
693 rvf_suspend_task( (UINT8)rvm_swe_array[swe_index].swe_return_path.addr_id); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
694 RVM_TRACE_DEBUG_LOW_PARAM("RVM: Suspended task nb ", (UINT32) (rvm_swe_array[swe_index].swe_return_path.addr_id & 0x000000FF) ); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
695 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
696 /* Proceed to the next SWE */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
697 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
698 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
699 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
700 return rvm_ret_value; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
701 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
702 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
703 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
704 /******************************************************************************* | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
705 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
706 ** Function rvm_kill_swe_list | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
707 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
708 ** Description This function will call the kill functions when possible. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
709 ** It will also delete the task, the stack and the used MBs. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
710 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
711 ** Parameters: T_RVM_PROCESSING_SWE * appli: list of required SWEs with their parameters. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
712 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
713 ** Returns T_RVM_OK if everything is successful, | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
714 ** else T_RVM_INTERNAL_ERR (then some SWE are not killed). | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
715 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
716 *******************************************************************************/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
717 T_RVM_RETURN rvm_kill_swe_list( T_RVM_PROCESSING_SWE * appli) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
718 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
719 T_RVM_PROCESSING_SWE * cur_swe = appli; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
720 T_RVM_INFO_SWE swe_info; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
721 volatile T_RVM_RETURN rvm_ret_value = RVM_OK; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
722 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
723 /* for each SWE in the list */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
724 while (cur_swe != NULL ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
725 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
726 UINT8 swe_index = cur_swe->swe_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
727 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
728 /* If nb_using_appli > 1, SWE cannot be killed */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
729 if (rvm_swe_array[swe_index].nb_using_appli > 1) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
730 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
731 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
732 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
733 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
734 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
735 /* If nb_using_appli == 1 but using_appli != appli, SWE cannot be killed */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
736 if ((rvm_swe_array[swe_index].nb_using_appli == 1) && \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
737 (rvm_swe_array[swe_index].using_appli[0] != appli->swe_id)) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
738 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
739 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
740 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
741 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
742 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
743 /* Retrieve kill function with a get_info */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
744 if (rvm_swe_array[swe_index].swe_get_info == NULL) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
745 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
746 RVM_TRACE_WARNING_PARAM("RVM: SWE with no get info, cannot be killed, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
747 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
748 rvm_ret_value = RVM_INTERNAL_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
749 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
750 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
751 rvm_swe_array[swe_index].swe_get_info( &swe_info); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
752 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
753 if (cur_swe->rvm_functions.kill == NULL) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
754 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
755 RVM_TRACE_WARNING_PARAM("RVM: SWE with no kill function, cannot be killed, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
756 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
757 rvm_ret_value = RVM_INTERNAL_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
758 continue; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
759 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
760 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
761 /* Kill SWE */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
762 cur_swe->rvm_functions.kill(); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
763 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
764 /* TO DO: manage group member SWEs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
765 /* If the SWE is a task, the task should be deleted, as well as its stack */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
766 if ( (swe_info.swe_type == RVM_SWE_TYPE_3) || | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
767 (swe_info.swe_type == RVM_SWE_TYPE_4) ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
768 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
769 rvf_exit_task((UINT8)(rvm_swe_array[swe_index].swe_return_path.addr_id)); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
770 rvf_free_buf(rvm_swe_array[swe_index].stack_ptr); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
771 RVM_TRACE_DEBUG_LOW_PARAM("RVM: Deleted task nb ", (UINT32)(rvm_swe_array[swe_index].swe_return_path.addr_id & 0x000000FF)); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
772 rvf_free_sys_resources(rvm_swe_array[swe_index].swe_addr_id, 2); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
773 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
774 } else if(swe_info.swe_type == RVM_SWE_TYPE_2) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
775 rvf_free_sys_resources(rvm_swe_array[swe_index].swe_addr_id, 0); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
776 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
777 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
778 /* Proceed to the next SWE */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
779 cur_swe = cur_swe->next_swe; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
780 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
781 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
782 return rvm_ret_value; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
783 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
784 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
785 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
786 /******************************************************************************* | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
787 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
788 ** Function rvm_launch_appli | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
789 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
790 ** Description Called by the main RVM task to start a specified known application | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
791 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
792 ** Parameters: T_RVM_MSG msg: containing the return path and the index of the | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
793 ** application to start in the array of known SWEs. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
794 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
795 ** Returns None | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
796 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
797 *******************************************************************************/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
798 void rvm_launch_appli( T_RVM_MSG * msg_Ptr) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
799 T_RVM_GROUP_DIRECTIVE GroupDirectives[MAX_GRPS]; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
800 UINT8 gdCount=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
801 T_RVM_PROCESSING_SWE * appli = NULL; /* pointer to the first element of the list */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
802 T_RV_RETURN_PATH appli_return_path; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
803 UINT8 i,j=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
804 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
805 for(i=0; i<MAX_GRPS; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
806 GroupDirectives[i].group_directive=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
807 GroupDirectives[i].host_task_addr=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
808 GroupDirectives[i].stack_size=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
809 memset(&GroupDirectives[i].hosted_swe_db_index, 0, (sizeof(UINT8)*MAX_COMPOSITES)); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
810 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
811 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
812 /* store the return path of the caller */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
813 appli_return_path.callback_func = msg_Ptr->rp.callback_func; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
814 appli_return_path.addr_id = msg_Ptr->header.src_addr_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
815 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
816 /* recursively call all get_info functions and build the list of running swe */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
817 if ( rvm_build_swe_list( &appli, msg_Ptr->swe_num, 0) != RVM_OK ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
818 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
819 /* Display error message | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
820 error case: use the return_path to inform the caller that an error occurs*/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
821 rvm_snd_msg_to_upper(RVM_START_APPLI, RVM_INVALID_PARAMETER, msg_Ptr->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
822 RVM_TRACE_ERROR("RVM: SWE list built error"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
823 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
824 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
825 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
826 gdCount=_resolve_t2_grouping(appli, GroupDirectives); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
827 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
828 if(!appli) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
829 // error case: use return_path to inform the caller about memory lack | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
830 // Unlock state of SWE and free memory | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
831 RVM_TRACE_WARNING_PARAM("RVM: ABORTED, Stand-alone ENTITY start request!", (UINT32)msg_Ptr->swe_num); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
832 rvm_snd_msg_to_upper(RVM_START_APPLI, RVM_NOT_READY, msg_Ptr->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
833 rvm_delete_used_memory (appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
834 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
835 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
836 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
837 RVM_TRACE_DEBUG_HIGH("RVM: SWE list built success"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
838 RVM_TRACE_DEBUG_HIGH_PARAM("RVM: trying to launch SWE", rvm_swe_array[appli->swe_id].swe_use_id); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
839 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
840 /* check if there is enough available memory */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
841 if ( rvm_verify_memory_requirement( appli, GroupDirectives, gdCount) != RVM_OK) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
842 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
843 /* error case: use return_path to inform the caller about memory lack */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
844 /* Unlock state of SWE and free memory */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
845 RVM_TRACE_WARNING_PARAM("RVM: SWE not enough memory: unable to launch Appli nb", (UINT32)appli->swe_id); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
846 rvm_snd_msg_to_upper(RVM_START_APPLI, RVM_MEMORY_ERR, msg_Ptr->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
847 rvm_delete_used_memory (appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
848 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
849 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
850 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
851 /* allocates memory banks */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
852 if ( rvm_allocate_mb( appli) != RVM_OK ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
853 { /* error case: use return_path to inform the caller about memory lack */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
854 rvm_delete_used_memory (appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
855 rvm_snd_msg_to_upper(RVM_START_APPLI, RVM_MEMORY_ERR, msg_Ptr->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
856 RVM_TRACE_WARNING("RVM: SWE memory bank allocation error - launch aborted!"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
857 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
858 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
859 RVM_TRACE_DEBUG_LOW("RVM: SWE memory bank allocation success"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
860 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
861 /* call set_info function for each SWE */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
862 if ( rvm_set_swe_info( appli) != RVM_OK) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
863 { /* error case: use return_path to inform the caller that an error occurs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
864 RVM_TRACE_WARNING("RVM: SWE set info functions error"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
865 _fatal(appli, 0); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
866 rvm_delete_created_mb(appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
867 rvm_delete_used_memory (appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
868 rvm_snd_msg_to_upper(RVM_START_APPLI, RVM_INTERNAL_ERR, msg_Ptr->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
869 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
870 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
871 RVM_TRACE_DEBUG_LOW("RVM: SWE set info functions called"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
872 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
873 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
874 /* call the init and start functions */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
875 if ( rvm_initialize_swe( appli, GroupDirectives, gdCount) != RVM_OK) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
876 { /* error case: use return_path to inform the caller that an error occurs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
877 RVM_TRACE_WARNING("RVM: SWE initialization error"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
878 rvm_snd_msg_to_upper(RVM_START_APPLI, RVM_INTERNAL_ERR, msg_Ptr->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
879 _fatal(appli, 2); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
880 rvm_delete_created_mb(appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
881 rvm_delete_used_memory (appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
882 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
883 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
884 RVM_TRACE_DEBUG_LOW("RVM: SWE initialization success"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
885 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
886 /* build a message and send the response to the caller */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
887 /* send a result using the return_path */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
888 rvm_snd_msg_to_upper(RVM_START_APPLI, RVM_OK, msg_Ptr->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
889 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
890 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
891 /* and store the return_path */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
892 rvm_swe_array[ msg_Ptr->swe_num ].mmi_return_path.callback_func = msg_Ptr->rp.callback_func; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
893 rvm_swe_array[ msg_Ptr->swe_num ].mmi_return_path.addr_id = msg_Ptr->header.src_addr_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
894 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
895 /* Once Everything is back in stand-by, release used memory */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
896 rvm_delete_used_memory (appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
897 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
898 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
899 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
900 /******************************************************************************* | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
901 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
902 ** Function rvm_shut_down_appli | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
903 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
904 ** Description Called by the main RVM task to stop a specified known application | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
905 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
906 ** Parameters: T_RVM_MSG msg: containing the return path and the index of the | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
907 ** application to stop in the array of known SWEs. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
908 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
909 ** Returns None | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
910 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
911 *******************************************************************************/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
912 void rvm_stop_appli( T_RVM_STOP_MSG* msg_Ptr) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
913 T_RVM_PROCESSING_SWE * appli = NULL; /* pointer to the first element of the list */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
914 T_RVM_RETURN ret_value; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
915 UINT8 swe_idx = 200; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
916 T_RV_RETURN_PATH appli_return_path; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
917 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
918 appli_return_path.callback_func = msg_Ptr->rp.callback_func; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
919 appli_return_path.addr_id = msg_Ptr->header.src_addr_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
920 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
921 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
922 RVM_TRACE_DEBUG_HIGH_PARAM("RVM: trying to stop Appli nb ", (UINT32)swe_idx); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
923 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
924 if (rvm_swe_array[msg_Ptr->swe_num].nb_using_appli > 1) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
925 RVM_TRACE_WARNING_PARAM("RVM: SWE has dependencies, nb=", (UINT32)msg_Ptr->swe_num); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
926 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
927 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
928 // ??? If nb_using_appli == 1 but using_appli != appli, SWE cannot be stopped | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
929 if ((rvm_swe_array[msg_Ptr->swe_num].nb_using_appli == 1) && \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
930 (rvm_swe_array[msg_Ptr->swe_num].using_appli[0] != msg_Ptr->swe_num)) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
931 RVM_TRACE_WARNING_PARAM("RVM: SWE has dependencies, nb=", (UINT32)msg_Ptr->swe_num); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
932 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
933 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
934 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
935 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
936 /* TO DO : REBUILD SWE LIST !!!! */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
937 if ( rvm_build_swe_list( &appli, msg_Ptr->swe_num, 1) != RVM_OK ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
938 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
939 /* Display error message | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
940 error case: use the return_path to inform the caller that an error occurs*/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
941 rvm_snd_msg_to_upper(RVM_START_APPLI, RVM_INVALID_PARAMETER, msg_Ptr->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
942 RVM_TRACE_ERROR("RVM: SWE list built error"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
943 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
944 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
945 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
946 /* Stop all swe in the list that are used only once */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
947 if ((ret_value = rvm_stop_swe_list(appli, (T_RV_HDR*)msg_Ptr)) != RVM_OK ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
948 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
949 /* Display error message | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
950 TO DO: error case: use the return_path to inform the caller that an error occurs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
951 RVM_TRACE_WARNING_PARAM("RVM: Error in SWE stop", (UINT32)ret_value); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
952 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
953 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
954 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
955 rvm_delete_used_memory (appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
956 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
957 RVM_TRACE_DEBUG_LOW("RVM: SWE stop broadcast!"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
958 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
959 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
960 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
961 // NOTE: presently no timeout exists, if the ENT. fails to reply | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
962 // to stop with rvm_swe_stopped() RVM doesn't kill it. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
963 void rvm_swe_has_stopped(T_RVM_STOP_MSG* msg) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
964 T_RVM_STOP_MSG* p_msg=(T_RVM_STOP_MSG*)msg; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
965 T_RV_RETURN_PATH appli_return_path; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
966 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
967 appli_return_path.callback_func = msg->rp.callback_func; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
968 appli_return_path.addr_id = msg->header.src_addr_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
969 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
970 if(msg->status!=SWE_STOPPING) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
971 // inform upper of problem | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
972 rvm_snd_msg_to_upper(RVM_STOP_APPLI, RVM_INVALID_PARAMETER, msg->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
973 RVM_TRACE_ERROR("RVM: Entity declines STOP REQ"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
974 rvf_free_msg((T_RV_HDR*)msg); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
975 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
976 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
977 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
978 // cont. with shutdown - MUST DO ERROR CASE ! | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
979 rvm_shutdown_swe(p_msg->swe_num); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
980 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
981 // set stopped status | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
982 rvm_swe_array[p_msg->swe_num].swe_state=SWE_KILLED; //SWE_STOPPING; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
983 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
984 /* build a message and send the response to the caller */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
985 /* send a result using the return_path */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
986 if(rvm_get_mb_level(p_msg->swe_num) ){ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
987 rvm_snd_msg_to_upper(RVM_STOP_APPLI, RV_MEMORY_REMAINING, msg->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
988 } else { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
989 rvm_snd_msg_to_upper(RVM_STOP_APPLI, RVM_OK, msg->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
990 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
991 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
992 /* and store the return_path */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
993 rvm_swe_array[ msg->swe_num ].mmi_return_path.callback_func = msg->rp.callback_func; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
994 rvm_swe_array[ msg->swe_num ].mmi_return_path.addr_id = msg->header.src_addr_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
995 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
996 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
997 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
998 void rvm_shutdown_swe(UINT8 index) { //should ret. ok or fail | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
999 rvm_suspend_swe(index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1000 rvm_kill_swe(index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1001 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1002 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1003 void rvm_suspend_swe(UINT8 swe_index) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1004 volatile T_RVM_RETURN rvm_ret_value = RVM_OK; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1005 T_RVM_INFO_SWE swe_info; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1006 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1007 /* ??? If nb_using_appli > 1, SWE cannot be stopped | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1008 if (rvm_swe_array[swe_index].nb_using_appli > 1) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1009 RVM_TRACE_WARNING_PARAM("RVM-SUSPEND: SWE has dependencies, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1010 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1011 // ??? If nb_using_appli == 1 but using_appli != appli, SWE cannot be stopped | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1012 if ((rvm_swe_array[swe_index].nb_using_appli == 1) && \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1013 (rvm_swe_array[swe_index].using_appli[0] != swe_index)) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1014 RVM_TRACE_WARNING_PARAM("RVM-SUSPEND: SWE has dependencies, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1015 }*/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1016 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1017 /* Retrieve task info with a get_info */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1018 if (rvm_swe_array[swe_index].swe_get_info == NULL) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1019 RVM_TRACE_WARNING_PARAM("RVM: SWE with no get info, cannot be stopped, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1020 rvm_ret_value = RVM_INTERNAL_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1021 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1022 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1023 rvm_swe_array[swe_index].swe_get_info( &swe_info); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1024 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1025 /* If SWE is not a task, continue */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1026 /* TO DO: manage group member SWEs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1027 if ( (swe_info.swe_type == RVM_SWE_TYPE_1) || | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1028 (swe_info.swe_type == RVM_SWE_TYPE_2) ) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1029 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1030 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1031 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1032 /* Suspend SWE task */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1033 rvf_suspend_task( (UINT8)rvm_swe_array[swe_index].swe_return_path.addr_id); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1034 RVM_TRACE_DEBUG_LOW_PARAM("RVM: Suspended task nb ", (UINT32) (rvm_swe_array[swe_index].swe_return_path.addr_id & 0x000000FF) ); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1035 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1036 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1037 T_RVM_RETURN rvm_kill_swe(UINT8 swe_index) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1038 T_RVM_INFO_SWE swe_info; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1039 volatile T_RVM_RETURN rvm_ret_value = RVM_OK; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1040 UINT8 isVirtual=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1041 T_RVF_G_ADDR_ID gid=RVF_INVALID_ADDR_ID; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1042 UINT8 isIdle=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1043 UINT8 i=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1044 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1045 /* If nb_using_appli > 1, SWE cannot be killed | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1046 if (rvm_swe_array[swe_index].nb_using_appli > 1) return rvm_ret_value; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1047 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1048 // If nb_using_appli == 1 but using_appli != appli, SWE cannot be killed | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1049 if ((rvm_swe_array[swe_index].nb_using_appli == 1) && \ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1050 (rvm_swe_array[swe_index].using_appli[0] != swe_index)) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1051 RVM_TRACE_WARNING_PARAM("RVM-KILL: SWE has dependencies, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1052 return rvm_ret_value; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1053 }*/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1054 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1055 /* Retrieve kill function with a get_info */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1056 if (rvm_swe_array[swe_index].swe_get_info == NULL){ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1057 RVM_TRACE_WARNING_PARAM("RVM-KILL: SWE has no kill function defined, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1058 rvm_ret_value = RVM_INTERNAL_ERR; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1059 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1060 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1061 rvm_swe_array[swe_index].swe_get_info(&swe_info); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1062 switch( swe_info.swe_type) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1063 case RVM_SWE_TYPE_1: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1064 // if(swe_info.type_info.type1.kill) swe_info.type_info.type1.kill() ; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1065 isVirtual=1; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1066 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1067 case RVM_SWE_TYPE_2: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1068 gid=resolveHostAddrId(rvm_swe_array[swe_index].swe_addr_id); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1069 rvf_unregisterFromHost(gid, rvm_swe_array[swe_index].swe_addr_id); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1070 rvf_isHostingTaskIdle(gid, &isIdle); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1071 if(isIdle) { // Defered suspend of hosting task: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1072 rvf_suspend_task(gid); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1073 rvf_exit_task(gid); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1074 rvf_free_sys_resources(gid, 2); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1075 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1076 if(swe_info.type_info.type2.kill) swe_info.type_info.type2.kill(); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1077 isVirtual=1; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1078 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1079 case RVM_SWE_TYPE_3: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1080 if(swe_info.type_info.type3.kill) swe_info.type_info.type3.kill(); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1081 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1082 case RVM_SWE_TYPE_4: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1083 if(swe_info.type_info.type4.kill) swe_info.type_info.type4.kill(); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1084 break; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1085 default: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1086 RVM_TRACE_WARNING_PARAM("RVM: SWE with no kill function, cannot be killed, nb=", (UINT32)swe_index); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1087 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1088 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1089 if(!isVirtual) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1090 rvf_exit_task((UINT8)(rvm_swe_array[swe_index].swe_return_path.addr_id)); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1091 rvf_free_buf(rvm_swe_array[swe_index].stack_ptr); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1092 RVM_TRACE_DEBUG_LOW_PARAM("RVM: Deleted task nb ", (UINT32)(rvm_swe_array[swe_index].swe_return_path.addr_id & 0x000000FF)); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1093 rvf_free_sys_resources(rvm_swe_array[swe_index].swe_addr_id, 2); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1094 } else { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1095 rvf_free_sys_resources(rvm_swe_array[swe_index].swe_addr_id, 0); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1096 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1097 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1098 return rvm_ret_value; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1099 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1100 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1101 UINT8 rvm_get_mb_level(UINT8 swe_index) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1102 T_RVM_INFO_SWE swe_info; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1103 INT8 i=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1104 UINT8 isUsed=0; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1105 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1106 rvm_swe_array[swe_index].swe_get_info(&swe_info); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1107 switch( swe_info.swe_type) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1108 case RVM_SWE_TYPE_1: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1109 if(swe_info.type_info.type1.nb_mem_bank!=0) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1110 for(i=0; i<swe_info.type_info.type1.nb_mem_bank; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1111 rvf_mb_is_used(swe_info.type_info.type1.mem_bank[i].bank_name, &isUsed); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1112 if(isUsed) return isUsed; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1113 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1114 return isUsed; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1115 case RVM_SWE_TYPE_2: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1116 if(swe_info.type_info.type2.nb_mem_bank!=0) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1117 for(i=0; i<swe_info.type_info.type2.nb_mem_bank; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1118 rvf_mb_is_used(swe_info.type_info.type2.mem_bank[i].bank_name, &isUsed); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1119 if(isUsed) return isUsed; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1120 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1121 return isUsed; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1122 case RVM_SWE_TYPE_3: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1123 if(swe_info.type_info.type3.nb_mem_bank!=0) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1124 for(i=0; i<swe_info.type_info.type3.nb_mem_bank; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1125 rvf_mb_is_used(swe_info.type_info.type3.mem_bank[i].bank_name, &isUsed); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1126 if(isUsed) return isUsed; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1127 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1128 return isUsed; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1129 case RVM_SWE_TYPE_4: | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1130 if(swe_info.type_info.type4.nb_mem_bank!=0) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1131 for(i=0; i<swe_info.type_info.type4.nb_mem_bank; i++) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1132 rvf_mb_is_used(swe_info.type_info.type4.mem_bank[i].bank_name, &isUsed); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1133 if(isUsed) return isUsed; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1134 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1135 return isUsed; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1136 default: RVM_TRACE_DEBUG_LOW("RVM: Error rvm_get_mb_level()"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1137 return isUsed; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1138 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1139 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1140 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1141 void rvm_shut_down_appli( T_RVM_MSG * msg_Ptr) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1142 T_RVM_PROCESSING_SWE * appli = NULL; /* pointer to the first element of the list */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1143 T_RVM_RETURN ret_value; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1144 UINT8 swe_idx = 200; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1145 T_RV_RETURN_PATH appli_return_path; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1146 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1147 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1148 appli_return_path.callback_func = msg_Ptr->rp.callback_func; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1149 appli_return_path.addr_id = msg_Ptr->header.src_addr_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1150 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1151 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1152 RVM_TRACE_DEBUG_HIGH_PARAM("RVM: trying to stop Appli nb ", (UINT32)swe_idx); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1153 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1154 /* TO DO : REBUILD SWE LIST !!!! */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1155 if ( rvm_build_swe_list( &appli, msg_Ptr->swe_num, 1) != RVM_OK ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1156 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1157 /* Display error message | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1158 error case: use the return_path to inform the caller that an error occurs*/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1159 rvm_snd_msg_to_upper(RVM_START_APPLI, RVM_INVALID_PARAMETER, msg_Ptr->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1160 RVM_TRACE_ERROR("RVM: SWE list built error"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1161 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1162 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1163 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1164 /* Stop all swe in the list that are used only once */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1165 if ((ret_value = rvm_stop_swe_list(appli, (T_RV_HDR*)msg_Ptr)) != RVM_OK ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1166 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1167 /* Display error message | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1168 TO DO: error case: use the return_path to inform the caller that an error occurs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1169 RVM_TRACE_WARNING_PARAM("RVM: Error in SWE stop", (UINT32)ret_value); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1170 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1171 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1172 RVM_TRACE_DEBUG_LOW("RVM: SWE stop success"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1173 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1174 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1175 /* Suspend all swe that are tasks */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1176 if ((ret_value = rvm_suspend_swe_tasks(appli)) != RVM_OK ) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1177 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1178 /* Display error message | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1179 TO DO: error case: use the return_path to inform the caller that an error occurs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1180 RVM_TRACE_WARNING_PARAM("RVM: Error in tasks suspension", (UINT32)ret_value); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1181 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1182 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1183 RVM_TRACE_DEBUG_LOW("RVM: SWE task supsended"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1184 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1185 /* Kill all SWEs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1186 if ((ret_value = rvm_kill_swe_list(appli)) != RVM_OK) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1187 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1188 /* Display error message | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1189 TO DO: error case: use the return_path to inform the caller that an error occurs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1190 RVM_TRACE_WARNING_PARAM("RVM: Error in SWE killing", (UINT32)ret_value); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1191 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1192 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1193 RVM_TRACE_DEBUG_LOW("RVM: SWE kill success"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1194 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1195 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1196 /* Delete the swe Memory Banks */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1197 rvm_delete_created_mb(appli); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1198 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1199 /* Delete memory used and restore NOT_STARTED states */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1200 if ((ret_value = rvm_clean_env(appli)) != RVM_OK) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1201 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1202 /* Display error message | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1203 TO DO: error case: use the return_path to inform the caller that an error occurs */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1204 RVM_TRACE_WARNING_PARAM("RVM: Error in Memory cleaning", (UINT32)ret_value); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1205 return; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1206 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1207 RVM_TRACE_DEBUG_LOW("RVM: Memory cleaning success"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1208 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1209 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1210 /* build a message and send the response to the caller */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1211 /* send a result using the return_path */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1212 rvm_snd_msg_to_upper(RVM_STOP_APPLI, RVM_OK, msg_Ptr->swe_num, appli_return_path); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1213 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1214 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1215 /* and store the return_path */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1216 rvm_swe_array[ msg_Ptr->swe_num ].mmi_return_path.callback_func = msg_Ptr->rp.callback_func; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1217 rvm_swe_array[ msg_Ptr->swe_num ].mmi_return_path.addr_id = msg_Ptr->header.src_addr_id; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1218 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1219 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1220 T_RVM_RETURN _fatal( T_RVM_PROCESSING_SWE * appli, UINT8 rm) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1221 T_RVM_PROCESSING_SWE * cur_swe = NULL; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1222 // T_RVM_INFO_SWE swe_info; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1223 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1224 RVM_TRACE_DEBUG_LOW("RVM: Fatality handler: reclaiming system resources!"); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1225 /* free all appli's system resources */ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1226 for (cur_swe = appli; cur_swe!=NULL; ) { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1227 if(rvm_swe_array[cur_swe->swe_id].swe_state!=SWE_RUNNING) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1228 rvf_free_sys_resources(rvm_swe_array[cur_swe->swe_id].swe_addr_id, rm); | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1229 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1230 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1231 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1232 return RVM_OK; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1233 } | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1234 | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1235 /******************************************************************************* | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1236 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1237 ** Function rvm_generic_swe_core | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1238 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1239 ** Description This is the main task core used for GROUP_MEMBER SWEs hosting | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1240 ** and for SINGLE SWEs. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1241 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1242 ** Parameters: useless, may be for future evolutions if Nucleus really | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1243 ** supports it. | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1244 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1245 ** Returns None | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1246 ** | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1247 *******************************************************************************/ | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1248 T_RVM_RETURN rvm_generic_swe_core(void) | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1249 { | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1250 return RVM_OK; | 
| 
 
21de8d8e6ea7
checking in Riviera code from the Sotomodem version
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1251 } | 
