FreeCalypso > hg > fc-magnetite
annotate src/g23m-aci/gdd_dio/gdd_dio_con_mgr.c @ 265:0aa748b6413a
src/cs/system/Main/init.c: initial import from LoCosto source
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sat, 05 Aug 2017 02:02:16 +0000 | 
| parents | 53929b40109c | 
| children | 
| rev | line source | 
|---|---|
| 
162
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 +----------------------------------------------------------------------------- | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | File : gdd_dio_con_mgr.c | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 +----------------------------------------------------------------------------- | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 | All rights reserved. | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | This file is confidential and a trade secret of Texas | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 | Instruments Berlin, AG | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 | The receipt of or possession of this file does not convey | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | any rights to reproduce or disclose its contents or to | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | manufacture, use, or sell anything it may describe, in | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | whole, or in part, without the specific written consent of | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 | Texas Instruments Berlin, AG. | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 +----------------------------------------------------------------------------- | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 | Purpose : Implements connection management functions | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 +----------------------------------------------------------------------------- | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 #define ENTITY_GDD_DIO | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 /*==== INCLUDES =============================================================*/ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 #include "typedefs.h" /* to get Condat data types */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 #include "vsi.h" /* to get a lot of macros */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 #include "prim.h" /* to get the definitions of used SAP and directions */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 #include "dti.h" | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 #include "gdd_dio.h" /* to get the global entity definitions */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 #include "gdd_dio_queue.h" | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 #include "gdd_dio_con_mgr.h" | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 #include <string.h> | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 /*==== DEFINITIONS ==========================================================*/ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 #define ENTER_CRITICAL_SECTION(sem) if (gdd_enter_critical_section(sem))return -1; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 #define LEAVE_CRITICAL_SECTION(sem) if (gdd_leave_critical_section(sem))return -1; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 /*==== CONST ================================================================*/ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 /*==== LOCAL VARS ===========================================================*/ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 static T_HANDLE sem_GDD_DIO_CON; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 /*==== PRIVATE FUNCTIONS ====================================================*/ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 LOCAL int get_free_connection_slot(T_GDD_DIO_DATA * gdd_dio_data, | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 T_GDD_DIO_CON_DATA ** con_data /*output*/); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 static void gdd_semaphore_err (void); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 static int gdd_enter_critical_section (T_HANDLE sem); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 static int gdd_leave_critical_section (T_HANDLE sem); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 /*==== PUBLIC FUNCTIONS =====================================================*/ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 /* Initializes the connection manager */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 GLOBAL void gdd_dio_con_mgr_init (T_GDD_DIO_DATA * gdd_dio_data) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 int i; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 T_GDD_DIO_CON_DATA * con_data = gdd_dio_data->con_arr; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 TRACE_FUNCTION( "[GDD] conn_init()" ); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 for(i = 0; i < gdd_dio_data->max_con; ++i, ++con_data) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 con_data->con_state = GDD_DIO_CON_DEAD; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 sem_GDD_DIO_CON = vsi_s_open (VSI_CALLER "SEM_GDD_CON",1); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 if (sem_GDD_DIO_CON EQ VSI_ERROR) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 vsi_o_ttrace(VSI_CALLER TC_EVENT, "can´t open semaphore \"SEM_GDD_CON\""); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 /* Setup a new DIO connection */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 GLOBAL GDD_RESULT gdd_dio_con_mgr_new | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 ( T_GDD_DIO_DATA * gdd_dio_data, | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 T_GDD_CON_HANDLE * con_handle, | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 const T_GDD_CAP * cap, | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 T_GDD_RECEIVE_DATA_CB rcv_cb, | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 T_GDD_SIGNAL_CB sig_cb ) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 T_GDD_DIO_CON_DATA * con_data = 0; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 TRACE_FUNCTION("[GDD] conn_new()"); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 if(get_free_connection_slot(gdd_dio_data, &con_data) NEQ 0) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 TRACE_ERROR("Failed to get new connection slot"); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 return GDD_NO_CONNECTION_SLOT; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 gdd_dio_queue_clear(&con_data->rx_queue); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 gdd_dio_queue_clear(&con_data->tx_queue); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 con_data->wait_send_buf = FALSE; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 con_data->rcv_cb = rcv_cb; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 con_data->sig_cb = sig_cb; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 con_data->dio_cap.device_type = DIO_TYPE_PKT; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 con_data->dio_cap.device_flags = 0; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 con_data->dio_cap.mtu_control = 0; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 con_data->dio_cap.mtu_data = (U16)((T_GDD_DIO_CAP *)cap)->mtu_size; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 con_data->dio_cap.driver_name = "GDD"; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 (*con_handle) = con_data->dio_device; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 gdd_dio_send_signal_to_dio(con_data, DRV_SIGTYPE_CONNECT); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 return GDD_OK; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 /* Close a connection */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 GLOBAL GDD_RESULT gdd_dio_con_mgr_close | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 ( T_GDD_CON_HANDLE con_handle ) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 T_GDD_INST_ID inst = (T_GDD_INST_ID)inst_num_from_dev_id(con_handle); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 T_GDD_DIO_CON_DATA * con_data; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 TRACE_FUNCTION( "[GDD] gdd_dio_con_mgr_close()" ); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 con_data = get_con_data(&(gdd_dio_data_base[inst]), con_handle); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 if(con_data EQ NULL) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 TRACE_ERROR("Failed to get connection data"); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 return GDD_INTERNAL_ERROR; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 con_data->con_state = GDD_DIO_CON_CLOSE; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 gdd_dio_send_signal_to_dio(con_data, DRV_SIGTYPE_DISCONNECT); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 return GDD_OK; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 /* Mark a connection as dead */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 GDD_RESULT gdd_dio_con_mgr_mark_dead( T_GDD_CON_HANDLE con_handle ) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 T_GDD_INST_ID inst = (T_GDD_INST_ID)inst_num_from_dev_id(con_handle); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 T_GDD_DIO_CON_DATA * con_data; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 TRACE_FUNCTION( "[GDD] gdd_dio_con_mgr_mark_dead()" ); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 con_data = get_con_data(&(gdd_dio_data_base[inst]), con_handle); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 if(con_data EQ NULL) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 TRACE_ERROR("Failed to get connection data"); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 return GDD_INTERNAL_ERROR; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 /* Clear the connection slot | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 - it's sufficient to set state and nullify handle */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 con_data->con_state = GDD_DIO_CON_DEAD; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 return GDD_OK; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 /* Check if any of the connections is (still) open or in connecting state. */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 BOOL gdd_dio_con_mgr_has_open_connection | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 ( const T_GDD_DIO_DATA * gdd_dio_data ) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 int i; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 T_GDD_DIO_CON_DATA * con_data = gdd_dio_data->con_arr; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 TRACE_FUNCTION( "[GDD] gdd_dio_con_mgr_has_open_connection()" ); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 for(i = 0; i < gdd_dio_data->max_con; ++i, ++con_data) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 if(con_data->con_state EQ GDD_DIO_CON_READY || | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 con_data->con_state EQ GDD_DIO_CON_SENDING || | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 con_data->con_state EQ GDD_DIO_CON_CONNECT) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 return TRUE; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 return FALSE; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 /* Get the connection data for a given instance & handle */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 GLOBAL T_GDD_DIO_CON_DATA * get_con_data(const T_GDD_DIO_DATA * gdd_dio_data, | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 T_GDD_CON_HANDLE con_handle) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 int i; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 /* Deliberately NO tracing */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 for(i=0; i<gdd_dio_data->max_con; ++i) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 if(gdd_dio_data->con_arr[i].dio_device EQ con_handle) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 return &gdd_dio_data->con_arr[i]; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 return NULL; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 /* Get the connection data for a given handle only */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 GLOBAL T_GDD_DIO_CON_DATA * get_con_data_from_handle(T_GDD_CON_HANDLE con_handle) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 T_GDD_INST_ID inst; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 /* Deliberately NO tracing */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 inst = (T_GDD_INST_ID)inst_num_from_dev_id(con_handle); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 if(inst < 0 || inst >= GDD_NUM_INSTS) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 return 0; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 return get_con_data(&(gdd_dio_data_base[inst]), con_handle); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 /* Send a DIO signal via the specificed connection */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 void gdd_dio_send_signal_to_dio | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 (T_GDD_DIO_CON_DATA * con_data, U16 sig_type) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 T_DRV_SIGNAL drv_signal; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 T_GDD_DIO_DATA * inst_data; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 char * sig_type_str; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 TRACE_USER_CLASS(TC_FUNC_DATA_FLOW, "[GDD] gdd_dio_send_signal_to_dio()"); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 inst_data = &gdd_dio_data_base[inst_num_from_dev_id(con_data->dio_device)]; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 switch (sig_type) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 case DRV_SIGTYPE_WRITE: sig_type_str = "DRV_SIGTYPE_WRITE"; break; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 case DRV_SIGTYPE_READ: sig_type_str = "DRV_SIGTYPE_READ"; break; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 case DRV_SIGTYPE_CONNECT: sig_type_str = "DRV_SIGTYPE_CONNECT"; break; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 case DRV_SIGTYPE_DISCONNECT: sig_type_str = "DRV_SIGTYPE_DISCONNECT"; break; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 default: sig_type_str = "ununsed signal type"; break; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 TRACE_USER_CLASS_P2(TC_SIGNALS, "[GDD] Sending signal %s to DIO IL (con_handle=0x%4x)", sig_type_str, con_data->dio_device); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 drv_signal.SignalType = sig_type; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 drv_signal.DrvHandle = inst_data->drv_handle; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 drv_signal.DataLength = sizeof(U32); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 drv_signal.UserData = &(con_data->dio_device); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 (*(inst_data->signal_callback))(&drv_signal); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 /*==== PRIVATE FUNCTIONS =====================================================*/ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 /* | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 | Function : get_free_connection_slot | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 | Description : Find the next free connection slot for given instance. | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 | | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 | Parameters : gdd_dio_data - pointer to instance data | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 | con_data - pointer to pointer to connection data (output) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 | | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 | Returns : 0 - Success (con_data has been set) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 | -1 - Failed (no slot found) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 LOCAL int get_free_connection_slot(T_GDD_DIO_DATA * gdd_dio_data, | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 T_GDD_DIO_CON_DATA ** con_data /*output*/) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 int i; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 TRACE_FUNCTION( "[GDD] get_free_connection_slot()" ); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 ENTER_CRITICAL_SECTION(sem_GDD_DIO_CON); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 for(i = 0; i < gdd_dio_data->max_con; ++i) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 if(gdd_dio_data->device_range_start+i <= gdd_dio_data->device_range_end) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 if(gdd_dio_data->con_arr[i].con_state EQ GDD_DIO_CON_DEAD) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 gdd_dio_data->con_arr[i].dio_device = gdd_dio_data->device_range_start+i; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 *con_data = &(gdd_dio_data->con_arr[i]); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 (*con_data)->con_state = GDD_DIO_CON_CONNECT; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 LEAVE_CRITICAL_SECTION(sem_GDD_DIO_CON); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 return 0; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 LEAVE_CRITICAL_SECTION(sem_GDD_DIO_CON); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 return -1; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 /* | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 | Function : gdd_semaphore_err | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
314 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 | Description : Handle a semaphore error | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 static void gdd_semaphore_err (void) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 static UCHAR out = 0; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 if (!out) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 out = 1; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 vsi_o_ttrace(VSI_CALLER TC_EVENT, "semaphore error"); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
327 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 /* | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
331 | Function : gdd_enter_critical_section | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
332 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 | Description : Enters a critical section. | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 | | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 | Parameters : sem - Semaphore handle | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 | | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 | Returns : 0 - Success | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 | -1 - Failure | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 static int gdd_enter_critical_section (T_HANDLE sem) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 if (vsi_s_get (VSI_CALLER sem) NEQ VSI_OK) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
344 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
345 gdd_semaphore_err(); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 return -1; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 else | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
349 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
350 return 0; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
351 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
352 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
353 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
354 | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
355 /* | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
356 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
357 | Function : gdd_leave_critical_section | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
358 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
359 | Description : Leaves a critical section. | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
360 | | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
361 | Parameters : sem - Semaphore handle | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
362 | | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
363 | Returns : 0 - Success | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
364 | -1 - Failure | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
365 +------------------------------------------------------------------------------ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
366 */ | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
367 static int gdd_leave_critical_section (T_HANDLE sem) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
368 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
369 if (vsi_s_release (VSI_CALLER sem) NEQ VSI_OK) | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
370 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
371 gdd_semaphore_err(); | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
372 return -1; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
373 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
374 else | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
375 { | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
376 return 0; | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
377 } | 
| 
 
53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
378 } | 
