FreeCalypso > hg > fc-magnetite
annotate src/cs/riviera/rvm/rvm_swe_db.c @ 57:ecad19ce63c5
configs/classic: concept created
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sat, 01 Oct 2016 00:14:12 +0000 | 
| parents | 945cf7f506b2 | 
| children | 
| rev | line source | 
|---|---|
| 
0
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 * @file rvm_swe_db.c | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 * This file contains the functions related to the SW Entities | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 * database management. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 * @author David Lamy-Charrier (d-lamy@ti.com) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 * @version 0.2 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 * Revision History: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 * 01/19/2000 David Lamy-Charrier Create. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 * 10/22/2001 David Lamy-Charrier Update for new Riviera 1.6. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 * (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 #include "rvf/rvf_env.h" | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 #include "rvm/rvm_gen.h" | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 #include "rvm/rvm_api.h" | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 #include "rvm/rvm_i.h" | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 #include "rvm/rvm_use_id_list.h" | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 #include <string.h> | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 extern T_RVM_CONST_SWE_INFO RVM_SWE_GET_INFO_ARRAY[]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 extern const T_RVM_USE_ID * RVM_TYPE2_SWE_GROUPS[]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 /* id of the main rvm memory bank */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 T_RVF_MB_ID rvm_mem_bank=RVF_INVALID_MB_ID; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 T_RVF_MB_ID rvm_sys_mem_bank=RVF_INVALID_MB_ID; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 T_RVF_MB_ID rvm_timer_mem_bank=RVF_INVALID_MB_ID; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 T_RVF_MB_ID rvm_tm_notify_mem_bank=RVF_INVALID_MB_ID; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 T_RVF_MB_ID rvm_stack_mem_bank=RVF_INVALID_MB_ID; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 /* database of all SW Entities, their name, their get_info function and their links */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 T_RVM_KNOWN_SWE * rvm_swe_array; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 T_RVM_GROUP_INFO * rvm_group_array; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 ** Used task id array | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 ** This array allows the RVM to allocate dynamically task ids to SWEs | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 ** The task ids are allocated during creation. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 /*BOOLEAN rvm_allocated_task_id [MAX_RVF_TASKS]; */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 ** Number of SW Entities known on the system | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 UINT8 rvm_swe_number = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 /******************************************************************************* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 ** Function rvm_init_swe_db | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 ** Description Internal function called once at the beginning which | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 ** initializes the SWE database from information gathered | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 ** in a const array (defined in rvm_swe.c). | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 *******************************************************************************/ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 T_RVM_RETURN rvm_init_swe_db () | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 UINT8 swe_cpt=0, i=0, j=0, group_cpt = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 T_RVM_INFO_SWE swe_info; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 char rvm_trace_name[RVM_NAME_MAX_LEN+20] = "SWE Name: "; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 /* Initialize the allocated task id array */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 /* for (i=0; i<MAX_RVF_TASKS; i++) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 rvm_allocated_task_id[i] = FALSE; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 /* None task ID allocated at startup except: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 * - RVM_TASK_ID, | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 * - RVTEST_MENU_TASK_ID, | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 * - DUMMY_TASK_ID. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 * Refer to rv_general.h. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 * | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 * TO DO: Remove the last two IDs as soon as managed as SWEs. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 /* rvm_allocated_task_id[RVM_TASK_ID] = TRUE; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 if ( RVTEST_MENU_TASK_ID < MAX_RVF_TASKS) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 { rvm_allocated_task_id[RVTEST_MENU_TASK_ID] = TRUE; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 if ( IDLE_TASK_ID < MAX_RVF_TASKS) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 { rvm_allocated_task_id[IDLE_TASK_ID] = TRUE; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 /* Get the number of known SWEs */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 while ( ( RVM_SWE_GET_INFO_ARRAY[swe_cpt].get_info_func) != NULL) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 swe_cpt++; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 rvm_swe_number = swe_cpt; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 RVM_TRACE_DEBUG_HIGH_PARAM("RVM: number of registered SWE in the system: ", rvm_swe_number); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 /* Get memory for the SWEs array */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 if ( rvf_get_buf( rvm_mem_bank, (swe_cpt+1)*sizeof(T_RVM_KNOWN_SWE), (T_RVF_BUFFER**)&rvm_swe_array ) == RVF_RED ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 RVM_TRACE_WARNING("RVM_init_swe_db: not enough memory in the RVM main memory bank for init of array"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 return RVM_MEMORY_ERR; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 memset(rvm_swe_array, 0, (swe_cpt+1)*sizeof(T_RVM_KNOWN_SWE)); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 /* call all get_info functions to gather information about the SWEs */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 for (i=0; i<swe_cpt; i++) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 /* Call get info fct */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 (RVM_SWE_GET_INFO_ARRAY[i].get_info_func)(&swe_info); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 /* Init global structure */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 rvm_swe_array[i].swe_get_info = RVM_SWE_GET_INFO_ARRAY[i].get_info_func; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 rvm_swe_array[i].swe_use_id = RVM_SWE_GET_INFO_ARRAY[i].use_id; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 rvm_swe_array[i].swe_addr_id = RVF_INVALID_ADDR_ID; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 rvm_swe_array[i].group_index = RVM_OWN_GROUP; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 rvm_swe_array[i].swe_type = swe_info.swe_type; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 switch(swe_info.swe_type) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 case(RVM_SWE_TYPE_1): | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 { strcpy (rvm_swe_array[i].swe_name, swe_info.type_info.type1.swe_name); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 rvm_swe_array[i].swe_return_path.callback_func = swe_info.type_info.type1.return_path.callback_func; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 rvm_swe_array[i].swe_use_id = swe_info.type_info.type1.swe_use_id; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 rvm_swe_array[i].swe_stack_size = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 rvm_swe_array[i].swe_priority = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 case(RVM_SWE_TYPE_2): | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 { strcpy (rvm_swe_array[i].swe_name, swe_info.type_info.type2.swe_name); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 rvm_swe_array[i].swe_return_path.callback_func = swe_info.type_info.type2.return_path.callback_func; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 rvm_swe_array[i].swe_use_id = swe_info.type_info.type2.swe_use_id; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 rvm_swe_array[i].swe_stack_size = swe_info.type_info.type2.stack_size; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 rvm_swe_array[i].swe_priority = swe_info.type_info.type2.priority; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 case(RVM_SWE_TYPE_3): | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 { strcpy (rvm_swe_array[i].swe_name, swe_info.type_info.type3.swe_name); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 rvm_swe_array[i].swe_return_path.callback_func = swe_info.type_info.type3.return_path.callback_func; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 rvm_swe_array[i].swe_use_id = swe_info.type_info.type3.swe_use_id; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 rvm_swe_array[i].swe_stack_size = swe_info.type_info.type3.stack_size; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 rvm_swe_array[i].swe_priority = swe_info.type_info.type3.priority; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 case(RVM_SWE_TYPE_4): | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 { strcpy (rvm_swe_array[i].swe_name, swe_info.type_info.type4.swe_name); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 rvm_swe_array[i].swe_return_path.callback_func = swe_info.type_info.type4.return_path.callback_func; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 rvm_swe_array[i].swe_use_id = swe_info.type_info.type4.swe_use_id; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 rvm_swe_array[i].swe_stack_size = swe_info.type_info.type4.stack_size; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 rvm_swe_array[i].swe_priority = swe_info.type_info.type4.priority; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 rvm_swe_array[i].swe_state = SWE_NOT_STARTED; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 rvm_swe_array[i].stack_ptr = NULL; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 rvm_swe_array[i].nb_using_appli = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 for (j=0; j<RVM_MAX_SWE_USING; j++) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 rvm_swe_array[i].using_appli[j] = RVM_INVALID_SWE_INDEX; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 rvm_swe_array[i].swe_return_path.addr_id = RVF_INVALID_ADDR_ID; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 rvm_swe_array[i].mmi_return_path.callback_func = NULL; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 rvm_swe_array[i].mmi_return_path.addr_id = RVF_INVALID_ADDR_ID; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 RVM_TRACE_DEBUG_HIGH("RVM init: Known SWE database built"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 /* display the list of known SWEs with their name, use_id and index in the array. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 for (i=0; i<swe_cpt; i++) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 strcpy(rvm_trace_name + 10, rvm_swe_array[i].swe_name); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 rvf_send_trace(rvm_trace_name , (UINT8)strlen(rvm_trace_name), NULL_PARAM, RV_TRACE_LEVEL_DEBUG_LOW, RVM_USE_ID ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 RVM_TRACE_DEBUG_LOW_PARAM("SWE number:", i); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 RVM_TRACE_DEBUG_LOW_PARAM("SWE use_id:", rvm_swe_array[i].swe_use_id); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 /* initialize SWEs group array */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 /* Get the number of groups | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 group_cpt = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 while ( (RVM_TYPE2_SWE_GROUPS[group_cpt]) != NULL) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 i++; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 // Get memory for the groups array | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 if ( rvf_get_buf( rvm_mem_bank, (group_cpt+1)*sizeof(T_RVM_GROUP_INFO), (T_RVF_BUFFER**)&rvm_group_array ) == RVF_RED ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 RVM_TRACE_WARNING("RVM_build_swe_list: not enough memory in the RVM main memory bank for init of group array"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 return RVM_MEMORY_ERR; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 memset(rvm_group_array, 0, (group_cpt+1)*sizeof(T_RVM_GROUP_INFO)); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 // update the group_index of each type 2 SWE. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 for( i = 0; i < group_cpt; i++) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 { rvm_group_array[i].host_state = SWE_NOT_STARTED; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 rvm_group_array[i].task_id = RVF_INVALID_TASK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 rvm_group_array[i].task_priority= 255; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 if( RVM_TYPE2_SWE_GROUPS[i] != NULL) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 { UINT8 index; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 j = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 while( RVM_TYPE2_SWE_GROUPS[i][j] != RVM_INVALID_USE_ID) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 { if( rvm_get_swe_index( &index, RVM_TYPE2_SWE_GROUPS[i][j]) == RVM_OK) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 { // store the host group in the SWE | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 rvm_swe_array[index].group_index = i; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 // computes the highest stack size | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 if( rvm_swe_array[index].swe_stack_size > rvm_group_array[i].stack_size) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 { rvm_group_array[i].stack_size = rvm_swe_array[index].swe_stack_size; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 // computes the smallest priority | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 if( rvm_swe_array[index].swe_priority < rvm_group_array[i].task_priority) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 { rvm_group_array[i].task_priority = rvm_swe_array[index].swe_priority; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 j++; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 return RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 /******************************************************************************* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 ** Function rvm_get_swe_index | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 ** Description Internal function which returns the index of the swe in the | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 ** database of known SWEs. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 ** Returns RVM_OK if it exists, else RVM_INVALID_PARAMETER. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 *******************************************************************************/ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 T_RVM_RETURN rvm_get_swe_index( UINT8 * index, T_RVM_USE_ID swe_use_id) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 { for ( (*index) = 0; ( (*index) < rvm_swe_number) && (swe_use_id != rvm_swe_array[*index].swe_use_id) ; (*index)++); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 if ( *index == rvm_swe_number ) /* swe use id not found */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 *index = RVM_INVALID_SWE_INDEX; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 return RVM_INVALID_PARAMETER; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 return RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 /******************************************************************************* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 ** Function rvm_check_application | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 ** Description Internal function which checks if a SWE can be started | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 ** or stopped, depending on appli_action parameter. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 ** If it is the case, it returns the application number. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 *******************************************************************************/ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 T_RVM_RETURN rvm_check_application (T_RVM_USE_ID swe_use_id, UINT8* num_swe, T_RVM_APPLI_ACTION appli_action) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 /* check if the SWE use_id exists */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 if (rvm_get_swe_index(num_swe, swe_use_id) != RVM_OK) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 return RVM_INVALID_PARAMETER; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 /* check if the get_info function is known */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 if (rvm_swe_array[*num_swe].swe_get_info == NULL ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 *num_swe = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 return RVM_NOT_READY; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 /* check if the appli can be started or stopped */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 /* if ((appli_action == RVM_START_APPLI) && ( rvm_swe_array[*num_swe].swe_state != SWE_NOT_STARTED)) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 *num_swe = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 return RVM_NOT_READY; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 /* If more than 1 SWE is using the application, we cannot stop it */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 /* if (appli_action == RVM_STOP_APPLI) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 if ( (rvm_swe_array[*num_swe].swe_state != SWE_RUNNING) || \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 (rvm_swe_array[*num_swe].nb_using_appli != 1) || \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 (rvm_swe_array[rvm_swe_array[*num_swe].using_appli[0]].swe_use_id != rvm_swe_array[*num_swe].swe_use_id) ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 *num_swe = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 return RVM_NOT_READY; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 }*/ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 return RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 /******************************************************************************* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 ** Function rvm_unlock_swe | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 ** Description Internal function that sets back SWE state to NOT_STARTED | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 ** in case an error occurs or the stop process is finished | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
314 *******************************************************************************/ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 T_RVM_RETURN rvm_unlock_swe ( T_RVM_PROCESSING_SWE * appli) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 T_RVM_PROCESSING_SWE * cur_elem = appli; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 while (cur_elem) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 UINT8 swe_index = cur_elem->swe_id; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 if (rvm_swe_array[swe_index].swe_state != SWE_RUNNING) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 cur_elem = cur_elem->next_swe; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 continue; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
327 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 rvm_swe_array[swe_index].swe_state = SWE_NOT_STARTED; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
331 cur_elem = cur_elem->next_swe; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
332 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 return RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 /******************************************************************************* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 ** Function rvm_build_swe_list | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 ** Description Build the list of SWEs required to launch the specified SWE. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
344 ** Parameters: T_RVM_PROCESSING_SWE ** list: list of required SWE. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
345 ** UINT8 swe_num: index of the SWE to start in the array of known SWEs. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 ** Returns T_RVM_RETURN | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
349 *******************************************************************************/ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
350 T_RVM_RETURN rvm_build_swe_list(T_RVM_PROCESSING_SWE ** list, UINT8 swe_num, UINT8 mode) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
351 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
352 T_RVM_PROCESSING_SWE * cur_elem = *list; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
353 T_RVM_USE_ID loc_linked_swe_id[RVM_MAX_NB_LINKED_SWE]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
354 UINT8* rvm_swe_to_call; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
355 UINT8 rvm_current_swe_to_call = 0, rvm_last_swe_to_call = 1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
356 UINT8 swe_cpt; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
357 UINT8 mb_cpt; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
358 UINT8 nb_linked_swe = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
359 volatile T_RVM_RETURN rvm_ret_value = RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
360 UINT8 isRunning=0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
361 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
362 /* allocate a matrix to store temporarily the dependencies between SWEs */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
363 if (rvf_get_buf( rvm_mem_bank, rvm_swe_number*rvm_swe_number, (void**)&rvm_swe_to_call) == RVF_RED) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
364 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
365 rvf_send_trace("RVM_build_swe_list: not enough memory in the RVM memory bank for build_swe_list process", 87, NULL_PARAM, RV_TRACE_LEVEL_WARNING, RVM_USE_ID ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
366 return RVM_MEMORY_ERR; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
367 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
368 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
369 rvm_swe_to_call[rvm_current_swe_to_call] = swe_num; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
370 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
371 do | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
372 /* While some get_info functions has to be called. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
373 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
374 T_RVM_INFO_SWE swe_info; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
375 UINT8 swe_num_i = rvm_swe_to_call[rvm_current_swe_to_call]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
376 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
377 /* Check if SWE is running or not */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
378 if (rvm_swe_array[swe_num_i].swe_state == SWE_RUNNING && mode==0) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
379 rvf_send_trace("RVM_build_swe_list: SWE already running, nb: ", 45, swe_num_i, RV_TRACE_LEVEL_DEBUG_HIGH, RVM_USE_ID ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
380 rvm_current_swe_to_call++; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
381 continue; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
382 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
383 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
384 if ( rvm_swe_array[swe_num_i].swe_state == SWE_STOPPING && mode==0) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
385 rvf_send_trace("RVM_build_swe_list: SWE stopped awaiting kill, nb: ", 45, swe_num_i, RV_TRACE_LEVEL_DEBUG_HIGH, RVM_USE_ID ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
386 rvm_current_swe_to_call++; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
387 continue; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
388 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
389 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
390 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
391 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
392 /* Check if SWE is already queued or not. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
393 cur_elem = *list; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
394 while ( (cur_elem != NULL) && ( rvm_swe_array[cur_elem->swe_id].swe_use_id != rvm_swe_array[swe_num_i].swe_use_id) ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
395 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
396 cur_elem = cur_elem->next_swe; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
397 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
398 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
399 if (cur_elem != NULL) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
400 /* SWE was found => - update SWE variables and pointers | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
401 - go to next step of the loop. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
402 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
403 rvm_current_swe_to_call++; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
404 continue; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
405 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
406 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
407 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
408 /* cur_elem = NULL => SWE was not found => create its entry in the list. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
409 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
410 /* create it and call its get_info function */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
411 if ( rvf_get_buf( rvm_mem_bank, sizeof(T_RVM_PROCESSING_SWE), (void**)&cur_elem ) == RVF_RED ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
412 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
413 rvf_send_trace("RVM_build_swe_list: not enough memory in the RVM main memory bank for the SWE entry", 83, NULL_PARAM, RV_TRACE_LEVEL_WARNING, RVM_USE_ID ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
414 rvm_ret_value = RVM_MEMORY_ERR; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
415 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
416 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
417 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
418 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
419 ** initialize the new entry | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
420 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
421 memset(cur_elem, 0, sizeof(T_RVM_PROCESSING_SWE) ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
422 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
423 /* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
424 ** Set the SWE id: index in known SWE array | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
425 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
426 cur_elem->swe_id = swe_num_i; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
427 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
428 /* call its get_info() function */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
429 if ( rvm_swe_array[swe_num_i].swe_get_info(&swe_info) != RVM_OK ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
430 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
431 /* Here an error occured in its get_info function. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
432 free memory allocated for this entry and return an error. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
433 rvf_free_buf( cur_elem ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
434 rvf_send_trace("RVM_build_swe_list: get_info function returns an error", 54, NULL_PARAM, RV_TRACE_LEVEL_WARNING, RVM_USE_ID ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
435 rvm_ret_value = RVM_INTERNAL_ERR; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
436 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
437 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
438 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
439 cur_elem->swe_type = swe_info.swe_type; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
440 cur_elem->rvm_functions.core = rvm_generic_swe_core; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
441 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
442 switch( swe_info.swe_type) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
443 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
444 case ( RVM_SWE_TYPE_1): | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
445 { cur_elem->rvm_functions.set_info = swe_info.type_info.type1.set_info; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
446 cur_elem->rvm_functions.init = swe_info.type_info.type1.init; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
447 cur_elem->rvm_functions.start = swe_info.type_info.type1.start; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
448 cur_elem->rvm_functions.stop1 = swe_info.type_info.type1.stop; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
449 cur_elem->rvm_functions.kill = swe_info.type_info.type1.kill; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
450 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
451 nb_linked_swe = swe_info.type_info.type1.nb_linked_swe; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
452 for( mb_cpt = 0; mb_cpt < nb_linked_swe; mb_cpt++ ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
453 { loc_linked_swe_id[mb_cpt] = swe_info.type_info.type1.linked_swe_id[mb_cpt]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
454 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
455 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
456 /* memory bank information */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
457 cur_elem->nb_requested_mb = swe_info.type_info.type1.nb_mem_bank; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
458 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
459 for( mb_cpt = 0; mb_cpt < cur_elem->nb_requested_mb; mb_cpt++ ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
460 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
461 memcpy (cur_elem->swe_mem_bank[mb_cpt].mb_name, \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
462 swe_info.type_info.type1.mem_bank[mb_cpt].bank_name, \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
463 RVF_MAX_MB_LEN); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
464 cur_elem->swe_mem_bank[mb_cpt].mb_initial_param.size \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
465 = swe_info.type_info.type1.mem_bank[mb_cpt].initial_params.size; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
466 cur_elem->swe_mem_bank[mb_cpt].mb_initial_param.watermark \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
467 = swe_info.type_info.type1.mem_bank[mb_cpt].initial_params.watermark; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
468 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
469 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
470 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
471 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
472 case ( RVM_SWE_TYPE_2): | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
473 { cur_elem->rvm_functions.set_info = swe_info.type_info.type2.set_info; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
474 cur_elem->rvm_functions.init = swe_info.type_info.type2.init; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
475 cur_elem->rvm_functions.start = swe_info.type_info.type2.start; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
476 cur_elem->rvm_functions.stop = swe_info.type_info.type2.stop; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
477 cur_elem->rvm_functions.kill = swe_info.type_info.type2.kill; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
478 cur_elem->rvm_functions.handle_message = swe_info.type_info.type2.handle_message; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
479 cur_elem->rvm_functions.handle_timer = swe_info.type_info.type2.handle_timer; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
480 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
481 cur_elem->priority = swe_info.type_info.type2.priority; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
482 cur_elem->stack_size = swe_info.type_info.type2.stack_size; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
483 nb_linked_swe = swe_info.type_info.type2.nb_linked_swe; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
484 for( mb_cpt = 0; mb_cpt < nb_linked_swe; mb_cpt++ ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
485 { loc_linked_swe_id[mb_cpt] = swe_info.type_info.type2.linked_swe_id[mb_cpt]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
486 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
487 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
488 /* memory bank information */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
489 cur_elem->nb_requested_mb = swe_info.type_info.type2.nb_mem_bank; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
490 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
491 for( mb_cpt = 0; mb_cpt < cur_elem->nb_requested_mb; mb_cpt++ ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
492 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
493 memcpy (cur_elem->swe_mem_bank[mb_cpt].mb_name, \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
494 swe_info.type_info.type2.mem_bank[mb_cpt].bank_name, \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
495 RVF_MAX_MB_LEN); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
496 cur_elem->swe_mem_bank[mb_cpt].mb_initial_param.size \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
497 = swe_info.type_info.type2.mem_bank[mb_cpt].initial_params.size; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
498 cur_elem->swe_mem_bank[mb_cpt].mb_initial_param.watermark \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
499 = swe_info.type_info.type2.mem_bank[mb_cpt].initial_params.watermark; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
500 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
501 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
502 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
503 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
504 case ( RVM_SWE_TYPE_3): | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
505 { cur_elem->rvm_functions.set_info = swe_info.type_info.type3.set_info; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
506 cur_elem->rvm_functions.init = swe_info.type_info.type3.init; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
507 cur_elem->rvm_functions.start = swe_info.type_info.type3.start; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
508 cur_elem->rvm_functions.stop = swe_info.type_info.type3.stop; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
509 cur_elem->rvm_functions.kill = swe_info.type_info.type3.kill; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
510 cur_elem->rvm_functions.handle_message = swe_info.type_info.type3.handle_message; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
511 cur_elem->rvm_functions.handle_timer = swe_info.type_info.type3.handle_timer; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
512 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
513 cur_elem->priority = swe_info.type_info.type3.priority; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
514 cur_elem->stack_size = swe_info.type_info.type3.stack_size; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
515 nb_linked_swe = swe_info.type_info.type3.nb_linked_swe; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
516 for( mb_cpt = 0; mb_cpt < nb_linked_swe; mb_cpt++ ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
517 { loc_linked_swe_id[mb_cpt] = swe_info.type_info.type3.linked_swe_id[mb_cpt]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
518 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
519 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
520 /* memory bank information */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
521 cur_elem->nb_requested_mb = swe_info.type_info.type3.nb_mem_bank; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
522 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
523 for( mb_cpt = 0; mb_cpt < cur_elem->nb_requested_mb; mb_cpt++ ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
524 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
525 memcpy (cur_elem->swe_mem_bank[mb_cpt].mb_name, \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
526 swe_info.type_info.type3.mem_bank[mb_cpt].bank_name, \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
527 RVF_MAX_MB_LEN); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
528 cur_elem->swe_mem_bank[mb_cpt].mb_initial_param.size \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
529 = swe_info.type_info.type3.mem_bank[mb_cpt].initial_params.size; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
530 cur_elem->swe_mem_bank[mb_cpt].mb_initial_param.watermark \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
531 = swe_info.type_info.type3.mem_bank[mb_cpt].initial_params.watermark; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
532 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
533 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
534 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
535 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
536 case ( RVM_SWE_TYPE_4): | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
537 { cur_elem->rvm_functions.set_info = swe_info.type_info.type4.set_info; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
538 cur_elem->rvm_functions.init = swe_info.type_info.type4.init; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
539 cur_elem->rvm_functions.stop1 = swe_info.type_info.type4.stop; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
540 cur_elem->rvm_functions.kill = swe_info.type_info.type4.kill; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
541 cur_elem->rvm_functions.core = swe_info.type_info.type4.core; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
542 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
543 cur_elem->priority = swe_info.type_info.type4.priority; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
544 cur_elem->stack_size = swe_info.type_info.type4.stack_size; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
545 nb_linked_swe = swe_info.type_info.type4.nb_linked_swe; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
546 for( mb_cpt = 0; mb_cpt < nb_linked_swe; mb_cpt++ ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
547 { loc_linked_swe_id[mb_cpt] = swe_info.type_info.type4.linked_swe_id[mb_cpt]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
548 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
549 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
550 /* memory bank information */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
551 cur_elem->nb_requested_mb = swe_info.type_info.type4.nb_mem_bank; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
552 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
553 for( mb_cpt = 0; mb_cpt < cur_elem->nb_requested_mb; mb_cpt++ ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
554 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
555 memcpy (cur_elem->swe_mem_bank[mb_cpt].mb_name, \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
556 swe_info.type_info.type4.mem_bank[mb_cpt].bank_name, \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
557 RVF_MAX_MB_LEN); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
558 cur_elem->swe_mem_bank[mb_cpt].mb_initial_param.size \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
559 = swe_info.type_info.type4.mem_bank[mb_cpt].initial_params.size; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
560 cur_elem->swe_mem_bank[mb_cpt].mb_initial_param.watermark \ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
561 = swe_info.type_info.type4.mem_bank[mb_cpt].initial_params.watermark; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
562 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
563 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
564 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
565 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
566 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
567 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
568 /* allocate a task id, if necessary. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
569 /* if ( (swe_info.swe_type == RVM_SWE_TYPE_3) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
570 ||(swe_info.swe_type == RVM_SWE_TYPE_4) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
571 || ( (swe_info.swe_type == RVM_SWE_TYPE_2) && ( rvm_swe_array[swe_num_i].group_index == RVM_OWN_GROUP) ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
572 || ( (swe_info.swe_type == RVM_SWE_TYPE_2) && ( rvm_group_array[rvm_swe_array[swe_num_i].group_index].task_id == RVF_INVALID_TASK) ) ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
573 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
574 T_RVM_TASK_ID loc_task_id; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
575 if(swe_info.swe_type==RVM_SWE_TYPE_2) loc_task_id = rvm_allocate_task_id(0); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
576 else loc_task_id = rvm_allocate_task_id(1); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
577 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
578 if (loc_task_id == RVF_INVALID_TASK) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
579 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
580 rvm_ret_value = RVM_INTERNAL_ERR; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
581 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
582 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
583 if ( (swe_info.swe_type == RVM_SWE_TYPE_3) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
584 ||(swe_info.swe_type == RVM_SWE_TYPE_4) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
585 || ( (swe_info.swe_type == RVM_SWE_TYPE_2) && ( rvm_swe_array[swe_num_i].group_index == RVM_OWN_GROUP) ) ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
586 { rvm_swe_array[swe_num_i].swe_addr_id = loc_task_id; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
587 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
588 else | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
589 { if ( (swe_info.swe_type == RVM_SWE_TYPE_2) && ( rvm_group_array[rvm_swe_array[swe_num_i].group_index].task_id == RVF_INVALID_TASK) ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
590 { rvm_group_array[rvm_swe_array[swe_num_i].group_index].task_id = loc_task_id; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
591 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
592 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
593 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
594 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
595 */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
596 /* Insert the element in the head of the list. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
597 if (*list == NULL) /* the list is empty */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
598 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
599 /* This element is the first of the list */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
600 *list = cur_elem; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
601 cur_elem->next_swe = NULL; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
602 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
603 else | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
604 { cur_elem->next_swe = *list; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
605 *list = cur_elem; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
606 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
607 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
608 /* Get the list of linked swe num, and put it in the array */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
609 if (nb_linked_swe != 0) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
610 for (swe_cpt = 0; swe_cpt < nb_linked_swe; swe_cpt++) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
611 if (rvm_get_swe_index(&(rvm_swe_to_call[rvm_last_swe_to_call + swe_cpt]), loc_linked_swe_id[swe_cpt] ) != RVM_OK) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
612 rvm_ret_value = RVM_INVALID_PARAMETER; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
613 rvf_send_trace("rvm_swe_db: Task allocation error!",35, NULL_PARAM, RV_TRACE_LEVEL_WARNING, RVM_USE_ID ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
614 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
615 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
616 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
617 if (rvm_ret_value != RVM_OK) break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
618 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
619 rvm_last_swe_to_call += nb_linked_swe; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
620 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
621 /* Once everything is done for current swe, increment rvm_current_swe_to_call */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
622 rvm_current_swe_to_call ++; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
623 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
624 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
625 while (rvm_current_swe_to_call != rvm_last_swe_to_call); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
626 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
627 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
628 if (rvm_ret_value != RVM_OK) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
629 /* Something went wrong => undo everything */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
630 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
631 rvm_delete_used_memory (*list); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
632 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
633 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
634 rvf_free_buf (rvm_swe_to_call); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
635 return (rvm_ret_value); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
636 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
637 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
638 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
639 /******************************************************************************* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
640 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
641 ** Function rvm_clean_env | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
642 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
643 ** Description This function will clean the environment. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
644 ** Its main tasks are: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
645 ** - Update the using_appli pointer of the SWE array | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
646 ** - Update states to NOT_STARTED | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
647 ** - Release local memory | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
648 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
649 ** Parameters: T_RVM_PROCESSING_SWE * appli: list of required SWEs with their parameters. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
650 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
651 ** Returns T_RVM_OK if all allocation are successful, | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
652 ** else T_RVM_INTERNAL_ERR (then some SWE are not killed.) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
653 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
654 *******************************************************************************/ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
655 T_RVM_RETURN rvm_clean_env( T_RVM_PROCESSING_SWE * appli) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
656 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
657 T_RVM_PROCESSING_SWE * cur_swe = appli; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
658 UINT8 appli_nb1, appli_nb2; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
659 volatile T_RVM_RETURN rvm_ret_value = RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
660 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
661 /* for each SWE in the list */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
662 while (cur_swe != NULL ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
663 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
664 UINT8 swe_index = cur_swe->swe_id; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
665 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
666 /* Update using_appli array */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
667 if (rvm_swe_array[swe_index].nb_using_appli > 1) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
668 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
669 for (appli_nb1 = 0; appli_nb1 < (rvm_swe_array[swe_index].nb_using_appli - 1); appli_nb1++) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
670 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
671 if (rvm_swe_array[swe_index].using_appli[appli_nb1] == appli->swe_id) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
672 /* appli was found in the using_appli array -> remove it and shift down the others */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
673 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
674 for (appli_nb2 = appli_nb1; appli_nb2 < rvm_swe_array[swe_index].nb_using_appli; appli_nb2++) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
675 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
676 rvm_swe_array[swe_index].using_appli[appli_nb2] = rvm_swe_array[swe_index].using_appli[appli_nb2 + 1]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
677 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
678 /* Once using_appli pointer has been eliminated, we can exit the loop */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
679 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
680 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
681 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
682 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
683 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
684 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
685 /* Decrement nb of using applications */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
686 rvm_swe_array[swe_index].nb_using_appli--; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
687 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
688 /* Force to NULL last appli pointer */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
689 rvm_swe_array[swe_index].using_appli[rvm_swe_array[swe_index].nb_using_appli] = RVM_INVALID_SWE_INDEX; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
690 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
691 /* If last appli was deleted, put state back to init */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
692 if (rvm_swe_array[swe_index].nb_using_appli == 0) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
693 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
694 rvm_swe_array[swe_index].swe_state = SWE_NOT_STARTED; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
695 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
696 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
697 /* Proceed to the next SWE */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
698 cur_swe = cur_swe->next_swe; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
699 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
700 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
701 /* Once Everything is back in stand-by, release used memory */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
702 rvm_delete_used_memory (appli); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
703 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
704 return rvm_ret_value; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
705 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
706 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
707 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
708 /******************************************************************************* | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
709 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
710 ** Function rvm_error | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
711 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
712 ** Description Called by a SWE in case of unrecoverable error | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
713 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
714 ** Parameters: T_RVM_NAME swe_name: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
715 ** T_RVM_RETURN error_cause: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
716 ** T_RVM_ERROR_TYPE error_type: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
717 ** T_RVM_STRING error_msg: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
718 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
719 ** Returns T_RVM_RETURN: RVM_OK if successful, else a negative value. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
720 ** | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
721 *******************************************************************************/ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
722 T_RVM_RETURN rvm_error ( T_RVM_NAME swe_name, T_RVM_RETURN error_cause, | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
723 T_RVM_ERROR_TYPE error_type, T_RVM_STRING error_msg) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
724 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
725 char swe_name_string[40]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
726 UINT8 i=0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
727 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
728 memcpy(swe_name_string,"RVM: coming from: ",18); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
729 memcpy((void*)((char*)swe_name_string+18),swe_name,RVM_NAME_MAX_LEN); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
730 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
731 RVM_TRACE_WARNING("RVM: unrecoverable error indication"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
732 rvf_send_trace(swe_name_string, 18 + RVM_NAME_MAX_LEN, NULL_PARAM, RV_TRACE_LEVEL_WARNING, RVM_USE_ID ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
733 RVM_TRACE_WARNING_PARAM("RVM: Error Cause: ", error_cause); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
734 RVM_TRACE_WARNING_PARAM("RVM: Error Type: ", error_type); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
735 /* check the message to limit its length to RVM_ERROR_MSG_MAX_LENGTH characters. */ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
736 while (error_msg[i]) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
737 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
738 i++; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
739 if (i>RVM_ERROR_MSG_MAX_LENGTH) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
740 break; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
741 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
742 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
743 rvf_send_trace(error_msg, i, NULL_PARAM, RV_TRACE_LEVEL_WARNING, RVM_USE_ID ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
744 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
745 return RVM_OK; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
746 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
747 | 
