5
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +------------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | File: vsi_pro.c
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 +------------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 | Copyright 2002 Texas Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | All rights reserved.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 | This file is confidential and a trade secret of Texas
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | The receipt of or possession of this file does not convey
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | any rights to reproduce or disclose its contents or to
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | manufacture, use, or sell anything it may describe, in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | whole, or in part, without the specific written consent of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | Texas Instruments Berlin, AG.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 | Purpose : This Module defines the virtual system interface part
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | about the processes
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #ifndef __VSI_PRO_C__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #define __VSI_PRO_C__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 /*==== INCLUDES ===================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #include "string.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #include "typedefs.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #include "os.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #include "vsi.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #include "frm_defs.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 #include "frm_types.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #include "frm_glob.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #include "frame.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #include "route.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 /*==== TYPES ======================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 /*==== CONSTANTS ==================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 /*==== EXTERNALS ==================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 /* -------------- S H A R E D - BEGIN ---------------- */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 #ifdef _TOOLS_
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 #pragma data_seg("FRAME_SHARED")
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 extern void pf_TaskEntry(T_HANDLE, ULONG);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 /*==== VARIABLES ==================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 #ifdef _TOOLS_
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 #pragma data_seg()
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 /* -------------- S H A R E D - END ---------------- */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 /*==== FUNCTIONS ==================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 #ifndef RUN_INT_RAM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 | PROJECT : GSM-Frame (8415) MODULE : VSI_PRO |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 | STATE : code ROUTINE : vsi_p_create |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 PURPOSE : creates a process
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 T_HANDLE vsi_p_create (T_HANDLE Caller, SHORT (*pei_create)(T_PEI_INFO const ** info),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 void (*TaskEntry)(T_HANDLE, ULONG), T_HANDLE MemPoolHandle )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 void (*EntryFunc)(T_HANDLE, ULONG);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 T_PEI_INFO const *Info;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 T_HANDLE TaskHandle;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 if ( pei_create ( &Info ) == PEI_OK )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 if ( TaskEntry == NULL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 EntryFunc = pf_TaskEntry;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 EntryFunc = TaskEntry;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 if ( os_CreateTask (NO_TASK, (char*)Info->Name, EntryFunc, Info->StackSize, Info->Priority,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 &TaskHandle, MemPoolHandle) == OS_OK )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 pf_TaskTable[TaskHandle].Flags = Info->Flags;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 pf_TaskTable[TaskHandle].PeiTable = &Info->PeiTable;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 pf_TaskTable[TaskHandle].QueueEntries = Info->QueueEntries;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 pf_TaskTable[TaskHandle].NumOfTimers = Info->NumOfTimers;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 strncpy (pf_TaskTable[TaskHandle].Name, Info->Name, RESOURCE_NAMELEN);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 pf_TaskTable[TaskHandle].Name[RESOURCE_NAMELEN-1] = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 pf_TaskTable[TaskHandle].TaskHandle = TaskHandle;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 pf_TaskTable[TaskHandle].MemPoolHandle = MemPoolHandle;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 return TaskHandle;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 return VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 #ifndef RUN_INT_RAM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 | PROJECT : GSM-Frame (8415) MODULE : VSI_PRO |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 | STATE : code ROUTINE : vsi_p_exit |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 PURPOSE : exits and deletes a process
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 #undef VSI_CALLER
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 #define VSI_CALLER Caller,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 #define VSI_CALLER_SINGLE Caller
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 int vsi_p_exit (T_HANDLE Caller, T_HANDLE TaskHandle)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 ULONG old_mask;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 T_PRIM_HEADER *prim;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 T_S_HEADER *s_hdr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 ULONG size;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 char name[RESOURCE_NAMELEN];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 size = S_ALLOC_SIZE(strlen(SYSPRIM_EXIT_TOKEN));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 #ifdef MEMORY_SUPERVISION
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 prim = (T_PRIM_HEADER*)vsi_c_new ( Caller, size, 0, __FILE__, __LINE__ );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 prim = (T_PRIM_HEADER*)vsi_c_new ( Caller, size, 0 );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 prim->opc = SYS_MASK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 prim->sh_offset = S_HDR_OFFSET(size - sizeof(T_S_HEADER));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 prim->len = strlen(SYSPRIM_EXIT_TOKEN) + sizeof(T_PRIM_HEADER);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 s_hdr = (T_S_HEADER*)((ULONG*)prim + prim->sh_offset);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 s_hdr->snd[0] =(char)Caller;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 strcpy((char*)P2D(prim),SYSPRIM_EXIT_TOKEN);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 if (vsi_gettaskname(Caller,TaskHandle,name) < VSI_OK)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 return VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 /* switch off tracing for Caller */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 vsi_gettracemask ( Caller, Caller, &old_mask);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 vsi_settracemask ( Caller, Caller, 0);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 PSEND(vsi_c_open(Caller,name),P2D(prim));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 /* set tracing to old value for Caller */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 vsi_settracemask ( Caller, Caller, old_mask);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 return VSI_OK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 #ifndef RUN_INT_RAM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 | PROJECT : GSM-Frame (8415) MODULE : VSI_PRO |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 | STATE : code ROUTINE : vsi_p_delete |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 PURPOSE : deletes a process
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 int vsi_p_delete (T_HANDLE Caller, T_HANDLE TaskHandle)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 rt_RoutingModify ( TaskHandle, (char*)SYSPRIM_REDIRECT_TOKEN, (char*)SYSPRIM_CLEAR_TOKEN );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 if ( os_DestroyQueue ( Caller, pf_TaskTable[TaskHandle].QueueHandle ) != OS_OK )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 return VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 memset ( &pf_TaskTable[TaskHandle], 0, sizeof (T_FRM_TASK_TABLE_ENTRY) );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 if ( os_DestroyTask ( Caller, TaskHandle ) != OS_OK )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 return VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 return VSI_OK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 #ifndef RUN_INT_RAM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 | PROJECT : GSM-Frame (8415) MODULE : VSI_PRO |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 | STATE : code ROUTINE : vsi_p_start |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 PURPOSE : starts a process
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 int vsi_p_start (T_HANDLE Caller, T_HANDLE TaskHandle)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 if ( os_StartTask ( Caller, TaskHandle, 0 ) == OS_OK )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 return VSI_OK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 return VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 #ifndef RUN_INT_RAM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 | PROJECT : GSM-Frame (8415) MODULE : VSI_PRO |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 | STATE : code ROUTINE : vsi_p_stop |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 PURPOSE : stops a process
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 int vsi_p_stop (T_HANDLE Caller, T_HANDLE TaskHandle)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 if ( os_StopTask ( Caller, TaskHandle ) == OS_OK )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 return VSI_OK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 return VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 #ifndef RUN_INT_RAM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 | PROJECT : GSM-Frame (8415) MODULE : VSI_PRO |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 | STATE : code ROUTINE : vsi_p_name |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 PURPOSE : reads the name of a task
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 int vsi_p_name (T_HANDLE Caller, T_HANDLE Handle, char *Name)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 if ( os_GetTaskName ( Caller, Handle, Name ) != OS_ERROR )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 return VSI_OK;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 return VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 #ifndef RUN_INT_RAM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 | PROJECT : GSM-Frame (8415) MODULE : VSI_PRO |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 | STATE : code ROUTINE : vsi_p_handle |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 PURPOSE : reads the name of a task
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 T_HANDLE vsi_p_handle (T_HANDLE Caller, char *Name)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 OS_HANDLE Handle;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 if ( os_GetTaskHandle ( Caller, Name, &Handle ) != OS_ERROR )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 return Handle;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 return VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 #endif
|