tizen 2.4 release
[profile/mobile/platform/kernel/linux-3.10-sc7730.git] / drivers / misc / gpsip / cgdriver / CgTypes.h
1 /******************************************************************************\r
2  *                                LEGAL NOTICE                                *\r
3  *                                                                            *\r
4  *  USE OF THIS SOFTWARE (including any copy or compiled version thereof) AND *\r
5  *  DOCUMENTATION IS SUBJECT TO THE SOFTWARE LICENSE AND RESTRICTIONS AND THE *\r
6  *  WARRANTY DISLCAIMER SET FORTH IN LEGAL_NOTICE.TXT FILE. IF YOU DO NOT     *\r
7  *  FULLY ACCEPT THE TERMS, YOU MAY NOT INSTALL OR OTHERWISE USE THE SOFTWARE *\r
8  *  OR DOCUMENTATION.                                                         *\r
9  *  NOTWITHSTANDING ANYTHING TO THE CONTRARY IN THIS NOTICE, INSTALLING OR    *\r
10  *  OTHERISE USING THE SOFTWARE OR DOCUMENTATION INDICATES YOUR ACCEPTANCE OF *\r
11  *  THE LICENSE TERMS AS STATED.                                              *\r
12  *                                                                            *\r
13  ******************************************************************************/\r
14 /* Version: 1.8.9\3686 */\r
15 /* Build  : 13 */\r
16 /* Date   : 12/08/2012 */\r
17 /**\r
18         \file\r
19         \brief CellGuide global types\r
20         \attention This file should not be modified.\r
21                 If you think something is wrong here, please contact CellGuide\r
22 */\r
23 #ifndef _CG_TYPES_H\r
24 #define _CG_TYPES_H\r
25 \r
26 #ifdef  __cplusplus\r
27 extern "C" {\r
28 #endif /*__cplusplus*/\r
29 \r
30 /** Unsigned 8 bit data */\r
31 typedef unsigned char   U8;\r
32 /** Unsigned 16 bit data */\r
33 typedef unsigned short  U16;\r
34 /** Unsigned 32 bit data*/\r
35 typedef unsigned long    U32;\r
36 /** Signed 8 bit data */\r
37 typedef signed char    S8;\r
38 /** Signed 16 bit data */\r
39 typedef signed short   S16;\r
40 /** Signed 32 bit data */\r
41 typedef signed long    S32;\r
42 /** 8-bit text data */\r
43 typedef char            T8;\r
44 /** 16-bit text data */\r
45 typedef U16     T16;\r
46 \r
47 #define CG_MAX_S32              (0x7FFFFFFF)\r
48 #define CG_MAX_S16              (0x7FFF)\r
49 \r
50 #if !(defined (__BORLANDC__)) && !(defined (_MSC_VER)) && !(defined(TCC7801))\r
51 /** Boolean, TRUE/FALSE */\r
52         #define BOOL U8\r
53 #endif /* !(defined (__BORLANDC__) && defined (_MSC_VER)) */\r
54 \r
55 #if !(defined (__BORLANDC__)) && !(defined (_MSC_VER)) && !(defined (APPROACH5C))\r
56     /**  void */\r
57     typedef void    VOID;\r
58 #endif /* !(defined (__BORLANDC__) && defined (_MSC_VER)) */\r
59 \r
60 \r
61 #ifdef __BORLANDC__\r
62         typedef int     BOOL;\r
63 #endif\r
64 \r
65 #ifdef _MSC_VER\r
66         typedef int BOOL;\r
67 #endif\r
68 \r
69 \r
70 #ifdef TCC7801\r
71         typedef int BOOL;\r
72 #endif\r
73 \r
74 \r
75 #if defined (_MSC_VER)\r
76         //#define U64_ZERO 0\r
77         //      typedef unsigned __int64 U64_32; /* unsigned 64 bit data */  // TODO Noam - made problems in hardware files...\r
78         #define U64_ZERO {0,0}\r
79         typedef struct {\r
80                 U32 low;\r
81                 U32 high;\r
82         } U64_32;\r
83         typedef __int64 S64; /* signed 64 bit data */\r
84         typedef __int64 SINT64; /* signed 64 bit data */\r
85         typedef unsigned __int64 U64; /* signed 64 bit data */\r
86 #elif defined (__LINUX__)\r
87         #define U64_ZERO {0,0}\r
88         typedef struct {\r
89                 U32 low;\r
90                 U32 high;\r
91         } U64_32;\r
92         typedef signed long long int S64; /* signed 64 bit data */\r
93         typedef signed long long int SINT64; /* signed 64 bit data */\r
94         typedef unsigned long long int U64; /* signed 64 bit data */\r
95 #elif /*defined (__BORLANDC__) || */defined(EN_64BIT_INTEGER)\r
96         #define U64_ZERO 0\r
97         typedef unsigned long long U64; /* unsigned 64 bit data */\r
98         typedef long long S64; /* signed 64 bit data */\r
99         typedef long long SINT64; /* signed 64 bit data */\r
100 #else\r
101         // All that are not WCE not Linux (ADS1_2 for instance)\r
102         #define U64_ZERO {0,0}\r
103 /** a structure for 64-bit integer      */\r
104         typedef struct {\r
105                 U32 low;\r
106                 U32 high;\r
107         } U64_32;\r
108         typedef unsigned long long U64; /* unsigned 64 bit data */\r
109 /** a structure for 64-bit signed integer       */\r
110         typedef struct {\r
111                 S32 low;\r
112                 S32 high;\r
113         } S64;\r
114         typedef long long SINT64; /* signed 64 bit data */\r
115 #endif\r
116 \r
117 /** Single-precision floating point */\r
118 typedef float   FLOAT;\r
119 /** Double-precision floating point */\r
120 typedef double  DOUBLE;\r
121 \r
122 typedef S16 DATA;\r
123 typedef S32 LDATA;\r
124 \r
125 #ifndef NULL\r
126         #define NULL 0\r
127 #endif\r
128 \r
129 #ifndef TRUE\r
130         #define TRUE 1\r
131 #endif\r
132 #ifndef FALSE\r
133         #define FALSE 0\r
134 #endif\r
135 \r
136 #if (defined(__TARGET_ARCH_4T) ||defined (__CW32__) || defined (__GCC32__) || defined (__UCSO__)  || defined (__LINUX__) ||\\r
137                 defined (__SYMBIAN__) ||defined (__NUCLEUS__) || defined (__BORLANDC__) || defined (_MSC_VER) || defined(MP_211) || defined(APPROACH5C)) ||\\r
138                 defined (__ARMEL__ )\r
139 #ifndef LITTLE_ENDIAN\r
140         #define LITTLE_ENDIAN\r
141 #endif\r
142 #else\r
143         #define  BIG_ENDIAN\r
144 #endif /*  */\r
145 \r
146 /** file types for ADM (Assistance Data Manager)*/\r
147 typedef enum\r
148 {\r
149     ECgAgpsBinaryFile  = 0,\r
150     ECgAgpsRawBinaryFile,\r
151     ECgAgpsAsciiFile,\r
152     ECgAgpsAlmanacSemFile,\r
153     ECgAgpsAlmanacYumaFile\r
154 } TCgFileType;\r
155 \r
156 \r
157 /* This type will be added if it is not exists in our target compiler */\r
158 typedef enum {\r
159     cgFALSE = 0 ,\r
160     cgTRUE = 0x7FFF\r
161 } cgBool ;\r
162 \r
163 typedef U16 USHORT;\r
164 typedef U8 UCHAR;\r
165 typedef U32 ULONG;\r
166 \r
167 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\r
168 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\r
169 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\r
170 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\r
171 // TEMPORARY CODE - NOAM\r
172 //@@\r
173 /*************************************************************************************************\r
174  Type: TCgAgpsIonosphere\r
175  Description: Ionosphere data\r
176 *************************************************************************************************/\r
177 \r
178 //@@\r
179 /*************************************************************************************************\r
180  Type: TCgAgpsPosition\r
181  Description: Geographical position\r
182 *************************************************************************************************/\r
183 // TODO NG 22/6/2010 should be replaced with TCgCoordinatesLLA (from CgCoordinates.h)\r
184 typedef struct SCgAgpsPosition\r
185 {\r
186         DOUBLE latitude;        /** geographical latitude       */\r
187         DOUBLE longitude;       /** geographical longitude      */\r
188         DOUBLE altitude;        /** geographical altitude       */\r
189 } TCgAgpsPosition;\r
190 \r
191 #define ALTITUDE_NOT_VALID (0xFFFF)\r
192 typedef struct\r
193 {\r
194         S16 altitude;   /** height (from database) [meters] */\r
195         U16 err;                /** Height expected error [meters]      */\r
196 }TCgHeightData;\r
197 \r
198 #ifdef __GCC32__\r
199         #define __STRUCT_PACKED__       __attribute__ ((packed))\r
200 #else\r
201         #define __STRUCT_PACKED__\r
202 #endif\r
203 \r
204 \r
205 typedef enum {\r
206         ECG_BYTE_ORDER_1234 = 0x0,\r
207         ECG_BYTE_ORDER_2143 = 0x1,\r
208         ECG_BYTE_ORDER_3412 = 0x2,\r
209         ECG_BYTE_ORDER_4321 = 0x3\r
210 } TCgByteOrder;\r
211 \r
212 typedef enum {\r
213         ECG_SWAP_NONE,\r
214         ECG_SWAP_BYTES,\r
215         ECG_SWAP_WORDS,\r
216         ECG_SWAP_BYTES_AND_WORDS\r
217 }TCgByteSwapType;\r
218 \r
219 // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
220 // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
221 // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
222 // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
223 #ifdef  __cplusplus\r
224 }\r
225 #endif /*__cplusplus*/\r
226 \r
227 #endif /*_CG_AGPS_GENERAL_TYPES_H*/\r