annotate src/gpf3/frame/vsi_tim.c @ 701:35e7f9d0379f

targets: add TARGET_HAS_BUZZER to c11x, c139 and dsample This new target config preprocessor symbol was introduced in Tourmaline in connection with the new approach to playing buzzer melodies via PWT, properly omitting the responsible code on targets where BU output controls the vibrator instead. That code is not present in Magnetite and we have no plans to backport it here, but target header files should be kept consistent between the two trees, especially given that we plan to support FC Venus target in Magnetite.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 26 Mar 2022 19:51:34 +0000
parents c41a534f33c6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 +------------------------------------------------------------------------------
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 | File: vsi_tim.c
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 +------------------------------------------------------------------------------
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 | Copyright 2002 Texas Instruments Berlin, AG
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 | All rights reserved.
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 | This file is confidential and a trade secret of Texas
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 | Instruments Berlin, AG
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 | The receipt of or possession of this file does not convey
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 | any rights to reproduce or disclose its contents or to
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 | manufacture, use, or sell anything it may describe, in
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 | whole, or in part, without the specific written consent of
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 | Texas Instruments Berlin, AG.
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 +-----------------------------------------------------------------------------
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 | Purpose : This Module defines the virtual system interface part
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 | for the timer handling.
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 +-----------------------------------------------------------------------------
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 #ifndef __VSI_TIM_C__
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 #define __VSI_TIM_C__
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 /*==== INCLUDES ===================================================*/
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 #include "typedefs.h"
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 #include "string.h"
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 #include "vsi.h"
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 #include "os.h"
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 #include "tools.h"
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 #include "frm_defs.h"
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 #include "frm_types.h"
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 #include "frm_glob.h"
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 #include "frame.h"
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 /*==== TYPES ======================================================*/
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 typedef struct _T_TIMER_CONFIG_ENTRY
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 T_HANDLE entity;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 T_TIME value;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 USHORT index;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 USHORT mode;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 struct _T_TIMER_CONFIG_ENTRY *next;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 } T_TIMER_CONFIG_ENTRY;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 /*==== CONSTANTS ==================================================*/
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 LOCAL const T_STR_IND StrInd[] =
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 "TIMER_SET", TIMER_SET,
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 "TIMER_RESET", TIMER_RESET,
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 "TIMER_SPEED_UP", TIMER_SPEED_UP,
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 "TIMER_SLOW_DOWN", TIMER_SLOW_DOWN,
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 "TIMER_SUPPRESS", TIMER_SUPPRESS,
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 "TIMER_CLEAN", TIMER_CLEAN,
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 NULL, 0
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 };
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 /*==== EXTERNALS ==================================================*/
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 /* -------------- S H A R E D - BEGIN ---------------- */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 #ifdef _TOOLS_
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 #pragma data_seg("FRAME_SHARED")
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 extern OS_HANDLE ext_data_pool_handle;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 extern T_HANDLE TimerHandleField[];
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 /*==== VARIABLES ==================================================*/
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 #ifndef RUN_INT_RAM
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 char timer_configured;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 T_TIMER_CONFIG_ENTRY *t_config;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 #else
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 extern char timer_configured;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 extern T_TIMER_CONFIG_ENTRY *t_config;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 #ifdef _TOOLS_
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 #pragma data_seg()
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 /* -------------- S H A R E D - END ---------------- */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 /*==== FUNCTIONS ==================================================*/
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 int GetTimerStartValue ( T_HANDLE Caller, USHORT TimerIndex, T_TIME OrgValue, T_TIME *NewValue );
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 #ifndef RUN_FLASH
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 /*
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 | PROJECT : GSM-Frame (8415) MODULE : VSI_TIM |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 | STATE : code ROUTINE : GetTimerStartValue |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 PURPOSE : get start time modified by dynamic configuration
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 int GetTimerStartValue ( T_HANDLE caller, USHORT index, T_TIME org_value, T_TIME *new_value )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 T_TIMER_CONFIG_ENTRY *t_config_entry;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 int found;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 if ( t_config != NULL )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 found = FALSE;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 t_config_entry = t_config;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 while ( found == FALSE && t_config_entry != NULL )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 if ( t_config_entry->entity == caller
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 && t_config_entry->index == index )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 found = TRUE;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 switch (t_config_entry->mode)
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 case TIMER_SET:
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 *new_value = t_config_entry->value;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 break;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 case TIMER_RESET:
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 *new_value = org_value;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 break;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 case TIMER_SPEED_UP:
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 *new_value = org_value / t_config_entry->value;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 break;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 case TIMER_SLOW_DOWN:
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 *new_value = org_value * t_config_entry->value;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 break;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 default:
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 vsi_o_ttrace ( caller, TC_TIMER, "Timerstart: Index %d, Time %d -> %d",index, org_value, *new_value );
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 t_config_entry = t_config_entry->next;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 if ( found == FALSE )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 *new_value = org_value;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 else
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 *new_value = org_value;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 if (*new_value == 0)
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 *new_value = 1;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 return VSI_OK;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 #ifndef RUN_FLASH
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 /*
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 | PROJECT : GSM-Frame (8415) MODULE : VSI_TIM |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 | STATE : code ROUTINE : vsi_t_start |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 PURPOSE : start timer that expires only once
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 int vsi_t_start (T_HANDLE Caller, USHORT TimerIndex, T_TIME Value)
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 OS_HANDLE TimerHandle;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 vsi_o_ttrace ( Caller, TC_TIMER, "Timerstart: Index %d, Time %d",TimerIndex, Value) ;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 if ( TimerIndex >= pf_TaskTable[Caller].NumOfTimers )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 vsi_o_assert( NO_TASK, OS_SYST_ERR_TASK_TIMER, __FILE__, __LINE__,
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 "TimerIndex > NumOfTimers for entity %s", pf_TaskTable[Caller].Name );
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 TimerHandle = (*(pf_TaskTable[Caller].FirstTimerEntry + TimerIndex) & TIMER_HANDLE_MASK);
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 if ( !TimerHandle )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 if ( os_CreateTimer ( Caller, pf_Timeout, &TimerHandle, pf_TaskTable[Caller].MemPoolHandle ) == OS_ERROR )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 vsi_o_assert( Caller, OS_SYST_ERR_SIMUL_TIMER, __FILE__, __LINE__,
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 "Number of started timers > MAX_SIMULTANEOUS_TIMER" );
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 if ( timer_configured && GetTimerStartValue ( Caller, TimerIndex, Value, &Value ) == VSI_ERROR )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 *(pf_TaskTable[Caller].FirstTimerEntry + TimerIndex) = TimerHandle;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 if ( os_StartTimer ( Caller, TimerHandle, TimerIndex, Value, 0 ) == OS_ERROR )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195 return VSI_OK;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 #ifndef RUN_INT_RAM
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 /*
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 | PROJECT : GSM-Frame (8415) MODULE : VSI_TIM |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 | STATE : code ROUTINE : vsi_t_pstart |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 PURPOSE : start periodic timer
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208 */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 int vsi_t_pstart (T_HANDLE Caller, USHORT TimerIndex, T_TIME Value1, T_TIME Value2 )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 OS_HANDLE TimerHandle;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214 vsi_o_ttrace ( Caller, TC_TIMER, "Timerstart: Index %d, ITime %d PTime %d",TimerIndex, Value1, Value2) ;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 if ( TimerIndex >= pf_TaskTable[Caller].NumOfTimers )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 vsi_o_assert( NO_TASK, OS_SYST_ERR_TASK_TIMER, __FILE__, __LINE__,
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 "TimerIndex > NumOfTimers for entity %s", pf_TaskTable[Caller].Name );
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 TimerHandle = (*(pf_TaskTable[Caller].FirstTimerEntry + TimerIndex) & TIMER_HANDLE_MASK);
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222 if ( !TimerHandle )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224 if ( os_CreateTimer ( Caller, pf_Timeout, &TimerHandle, pf_TaskTable[Caller].MemPoolHandle ) == OS_ERROR )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 vsi_o_assert( Caller, OS_SYST_ERR_SIMUL_TIMER, __FILE__, __LINE__,
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 "Number of started timers > MAX_SIMULTANEOUS_TIMER" );
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 if ( timer_configured && GetTimerStartValue ( Caller, TimerIndex, Value1, &Value1 ) == VSI_ERROR )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 if ( timer_configured && GetTimerStartValue ( Caller, TimerIndex, Value2, &Value2 ) == VSI_ERROR )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235 *(pf_TaskTable[Caller].FirstTimerEntry + TimerIndex) = TimerHandle | PERIODIC_TIMER;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237 if ( os_StartTimer ( Caller, TimerHandle, TimerIndex, Value1, Value2 ) == OS_ERROR )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 return VSI_OK;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
242 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
243
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
244 #ifndef RUN_FLASH
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
245 /*
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
246 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
247 | PROJECT : GSM-Frame (8415) MODULE : VSI_TIM |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
248 | STATE : code ROUTINE : vsi_t_stop |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
250
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
251 PURPOSE : stop timer
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
253 */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
254
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
255 int vsi_t_stop (T_HANDLE Caller, USHORT TimerIndex )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
256 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
257 OS_HANDLE TimerHandle;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
258
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
259 vsi_o_ttrace ( Caller, TC_TIMER, "Timerstop: Index %d",TimerIndex) ;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
260 TimerHandle = (*(pf_TaskTable[Caller].FirstTimerEntry + TimerIndex) & TIMER_HANDLE_MASK);
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
261 if ( TimerHandle && ( (TimerHandle & TIMER_HANDLE_MASK) < MaxTimer ) )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
262 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
263 /*
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
264 if ( os_StopTimer ( Caller, TimerHandle ) == OS_ERROR )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
265 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
266
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
267 if ( os_DestroyTimer ( Caller, TimerHandle ) == OS_ERROR )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
268 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
269 */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
270 os_StopTimer ( Caller, TimerHandle );
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
271 os_DestroyTimer ( Caller, TimerHandle );
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
272
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
273 *(pf_TaskTable[Caller].FirstTimerEntry + TimerIndex) = 0;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
274 return VSI_OK;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
275 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
276 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
277
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
278 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
279 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
280
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
281 #ifndef RUN_INT_RAM
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
282 /*
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
283 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
284 | PROJECT : GSM-Frame (8415) MODULE : VSI_TIM |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
285 | STATE : code ROUTINE : vsi_t_status |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
286 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
287
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
288 PURPOSE : request remaining time
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
289
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
290 */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
291
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
292 int vsi_t_status (T_HANDLE Caller, USHORT Index, T_TIME *Value )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
293 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
294 OS_HANDLE TimerHandle;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
295
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
296 if ( (TimerHandle = (*(pf_TaskTable[Caller].FirstTimerEntry + Index) & TIMER_HANDLE_MASK) ) < MaxTimer )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
297 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
298 if ( TimerHandle == 0 || (*(pf_TaskTable[Caller].FirstTimerEntry + Index) & TIMEOUT_OCCURRED) )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
299 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
300 *Value = 0;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
301 vsi_o_ttrace ( Caller, TC_TIMER, "Timerstatus: Index %d, Remaining_time %d",Index, *Value) ;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
302 return VSI_OK;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
303 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
304 /*
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
305 In case the timer interrupt occurrs just after the check 5 lines above, this will be handled by
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
306 os_QueryTimer() returning a Value of 0 because thew expired timer can no longer be found in the list.
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
307 */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
308 if ( os_QueryTimer ( Caller, TimerHandle, Value ) == OS_ERROR )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
309 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
310 *Value = 0;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
311 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
312 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
313 vsi_o_ttrace ( Caller, TC_TIMER, "Timerstatus: Index %d, Remaining time %d",Index, *Value) ;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
314 return VSI_OK;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
315 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
316 vsi_o_ttrace ( Caller, TC_TIMER, "TimerHandle out of range: Index %d, TimerHandle %d",Index, TimerHandle ) ;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
317 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
318
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
319 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
320 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
321
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
322 #ifndef RUN_INT_RAM
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
323 /*
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
324 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
325 | PROJECT : GSM-Frame (8415) MODULE : VSI_TIM |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
326 | STATE : code ROUTINE : vsi_t_config |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
327 +--------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
328
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
329 PURPOSE : timer configuration
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
330
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
331 */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
332 int vsi_t_config (T_HANDLE caller, USHORT index, UBYTE mode, ULONG value )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
333 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
334 T_TIMER_CONFIG_ENTRY *t_config_entry = NULL;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
335 T_TIMER_CONFIG_ENTRY *t_next_entry;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
336 T_TIMER_CONFIG_ENTRY *t_new_entry = NULL;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
337 int found = FALSE;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
338
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
339 if ( index < pf_TaskTable[caller].NumOfTimers )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
340 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
341 if ( t_config != NULL )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
342 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
343 t_next_entry = t_config;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
344 do
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
345 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
346 t_config_entry = t_next_entry;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
347 if ( t_config_entry->entity == caller
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
348 && t_config_entry->index == index )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
349 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
350 found = TRUE;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
351 break;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
352 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
353 t_next_entry = t_config_entry->next;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
354 } while ( t_next_entry != NULL );
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
355 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
356
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
357 if ( found == FALSE )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
358 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
359 if ( os_AllocateMemory ( caller, (T_VOID_STRUCT**)&t_new_entry, sizeof(T_TIMER_CONFIG_ENTRY), OS_NO_SUSPEND, ext_data_pool_handle ) == OS_TIMEOUT )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
360 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
361 t_new_entry->next = NULL;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
362 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
363
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
364 if ( t_config == NULL )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
365 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
366 t_config = t_new_entry;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
367 t_config_entry = t_new_entry;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
368 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
369 else
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
370 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
371 if ( found == FALSE && t_config_entry != NULL )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
372 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
373 t_config_entry->next = t_new_entry;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
374 t_config_entry = t_new_entry;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
375 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
376 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
377
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
378 if ( t_config_entry != NULL )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
379 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
380 t_config_entry->entity = caller;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
381 t_config_entry->index = index;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
382 t_config_entry->mode = mode;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
383 t_config_entry->value = value;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
384 timer_configured = TRUE;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
385 return VSI_OK;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
386 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
387 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
388 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
389 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
390 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
391
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
392 #ifndef RUN_INT_RAM
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
393 /*
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
394 +------------------------------------------------------------------------------
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
395 | Function : _vsi_t_config
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
396 +------------------------------------------------------------------------------
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
397 | Description : Parse a timer configuration string into the components
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
398 | timer index, timer mode, timer value.
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
399 |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
400 | Parameters : Caller - calling task
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
401 | *CfgString - configuration string
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
402 | *pTable - pointer to configuration string table
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
403 |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
404 | Return : VSI_OK
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
405 | VSI_ERROR
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
406 +------------------------------------------------------------------------------
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
407 */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
408 int _vsi_t_config ( T_HANDLE Caller, char *CfgString, const T_STR_IND *pTable )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
409 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
410 T_TIMER_CONFIG_ENTRY *t_config_entry;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
411 T_TIMER_CONFIG_ENTRY *t_next;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
412 char token[20];
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
413 unsigned int offset = 0,len;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
414 USHORT Index;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
415 BYTE Mode;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
416 int i = 0;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
417 unsigned int Value;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
418
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
419 if ( pTable != NULL )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
420 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
421 len = GetNextToken (CfgString, token, " #");
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
422 offset = offset + len +1;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
423 while ( StrInd[i].Str && strcmp ( token, StrInd[i].Str ) )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
424 { i++; }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
425 if ( StrInd[i].Str == NULL )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
426 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
427
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
428 if ( (Mode = (BYTE)StrInd[i].Ind) == TIMER_CLEAN )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
429 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
430 t_config_entry = t_config;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
431 while ( t_config_entry != NULL )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
432 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
433 t_next = t_config_entry->next;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
434 os_DeallocateMemory ( Caller, (T_VOID_STRUCT*)t_config_entry );
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
435 t_config_entry = t_next;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
436 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
437 t_config = NULL;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
438 return VSI_OK;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
439 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
440 len = GetNextToken (CfgString+offset, token, " #");
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
441 offset = offset + len +1;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
442 while ( pTable->Str && strcmp ( token, pTable->Str ) )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
443 { pTable++; }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
444 if ( pTable->Str == NULL )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
445 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
446 vsi_o_ttrace ( 0, TC_SYSTEM, "Timer not found!") ;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
447 return VSI_OK; /* VSI_OK is returned to avoid creating a new return code */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
448 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
449 Index = pTable->Ind;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
450 len = GetNextToken (CfgString+offset, token, " #");
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
451 Value = ASCIIToHex (token, CHARS_FOR_32BIT);
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
452
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
453 return ( vsi_t_config ( Caller, Index, Mode, Value ) );
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
454 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
455 return VSI_ERROR;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
456
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
457 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
458 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
459
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
460 #ifndef RUN_INT_RAM
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
461 /*
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
462 +---------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
463 | PROJECT : GSM-Frame (8415) MODULE : VSI_TIM |
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
464 | STATE : code ROUTINE : InitializeTimerConfig|
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
465 +---------------------------------------------------------------------+
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
466
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
467 PURPOSE : initialize timer configuration
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
468
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
469 */
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
470
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
471 void InitializeTimer ( void )
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
472 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
473 int i;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
474
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
475 for ( i = 0; i <= MaxTimer; i++)
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
476 {
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
477 TimerHandleField[i] = 0;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
478 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
479 timer_configured = FALSE;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
480 t_config = NULL;
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
481 }
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
482 #endif
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
483
c41a534f33c6 src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
484