Go to the documentation of this file.
10 #ifndef K_API_API_CFG_H
11 #define K_API_API_CFG_H
15 #elif defined(__TI_COMPILER_VERSION__)
21 #if defined(_WIN32) || defined(_WIN64)
23 #elif defined(K_TI_CCS)
27 # if defined(__linux__)
30 # if defined(__APPLE__)
33 # if defined(__QNXNTO__)
38 #if defined(K_DM647) && !defined(CHIP_DM648)
43 # define K_DEBUG_ENABLED (1)
45 # define K_DEBUG_ENABLED (0)
48 #if defined(K_PROFILE)
49 # define K_PROFILE_ENABLED (1)
51 # define K_PROFILE_ENABLED (0)
54 #if defined(K_MSVC) && defined(K_DEBUG)
55 # define _CRTDBG_MAP_ALLOC
70 #if defined(_WIN64) || defined(WIN64)
71 # define K_POINTER_SIZE (8)
72 #elif defined(_WIN32) || defined(WIN32)
73 # define K_POINTER_SIZE (4)
74 #elif defined(_TMS320C6X)
75 # define K_POINTER_SIZE (4)
76 #elif (UINTPTR_MAX == UINT32_MAX)
77 # define K_POINTER_SIZE (4)
78 #elif (UINTPTR_MAX == UINT64_MAX)
79 # define K_POINTER_SIZE (8)
81 # error "Unsupported pointer size."
84 #if defined(K_GCC) && defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
86 # define K_IS_LITTLE_ENDIAN (kFALSE)
87 #elif defined(K_TI_CCS) && defined(_LITTLE_ENDIAN)
88 # define K_LITTLE_ENDIAN
89 # define K_IS_LITTLE_ENDIAN (kTRUE)
90 #elif !defined(K_LITTLE_ENDIAN) && !defined(K_BIG_ENDIAN)
91 # define K_LITTLE_ENDIAN
92 # define K_IS_LITTLE_ENDIAN (kTRUE)
97 # define kxCall __stdcall
98 # define kxDlCall __cdecl
100 # define kExportFx(TYPE) __declspec(dllexport) TYPE kCall
101 # define kImportFx(TYPE) __declspec(dllimport) TYPE kCall
103 # define kExportCx(TYPE) __declspec(dllexport) TYPE kxDlCall
104 # define kImportCx(TYPE) __declspec(dllimport) TYPE kxDlCall
106 # define kInFx(TYPE) TYPE kCall
107 # define kInCx(TYPE) TYPE kCall
109 # define kExportDx(TYPE) __declspec(dllexport) TYPE
110 # define kImportDx(TYPE) __declspec(dllimport) TYPE
112 # define kInDx(TYPE) TYPE
114 typedef unsigned __int8 kx8u;
115 typedef unsigned __int16 kx16u;
116 typedef unsigned __int32 kx32u;
117 typedef unsigned __int64 kx64u;
119 typedef __int16 kx16s;
120 typedef __int32 kx32s;
121 typedef __int64 kx64s;
123 typedef double kx64f;
125 typedef unsigned char kxByte;
127 # define kx64U(CONSTANT) (CONSTANT##ui64)
128 # define kx64S(CONSTANT) (CONSTANT##i64)
130 #elif defined(K_TI_CCS)
135 # define kExportFx(TYPE) TYPE kCall
136 # define kImportFx(TYPE) TYPE kCall
138 # define kExportCx(TYPE) TYPE kDlCall
139 # define kImportCx(TYPE) TYPE kDlCall
141 # define kInFx(TYPE) TYPE kCall
142 # define kInCx(TYPE) TYPE kCall
144 # define kExportDx(TYPE) TYPE
145 # define kImportDx(TYPE) TYPE
147 # define kInDx(TYPE) TYPE
149 typedef unsigned char kx8u;
150 typedef unsigned short kx16u;
151 typedef unsigned int kx32u;
152 typedef unsigned long long kx64u;
153 typedef signed char kx8s;
154 typedef signed short kx16s;
155 typedef signed int kx32s;
156 typedef signed long long kx64s;
158 typedef double kx64f;
160 typedef unsigned char kxByte;
162 # define kx64U(CONSTANT) (CONSTANT##LLU)
163 # define kx64S(CONSTANT) (CONSTANT##LL)
170 # define kExportFx(TYPE) TYPE kCall
171 # define kImportFx(TYPE) TYPE kCall
173 # define kExportCx(TYPE) TYPE kDlCall
174 # define kImportCx(TYPE) TYPE kDlCall
176 # define kInFx(TYPE) TYPE kCall
177 # define kInCx(TYPE) TYPE kCall
179 # define kExportDx(TYPE) TYPE
180 # define kImportDx(TYPE) TYPE
182 # define kInDx(TYPE) TYPE
184 typedef unsigned char kx8u;
185 typedef unsigned short kx16u;
186 typedef unsigned int kx32u;
187 typedef unsigned long long kx64u;
188 typedef signed char kx8s;
189 typedef signed short kx16s;
190 typedef signed int kx32s;
191 typedef signed long long kx64s;
193 typedef double kx64f;
195 typedef unsigned char kxByte;
197 # define kx64U(CONSTANT) (CONSTANT##LLU)
198 # define kx64S(CONSTANT) (CONSTANT##LL)
202 #if (K_POINTER_SIZE == 4)
204 typedef kx32u kxSize;
205 # define kxSIZE_MAX k32U_MAX
207 typedef kx32s kxSSize;
208 # define kxSSIZE_MIN k32S_MIN
209 # define kxSSIZE_MAX k32S_MAX
211 #elif (K_POINTER_SIZE == 8)
213 typedef kx64u kxSize;
214 # define kxSIZE_MAX k64U_MAX
216 typedef kx64s kxSSize;
217 # define kxSSIZE_MIN k64S_MIN
218 # define kxSSIZE_MAX k64S_MAX
222 #define kALIGN_ANY (3)
223 #define kALIGN_ANY_SIZE (1 << kALIGN_ANY)
225 #define kVarArgList va_list
227 #if defined(K_MSVC) || defined(K_TI_CCS)
228 # define kVarArgList_Start_(ARG_PTR, PREV_PARAM) va_start(ARG_PTR, PREV_PARAM)
229 # define kVarArgList_End_(ARG_PTR) va_end(ARG_PTR)
230 # define kVarArgList_Copy_(ARG_PTR, SOURCE) ((ARG_PTR) = (SOURCE))
231 # define kVarArgList_Next_(ARG_PTR, TYPE) va_arg(ARG_PTR, TYPE)
233 # define kVarArgList_Start_(ARG_PTR, PREV_PARAM) va_start(ARG_PTR, PREV_PARAM)
234 # define kVarArgList_End_(ARG_PTR) va_end(ARG_PTR)
235 # define kVarArgList_Copy_(ARG_PTR, SOURCE) va_copy(ARG_PTR, SOURCE)
236 # define kVarArgList_Next_(ARG_PTR, TYPE) va_arg(ARG_PTR, TYPE)
239 #if defined (__cplusplus)
240 # define kBeginHeader() extern "C" {
241 # define kEndHeader() }
243 # define kBeginHeader()
244 # define kEndHeader()
257 #if defined(K_PLATFORM)
258 # if defined(K_WINDOWS)
259 # include <winsock2.h>
260 # include <ws2tcpip.h>
261 # include <windows.h>
262 # include <process.h>
264 # if defined(K_DSP_BIOS)
272 # include <netmain.h>
273 # include <nettools/nettools.h>
274 # include <nettools/inc/inet.h>
276 # if defined(K_POSIX)
279 # include <pthread.h>
280 # include <semaphore.h>
281 # include <sys/types.h>
282 # include <sys/stat.h>
283 # include <sys/fcntl.h>
284 # include <sys/socket.h>
285 # include <sys/select.h>
286 # include <sys/ioctl.h>
287 # include <sys/time.h>
288 # include <sys/timeb.h>
289 # include <netinet/in.h>
290 # include <netinet/tcp.h>
296 # if defined(K_DARWIN)
297 # include <mach-o/dyld.h>
301 #if defined(K_PLATFORM)
302 # if defined(K_WINDOWS)
303 # define K_OS_INFINITE INFINITE
304 typedef DWORD kThreadId;
305 # elif defined(K_DSP_BIOS)
306 # define K_OS_INFINITE SYS_FOREVER
307 typedef TSK_Handle kThreadId;
308 # elif defined(K_POSIX)
309 # define K_OS_INFINITE kINFINITE //no special "infinite" value
310 typedef pthread_t kThreadId;
314 #if defined(K_COMPAT_5)
317 # define KAPI_ALIGN_SHIFT kALIGN_ANY
318 # define KAPI_ALIGN kALIGN_ANY_SIZE
327 # elif defined(K_HOST)
329 # elif defined(K_VIRTUAL)
330 # define KAPI_VIRTUAL
333 # if defined(K_WINDOWS)
334 # define KAPI_MS_WINDOWS
335 # elif defined(K_DSP_BIOS)
336 # define KAPI_TI_DSP_BIOS