aboutsummaryrefslogtreecommitdiffstats
path: root/gobi-api/GobiAPI_2012-07-12-1036/Core/StdAfx.h
blob: 5b6077b4f2c320fa57e0868f88bd076eb2e34d16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
/*===========================================================================
FILE: 
   StdAfx.h

DESCRIPTION:
   Application Framework eXtenstions for Linux

PUBLIC CLASSES AND FUNCTIONS:
   
Copyright (c) 2012, Code Aurora Forum. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.
    * Neither the name of Code Aurora Forum nor
      the names of its contributors may be used to endorse or promote
      products derived from this software without specific prior written
      permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
===========================================================================*/

//---------------------------------------------------------------------------
// Pragmas
//---------------------------------------------------------------------------
#pragma once
//---------------------------------------------------------------------------
// Includes
//---------------------------------------------------------------------------
#include <fstream>
#include <assert.h>
#include <termios.h>
#include <string.h>
#include <errno.h>
#include <algorithm>
#include <limits.h>
#include <dirent.h>
#include <sstream>
#include <stdarg.h>
#include <time.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <fcntl.h>

//---------------------------------------------------------------------------
// Macro defination
//---------------------------------------------------------------------------

#define ASSERT( x ) assert( x )

#ifdef DEBUG

   #ifdef ANDROID

      #include <android/log.h>

      // TRACE macro
      #define TRACE( format, arg... ) \
         if (true) \
         { \
            __android_log_print( ANDROID_LOG_INFO, \
                                 "Gobi", "%s:%d: " format, \
                                 __FILE__, \
                                 __LINE__, \
                                 ##arg ); \
         }

   #else

      #define TRACE( format, arg... ) \
         printf( "%s:%d: " format, \
                 __FILE__, \
                 __LINE__, \
                 ##arg )
   #endif

#else
   #define TRACE(...)
#endif

//---------------------------------------------------------------------------
// data type defination
//---------------------------------------------------------------------------
#ifndef FALSE
#define FALSE              0
#endif

#ifndef TRUE
#define TRUE               1
#endif

#ifndef CONST
#define CONST              const
#endif

typedef void               VOID;
typedef unsigned long      DWORD;
typedef int                BOOL;   
typedef unsigned char      BYTE;
typedef unsigned short     WORD;
typedef float              FLOAT;
typedef long long          LONGLONG;
typedef unsigned long long ULONGLONG;
typedef signed char        INT8;
typedef double             DOUBLE;

typedef int                INT;
typedef unsigned int       UINT;   
typedef unsigned int *     PUINT;
typedef INT                HANDLE;
typedef HANDLE             HMODULE;

typedef char               CHAR;
typedef short              SHORT;
typedef long               LONG;

typedef unsigned long      ULONG;
typedef ULONG *            PULONG;
typedef ULONG *            ULONG_PTR;
typedef unsigned short     USHORT;
typedef USHORT *           PUSHORT;
typedef unsigned char      UCHAR;
typedef UCHAR *            PUCHAR;
typedef char *             PSZ;


typedef CONST CHAR *       LPCSTR;
typedef CHAR *             LPSTR;

typedef BYTE *             PBYTE;
typedef BOOL *             PBOOL;
typedef INT *              PINT;
typedef UINT *             LPINT;
typedef WORD *             PWORD;
typedef PWORD              LPWORD;      
typedef LONG *             LPLONG;
typedef DWORD *            PDWORD;
typedef VOID *             PVOID;
typedef PVOID              LPVOID;      
typedef const void *       LPCVOID;

typedef size_t             SIZE_T;
typedef double             DATE;

// Error code
#define NO_ERROR                    0L
#define ERROR_SUCCESS               0L
#define ERROR_NO_MORE_ITEMS         259L
#define ERROR_CRC                   23L
#define ERROR_OUTOFMEMORY           14L
#define ERROR_CAN_NOT_COMPLETE      1003L
#define ERROR_REVISION_MISMATCH     1306L
#define ERROR_BAD_ARGUMENTS         160L
#define INVALID_SET_FILE_POINTER    -1
#define VALID_HANDLE_VALUE           0
#define INVALID_HANDLE_VALUE        -1
#define INVALID_FILE_SZ             -1

#define ERROR_GEN_FAILURE           31L
#define ERROR_FILE_NOT_FOUND        2L
#define ERROR_NOT_ENOUGH_MEMORY     8L
#define ERROR_INVALID_PARAMETER     87L
#define ERROR_BAD_FORMAT            11L


// Other Constant definitions
#define MAX_PATH                    512
#define INFINITE                    0xffffffff


// SIOCIWFIRSTPRIV = 0x8BE0

// Device I/O control code for setting QMI service
#define QMI_GET_SERVICE_FILE_IOCTL 0x8BE0 + 1

// Device I/O control code for obtaining device VIDPID
#define QMI_GET_VIDPID_IOCTL 0x8BE0 + 2

// Device I/O control code for obtaining device MEID
#define QMI_GET_MEID_IOCTL 0x8BE0 + 3

// Define the directions for pipes
#define READING 0
#define WRITING 1