summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--gammu/emb/common/gsmstate.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/gammu/emb/common/gsmstate.h b/gammu/emb/common/gsmstate.h
index f15a6a7..2b4806c 100644
--- a/gammu/emb/common/gsmstate.h
+++ b/gammu/emb/common/gsmstate.h
@@ -1,355 +1,356 @@
1/* (c) 2002-2004 by Marcin Wiacek & Michal Cihar */ 1/* (c) 2002-2004 by Marcin Wiacek & Michal Cihar */
2 2
3#ifndef __gsm_state_h 3#ifndef __gsm_state_h
4#define __gsm_state_h 4#define __gsm_state_h
5 5
6#include <time.h> 6#include <time.h>
7 7
8#include "config.h" 8#include "config.h"
9#include "misc/cfg.h" 9#include "misc/cfg.h"
10 10
11 typedef struct _GSM_StateMachine GSM_StateMachine; 11 typedef struct _GSM_StateMachine GSM_StateMachine;
12 typedef struct _GSM_User GSM_User; 12 typedef struct _GSM_User GSM_User;
13 typedef struct _OnePhoneModel OnePhoneModel; 13 typedef struct _OnePhoneModel OnePhoneModel;
14 typedef struct _GSM_Reply_FunctionGSM_Reply_Function; 14 typedef struct _GSM_Reply_FunctionGSM_Reply_Function;
15 15
16#ifdef GSM_ENABLE_NOKIA3320 16#ifdef GSM_ENABLE_NOKIA3320
17# include "phone/nokia/dct4/n3320.h" 17# include "phone/nokia/dct4/n3320.h"
18#endif 18#endif
19#ifdef GSM_ENABLE_NOKIA3650 19#ifdef GSM_ENABLE_NOKIA3650
20# include "phone/nokia/dct4/n3650.h" 20# include "phone/nokia/dct4/n3650.h"
21#endif 21#endif
22#ifdef GSM_ENABLE_NOKIA650 22#ifdef GSM_ENABLE_NOKIA650
23# include "phone/nokia/dct3/n0650.h" 23# include "phone/nokia/dct3/n0650.h"
24#endif 24#endif
25#ifdef GSM_ENABLE_NOKIA6110 25#ifdef GSM_ENABLE_NOKIA6110
26# include "phone/nokia/dct3/n6110.h" 26# include "phone/nokia/dct3/n6110.h"
27#endif 27#endif
28#ifdef GSM_ENABLE_NOKIA6510 28#ifdef GSM_ENABLE_NOKIA6510
29# include "phone/nokia/dct4/n6510.h" 29# include "phone/nokia/dct4/n6510.h"
30#endif 30#endif
31#ifdef GSM_ENABLE_NOKIA7110 31#ifdef GSM_ENABLE_NOKIA7110
32# include "phone/nokia/dct3/n7110.h" 32# include "phone/nokia/dct3/n7110.h"
33#endif 33#endif
34#ifdef GSM_ENABLE_NOKIA9210 34#ifdef GSM_ENABLE_NOKIA9210
35# include "phone/nokia/dct3/n9210.h" 35# include "phone/nokia/dct3/n9210.h"
36#endif 36#endif
37#ifdef GSM_ENABLE_ATGEN 37#ifdef GSM_ENABLE_ATGEN
38# include "phone/at/atgen.h" 38# include "phone/at/atgen.h"
39#endif 39#endif
40#ifdef GSM_ENABLE_ALCATEL 40#ifdef GSM_ENABLE_ALCATEL
41# include "phone/alcatel/alcatel.h" 41# include "phone/alcatel/alcatel.h"
42#endif 42#endif
43#ifdef GSM_ENABLE_OBEXGEN 43#ifdef GSM_ENABLE_OBEXGEN
44# include "phone/obex/obexgen.h" 44# include "phone/obex/obexgen.h"
45#endif 45#endif
46#ifdef GSM_ENABLE_MROUTERGEN 46#ifdef GSM_ENABLE_MROUTERGEN
47# include "phone/symbian/mroutgen.h" 47# include "phone/symbian/mroutgen.h"
48#endif 48#endif
49 49
50#ifndef GSM_USED_MBUS2 50#ifndef GSM_USED_MBUS2
51# undef GSM_ENABLE_MBUS2 51# undef GSM_ENABLE_MBUS2
52#endif 52#endif
53#ifndef GSM_USED_FBUS2 53#ifndef GSM_USED_FBUS2
54# undef GSM_ENABLE_FBUS2 54# undef GSM_ENABLE_FBUS2
55#endif 55#endif
56#ifndef GSM_USED_FBUS2DLR3 56#ifndef GSM_USED_FBUS2DLR3
57# undef GSM_ENABLE_FBUS2DLR3 57# undef GSM_ENABLE_FBUS2DLR3
58#endif 58#endif
59#ifndef GSM_USED_FBUS2DKU5 59#ifndef GSM_USED_FBUS2DKU5
60# undef GSM_ENABLE_FBUS2DKU5 60# undef GSM_ENABLE_FBUS2DKU5
61#endif 61#endif
62#ifndef GSM_USED_FBUS2PL2303 62#ifndef GSM_USED_FBUS2PL2303
63# undef GSM_ENABLE_FBUS2PL2303 63# undef GSM_ENABLE_FBUS2PL2303
64#endif 64#endif
65#ifndef GSM_USED_FBUS2BLUE 65#ifndef GSM_USED_FBUS2BLUE
66# undef GSM_ENABLE_FBUS2BLUE 66# undef GSM_ENABLE_FBUS2BLUE
67#endif 67#endif
68#ifndef GSM_USED_FBUS2IRDA 68#ifndef GSM_USED_FBUS2IRDA
69# undef GSM_ENABLE_FBUS2IRDA 69# undef GSM_ENABLE_FBUS2IRDA
70#endif 70#endif
71#ifndef GSM_USED_PHONETBLUE 71#ifndef GSM_USED_PHONETBLUE
72# undef GSM_ENABLE_PHONETBLUE 72# undef GSM_ENABLE_PHONETBLUE
73#endif 73#endif
74#ifndef GSM_USED_AT 74#ifndef GSM_USED_AT
75# undef GSM_ENABLE_AT 75# undef GSM_ENABLE_AT
76#endif 76#endif
77#ifndef GSM_USED_IRDAOBEX 77#ifndef GSM_USED_IRDAOBEX
78# undef GSM_ENABLE_IRDAOBEX 78# undef GSM_ENABLE_IRDAOBEX
79#endif 79#endif
80#ifndef GSM_USED_BLUEOBEX 80#ifndef GSM_USED_BLUEOBEX
81# undef GSM_ENABLE_BLUEOBEX 81# undef GSM_ENABLE_BLUEOBEX
82#endif 82#endif
83#ifndef GSM_USED_ALCABUS 83#ifndef GSM_USED_ALCABUS
84# undef GSM_ENABLE_ALCABUS 84# undef GSM_ENABLE_ALCABUS
85#endif 85#endif
86#ifndef GSM_USED_IRDAPHONET 86#ifndef GSM_USED_IRDAPHONET
87# undef GSM_ENABLE_IRDAPHONET 87# undef GSM_ENABLE_IRDAPHONET
88#endif 88#endif
89#ifndef GSM_USED_BLUEFBUS2 89#ifndef GSM_USED_BLUEFBUS2
90# undef GSM_ENABLE_BLUEFBUS2 90# undef GSM_ENABLE_BLUEFBUS2
91#endif 91#endif
92#ifndef GSM_USED_BLUEPHONET 92#ifndef GSM_USED_BLUEPHONET
93# undef GSM_ENABLE_BLUEPHONET 93# undef GSM_ENABLE_BLUEPHONET
94#endif 94#endif
95#ifndef GSM_USED_BLUEAT 95#ifndef GSM_USED_BLUEAT
96# undef GSM_ENABLE_BLUEAT 96# undef GSM_ENABLE_BLUEAT
97#endif 97#endif
98#ifndef GSM_USED_IRDAAT 98#ifndef GSM_USED_IRDAAT
99# undef GSM_ENABLE_IRDAAT 99# undef GSM_ENABLE_IRDAAT
100#endif 100#endif
101#ifndef GSM_USED_MROUTERBLUE 101#ifndef GSM_USED_MROUTERBLUE
102# undef GSM_ENABLE_MROUTERBLUE 102# undef GSM_ENABLE_MROUTERBLUE
103#endif 103#endif
104 104
105#if defined(GSM_ENABLE_NOKIA3320) || defined(GSM_ENABLE_NOKIA650) || defined(GSM_ENABLE_NOKIA6110) || defined(GSM_ENABLE_NOKIA7110) || defined(GSM_ENABLE_NOKIA9210) 105#if defined(GSM_ENABLE_NOKIA3320) || defined(GSM_ENABLE_NOKIA650) || defined(GSM_ENABLE_NOKIA6110) || defined(GSM_ENABLE_NOKIA7110) || defined(GSM_ENABLE_NOKIA9210)
106# define GSM_ENABLE_NOKIA_DCT3 106# define GSM_ENABLE_NOKIA_DCT3
107#endif 107#endif
108#if defined(GSM_ENABLE_NOKIA3650) || defined(GSM_ENABLE_NOKIA6510) 108#if defined(GSM_ENABLE_NOKIA3650) || defined(GSM_ENABLE_NOKIA6510)
109# define GSM_ENABLE_NOKIA_DCT4 109# define GSM_ENABLE_NOKIA_DCT4
110#endif 110#endif
111 111
112#include "protocol/protocol.h" 112#include "protocol/protocol.h"
113#if defined(GSM_ENABLE_FBUS2) || defined(GSM_ENABLE_FBUS2IRDA) || defined(GSM_ENABLE_FBUS2DLR3) || defined(GSM_ENABLE_FBUS2BLUE) || defined(GSM_ENABLE_BLUEFBUS2) || defined(GSM_ENABLE_FBUS2DKU5) || defined(GSM_ENABLE_FBUS2PL2303) 113#if defined(GSM_ENABLE_FBUS2) || defined(GSM_ENABLE_FBUS2IRDA) || defined(GSM_ENABLE_FBUS2DLR3) || defined(GSM_ENABLE_FBUS2BLUE) || defined(GSM_ENABLE_BLUEFBUS2) || defined(GSM_ENABLE_FBUS2DKU5) || defined(GSM_ENABLE_FBUS2PL2303)
114# include "protocol/nokia/fbus2.h" 114# include "protocol/nokia/fbus2.h"
115#endif 115#endif
116#ifdef GSM_ENABLE_MBUS2 116#ifdef GSM_ENABLE_MBUS2
117# include "protocol/nokia/mbus2.h" 117# include "protocol/nokia/mbus2.h"
118#endif 118#endif
119#if defined(GSM_ENABLE_PHONETBLUE) || defined(GSM_ENABLE_IRDAPHONET) || defined(GSM_ENABLE_BLUEPHONET) 119#if defined(GSM_ENABLE_PHONETBLUE) || defined(GSM_ENABLE_IRDAPHONET) || defined(GSM_ENABLE_BLUEPHONET)
120# include "protocol/nokia/phonet.h" 120# include "protocol/nokia/phonet.h"
121#endif 121#endif
122#if defined(GSM_ENABLE_AT) || defined(GSM_ENABLE_BLUEAT) || defined(GSM_ENABLE_IRDAAT) 122#if defined(GSM_ENABLE_AT) || defined(GSM_ENABLE_BLUEAT) || defined(GSM_ENABLE_IRDAAT)
123# include "protocol/at/at.h" 123# include "protocol/at/at.h"
124#endif 124#endif
125#ifdef GSM_ENABLE_ALCABUS 125#ifdef GSM_ENABLE_ALCABUS
126# include "protocol/alcatel/alcabus.h" 126# include "protocol/alcatel/alcabus.h"
127#endif 127#endif
128#if defined(GSM_ENABLE_IRDAOBEX) || defined(GSM_ENABLE_BLUEOBEX) 128#if defined(GSM_ENABLE_IRDAOBEX) || defined(GSM_ENABLE_BLUEOBEX)
129# include "protocol/obex/obex.h" 129# include "protocol/obex/obex.h"
130#endif 130#endif
131#if defined(GSM_ENABLE_MROUTERBLUE) 131#if defined(GSM_ENABLE_MROUTERBLUE)
132# include "protocol/symbian/mrouter.h" 132# include "protocol/symbian/mrouter.h"
133#endif 133#endif
134 134
135#define GSM_ENABLE_SERIALDEVICE 135#define GSM_ENABLE_SERIALDEVICE
136#ifndef GSM_USED_SERIALDEVICE 136#ifndef GSM_USED_SERIALDEVICE
137# undef GSM_ENABLE_SERIALDEVICE 137# undef GSM_ENABLE_SERIALDEVICE
138#endif 138#endif
139#define GSM_ENABLE_IRDADEVICE 139#define GSM_ENABLE_IRDADEVICE
140#ifndef GSM_USED_IRDADEVICE 140#ifndef GSM_USED_IRDADEVICE
141# undef GSM_ENABLE_IRDADEVICE 141# undef GSM_ENABLE_IRDADEVICE
142#endif 142#endif
143#define GSM_ENABLE_BLUETOOTHDEVICE 143#define GSM_ENABLE_BLUETOOTHDEVICE
144#ifndef GSM_USED_BLUETOOTHDEVICE 144#ifndef GSM_USED_BLUETOOTHDEVICE
145# undef GSM_ENABLE_BLUETOOTHDEVICE 145# undef GSM_ENABLE_BLUETOOTHDEVICE
146#endif 146#endif
147 147
148#ifdef DJGPP 148#ifdef DJGPP
149# undef GSM_ENABLE_IRDADEVICE 149# undef GSM_ENABLE_IRDADEVICE
150# undef GSM_ENABLE_IRDAPHONET 150# undef GSM_ENABLE_IRDAPHONET
151# undef GSM_ENABLE_IRDAOBEX 151# undef GSM_ENABLE_IRDAOBEX
152# undef GSM_ENABLE_IRDAAT 152# undef GSM_ENABLE_IRDAAT
153# undef GSM_ENABLE_FBUS2IRDA 153# undef GSM_ENABLE_FBUS2IRDA
154 154
155# undef GSM_ENABLE_BLUETOOTHDEVICE 155# undef GSM_ENABLE_BLUETOOTHDEVICE
156# undef GSM_ENABLE_BLUEPHONET 156# undef GSM_ENABLE_BLUEPHONET
157# undef GSM_ENABLE_BLUEOBEX 157# undef GSM_ENABLE_BLUEOBEX
158# undef GSM_ENABLE_BLUEAT 158# undef GSM_ENABLE_BLUEAT
159# undef GSM_ENABLE_BLUEFBUS2 159# undef GSM_ENABLE_BLUEFBUS2
160# undef GSM_ENABLE_PHONETBLUE 160# undef GSM_ENABLE_PHONETBLUE
161# undef GSM_ENABLE_FBUS2BLUE 161# undef GSM_ENABLE_FBUS2BLUE
162# undef GSM_ENABLE_MROUTERBLUE 162# undef GSM_ENABLE_MROUTERBLUE
163#endif 163#endif
164
164#ifndef WIN32 165#ifndef WIN32
165# ifdef ENABLE_LGPL 166# ifdef ENABLE_LGPL
166# undef GSM_ENABLE_IRDADEVICE 167# undef GSM_ENABLE_IRDADEVICE
167# undef GSM_ENABLE_IRDAPHONET 168# undef GSM_ENABLE_IRDAPHONET
168# undef GSM_ENABLE_IRDAOBEX 169# undef GSM_ENABLE_IRDAOBEX
169# undef GSM_ENABLE_IRDAAT 170# undef GSM_ENABLE_IRDAAT
170# undef GSM_ENABLE_FBUS2IRDA 171# undef GSM_ENABLE_FBUS2IRDA
171 172
172# undef GSM_ENABLE_BLUETOOTHDEVICE 173# undef GSM_ENABLE_BLUETOOTHDEVICE
173# undef GSM_ENABLE_BLUEPHONET 174# undef GSM_ENABLE_BLUEPHONET
174# undef GSM_ENABLE_BLUEOBEX 175# undef GSM_ENABLE_BLUEOBEX
175# undef GSM_ENABLE_BLUEAT 176# undef GSM_ENABLE_BLUEAT
176# undef GSM_ENABLE_BLUEFBUS2 177# undef GSM_ENABLE_BLUEFBUS2
177# undef GSM_ENABLE_PHONETBLUE 178# undef GSM_ENABLE_PHONETBLUE
178# undef GSM_ENABLE_FBUS2BLUE 179# undef GSM_ENABLE_FBUS2BLUE
179# undef GSM_ENABLE_MROUTERBLUE 180# undef GSM_ENABLE_MROUTERBLUE
180# endif 181# endif
181#endif 182#endif
182 183
183#ifdef GSM_ENABLE_SERIALDEVICE 184#ifdef GSM_ENABLE_SERIALDEVICE
184# include "device/serial/ser_w32.h" 185# include "device/serial/ser_w32.h"
185# include "device/serial/ser_unx.h" 186# include "device/serial/ser_unx.h"
186# include "device/serial/ser_djg.h" 187# include "device/serial/ser_djg.h"
187#endif 188#endif
188#ifdef GSM_ENABLE_IRDADEVICE 189#ifdef GSM_ENABLE_IRDADEVICE
189# include "device/irda/irda.h" 190# include "device/irda/irda.h"
190#endif 191#endif
191#ifdef GSM_ENABLE_BLUETOOTHDEVICE 192#ifdef GSM_ENABLE_BLUETOOTHDEVICE
192# include "device/bluetoth/bluetoth.h" 193# include "device/bluetoth/bluetoth.h"
193#endif 194#endif
194 195
195#include "service/gsmpbk.h" 196#include "service/gsmpbk.h"
196#include "service/gsmnet.h" 197#include "service/gsmnet.h"
197#include "service/gsmring.h" 198#include "service/gsmring.h"
198#include "service/gsmcal.h" 199#include "service/gsmcal.h"
199#include "service/gsmdata.h" 200#include "service/gsmdata.h"
200#include "service/gsmlogo.h" 201#include "service/gsmlogo.h"
201#include "service/gsmmisc.h" 202#include "service/gsmmisc.h"
202#include "service/gsmprof.h" 203#include "service/gsmprof.h"
203#include "service/gsmcall.h" 204#include "service/gsmcall.h"
204#include "service/sms/gsmsms.h" 205#include "service/sms/gsmsms.h"
205#include "service/sms/gsmems.h" 206#include "service/sms/gsmems.h"
206#include "service/sms/gsmmulti.h" 207#include "service/sms/gsmmulti.h"
207#include "service/backup/gsmback.h" 208#include "service/backup/gsmback.h"
208 209
209 210
210/* ------------------------- Device layer ---------------------------------- */ 211/* ------------------------- Device layer ---------------------------------- */
211 212
212/** 213/**
213 * Device functions, each device has to provide these. 214 * Device functions, each device has to provide these.
214 */ 215 */
215typedef struct { 216typedef struct {
216 /** 217 /**
217 * Opens device. 218 * Opens device.
218 */ 219 */
219 GSM_Error (*OpenDevice) (GSM_StateMachine *s); 220 GSM_Error (*OpenDevice) (GSM_StateMachine *s);
220 /** 221 /**
221 * Closes device. 222 * Closes device.
222 */ 223 */
223 GSM_Error (*CloseDevice) (GSM_StateMachine *s); 224 GSM_Error (*CloseDevice) (GSM_StateMachine *s);
224 /** 225 /**
225 * Sets parity for device. 226 * Sets parity for device.
226 */ 227 */
227 GSM_Error (*DeviceSetParity) (GSM_StateMachine *s, bool parity); 228 GSM_Error (*DeviceSetParity) (GSM_StateMachine *s, bool parity);
228 /** 229 /**
229 * Sets dtr (data to read) and rts (ready to send) flags. 230 * Sets dtr (data to read) and rts (ready to send) flags.
230 */ 231 */
231 GSM_Error (*DeviceSetDtrRts) (GSM_StateMachine *s, bool dtr, bool rts); 232 GSM_Error (*DeviceSetDtrRts) (GSM_StateMachine *s, bool dtr, bool rts);
232 /** 233 /**
233 * Sets device speed. 234 * Sets device speed.
234 */ 235 */
235 GSM_Error (*DeviceSetSpeed) (GSM_StateMachine *s, int speed); 236 GSM_Error (*DeviceSetSpeed) (GSM_StateMachine *s, int speed);
236 /** 237 /**
237 * Attempts to read nbytes from device. 238 * Attempts to read nbytes from device.
238 */ 239 */
239 int (*ReadDevice) (GSM_StateMachine *s, void *buf, size_t nbytes); 240 int (*ReadDevice) (GSM_StateMachine *s, void *buf, size_t nbytes);
240 /** 241 /**
241 * Attempts to read nbytes from device. 242 * Attempts to read nbytes from device.
242 */ 243 */
243 int (*WriteDevice) (GSM_StateMachine *s, void *buf, size_t nbytes); 244 int (*WriteDevice) (GSM_StateMachine *s, void *buf, size_t nbytes);
244} GSM_Device_Functions; 245} GSM_Device_Functions;
245 246
246#ifdef GSM_ENABLE_SERIALDEVICE 247#ifdef GSM_ENABLE_SERIALDEVICE
247 extern GSM_Device_Functions SerialDevice; 248 extern GSM_Device_Functions SerialDevice;
248#endif 249#endif
249#ifdef GSM_ENABLE_IRDADEVICE 250#ifdef GSM_ENABLE_IRDADEVICE
250 extern GSM_Device_Functions IrdaDevice; 251 extern GSM_Device_Functions IrdaDevice;
251#endif 252#endif
252#ifdef GSM_ENABLE_BLUETOOTHDEVICE 253#ifdef GSM_ENABLE_BLUETOOTHDEVICE
253 extern GSM_Device_Functions BlueToothDevice; 254 extern GSM_Device_Functions BlueToothDevice;
254#endif 255#endif
255 256
256/** 257/**
257 * Structure containing device specific data and pointer to device functions - 258 * Structure containing device specific data and pointer to device functions -
258 * @ref GSM_Device_Functions. The data are in a union, so you can use only 259 * @ref GSM_Device_Functions. The data are in a union, so you can use only
259 * one device at one time. 260 * one device at one time.
260 */ 261 */
261typedef struct { 262typedef struct {
262 union { 263 union {
263 char fake; 264 char fake;
264#ifdef GSM_ENABLE_SERIALDEVICE 265#ifdef GSM_ENABLE_SERIALDEVICE
265 GSM_Device_SerialData Serial; 266 GSM_Device_SerialData Serial;
266#endif 267#endif
267#ifdef GSM_ENABLE_IRDADEVICE 268#ifdef GSM_ENABLE_IRDADEVICE
268 GSM_Device_IrdaData Irda; 269 GSM_Device_IrdaData Irda;
269#endif 270#endif
270#ifdef GSM_ENABLE_BLUETOOTHDEVICE 271#ifdef GSM_ENABLE_BLUETOOTHDEVICE
271 GSM_Device_BlueToothDataBlueTooth; 272 GSM_Device_BlueToothDataBlueTooth;
272#endif 273#endif
273 } Data; 274 } Data;
274 GSM_Device_Functions *Functions; 275 GSM_Device_Functions *Functions;
275} GSM_Device; 276} GSM_Device;
276 277
277/* ---------------------- Protocol layer ----------------------------------- */ 278/* ---------------------- Protocol layer ----------------------------------- */
278 279
279/** 280/**
280 * Protocol functions, each protocol has to implement these. 281 * Protocol functions, each protocol has to implement these.
281 */ 282 */
282typedef struct { 283typedef struct {
283 /** 284 /**
284 * Writes message to device. 285 * Writes message to device.
285 */ 286 */
286 GSM_Error (*WriteMessage) (GSM_StateMachine *s, unsigned char *buffer, 287 GSM_Error (*WriteMessage) (GSM_StateMachine *s, unsigned char *buffer,
287 int length, unsigned char type); 288 int length, unsigned char type);
288 /** 289 /**
289 * This one is called when character is received from device. 290 * This one is called when character is received from device.
290 */ 291 */
291 GSM_Error (*StateMachine) (GSM_StateMachine *s, unsigned char rx_char); 292 GSM_Error (*StateMachine) (GSM_StateMachine *s, unsigned char rx_char);
292 /** 293 /**
293 * Protocol initialisation. 294 * Protocol initialisation.
294 */ 295 */
295 GSM_Error (*Initialise) (GSM_StateMachine *s); 296 GSM_Error (*Initialise) (GSM_StateMachine *s);
296 /** 297 /**
297 * Protocol termination. 298 * Protocol termination.
298 */ 299 */
299 GSM_Error (*Terminate) (GSM_StateMachine *s); 300 GSM_Error (*Terminate) (GSM_StateMachine *s);
300} GSM_Protocol_Functions; 301} GSM_Protocol_Functions;
301 302
302#ifdef GSM_ENABLE_MBUS2 303#ifdef GSM_ENABLE_MBUS2
303 extern GSM_Protocol_Functions MBUS2Protocol; 304 extern GSM_Protocol_Functions MBUS2Protocol;
304#endif 305#endif
305#if defined(GSM_ENABLE_FBUS2) || defined(GSM_ENABLE_FBUS2IRDA) || defined(GSM_ENABLE_FBUS2DLR3) || defined(GSM_ENABLE_FBUS2DKU5) || defined(GSM_ENABLE_FBUS2BLUE) || defined(GSM_ENABLE_BLUEFBUS2) || defined(GSM_ENABLE_FBUS2PL2303) 306#if defined(GSM_ENABLE_FBUS2) || defined(GSM_ENABLE_FBUS2IRDA) || defined(GSM_ENABLE_FBUS2DLR3) || defined(GSM_ENABLE_FBUS2DKU5) || defined(GSM_ENABLE_FBUS2BLUE) || defined(GSM_ENABLE_BLUEFBUS2) || defined(GSM_ENABLE_FBUS2PL2303)
306 extern GSM_Protocol_Functions FBUS2Protocol; 307 extern GSM_Protocol_Functions FBUS2Protocol;
307#endif 308#endif
308#if defined(GSM_ENABLE_PHONETBLUE) || defined(GSM_ENABLE_IRDAPHONET) || defined(GSM_ENABLE_BLUEPHONET) 309#if defined(GSM_ENABLE_PHONETBLUE) || defined(GSM_ENABLE_IRDAPHONET) || defined(GSM_ENABLE_BLUEPHONET)
309 extern GSM_Protocol_Functions PHONETProtocol; 310 extern GSM_Protocol_Functions PHONETProtocol;
310#endif 311#endif
311#if defined(GSM_ENABLE_AT) || defined(GSM_ENABLE_BLUEAT) || defined(GSM_ENABLE_IRDAAT) 312#if defined(GSM_ENABLE_AT) || defined(GSM_ENABLE_BLUEAT) || defined(GSM_ENABLE_IRDAAT)
312 extern GSM_Protocol_Functions ATProtocol; 313 extern GSM_Protocol_Functions ATProtocol;
313#endif 314#endif
314#ifdef GSM_ENABLE_ALCABUS 315#ifdef GSM_ENABLE_ALCABUS
315 extern GSM_Protocol_Functions ALCABUSProtocol; 316 extern GSM_Protocol_Functions ALCABUSProtocol;
316#endif 317#endif
317#if defined(GSM_ENABLE_IRDAOBEX) || defined(GSM_ENABLE_BLUEOBEX) 318#if defined(GSM_ENABLE_IRDAOBEX) || defined(GSM_ENABLE_BLUEOBEX)
318 extern GSM_Protocol_Functions OBEXProtocol; 319 extern GSM_Protocol_Functions OBEXProtocol;
319#endif 320#endif
320#if defined(GSM_ENABLE_MROUTERBLUE) 321#if defined(GSM_ENABLE_MROUTERBLUE)
321 extern GSM_Protocol_Functions MROUTERProtocol; 322 extern GSM_Protocol_Functions MROUTERProtocol;
322#endif 323#endif
323 324
324/** 325/**
325 * Structure containing protocol specific data and pointer to protocol 326 * Structure containing protocol specific data and pointer to protocol
326 * functions - @ref GSM_Protocol_Functions. The data are in a structure, so 327 * functions - @ref GSM_Protocol_Functions. The data are in a structure, so
327 * you may use more protocols at once and switch between them. 328 * you may use more protocols at once and switch between them.
328 */ 329 */
329typedef struct { 330typedef struct {
330 struct { 331 struct {
331 char fake; 332 char fake;
332#ifdef GSM_ENABLE_MBUS2 333#ifdef GSM_ENABLE_MBUS2
333 GSM_Protocol_MBUS2Data MBUS2; 334 GSM_Protocol_MBUS2Data MBUS2;
334#endif 335#endif
335#if defined(GSM_ENABLE_FBUS2) || defined(GSM_ENABLE_FBUS2IRDA) || defined(GSM_ENABLE_FBUS2DLR3) || defined(GSM_ENABLE_FBUS2DKU5) || defined(GSM_ENABLE_FBUS2PL2303) || defined(GSM_ENABLE_FBUS2BLUE) || defined(GSM_ENABLE_BLUEFBUS2) 336#if defined(GSM_ENABLE_FBUS2) || defined(GSM_ENABLE_FBUS2IRDA) || defined(GSM_ENABLE_FBUS2DLR3) || defined(GSM_ENABLE_FBUS2DKU5) || defined(GSM_ENABLE_FBUS2PL2303) || defined(GSM_ENABLE_FBUS2BLUE) || defined(GSM_ENABLE_BLUEFBUS2)
336 GSM_Protocol_FBUS2Data FBUS2; 337 GSM_Protocol_FBUS2Data FBUS2;
337#endif 338#endif
338#if defined(GSM_ENABLE_PHONETBLUE) || defined(GSM_ENABLE_IRDAPHONET) || defined(GSM_ENABLE_BLUEPHONET) 339#if defined(GSM_ENABLE_PHONETBLUE) || defined(GSM_ENABLE_IRDAPHONET) || defined(GSM_ENABLE_BLUEPHONET)
339 GSM_Protocol_PHONETData PHONET; 340 GSM_Protocol_PHONETData PHONET;
340#endif 341#endif
341#if defined(GSM_ENABLE_AT) || defined(GSM_ENABLE_BLUEAT) || defined(GSM_ENABLE_IRDAAT) 342#if defined(GSM_ENABLE_AT) || defined(GSM_ENABLE_BLUEAT) || defined(GSM_ENABLE_IRDAAT)
342 GSM_Protocol_ATData AT; 343 GSM_Protocol_ATData AT;
343#endif 344#endif
344#ifdef GSM_ENABLE_ALCABUS 345#ifdef GSM_ENABLE_ALCABUS
345 GSM_Protocol_ALCABUSDataALCABUS; 346 GSM_Protocol_ALCABUSDataALCABUS;
346#endif 347#endif
347#if defined(GSM_ENABLE_IRDAOBEX) || defined(GSM_ENABLE_BLUEOBEX) 348#if defined(GSM_ENABLE_IRDAOBEX) || defined(GSM_ENABLE_BLUEOBEX)
348 GSM_Protocol_OBEXData OBEX; 349 GSM_Protocol_OBEXData OBEX;
349#endif 350#endif
350#if defined(GSM_ENABLE_MROUTERBLUE) 351#if defined(GSM_ENABLE_MROUTERBLUE)
351 GSM_Protocol_MROUTERDataMROUTER; 352 GSM_Protocol_MROUTERDataMROUTER;
352#endif 353#endif
353 } Data; 354 } Data;
354 GSM_Protocol_Functions *Functions; 355 GSM_Protocol_Functions *Functions;
355} GSM_Protocol; 356} GSM_Protocol;
@@ -1387,193 +1388,192 @@ typedef struct {
1387} GSM_Phone; 1388} GSM_Phone;
1388 1389
1389/* --------------------------- User layer ---------------------------------- */ 1390/* --------------------------- User layer ---------------------------------- */
1390 1391
1391struct _GSM_User { 1392struct _GSM_User {
1392 GSM_Reply_Function *UserReplyFunctions; 1393 GSM_Reply_Function *UserReplyFunctions;
1393 1394
1394 void (*IncomingCall) (char *Device, GSM_Call call); 1395 void (*IncomingCall) (char *Device, GSM_Call call);
1395 void (*IncomingSMS)(char *Device, GSM_SMSMessage sms); 1396 void (*IncomingSMS)(char *Device, GSM_SMSMessage sms);
1396 void (*IncomingCB) (char *Device, GSM_CBMessage cb); 1397 void (*IncomingCB) (char *Device, GSM_CBMessage cb);
1397 void (*IncomingUSSD) (char *Device, char *Text); 1398 void (*IncomingUSSD) (char *Device, char *Text);
1398 void (*SendSMSStatus) (char *Device, int status, int MessageReference); 1399 void (*SendSMSStatus) (char *Device, int status, int MessageReference);
1399}; 1400};
1400 1401
1401/* --------------------------- Statemachine layer -------------------------- */ 1402/* --------------------------- Statemachine layer -------------------------- */
1402 1403
1403typedef enum { 1404typedef enum {
1404 GCT_MBUS2=1, 1405 GCT_MBUS2=1,
1405 GCT_FBUS2, 1406 GCT_FBUS2,
1406 GCT_FBUS2DLR3, 1407 GCT_FBUS2DLR3,
1407 GCT_FBUS2DKU5, 1408 GCT_FBUS2DKU5,
1408 GCT_FBUS2PL2303, 1409 GCT_FBUS2PL2303,
1409 GCT_FBUS2BLUE, 1410 GCT_FBUS2BLUE,
1410 GCT_FBUS2IRDA, 1411 GCT_FBUS2IRDA,
1411 GCT_PHONETBLUE, 1412 GCT_PHONETBLUE,
1412 GCT_AT, 1413 GCT_AT,
1413 GCT_MROUTERBLUE, 1414 GCT_MROUTERBLUE,
1414 1415
1415 GCT_IRDAOBEX, 1416 GCT_IRDAOBEX,
1416 GCT_IRDAAT, 1417 GCT_IRDAAT,
1417 GCT_IRDAPHONET, 1418 GCT_IRDAPHONET,
1418 GCT_BLUEFBUS2, 1419 GCT_BLUEFBUS2,
1419 GCT_BLUEAT, 1420 GCT_BLUEAT,
1420 GCT_BLUEPHONET, 1421 GCT_BLUEPHONET,
1421 GCT_BLUEOBEX 1422 GCT_BLUEOBEX
1422} GSM_ConnectionType; 1423} GSM_ConnectionType;
1423 1424
1424typedef struct { 1425typedef struct {
1425 /* Config file (or Registry or...) variables */ 1426 /* Config file (or Registry or...) variables */
1426 char Model[50]; /* Model from config file */ 1427 char Model[50]; /* Model from config file */
1427 char DebugLevel[50]; /* Debug level */ 1428 char DebugLevel[50]; /* Debug level */
1428 char *Device; /* Device name from config file */ 1429 char *Device; /* Device name from config file */
1429 char *Connection; /* Connection type as string */ 1430 char *Connection; /* Connection type as string */
1430 char *SyncTime; /* Synchronize time on startup? */ 1431 char *SyncTime; /* Synchronize time on startup? */
1431 char *LockDevice; /* Lock device ? (Unix) */ 1432 char *LockDevice; /* Lock device ? (Unix) */
1432 char *DebugFile; /* Name of debug file */ 1433 char *DebugFile; /* Name of debug file */
1433 char *Localize; /* Name of localisation file */ 1434 char *Localize; /* Name of localisation file */
1434 char *StartInfo; /* Display something during start ? */ 1435 char *StartInfo; /* Display something during start ? */
1435 bool UseGlobalDebugFile;/* Should we use global debug file?*/ 1436 bool UseGlobalDebugFile;/* Should we use global debug file?*/
1436 bool DefaultModel; 1437 bool DefaultModel;
1437 bool DefaultDebugLevel; 1438 bool DefaultDebugLevel;
1438 bool DefaultDevice; 1439 bool DefaultDevice;
1439 bool DefaultConnection; 1440 bool DefaultConnection;
1440 bool DefaultSyncTime; 1441 bool DefaultSyncTime;
1441 bool DefaultLockDevice; 1442 bool DefaultLockDevice;
1442 bool DefaultDebugFile; 1443 bool DefaultDebugFile;
1443 bool DefaultLocalize; 1444 bool DefaultLocalize;
1444 bool DefaultStartInfo; 1445 bool DefaultStartInfo;
1445} GSM_Config; 1446} GSM_Config;
1446 1447
1447 #define MAX_CONFIG_NUM 5 1448 #define MAX_CONFIG_NUM 5
1448 1449
1449struct _GSM_StateMachine { 1450struct _GSM_StateMachine {
1450 GSM_ConnectionType ConnectionType; /* Type of connection as int */ 1451 GSM_ConnectionType ConnectionType; /* Type of connection as int */
1451 char *LockFile; /* Lock file name for Unix */ 1452 char *LockFile; /* Lock file name for Unix */
1452 Debug_Info di; /* Debug information */ 1453 Debug_Info di; /* Debug information */
1453 bool opened; /* Is connection opened ? */ 1454 bool opened; /* Is connection opened ? */
1454 GSM_Config Config[MAX_CONFIG_NUM + 1]; 1455 GSM_Config Config[MAX_CONFIG_NUM + 1];
1455 GSM_Config *CurrentConfig; /* Config file (or Registry or...) variables */ 1456 GSM_Config *CurrentConfig; /* Config file (or Registry or...) variables */
1456 int ConfigNum; 1457 int ConfigNum;
1457 INI_Section *msg; /* Localisation strings structure */ 1458 INI_Section *msg; /* Localisation strings structure */
1458 int ReplyNum; /* How many times make sth. */ 1459 int ReplyNum; /* How many times make sth. */
1459 int Speed; /* For some protocols used speed */ 1460 int Speed; /* For some protocols used speed */
1460 1461
1461 GSM_Device Device; 1462 GSM_Device Device;
1462 GSM_Protocol Protocol; 1463 GSM_Protocol Protocol;
1463 GSM_Phone Phone; 1464 GSM_Phone Phone;
1464 GSM_User User; 1465 GSM_User User;
1465}; 1466};
1466 1467
1467/* ------------------------ Other general definitions ---------------------- */ 1468/* ------------------------ Other general definitions ---------------------- */
1468 1469
1469 GSM_Error GSM_RegisterAllPhoneModules(GSM_StateMachine *s); 1470 GSM_Error GSM_RegisterAllPhoneModules(GSM_StateMachine *s);
1470 1471
1471 GSM_Error GSM_InitConnection (GSM_StateMachine *s, int ReplyNum); 1472 GSM_Error GSM_InitConnection (GSM_StateMachine *s, int ReplyNum);
1472 GSM_Error GSM_TerminateConnection(GSM_StateMachine *s); 1473 GSM_Error GSM_TerminateConnection(GSM_StateMachine *s);
1473 1474
1474 int GSM_ReadDevice (GSM_StateMachine *s, bool wait); 1475 int GSM_ReadDevice (GSM_StateMachine *s, bool wait);
1475 1476
1476 GSM_Error GSM_WaitForOnce (GSM_StateMachine *s, unsigned char *buffer, 1477 GSM_Error GSM_WaitForOnce (GSM_StateMachine *s, unsigned char *buffer,
1477 int length, unsigned char type, int time); 1478 int length, unsigned char type, int time);
1478 1479
1479 GSM_Error GSM_WaitFor (GSM_StateMachine *s, unsigned char *buffer, 1480 GSM_Error GSM_WaitFor (GSM_StateMachine *s, unsigned char *buffer,
1480 int length, unsigned char type, int time, 1481 int length, unsigned char type, int time,
1481 GSM_Phone_RequestID request); 1482 GSM_Phone_RequestID request);
1482 1483
1483 GSM_Error GSM_DispatchMessage (GSM_StateMachine *s); 1484 GSM_Error GSM_DispatchMessage (GSM_StateMachine *s);
1484 1485
1485 INI_Section *GSM_FindGammuRC(void); 1486 INI_Section *GSM_FindGammuRC(void);
1486 1487
1487 bool GSM_ReadConfig (INI_Section *cfg_info, GSM_Config *cfg, int num); 1488 bool GSM_ReadConfig (INI_Section *cfg_info, GSM_Config *cfg, int num);
1488 1489
1489 void GSM_DumpMessageLevel2 (GSM_StateMachine *s, unsigned char *message, int messagesize, int type); 1490 void GSM_DumpMessageLevel2 (GSM_StateMachine *s, unsigned char *message, int messagesize, int type);
1490 void GSM_DumpMessageLevel3 (GSM_StateMachine *s, unsigned char *message, int messagesize, int type); 1491 void GSM_DumpMessageLevel3 (GSM_StateMachine *s, unsigned char *message, int messagesize, int type);
1491 1492
1492/* ---------------------- Phone features ----------------------------------- */ 1493/* ---------------------- Phone features ----------------------------------- */
1493 1494
1494typedef enum { 1495typedef enum {
1495 /* n6110.c */ 1496 /* n6110.c */
1496 F_CAL33 = 1, /* Calendar,3310 style - 10 reminders, Unicode, 3 coding types*/ 1497 F_CAL33 = 1, /* Calendar,3310 style - 10 reminders, Unicode, 3 coding types*/
1497 F_CAL52, /* Calendar,5210 style - full Unicode, etc. */ 1498 F_CAL52, /* Calendar,5210 style - full Unicode, etc. */
1498 F_CAL82, /* Calendar,8250 style - "normal", but with Unicode */ 1499 F_CAL82, /* Calendar,8250 style - "normal", but with Unicode */
1499 F_RING_SM, /* Ringtones returned in SM format - 33xx */ 1500 F_RING_SM, /* Ringtones returned in SM format - 33xx */
1500 F_NORING, /* No ringtones */ 1501 F_NORING, /* No ringtones */
1501 F_NOPBKUNICODE, /* No phonebook in Unicode */ 1502 F_NOPBKUNICODE, /* No phonebook in Unicode */
1502 F_NOWAP, /* No WAP */ 1503 F_NOWAP, /* No WAP */
1503 F_NOCALLER, /* No caller groups */ 1504 F_NOCALLER, /* No caller groups */
1504 F_NOPICTURE, /* No Picture Images */ 1505 F_NOPICTURE, /* No Picture Images */
1505 F_NOPICTUREUNI, /* No Picture Images text in Unicode */ 1506 F_NOPICTUREUNI, /* No Picture Images text in Unicode */
1506 F_NOSTARTUP, /* No startup logo */ 1507 F_NOSTARTUP, /* No startup logo */
1507 F_NOCALENDAR, /* No calendar */ 1508 F_NOCALENDAR, /* No calendar */
1508 F_NOSTARTANI, /* Startup logo is not animated */ 1509 F_NOSTARTANI, /* Startup logo is not animated */
1509 F_POWER_BATT, /* Network and battery level get from netmonitor */ 1510 F_POWER_BATT, /* Network and battery level get from netmonitor */
1510 F_PROFILES33, /* Phone profiles in 3310 style */ 1511 F_PROFILES33, /* Phone profiles in 3310 style */
1511 F_PROFILES51, /* Phone profiles in 5110 style */ 1512 F_PROFILES51, /* Phone profiles in 5110 style */
1512 F_MAGICBYTES, /* Phone can make authentication with magic bytes */ 1513 F_MAGICBYTES, /* Phone can make authentication with magic bytes */
1513 F_NODTMF, /* Phone can't send DTMF */ 1514 F_NODTMF, /* Phone can't send DTMF */
1514 F_DISPSTATUS, /* Phone return display status */ 1515 F_DISPSTATUS, /* Phone return display status */
1515 F_NOCALLINFO, 1516 F_NOCALLINFO,
1516 1517
1517 /* n3320.c */ 1518 /* n3320.c */
1518 F_DAYMONTH, /* Day and month reversed in pbk, when compare to GSM models*/ 1519 F_DAYMONTH, /* Day and month reversed in pbk, when compare to GSM models*/
1519 1520
1520 /* n6510.c */ 1521 /* n6510.c */
1521 F_PBK35, /* Phonebook in 3510 style with ringtones ID */ 1522 F_PBK35, /* Phonebook in 3510 style with ringtones ID */
1522 F_PBKIMG, /* Phonebook in 7250 style with picture ID */ 1523 F_PBKIMG, /* Phonebook in 7250 style with picture ID */
1523 F_PBKTONEGAL,/* Phonebook with selecting ringtones from gallery */ 1524 F_PBKTONEGAL,/* Phonebook with selecting ringtones from gallery */
1524 F_PBKSMSLIST, /* Phonebook with SMS list */ 1525 F_PBKSMSLIST, /* Phonebook with SMS list */
1525 F_PBKUSER, /* Phonebook with user ID */ 1526 F_PBKUSER, /* Phonebook with user ID */
1526 F_RADIO, /* Phone with FM radio */ 1527 F_RADIO, /* Phone with FM radio */
1527 F_TODO63, /* ToDo in 6310 style - 0x55 msg type */ 1528 F_TODO63, /* ToDo in 6310 style - 0x55 msg type */
1528 F_TODO66, /* ToDo in 6610 style - like calendar, with date and other*/ 1529 F_TODO66, /* ToDo in 6610 style - like calendar, with date and other*/
1529 F_NOMIDI, /* No ringtones in MIDI */ 1530 F_NOMIDI, /* No ringtones in MIDI */
1530 F_BLUETOOTH, /* Bluetooth support */ 1531 F_BLUETOOTH, /* Bluetooth support */
1531 F_NOFILESYSTEM, /* No images, ringtones, java saved in special filesystem*/ 1532 F_NOFILESYSTEM, /* No images, ringtones, java saved in special filesystem*/
1532 F_NOMMS, /* No MMS sets in phone */ 1533 F_NOMMS, /* No MMS sets in phone */
1533 F_NOGPRSPOINT, /* GPRS point are not useable */ 1534 F_NOGPRSPOINT, /* GPRS point are not useable */
1534 F_CAL35, /* Calendar,3510 style - Reminder,Call,Birthday */ 1535 F_CAL35, /* Calendar,3510 style - Reminder,Call,Birthday */
1535 F_CAL65, /* Calendar,6510 style - CBMM, method 3 */ 1536 F_CAL65, /* Calendar,6510 style - CBMM, method 3 */
1536 F_WAPMMSPROXY, /* WAP & MMS settings contains first & second proxy */ 1537 F_WAPMMSPROXY, /* WAP & MMS settings contains first & second proxy */
1537 1538
1538 /* n6510.c && n7110.c */ 1539 /* n6510.c && n7110.c */
1539 F_VOICETAGS, /* Voice tags available */ 1540 F_VOICETAGS, /* Voice tags available */
1540 F_CAL62, /* Calendar,6210 style - Call,Birthday,Memo,Meeting */ 1541 F_CAL62, /* Calendar,6210 style - Call,Birthday,Memo,Meeting */
1541 F_NOTES, 1542 F_NOTES,
1542 1543
1543 /* AT modules */ 1544 /* AT modules */
1544 F_SMSONLYSENT, /* Phone supports only sent/unsent messages */ 1545 F_SMSONLYSENT, /* Phone supports only sent/unsent messages */
1545 F_BROKENCPBS, /* CPBS on some memories can hang phone */ 1546 F_BROKENCPBS, /* CPBS on some memories can hang phone */
1546 F_M20SMS, /* Siemens M20 like SMS handling */ 1547 F_M20SMS, /* Siemens M20 like SMS handling */
1547 F_SLOWWRITE, /* Use slower writing which some phone need */ 1548 F_SLOWWRITE, /* Use slower writing which some phone need */
1548 F_SMSME900, /* SMS in ME start from location 900 - case of Sagem */ 1549 F_SMSME900, /* SMS in ME start from location 900 - case of Sagem */
1549 F_ALCATEL /* Phone supports Alcatel protocol */ 1550 F_ALCATEL /* Phone supports Alcatel protocol */
1550} Feature; 1551} Feature;
1551 1552
1552/* For models table */ 1553/* For models table */
1553struct _OnePhoneModel { 1554struct _OnePhoneModel {
1554 char *model; 1555 char *model;
1555 char *number; 1556 char *number;
1556 char *irdamodel; 1557 char *irdamodel;
1557 Feature features[12]; 1558 Feature features[12];
1558}; 1559};
1559 1560
1560 bool IsPhoneFeatureAvailable(OnePhoneModel *model, Feature feature); 1561 bool IsPhoneFeatureAvailable(OnePhoneModel *model, Feature feature);
1561 OnePhoneModel *GetModelData (char *model, char *number, char *irdamodel); 1562 OnePhoneModel *GetModelData (char *model, char *number, char *irdamodel);
1562 1563
1563#ifdef __GNUC__ 1564#ifdef __GNUC__
1564__attribute__((format(printf, 2, 3))) 1565__attribute__((format(printf, 2, 3)))
1565#endif 1566#endif
1566int smprintf(GSM_StateMachine *s, const char *format, ...); 1567int smprintf(GSM_StateMachine *s, const char *format, ...);
1567 1568
1568void GSM_OSErrorInfo(GSM_StateMachine *s, char *description); 1569void GSM_OSErrorInfo(GSM_StateMachine *s, char *description);
1569 1570
1570#ifdef GSM_ENABLE_BACKUP 1571#ifdef GSM_ENABLE_BACKUP
1571void GSM_GetPhoneFeaturesForBackup(GSM_StateMachine *s, GSM_Backup_Info *info); 1572void GSM_GetPhoneFeaturesForBackup(GSM_StateMachine *s, GSM_Backup_Info *info);
1572#endif 1573#endif
1573 1574
1574#endif 1575#endif
1575 1576
1576/* How should editor hadle tabs in this file? Add editor commands here. 1577/* How should editor hadle tabs in this file? Add editor commands here.
1577 * vim: noexpandtab sw=8 ts=8 sts=8: 1578 * vim: noexpandtab sw=8 ts=8 sts=8:
1578 */ 1579 */
1579