OpenNI 1.5.7
XnOS.h
Go to the documentation of this file.
1/*****************************************************************************
2* *
3* OpenNI 1.x Alpha *
4* Copyright (C) 2012 PrimeSense Ltd. *
5* *
6* This file is part of OpenNI. *
7* *
8* Licensed under the Apache License, Version 2.0 (the "License"); *
9* you may not use this file except in compliance with the License. *
10* You may obtain a copy of the License at *
11* *
12* http://www.apache.org/licenses/LICENSE-2.0 *
13* *
14* Unless required by applicable law or agreed to in writing, software *
15* distributed under the License is distributed on an "AS IS" BASIS, *
16* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
17* See the License for the specific language governing permissions and *
18* limitations under the License. *
19* *
20*****************************************************************************/
21#ifndef __XN_OS_H__
22#define __XN_OS_H__
23
24//---------------------------------------------------------------------------
25// Includes
26//---------------------------------------------------------------------------
27#include "XnPlatform.h"
28#include "XnMacros.h"
29#include "XnStatusCodes.h"
30#include "XnOSStrings.h"
31#include "XnOSMemory.h"
32
33//---------------------------------------------------------------------------
34// Defines
35//---------------------------------------------------------------------------
36#define XN_MASK_OS "xnOS"
37
38// uncomment next line to activate memory profiling
39//#define XN_MEM_PROFILING
40
41//---------------------------------------------------------------------------
42// OS Identifier
43//---------------------------------------------------------------------------
44#if (XN_PLATFORM == XN_PLATFORM_WIN32)
45 #include "Win32/XnOSWin32.h"
46#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM)
47 #include "Linux-x86/XnOSLinux-x86.h"
48#elif defined(_ARC)
49 #include "ARC/XnOSARC.h"
50#else
51 #if defined __INTEL_COMPILER
52 #include "Linux-x86/XnOSLinux.h"
53 #else
54 #error OpenNI OS Abstraction Layer - Unsupported Platform!
55 #endif
56#endif
57
58//---------------------------------------------------------------------------
59// Types
60//---------------------------------------------------------------------------
61#define XN_MAX_OS_NAME_LENGTH 255
62
70
71typedef XnBool (XN_CALLBACK_TYPE* XnConditionFunc)(void* pConditionData);
72
73//---------------------------------------------------------------------------
74// Global Variables
75//---------------------------------------------------------------------------
77extern XnOSTimer g_xnOSHighResGlobalTimer;
78
79//---------------------------------------------------------------------------
80// Files
81//---------------------------------------------------------------------------
82// File open modes
84#define XN_OS_FILE_READ 0x01
86#define XN_OS_FILE_WRITE 0x02
88#define XN_OS_FILE_CREATE_NEW_ONLY 0x04
90#define XN_OS_FILE_TRUNCATE 0x08
92#define XN_OS_FILE_APPEND 0x10
94#define XN_OS_FILE_AUTO_FLUSH 0x20
95
96// Seek types
106
107//---------------------------------------------------------------------------
108// Network
109//---------------------------------------------------------------------------
110// Network socket type
118
119#define XN_OS_NETWORK_LOCAL_HOST "127.0.0.1"
120
121//---------------------------------------------------------------------------
122// Macros
123//---------------------------------------------------------------------------
124// Memory
126#define XN_VALIDATE_INPUT_PTR(x) XN_VALIDATE_PTR(x, XN_STATUS_NULL_INPUT_PTR)
127
129#define XN_VALIDATE_OUTPUT_PTR(x) XN_VALIDATE_PTR(x, XN_STATUS_NULL_OUTPUT_PTR)
131#define XN_VALIDATE_ALLOC_PTR(x) XN_VALIDATE_PTR(x, XN_STATUS_ALLOC_FAILED)
132
134#define XN_VALIDATE_ALLOC(x,y) \
135 x = (y*)xnOSMalloc(sizeof(y)); \
136 XN_VALIDATE_ALLOC_PTR(x);
137
139#define XN_VALIDATE_CALLOC(x,y,z) \
140 x = (y*)xnOSCalloc(z, sizeof(y)); \
141 XN_VALIDATE_ALLOC_PTR(x);
142
144#define XN_VALIDATE_ALIGNED_ALLOC(x,y,w) \
145 x = (y*)xnOSMallocAligned(sizeof(y), w); \
146 XN_VALIDATE_ALLOC_PTR(x);
147
149#define XN_VALIDATE_ALIGNED_CALLOC(x,y,z,w) \
150 x = (y*)xnOSCallocAligned(z, sizeof(y), w); \
151 XN_VALIDATE_ALLOC_PTR(x);
152
154#define XN_FREE_AND_NULL(x) \
155 if (x != NULL) \
156 { \
157 xnOSFree(x); \
158 x = NULL; \
159 }
160
161#define XN_ALIGNED_FREE_AND_NULL(x) \
162 if (x != NULL) \
163 { \
164 xnOSFreeAligned(x); \
165 x = NULL; \
166 }
167
168
170#if XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_WIN32_VAARGS_STYLE
171 #define XN_VALIDATE_NEW(ptr, type, ...) \
172 { \
173 (ptr) = XN_NEW(type, __VA_ARGS__); \
174 if ((ptr) == NULL) \
175 { \
176 return (XN_STATUS_ALLOC_FAILED); \
177 } \
178 }
179
180#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_GCC_VAARGS_STYLE
181 #define XN_VALIDATE_NEW(ptr, type, ...) \
182 { \
183 (ptr) = XN_NEW(type, ##__VA_ARGS__); \
184 if ((ptr) == NULL) \
185 { \
186 return (XN_STATUS_ALLOC_FAILED); \
187 } \
188 }
189#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_ARC_VAARGS_STYLE
190 #define XN_VALIDATE_NEW(ptr, type...) \
191 { \
192 (ptr) = XN_NEW(type); \
193 if ((ptr) == NULL) \
194 { \
195 return (XN_STATUS_ALLOC_FAILED); \
196 } \
197 }
198#else
199 #define XN_VALIDATE_NEW(ptr, type) \
200 { \
201 (ptr) = XN_NEW(type); \
202 if ((ptr) == NULL) \
203 { \
204 return (XN_STATUS_ALLOC_FAILED); \
205 } \
206 }
207#endif
208
210#if XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_WIN32_VAARGS_STYLE
211 #define XN_VALIDATE_NEW_AND_INIT(ptr, type, ...) \
212 { \
213 XN_VALIDATE_NEW(ptr, type, __VA_ARGS__); \
214 XnStatus rc = (ptr)->Init(); \
215 if (rc != XN_STATUS_OK) \
216 { \
217 XN_DELETE(ptr); \
218 return (rc); \
219 } \
220 }
221#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_GCC_VAARGS_STYLE
222 #define XN_VALIDATE_NEW_AND_INIT(ptr, type, ...) \
223 { \
224 XN_VALIDATE_NEW(ptr, type, ##__VA_ARGS__); \
225 XnStatus rc = (ptr)->Init(); \
226 if (rc != XN_STATUS_OK) \
227 { \
228 XN_DELETE(ptr); \
229 return (rc); \
230 } \
231 }
232#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_ARC_VAARGS_STYLE
233 #define XN_VALIDATE_NEW_AND_INIT(ptr, type...) \
234 { \
235 XN_VALIDATE_NEW(ptr, type); \
236 XnStatus rc = (ptr)->Init(); \
237 if (rc != XN_STATUS_OK) \
238 { \
239 XN_DELETE(ptr); \
240 return (rc); \
241 } \
242 }
243#else
244 #define XN_VALIDATE_NEW_AND_INIT(ptr, type) \
245 { \
246 XN_VALIDATE_NEW(ptr, type); \
247 XnStatus rc = (ptr)->Init(); \
248 if (rc != XN_STATUS_OK) \
249 { \
250 XN_DELETE(ptr); \
251 return (rc); \
252 } \
253 }
254#endif
255
256// Strings
258#define XN_VALIDATE_STR_APPEND(w,x,y,z) \
259 z = xnOSStrAppend(w, x, y); \
260 XN_IS_STATUS_OK(z);
261
263#define XN_VALIDATE_STR_PREFIX(w,x,y,z) \
264 z = xnOSStrPrefix(w, x, y); \
265 XN_IS_STATUS_OK(z);
266
267#define XN_VALIDATE_STR_COPY(w,x,y,z) \
268 z = xnOSStrCopy(w, x, y); \
269 XN_IS_STATUS_OK(z);
270
271#define XN_VALIDATE_STRN_COPY(v,w,x,y,z) \
272 z = xnOSStrNCopy(v, w, x, y); \
273 XN_IS_STATUS_OK(z);
274
275// INI
277#define XN_VALIDATE_READ_INI_STR(u,v,w,x,y,z) \
278 z = xnOSReadStringFromINI(u, v, w, x, y); \
279 XN_IS_STATUS_OK(z);
280
282#define XN_VALIDATE_READ_INI_INT(v,w,x,y,z) \
283 z = xnOSReadIntFromINI(v, w, x, y); \
284 XN_IS_STATUS_OK(z);
285
287#define XN_VALIDATE_READ_INI_FLOAT(v,w,x,y,z) \
288 z = xnOSReadFloatFromINI(v, w, x, y); \
289 XN_IS_STATUS_OK(z);
290
292#define XN_VALIDATE_READ_INI_DOUBLE(v,w,x,y,z) \
293 z = xnOSReadDoubleFromINI(v, w, x, y); \
294 XN_IS_STATUS_OK(z);
295
296// Mutex
298#define XN_VALIDATE_LOCK_MUTEX(x,y,z) \
299 z = xnOSLockMutex(x, y); \
300 XN_IS_STATUS_OK(z);
301
303#define XN_VALIDATE_UNLOCK_MUTEX(x,z) \
304 z = xnOSUnLockMutex(x); \
305 XN_IS_STATUS_OK(z);
306
307// Files
309#define XN_VALIDATE_FILE_EXISTS_RET(x,y,z,w) \
310 y = xnOSDoesFileExist(x, &z); \
311 XN_IS_STATUS_OK(y); \
312 if (z == FALSE) \
313 { \
314 return (w); \
315 }
316#define XN_VALIDATE_FILE_EXISTS(x,y,z) \
317 XN_VALIDATE_FILE_EXISTS_RET(x,y,z,XN_STATUS_OS_FILE_NOT_FOUND)
318
319//---------------------------------------------------------------------------
320// Exported Function Declaration
321//---------------------------------------------------------------------------
322// Common
326
327
328#if XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_WIN32_VAARGS_STYLE
329 #define XN_NEW(type, ...) new type(__VA_ARGS__)
330#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_GCC_VAARGS_STYLE
331 #define XN_NEW(type, ...) new type(__VA_ARGS__)
332#elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_ARC_VAARGS_STYLE
333 #define XN_NEW(type, arg...) new type(arg)
334#else
335 #define XN_NEW(type, arg) new type(arg)
336#endif
337
338#define XN_NEW_ARR(type, count) new type[count]
339#define XN_DELETE(p) delete (p)
340#define XN_DELETE_ARR(p) delete[] (p)
341
351
355XN_C_API void* XN_C_DECL xnOSLogMemAlloc(void* pMemBlock, XnAllocationType nAllocType, XnUInt32 nBytes, const XnChar* csFunction, const XnChar* csFile, XnUInt32 nLine, const XnChar* csAdditional);
356
360XN_C_API void XN_C_DECL xnOSLogMemFree(const void* pMemBlock);
361
365XN_C_API void XN_C_DECL xnOSWriteMemoryReport(const XnChar* csFileName);
366
367// for memory profiling, replace all malloc/calloc/free/new/delete calls
368#if (defined XN_MEM_PROFILING) && (!defined(XN_OS_IMPL))
369 #ifdef _MSC_VER
370 #pragma message("Compiling with Memory Profiling!")
371 #elif defined(__INTEL_COMPILER)
372 #warning "Compiling with Memory Profiling!"
373 //TODO: Add warning for linux compiler(s)
374 #endif
375
376 #ifdef __cplusplus
377 #include <new>
378 static void* operator new(size_t size)
379 {
380 void* p = xnOSMalloc(size);
381 return xnOSLogMemAlloc(p, XN_ALLOCATION_NEW, size, "", "", 0, "");
382 }
383 static void* operator new[](size_t size)
384 {
385 void* p = xnOSMalloc(size);
386 return xnOSLogMemAlloc(p, XN_ALLOCATION_NEW, size, "", "", 0, "");
387 }
388 static void* operator new(size_t size, const XnChar* csFunction, const XnChar* csFile, XnUInt32 nLine, const XnChar* csAdditional)
389 {
390 void* p = xnOSMalloc(size);
391 return xnOSLogMemAlloc(p, XN_ALLOCATION_NEW, size, csFunction, csFile, nLine, csAdditional);
392 }
393
394 // called only if ctor threw exception
395 static void operator delete(void* p, const XnChar* /*csFunction*/, const XnChar* /*csFile*/, XnUInt32 /*nLine*/, const XnChar* /*csAdditional*/)
396 {
398 xnOSFree(p);
399 }
400
401 static void operator delete(void* p)
402 {
404 xnOSFree(p);
405 }
406
407 static void* operator new[](size_t size, const XnChar* csFunction, const XnChar* csFile, XnUInt32 nLine, const XnChar* csAdditional)
408 {
409 void* p = xnOSMalloc(size);
410 return xnOSLogMemAlloc(p, XN_ALLOCATION_NEW_ARRAY, size, csFunction, csFile, nLine, csAdditional);
411 }
412
413 // called only if ctor threw exception
414 static void operator delete[](void* p, const XnChar* /*csFunction*/, const XnChar* /*csFile*/, XnUInt32 /*nLine*/, const XnChar* /*csAdditional*/)
415 {
417 xnOSFree(p);
418 }
419
420 static void operator delete[](void* p)
421 {
423 xnOSFree(p);
424 }
425
426 #define xnOSMalloc(nAllocSize) xnOSLogMemAlloc(xnOSMalloc(nAllocSize), XN_ALLOCATION_MALLOC, nAllocSize, __FUNCTION__, __FILE__, __LINE__, NULL)
427 #define xnOSMallocAligned(nAllocSize, nAlignment) xnOSLogMemAlloc(xnOSMallocAligned(nAllocSize, nAlignment), XN_ALLOCATION_MALLOC_ALIGNED, nAllocSize, __FUNCTION__, __FILE__, __LINE__, "Aligned to " XN_STRINGIFY(nAlignment))
428 #define xnOSCalloc(nAllocNum, nAllocSize) xnOSLogMemAlloc(xnOSCalloc(nAllocNum, nAllocSize), XN_ALLOCATION_CALLOC, nAllocNum*nAllocSize, __FUNCTION__, __FILE__, __LINE__, NULL)
429 #define xnOSCallocAligned(nAllocNum, nAllocSize, nAlignment) xnOSLogMemAlloc(xnOSCallocAligned(nAllocNum, nAllocSize, nAlignment), XN_ALLOCATION_CALLOC_ALIGNED, nAllocNum*nAllocSize, __FUNCTION__, __FILE__, __LINE__, "Aligned to " XN_STRINGIFY(nAlignment))
430 #define xnOSFree(pMemBlock) { xnOSLogMemFree(pMemBlock); xnOSFree(pMemBlock); }
431 #define xnOSFreeAligned(pMemBlock) { xnOSLogMemFree(pMemBlock); xnOSFreeAligned(pMemBlock); }
432
433 #undef XN_NEW
434 #undef XN_NEW_ARR
435
436 #if XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_WIN32_VAARGS_STYLE
437 #define XN_NEW(type, ...) new (__FUNCTION__, __FILE__, __LINE__, XN_STRINGIFY(type)) type(__VA_ARGS__)
438 #elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_GCC_VAARGS_STYLE
439 #define XN_NEW(type, arg...) new (__FUNCTION__, __FILE__, __LINE__, XN_STRINGIFY(type)) type(arg)
440 #else
441 #define XN_NEW(type, arg) new (__FUNCTION__, __FILE__, __LINE__, XN_STRINGIFY(type)) type(arg)
442 #endif
443
444 #define XN_NEW_ARR(type, count) new (__FUNCTION__, __FILE__, __LINE__, XN_STRINGIFY(count) " " XN_STRINGIFY(type)) type[count]
445
446 #endif
447#endif
448
449// Files
450XN_C_API XnStatus XN_C_DECL xnOSGetFileList(const XnChar* cpSearchPattern, const XnChar* cpPrefixPath, XnChar cpFileList[][XN_FILE_MAX_PATH], const XnUInt32 nMaxFiles, XnUInt32* pnFoundFiles);
451XN_C_API XnStatus XN_C_DECL xnOSOpenFile(const XnChar* cpFileName, const XnUInt32 nFlags, XN_FILE_HANDLE* pFile);
452XN_C_API XnStatus XN_C_DECL xnOSCloseFile(XN_FILE_HANDLE* pFile);
453XN_C_API XnStatus XN_C_DECL xnOSReadFile(const XN_FILE_HANDLE File, void* pBuffer, XnUInt32* pnBufferSize);
454XN_C_API XnStatus XN_C_DECL xnOSWriteFile(const XN_FILE_HANDLE File, const void* pBuffer, const XnUInt32 nBufferSize);
455XN_C_API XnStatus XN_API_DEPRECATED("Use xnOSSeekFile64() instead") XN_C_DECL
456 xnOSSeekFile (const XN_FILE_HANDLE File, const XnOSSeekType SeekType, const XnInt32 nOffset);
457XN_C_API XnStatus XN_C_DECL xnOSSeekFile64(const XN_FILE_HANDLE File, const XnOSSeekType SeekType, const XnInt64 nOffset);
458XN_C_API XnStatus XN_API_DEPRECATED("Use xnOSTellFile64() instead") XN_C_DECL
459 xnOSTellFile (const XN_FILE_HANDLE File, XnUInt32* nFilePos);
460XN_C_API XnStatus XN_C_DECL xnOSTellFile64(const XN_FILE_HANDLE File, XnUInt64* nFilePos);
461XN_C_API XnStatus XN_C_DECL xnOSFlushFile(const XN_FILE_HANDLE File);
462XN_C_API XnStatus XN_C_DECL xnOSDoesFileExist(const XnChar* cpFileName, XnBool* pbResult);
463XN_C_API XnStatus XN_C_DECL xnOSDoesDirecotyExist(const XnChar* cpDirName, XnBool* pbResult);
464XN_C_API XnStatus XN_C_DECL xnOSLoadFile(const XnChar* cpFileName, void* pBuffer, const XnUInt32 nBufferSize);
465XN_C_API XnStatus XN_C_DECL xnOSSaveFile(const XnChar* cpFileName, const void* pBuffer, const XnUInt32 nBufferSize);
466XN_C_API XnStatus XN_C_DECL xnOSAppendFile(const XnChar* cpFileName, const void* pBuffer, const XnUInt32 nBufferSize);
467XN_C_API XnStatus XN_API_DEPRECATED("Use xnOSGetFileSize64() instead") XN_C_DECL
468 xnOSGetFileSize (const XnChar* cpFileName, XnUInt32* pnFileSize);
469XN_C_API XnStatus XN_C_DECL xnOSGetFileSize64(const XnChar* cpFileName, XnUInt64* pnFileSize);
470XN_C_API XnStatus XN_C_DECL xnOSCreateDirectory(const XnChar* cpDirName);
471XN_C_API XnStatus XN_C_DECL xnOSGetDirName(const XnChar* cpFilePath, XnChar* cpDirName, const XnUInt32 nBufferSize);
472XN_C_API XnStatus XN_C_DECL xnOSGetFileName(const XnChar* cpFilePath, XnChar* cpFileName, const XnUInt32 nBufferSize);
473XN_C_API XnStatus XN_C_DECL xnOSGetFullPathName(const XnChar* strFilePath, XnChar* strFullPath, XnUInt32 nBufferSize);
474XN_C_API XnStatus XN_C_DECL xnOSGetCurrentDir(XnChar* cpDirName, const XnUInt32 nBufferSize);
475XN_C_API XnStatus XN_C_DECL xnOSSetCurrentDir(const XnChar* cpDirName);
476XN_C_API XnStatus XN_C_DECL xnOSDeleteFile(const XnChar* cpFileName);
477XN_C_API XnStatus XN_C_DECL xnOSDeleteEmptyDirectory(const XnChar* strDirName);
478XN_C_API XnStatus XN_C_DECL xnOSDeleteDirectoryTree(const XnChar* strDirName);
479#ifdef XN_PLATFORM_ANDROID_ARM
480XN_C_API XnStatus XN_C_DECL xnOSGetApplicationFilesDir(XnChar* cpDirName, const XnUInt32 nBufferSize);
481XN_C_API XnStatus XN_C_DECL xnOSGetApplicationLibDir(XnChar* cpDirName, const XnUInt32 nBufferSize);
482#endif
483
484// INI
485XN_C_API XnStatus XN_C_DECL xnOSReadStringFromINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, XnChar* cpDest, const XnUInt32 nDestLength);
486XN_C_API XnStatus XN_C_DECL xnOSReadFloatFromINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, XnFloat* fDest);
487XN_C_API XnStatus XN_C_DECL xnOSReadDoubleFromINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, XnDouble* fDest);
488XN_C_API XnStatus XN_C_DECL xnOSReadIntFromINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, XnUInt32* nDest);
489XN_C_API XnStatus XN_C_DECL xnOSWriteStringToINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, const XnChar* cpSrc);
490XN_C_API XnStatus XN_C_DECL xnOSWriteFloatToINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, const XnFloat fSrc);
491XN_C_API XnStatus XN_C_DECL xnOSWriteDoubleToINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, const XnDouble fSrc);
492XN_C_API XnStatus XN_C_DECL xnOSWriteIntToINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, const XnUInt32 nSrc);
493
494// Shared libraries
495XN_C_API XnStatus XN_C_DECL xnOSLoadLibrary(const XnChar* cpFileName, XN_LIB_HANDLE* pLibHandle);
496XN_C_API XnStatus XN_C_DECL xnOSFreeLibrary(const XN_LIB_HANDLE LibHandle);
497XN_C_API XnStatus XN_C_DECL xnOSGetProcAddress(const XN_LIB_HANDLE LibHandle, const XnChar* cpProcName, XnFarProc* pProcAddr);
498
499struct timespec;
500
501// Time
502XN_C_API XnStatus XN_C_DECL xnOSGetEpochTime(XnUInt32* nEpochTime);
503XN_C_API XnStatus XN_C_DECL xnOSGetTimeStamp(XnUInt64* nTimeStamp);
504XN_C_API XnStatus XN_C_DECL xnOSGetHighResTimeStamp(XnUInt64* nTimeStamp);
505XN_C_API XnStatus XN_C_DECL xnOSSleep(XnUInt32 nMilliseconds);
506XN_C_API XnStatus XN_C_DECL xnOSStartTimer(XnOSTimer* pTimer);
507XN_C_API XnStatus XN_C_DECL xnOSStartHighResTimer(XnOSTimer* pTimer);
508XN_C_API XnStatus XN_C_DECL xnOSQueryTimer(XnOSTimer Timer, XnUInt64* pnTimeSinceStart);
509XN_C_API XnStatus XN_C_DECL xnOSStopTimer(XnOSTimer* pTimer);
510XN_C_API XnStatus XN_C_DECL xnOSGetMonoTime(struct timespec* pTime);
511XN_C_API XnStatus XN_C_DECL xnOSGetTimeout(struct timespec* pTime, XnUInt32 nMilliseconds);
512XN_C_API XnStatus XN_C_DECL xnOSGetAbsTimeout(struct timespec* pTime, XnUInt32 nMilliseconds);
513
514// Threads
522
523XN_C_API XnStatus XN_C_DECL xnOSCreateThread(XN_THREAD_PROC_PROTO pThreadProc, const XN_THREAD_PARAM pThreadParam, XN_THREAD_HANDLE* pThreadHandle);
524XN_C_API XnStatus XN_C_DECL xnOSTerminateThread(XN_THREAD_HANDLE* pThreadHandle);
525XN_C_API XnStatus XN_C_DECL xnOSCloseThread(XN_THREAD_HANDLE* pThreadHandle);
526XN_C_API XnStatus XN_C_DECL xnOSWaitForThreadExit(XN_THREAD_HANDLE ThreadHandle, XnUInt32 nMilliseconds);
527XN_C_API XnStatus XN_C_DECL xnOSSetThreadPriority(XN_THREAD_HANDLE ThreadHandle, XnThreadPriority nPriority);
528XN_C_API XnStatus XN_C_DECL xnOSGetCurrentThreadID(XN_THREAD_ID* pThreadID);
529XN_C_API XnStatus XN_C_DECL xnOSWaitAndTerminateThread(XN_THREAD_HANDLE* pThreadHandle, XnUInt32 nMilliseconds);
530
531// Processes
532XN_C_API XnStatus XN_C_DECL xnOSGetCurrentProcessID(XN_PROCESS_ID* pProcID);
533XN_C_API XnStatus XN_C_DECL xnOSCreateProcess(const XnChar* strExecutable, XnUInt32 nArgs, const XnChar** pstrArgs, XN_PROCESS_ID* pProcID);
534
535// Mutex
536XN_C_API XnStatus XN_C_DECL xnOSCreateMutex(XN_MUTEX_HANDLE* pMutexHandle);
537XN_C_API XnStatus XN_C_DECL xnOSCreateNamedMutex(XN_MUTEX_HANDLE* pMutexHandle, const XnChar* cpMutexName);
538XN_C_API XnStatus XN_C_DECL xnOSCreateNamedMutexEx(XN_MUTEX_HANDLE* pMutexHandle, const XnChar* cpMutexName, XnBool bAllowOtherUsers);
539XN_C_API XnStatus XN_C_DECL xnOSCloseMutex(XN_MUTEX_HANDLE* pMutexHandle);
540XN_C_API XnStatus XN_C_DECL xnOSLockMutex(const XN_MUTEX_HANDLE MutexHandle, XnUInt32 nMilliseconds);
541XN_C_API XnStatus XN_C_DECL xnOSUnLockMutex(const XN_MUTEX_HANDLE MutexHandle);
542
543// Critical Sections
544XN_C_API XnStatus XN_C_DECL xnOSCreateCriticalSection(XN_CRITICAL_SECTION_HANDLE* pCriticalSectionHandle);
545XN_C_API XnStatus XN_C_DECL xnOSCloseCriticalSection(XN_CRITICAL_SECTION_HANDLE* pCriticalSectionHandle);
546XN_C_API XnStatus XN_C_DECL xnOSEnterCriticalSection(XN_CRITICAL_SECTION_HANDLE* pCriticalSectionHandle);
547XN_C_API XnStatus XN_C_DECL xnOSLeaveCriticalSection(XN_CRITICAL_SECTION_HANDLE* pCriticalSectionHandle);
548
549// Events
550XN_C_API XnStatus XN_C_DECL xnOSCreateEvent(XN_EVENT_HANDLE* pEventHandle, XnBool bManualReset);
551XN_C_API XnStatus XN_C_DECL xnOSCreateNamedEvent(XN_EVENT_HANDLE* pEventHandle, const XnChar* cpEventName, XnBool bManualReset);
552XN_C_API XnStatus XN_C_DECL xnOSCreateNamedEventEx(XN_EVENT_HANDLE* pEventHandle, const XnChar* cpEventName, XnBool bManualReset, XnBool bAllowOtherUsers);
553XN_C_API XnStatus XN_C_DECL xnOSOpenNamedEvent(XN_EVENT_HANDLE* pEventHandle, const XnChar* cpEventName);
554XN_C_API XnStatus XN_C_DECL xnOSOpenNamedEventEx(XN_EVENT_HANDLE* pEventHandle, const XnChar* cpEventName, XnBool bAllowOtherUsers);
555XN_C_API XnStatus XN_C_DECL xnOSCloseEvent(XN_EVENT_HANDLE* pEventHandle);
556XN_C_API XnStatus XN_C_DECL xnOSSetEvent(const XN_EVENT_HANDLE EventHandle);
557XN_C_API XnStatus XN_C_DECL xnOSResetEvent(const XN_EVENT_HANDLE EventHandle);
558XN_C_API XnStatus XN_C_DECL xnOSWaitEvent(const XN_EVENT_HANDLE EventHandle, XnUInt32 nMilliseconds);
559XN_C_API XnBool XN_C_DECL xnOSIsEventSet(const XN_EVENT_HANDLE EventHandle);
560
561// Semaphores
562XN_C_API XnStatus XN_C_DECL xnOSCreateSemaphore(XN_SEMAPHORE_HANDLE* pSemaphoreHandle, XnUInt32 nInitialCount);
563XN_C_API XnStatus XN_C_DECL xnOSLockSemaphore(XN_SEMAPHORE_HANDLE hSemaphore, XnUInt32 nMilliseconds);
564XN_C_API XnStatus XN_C_DECL xnOSUnlockSemaphore(XN_SEMAPHORE_HANDLE hSemaphore);
565XN_C_API XnStatus XN_C_DECL xnOSCloseSemaphore(XN_SEMAPHORE_HANDLE* pSemaphoreHandle);
566
575XN_C_API XnStatus XN_C_DECL xnOSWaitForCondition(const XN_EVENT_HANDLE EventHandle, XnUInt32 nMilliseconds, XnConditionFunc pConditionFunc, void* pConditionData);
576
577// Network
578struct xnOSSocket;
579typedef struct xnOSSocket* XN_SOCKET_HANDLE;
580
581#define XN_SOCKET_DEFAULT_TIMEOUT 0xFFFEFFFE
582
585XN_C_API XnStatus XN_C_DECL xnOSCreateSocket(const XnOSSocketType SocketType, const XnChar* cpIPAddress, const XnUInt16 nPort, XN_SOCKET_HANDLE* SocketPtr);
589XN_C_API XnStatus XN_C_DECL xnOSAcceptSocket(XN_SOCKET_HANDLE ListenSocket, XN_SOCKET_HANDLE* AcceptSocketPtr, XnUInt32 nMillisecsTimeout);
590XN_C_API XnStatus XN_C_DECL xnOSConnectSocket(XN_SOCKET_HANDLE Socket, XnUInt32 nMillisecsTimeout);
591XN_C_API XnStatus XN_C_DECL xnOSSetSocketBufferSize(XN_SOCKET_HANDLE Socket, const XnUInt32 nSocketBufferSize);
592XN_C_API XnStatus XN_C_DECL xnOSSendNetworkBuffer(XN_SOCKET_HANDLE Socket, const XnChar* cpBuffer, const XnUInt32 nBufferSize);
593XN_C_API XnStatus XN_C_DECL xnOSSendToNetworkBuffer(XN_SOCKET_HANDLE Socket, const XnChar* cpBuffer, const XnUInt32 nBufferSize, XN_SOCKET_HANDLE SocketTo);
594XN_C_API XnStatus XN_C_DECL xnOSReceiveNetworkBuffer(XN_SOCKET_HANDLE Socket, XnChar* cpBuffer, XnUInt32* pnBufferSize, XnUInt32 nMillisecsTimeout);
595XN_C_API XnStatus XN_C_DECL xnOSReceiveFromNetworkBuffer(XN_SOCKET_HANDLE Socket, XnChar* cpBuffer, XnUInt32* pnBufferSize, XN_SOCKET_HANDLE* SocketFrom);
596
597// Shared Memory
599
608XN_C_API XnStatus XN_C_DECL xnOSCreateSharedMemory(const XnChar* strName, XnUInt32 nSize, XnUInt32 nAccessFlags, XN_SHARED_MEMORY_HANDLE* phSharedMem);
609
610XN_C_API XnStatus XN_C_DECL xnOSCreateSharedMemoryEx(const XnChar* strName, XnUInt32 nSize, XnUInt32 nAccessFlags, XnBool bAllowOtherUsers, XN_SHARED_MEMORY_HANDLE* phSharedMem);
611
619XN_C_API XnStatus XN_C_DECL xnOSOpenSharedMemory(const XnChar* strName, XnUInt32 nAccessFlags, XN_SHARED_MEMORY_HANDLE* phSharedMem);
620
621XN_C_API XnStatus XN_C_DECL xnOSOpenSharedMemoryEx(const XnChar* strName, XnUInt32 nAccessFlags, XnBool bAllowOtherUsers, XN_SHARED_MEMORY_HANDLE* phSharedMem);
622
629
637
638// Keyboard
639XN_C_API XnBool XN_C_DECL xnOSWasKeyboardHit();
641
642// Debug Utilities
643XN_C_API XnStatus XN_C_DECL xnOSGetCurrentCallStack(XnUInt32 nFramesToSkip, XnChar** astrFrames, XnUInt32 nMaxNameLength, XnUInt32* pnFrames);
644
646XN_STATUS_MESSAGE(XN_STATUS_ALLOC_FAILED, "Memory allocation failed!")
647XN_STATUS_MESSAGE(XN_STATUS_OS_ALREADY_INIT, "Xiron OS already initialized!")
648XN_STATUS_MESSAGE(XN_STATUS_OS_NOT_INIT, "Xiron OS was not initialized!")
649XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_NOT_FOUND, "File not found!")
650XN_STATUS_MESSAGE(XN_STATUS_OS_INI_FILE_NOT_FOUND, "INI file not found!")
651XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_ALREDY_EXISTS, "File already exists!")
652XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_OPEN_FAILED, "Failed to open the file!")
653XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_CLOSE_FAILED, "Failed to close the file!")
654XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_READ_FAILED, "Failed to read from the file!")
655XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_WRITE_FAILED, "Failed to write to the file!")
656XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_SEEK_FAILED, "File seek failed!")
657XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_TELL_FAILED, "File Tell failed!")
658XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_FLUSH_FAILED, "File Flush failed!")
659XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_GET_SIZE_FAILED, "Get File Size failed!")
660XN_STATUS_MESSAGE(XN_STATUS_OS_INI_READ_FAILED, "Failed to read from INI file!")
661XN_STATUS_MESSAGE(XN_STATUS_OS_INI_WRITE_FAILED, "Failed to write into INI file!")
662XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_SEEK_TYPE, "Invalid seek type!")
663XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_CREATION_FAILED, "Xiron OS failed to create a thread!")
664XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_TERMINATION_FAILED, "Xiron OS failed to terminate a thread!")
665XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_CLOSE_FAILED, "Xiron OS failed to close a thread!")
666XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_TIMEOUT, "Xiron OS got a thread timeout while waiting for a thread to exit!")
667XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_WAIT_FAILED, "Xiron OS failed to wait for a thread to exit!")
668XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_SET_PRIORITY_FAILED, "Xiron OS failed to set priority of a thread!")
669XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_UNSUPPORTED_PRIORITY, "Thread priority is unsupported by Xiron OS!")
670XN_STATUS_MESSAGE(XN_STATUS_OS_MUTEX_CREATION_FAILED, "Xiron OS failed to create a mutex!")
671XN_STATUS_MESSAGE(XN_STATUS_OS_MUTEX_CLOSE_FAILED, "Xiron OS failed to close a mutex!")
672XN_STATUS_MESSAGE(XN_STATUS_OS_MUTEX_LOCK_FAILED, "Xiron OS failed to lock a mutex!")
673XN_STATUS_MESSAGE(XN_STATUS_OS_MUTEX_TIMEOUT, "Xiron OS got a mutex timeout!")
674XN_STATUS_MESSAGE(XN_STATUS_OS_MUTEX_UNLOCK_FAILED, "Xiron OS failed to unlock a mutex!")
675XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_CREATION_FAILED, "Xiron OS failed to create an event!")
676XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_CLOSE_FAILED, "Xiron OS failed to close an event!")
677XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_SET_FAILED, "Xiron OS failed to set an event!")
678XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_RESET_FAILED, "Xiron OS failed to reset an event!")
679XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_TIMEOUT, "Xiron OS got an event timeout!")
680XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_WAIT_FAILED, "Xiron OS failed to wait on event!")
681XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_CANCELED, "This Xiron OS event was canceled!")
682XN_STATUS_MESSAGE(XN_STATUS_OS_CANT_LOAD_LIB, "Xiron OS failed to load shared library!")
683XN_STATUS_MESSAGE(XN_STATUS_OS_CANT_FREE_LIB, "Xiron OS failed to free shared library!")
684XN_STATUS_MESSAGE(XN_STATUS_OS_PROC_NOT_FOUND, "Xiron OS failed to get procedure address from shared library!")
685XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_INIT_FAILED, "Xiron OS failed to initialize the network subsystem!")
686XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SHUTDOWN_FAILED, "Xiron OS failed to shutdown the network subsystem!")
687XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_CREATION_FAILED, "Xiron OS failed to create a network socket!")
688XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_INVALID_SOCKET_TYPE, "Invalid Xiron OS socket type!")
689XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_BUFFER_FAILED, "Failed to change the Xiron OS socket buffer size!")
690XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SEND_FAILED, "Xiron OS failed to send a network buffer!")
691XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_RECEIVE_FAILED, "Xiron OS failed to receive a network buffer!")
692XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_BIND_FAILED, "Xiron OS failed to bind a network socket!")
693XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_LISTEN_FAILED, "Xiron OS failed to listen on a network socket!")
694XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_ACCEPT_FAILED, "Xiron OS failed to accept a network socket!")
695XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_CONNECT_FAILED, "Xiron OS failed to connect to a network socket!")
696XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_BAD_HOST_NAME, "Failed to resolve the host name!")
697XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_TIMEOUT, "Got a timeout while waiting for a network command to complete!")
698XN_STATUS_MESSAGE(XN_STATUS_OS_TIMER_CREATION_FAILED, "Xiron OS failed to create a timer!")
699XN_STATUS_MESSAGE(XN_STATUS_OS_TIMER_QUERY_FAILED, "Xiron OS failed to query a timer!")
700XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_TIMER, "This Xiron OS timer is invalid!")
701XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_FILE, "This Xiron OS file is invalid!")
702XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_SOCKET, "This Xiron OS socket is invalid!")
703XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_MUTEX, "This Xiron OS mutex is invalid!")
704XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_THREAD, "This Xiron OS thread is invalid!")
705XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_EVENT, "This Xiron OS event is invalid!")
706XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_LIBRARY, "This Xiron OS shared library is invalid!")
707XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_CRITICAL_SECTION, "This Xiron OS critical section is invalid!")
708XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_FORMAT_STRING, "Xiron OS got an invalid format string!")
709XN_STATUS_MESSAGE(XN_STATUS_OS_UNSUPPORTED_FUNCTION, "This Xiron OS function is not supported!")
710XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_CREATE_DIR, "Failed to create a directory!")
711XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_DELETE_FILE, "Failed to delete a file!")
712XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_CREATE_SHARED_MEMORY, "Failed to create shared memory!")
713XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_OPEN_SHARED_MEMORY, "Failed to open shared memory!")
714XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_CLOSE_SHARED_MEMORY, "Failed to close shared memory!")
715XN_STATUS_MESSAGE(XN_STATUS_USB_ALREADY_INIT, "The Xiron USB subsystem was already initialize!")
716XN_STATUS_MESSAGE(XN_STATUS_USB_NOT_INIT, "The Xiron USB subsystem was not initialized!")
717XN_STATUS_MESSAGE(XN_STATUS_USB_INIT_FAILED, "The Xiron USB subsystem failed to initialize!")
718XN_STATUS_MESSAGE(XN_STATUS_USB_SHUTDOWN_FAILED, "The Xiron USB subsystem failed to shutdown!")
719XN_STATUS_MESSAGE(XN_STATUS_USB_ENUMERATE_FAILED, "The Xiron USB subsystem failed to enumerate devices!")
720XN_STATUS_MESSAGE(XN_STATUS_USB_LOAD_FAILED, "The Xiron USB subsystem failed to load!")
721XN_STATUS_MESSAGE(XN_STATUS_USB_FREE_FAILED, "The Xiron USB subsystem failed to free!")
722XN_STATUS_MESSAGE(XN_STATUS_USB_REGISTER_FAILED, "The Xiron USB subsystem failed to register the device!")
723XN_STATUS_MESSAGE(XN_STATUS_USB_UNREGISTER_FAILED, "The Xiron USB subsystem failed to unregister the device!")
724XN_STATUS_MESSAGE(XN_STATUS_USB_DEVICE_NOT_VALID, "Invalid Xiron USB device handle!")
725XN_STATUS_MESSAGE(XN_STATUS_USB_ENDPOINT_NOT_VALID, "Invalid Xiron USB endpoint handle!")
726XN_STATUS_MESSAGE(XN_STATUS_USB_DRIVER_NOT_FOUND, "USB driver not found!")
727XN_STATUS_MESSAGE(XN_STATUS_USB_DEVICE_NOT_FOUND, "USB device not found!")
728XN_STATUS_MESSAGE(XN_STATUS_USB_DEVICE_OPEN_FAILED, "Failed to open the USB device!")
729XN_STATUS_MESSAGE(XN_STATUS_USB_DEVICE_CLOSE_FAILED, "Failed to close the USB device!")
730XN_STATUS_MESSAGE(XN_STATUS_USB_DEVICE_GETINFO_FAILED, "Failed to get information about the USB device!")
731XN_STATUS_MESSAGE(XN_STATUS_USB_CONFIG_QUERY_FAILED, "USB config query failed!")
732XN_STATUS_MESSAGE(XN_STATUS_USB_INTERFACE_QUERY_FAILED, "USB interface query failed!")
733XN_STATUS_MESSAGE(XN_STATUS_USB_ENDPOINT_QUERY_FAILED, "USB endpoint query failed!")
734XN_STATUS_MESSAGE(XN_STATUS_USB_SET_ENDPOINT_POLICY_FAILED, "Failed to set USB endpoint policy!")
735XN_STATUS_MESSAGE(XN_STATUS_USB_UNKNOWN_ENDPOINT_TYPE, "Unknown USB endpoint type!")
736XN_STATUS_MESSAGE(XN_STATUS_USB_UNKNOWN_ENDPOINT_DIRECTION, "Unknown USB endpoint direction!")
737XN_STATUS_MESSAGE(XN_STATUS_USB_GET_SPEED_FAILED, "Failed to get the device speed!")
738XN_STATUS_MESSAGE(XN_STATUS_USB_GET_DRIVER_VERSION, "Failed to get the USB driver version!")
739XN_STATUS_MESSAGE(XN_STATUS_USB_UNKNOWN_DEVICE_SPEED, "Unknown USB device speed!")
740XN_STATUS_MESSAGE(XN_STATUS_USB_CONTROL_SEND_FAILED, "Failed to send a USB control request!")
741XN_STATUS_MESSAGE(XN_STATUS_USB_CONTROL_RECV_FAILED, "Failed to receive a USB control request!")
742XN_STATUS_MESSAGE(XN_STATUS_USB_ENDPOINT_READ_FAILED, "Failed to read from a USB endpoint!")
743XN_STATUS_MESSAGE(XN_STATUS_USB_ENDPOINT_WRITE_FAILED, "Failed to write into a USB endpoint!")
744XN_STATUS_MESSAGE(XN_STATUS_USB_TRANSFER_TIMEOUT, "USB transfer timeout!")
745XN_STATUS_MESSAGE(XN_STATUS_USB_TRANSFER_STALL, "USB transfer stall!")
746XN_STATUS_MESSAGE(XN_STATUS_USB_TRANSFER_MICRO_FRAME_ERROR, "USB transfer micro frame error!")
747XN_STATUS_MESSAGE(XN_STATUS_USB_TRANSFER_UNKNOWN_ERROR, "Unknown USB transfer error!")
748XN_STATUS_MESSAGE(XN_STATUS_USB_ENDPOINT_NOT_FOUND, "USB endpoint not found on device!")
749XN_STATUS_MESSAGE(XN_STATUS_USB_WRONG_ENDPOINT_TYPE, "Wrong USB endpoint type requested!")
750XN_STATUS_MESSAGE(XN_STATUS_USB_WRONG_ENDPOINT_DIRECTION, "Wrong USB endpoint direction requested!")
751XN_STATUS_MESSAGE(XN_STATUS_USB_WRONG_CONTROL_TYPE, "Wrong USB control type requested!")
752XN_STATUS_MESSAGE(XN_STATUS_USB_UNSUPPORTED_ENDPOINT_TYPE, "Unsupported USB endpoint type!")
753XN_STATUS_MESSAGE(XN_STATUS_USB_GOT_UNEXPECTED_BYTES, "Got unexpected bytes in USB transfer!")
754XN_STATUS_MESSAGE(XN_STATUS_USB_TOO_MUCH_DATA, "Got too much data in USB transfer!")
755XN_STATUS_MESSAGE(XN_STATUS_USB_NOT_ENOUGH_DATA, "Didn't get enough data in USB transfer!")
756XN_STATUS_MESSAGE(XN_STATUS_USB_BUFFER_TOO_SMALL, "USB Buffer is too small!")
757XN_STATUS_MESSAGE(XN_STATUS_USB_OVERLAPIO_FAILED, "USB Overlapped I/O operation failed!")
758XN_STATUS_MESSAGE(XN_STATUS_USB_ABORT_FAILED, "Failed to abort USB endpoint!")
759XN_STATUS_MESSAGE(XN_STATUS_USB_FLUSH_FAILED, "Failed to flush USB endpoint!")
760XN_STATUS_MESSAGE(XN_STATUS_USB_RESET_FAILED, "Failed to reset USB endpoint!")
761XN_STATUS_MESSAGE(XN_STATUS_USB_SET_INTERFACE_FAILED, "Failed to set USB interface!")
762XN_STATUS_MESSAGE(XN_STATUS_USB_GET_INTERFACE_FAILED, "Failed to get USB interface!")
763XN_STATUS_MESSAGE(XN_STATUS_USB_READTHREAD_NOT_INIT, "Read thread is not initialized for this USB end point!")
764XN_STATUS_MESSAGE(XN_STATUS_USB_READTHREAD_ALREADY_INIT, "Read thread is already initialized for this USB end point!")
765XN_STATUS_MESSAGE(XN_STATUS_USB_READTHREAD_SHUTDOWN_FAILED, "Read thread failed to shutdown properly!")
766XN_STATUS_MESSAGE(XN_STATUS_USB_IS_BUSY, "USB is busy!")
767XN_STATUS_MESSAGE(XN_STATUS_USB_NOT_BUSY, "USB is not busy!")
768XN_STATUS_MESSAGE(XN_STATUS_USB_SET_CONFIG_FAILED, "Failed to set USB config!")
769XN_STATUS_MESSAGE(XN_STATUS_USB_GET_CONFIG_FAILED, "Failed to get USB config!")
770XN_STATUS_MESSAGE(XN_STATUS_USB_OPEN_ENDPOINT_FAILED, "Failed to open an USB endpoint!")
771XN_STATUS_MESSAGE(XN_STATUS_USB_CLOSE_ENDPOINT_FAILED, "Failed to close an USB endpoint!")
772XN_STATUS_MESSAGE(XN_STATUS_USB_ALREADY_OPEN, "A device is already opened!")
773XN_STATUS_MESSAGE(XN_STATUS_USB_TRANSFER_PENDING, "USB transfer is still pending!")
774XN_STATUS_MESSAGE(XN_STATUS_USB_INTERFACE_NOT_SUPPORTED, "USB interface is not supported!")
775XN_STATUS_MESSAGE(XN_STATUS_USB_FAILED_TO_REGISTER_CALLBACK, "Failed to register the USB device callback!")
776XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_CONNECTION_CLOSED, "The network connection has been closed!")
777XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_OPEN_FAILED, "Xiron OS failed to open an event!")
778XN_STATUS_MESSAGE(XN_STATUS_OS_PROCESS_CREATION_FAILED, "Xiron OS failed to create a process!")
779XN_STATUS_MESSAGE(XN_STATUS_OS_SEMAPHORE_CREATION_FAILED, "Xiron OS Failed to create a semaphore!")
780XN_STATUS_MESSAGE(XN_STATUS_OS_SEMAPHORE_CLOSE_FAILED, "Xiron OS failed to close a semaphore!")
781XN_STATUS_MESSAGE(XN_STATUS_OS_SEMAPHORE_LOCK_FAILED, "Xiron OS failed to lock a semaphore!")
782XN_STATUS_MESSAGE(XN_STATUS_OS_SEMAPHORE_UNLOCK_FAILED, "Xiron OS failed to unlock a semaphore!")
783XN_STATUS_MESSAGE(XN_STATUS_OS_SEMAPHORE_TIMEOUT, "Xiron OS got a semaphore timeout!")
784XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_SEMAPHORE, "This Xiron OS semaphore is invalid!")
785XN_STATUS_MESSAGE(XN_STATUS_OS_ENV_VAR_NOT_FOUND, "The environment variable could not be found!")
786XN_STATUS_MESSAGE(XN_STATUS_USB_NO_REQUEST_PENDING, "There is no request pending!")
787XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_DELETE_DIR, "Failed to delete a directory!")
789
790#endif //__XN_OS_H__
791
XN_C_API XnStatus XN_C_DECL xnOSGetMonoTime(struct timespec *pTime)
XN_C_API XnStatus XN_C_DECL xnOSGetApplicationLibDir(XnChar *cpDirName, const XnUInt32 nBufferSize)
XN_C_API XnStatus XN_C_DECL xnOSResetEvent(const XN_EVENT_HANDLE EventHandle)
XnThreadPriority
Definition XnOS.h:516
@ XN_PRIORITY_LOW
Definition XnOS.h:517
@ XN_PRIORITY_CRITICAL
Definition XnOS.h:520
@ XN_PRIORITY_NORMAL
Definition XnOS.h:518
@ XN_PRIORITY_HIGH
Definition XnOS.h:519
#define XN_MAX_OS_NAME_LENGTH
Definition XnOS.h:61
XN_C_API XnStatus XN_C_DECL xnOSGetHighResTimeStamp(XnUInt64 *nTimeStamp)
XN_C_API XnStatus XN_C_DECL xnOSOpenSharedMemoryEx(const XnChar *strName, XnUInt32 nAccessFlags, XnBool bAllowOtherUsers, XN_SHARED_MEMORY_HANDLE *phSharedMem)
XN_C_API XnStatus XN_C_DECL xnOSReceiveFromNetworkBuffer(XN_SOCKET_HANDLE Socket, XnChar *cpBuffer, XnUInt32 *pnBufferSize, XN_SOCKET_HANDLE *SocketFrom)
XN_C_API XnStatus XN_C_DECL xnOSCloseSharedMemory(XN_SHARED_MEMORY_HANDLE hSharedMem)
XN_C_API XnStatus XN_C_DECL xnOSTellFile64(const XN_FILE_HANDLE File, XnUInt64 *nFilePos)
XN_C_API XnStatus XN_C_DECL xnOSGetInfo(xnOSInfo *pOSInfo)
XN_C_API XnStatus XN_C_DECL xnOSWriteFloatToINI(const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, const XnFloat fSrc)
XN_C_API XnStatus XN_C_DECL xnOSTerminateThread(XN_THREAD_HANDLE *pThreadHandle)
XN_C_API XnStatus XN_C_DECL xnOSSaveFile(const XnChar *cpFileName, const void *pBuffer, const XnUInt32 nBufferSize)
XN_C_API void *XN_C_DECL xnOSLogMemAlloc(void *pMemBlock, XnAllocationType nAllocType, XnUInt32 nBytes, const XnChar *csFunction, const XnChar *csFile, XnUInt32 nLine, const XnChar *csAdditional)
XN_C_API XnStatus XN_C_DECL xnOSSharedMemoryGetAddress(XN_SHARED_MEMORY_HANDLE hSharedMem, void **ppAddress)
XN_C_API XnStatus XN_C_DECL xnOSSendToNetworkBuffer(XN_SOCKET_HANDLE Socket, const XnChar *cpBuffer, const XnUInt32 nBufferSize, XN_SOCKET_HANDLE SocketTo)
XN_C_API XnStatus XN_C_DECL xnOSCreateSemaphore(XN_SEMAPHORE_HANDLE *pSemaphoreHandle, XnUInt32 nInitialCount)
XN_C_API XnStatus XN_C_DECL xnOSCreateNamedEventEx(XN_EVENT_HANDLE *pEventHandle, const XnChar *cpEventName, XnBool bManualReset, XnBool bAllowOtherUsers)
XN_C_API XnStatus XN_C_DECL xnOSCloseCriticalSection(XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle)
XN_C_API XnStatus XN_C_DECL xnOSConnectSocket(XN_SOCKET_HANDLE Socket, XnUInt32 nMillisecsTimeout)
XN_C_API XnStatus XN_C_DECL xnOSCreateSocket(const XnOSSocketType SocketType, const XnChar *cpIPAddress, const XnUInt16 nPort, XN_SOCKET_HANDLE *SocketPtr)
XN_C_API XnStatus XN_C_DECL xnOSSetThreadPriority(XN_THREAD_HANDLE ThreadHandle, XnThreadPriority nPriority)
XN_C_API XnStatus XN_C_DECL xnOSShutdownNetwork()
XN_C_API XnStatus XN_C_DECL xnOSBindSocket(XN_SOCKET_HANDLE Socket)
XN_C_API XnStatus XN_C_DECL xnOSCreateNamedMutex(XN_MUTEX_HANDLE *pMutexHandle, const XnChar *cpMutexName)
XN_C_API XnStatus XN_C_DECL xnOSSeekFile64(const XN_FILE_HANDLE File, const XnOSSeekType SeekType, const XnInt64 nOffset)
XN_C_API XnStatus XN_C_DECL xnOSAcceptSocket(XN_SOCKET_HANDLE ListenSocket, XN_SOCKET_HANDLE *AcceptSocketPtr, XnUInt32 nMillisecsTimeout)
XN_C_API XnStatus XN_C_DECL xnOSStartHighResTimer(XnOSTimer *pTimer)
XN_C_API XnStatus XN_C_DECL xnOSStopTimer(XnOSTimer *pTimer)
XN_C_API XnStatus XN_C_DECL xnOSFreeLibrary(const XN_LIB_HANDLE LibHandle)
XN_C_API XnStatus XN_C_DECL xnOSEnterCriticalSection(XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle)
XnOSTimer g_xnOSHighResGlobalTimer
XN_C_API XnStatus XN_C_DECL xnOSAppendFile(const XnChar *cpFileName, const void *pBuffer, const XnUInt32 nBufferSize)
XN_C_API XnStatus XN_C_DECL xnOSDoesFileExist(const XnChar *cpFileName, XnBool *pbResult)
XN_C_API XnBool XN_C_DECL xnOSIsEventSet(const XN_EVENT_HANDLE EventHandle)
XN_C_API XnStatus XN_C_DECL xnOSListenSocket(XN_SOCKET_HANDLE Socket)
struct xnOSSocket * XN_SOCKET_HANDLE
Definition XnOS.h:579
XN_C_API XnStatus XN_C_DECL xnOSReadFloatFromINI(const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, XnFloat *fDest)
XN_C_API XnStatus XN_C_DECL xnOSWaitEvent(const XN_EVENT_HANDLE EventHandle, XnUInt32 nMilliseconds)
XN_C_API XnStatus XN_C_DECL xnOSCloseThread(XN_THREAD_HANDLE *pThreadHandle)
XN_C_API XnStatus XN_C_DECL xnOSStartTimer(XnOSTimer *pTimer)
XN_C_API XnStatus XN_C_DECL xnOSCloseEvent(XN_EVENT_HANDLE *pEventHandle)
XN_C_API XnStatus XN_C_DECL xnOSDeleteFile(const XnChar *cpFileName)
XN_C_API XnStatus XN_C_DECL xnOSReceiveNetworkBuffer(XN_SOCKET_HANDLE Socket, XnChar *cpBuffer, XnUInt32 *pnBufferSize, XnUInt32 nMillisecsTimeout)
XN_C_API XnStatus XN_C_DECL xnOSSetEvent(const XN_EVENT_HANDLE EventHandle)
XN_C_API XnStatus XN_C_DECL xnOSCreateMutex(XN_MUTEX_HANDLE *pMutexHandle)
XN_C_API XnStatus XN_C_DECL xnOSCreateDirectory(const XnChar *cpDirName)
XN_C_API XnChar XN_C_DECL xnOSReadCharFromInput()
XN_C_API XnStatus XN_C_DECL xnOSGetCurrentCallStack(XnUInt32 nFramesToSkip, XnChar **astrFrames, XnUInt32 nMaxNameLength, XnUInt32 *pnFrames)
XnAllocationType
Definition XnOS.h:343
@ XN_ALLOCATION_MALLOC_ALIGNED
Definition XnOS.h:345
@ XN_ALLOCATION_CALLOC_ALIGNED
Definition XnOS.h:347
@ XN_ALLOCATION_CALLOC
Definition XnOS.h:346
@ XN_ALLOCATION_NEW
Definition XnOS.h:348
@ XN_ALLOCATION_MALLOC
Definition XnOS.h:344
@ XN_ALLOCATION_NEW_ARRAY
Definition XnOS.h:349
XN_C_API XnStatus XN_C_DECL xnOSTellFile(const XN_FILE_HANDLE File, XnUInt32 *nFilePos)
XN_C_API XnStatus XN_C_DECL xnOSLeaveCriticalSection(XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle)
XN_C_API XnStatus XN_C_DECL xnOSWriteDoubleToINI(const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, const XnDouble fSrc)
XN_C_API XnStatus XN_C_DECL xnOSSetSocketBufferSize(XN_SOCKET_HANDLE Socket, const XnUInt32 nSocketBufferSize)
XN_C_API XnStatus XN_C_DECL xnOSReadFile(const XN_FILE_HANDLE File, void *pBuffer, XnUInt32 *pnBufferSize)
XN_C_API XnStatus XN_C_DECL xnOSGetEpochTime(XnUInt32 *nEpochTime)
XN_C_API XnStatus XN_C_DECL xnOSInitNetwork()
XN_C_API XnStatus XN_C_DECL xnOSOpenSharedMemory(const XnChar *strName, XnUInt32 nAccessFlags, XN_SHARED_MEMORY_HANDLE *phSharedMem)
XN_C_API XnStatus XN_C_DECL xnOSCreateEvent(XN_EVENT_HANDLE *pEventHandle, XnBool bManualReset)
XN_C_API XnStatus XN_C_DECL xnOSGetDirName(const XnChar *cpFilePath, XnChar *cpDirName, const XnUInt32 nBufferSize)
XN_C_API XnStatus XN_C_DECL xnOSQueryTimer(XnOSTimer Timer, XnUInt64 *pnTimeSinceStart)
XN_C_API XnStatus XN_C_DECL xnOSWriteStringToINI(const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, const XnChar *cpSrc)
XN_C_API void XN_C_DECL xnOSLogMemFree(const void *pMemBlock)
XN_C_API XnStatus XN_C_DECL xnOSGetFileName(const XnChar *cpFilePath, XnChar *cpFileName, const XnUInt32 nBufferSize)
XnOSSeekType
Definition XnOS.h:98
@ XN_OS_SEEK_END
Definition XnOS.h:104
@ XN_OS_SEEK_SET
Definition XnOS.h:100
@ XN_OS_SEEK_CUR
Definition XnOS.h:102
XN_C_API XnStatus XN_C_DECL xnOSReadIntFromINI(const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, XnUInt32 *nDest)
XN_C_API XnStatus XN_C_DECL xnOSOpenNamedEventEx(XN_EVENT_HANDLE *pEventHandle, const XnChar *cpEventName, XnBool bAllowOtherUsers)
XN_C_API XnStatus XN_C_DECL xnOSCreateThread(XN_THREAD_PROC_PROTO pThreadProc, const XN_THREAD_PARAM pThreadParam, XN_THREAD_HANDLE *pThreadHandle)
XN_C_API XnStatus XN_C_DECL xnOSLoadFile(const XnChar *cpFileName, void *pBuffer, const XnUInt32 nBufferSize)
XN_C_API XnStatus XN_C_DECL xnOSGetProcAddress(const XN_LIB_HANDLE LibHandle, const XnChar *cpProcName, XnFarProc *pProcAddr)
XN_C_API XnStatus XN_C_DECL xnOSCloseMutex(XN_MUTEX_HANDLE *pMutexHandle)
XN_C_API void XN_C_DECL xnOSWriteMemoryReport(const XnChar *csFileName)
XN_C_API XnBool XN_C_DECL xnOSWasKeyboardHit()
struct XnOSSharedMemory * XN_SHARED_MEMORY_HANDLE
Definition XnOS.h:598
XN_C_API XnStatus XN_C_DECL xnOSGetFileSize(const XnChar *cpFileName, XnUInt32 *pnFileSize)
XN_C_API XnStatus XN_C_DECL xnOSShutdown()
XN_C_API XnStatus XN_C_DECL xnOSReadStringFromINI(const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, XnChar *cpDest, const XnUInt32 nDestLength)
XN_C_API XnStatus XN_C_DECL xnOSCreateProcess(const XnChar *strExecutable, XnUInt32 nArgs, const XnChar **pstrArgs, XN_PROCESS_ID *pProcID)
XN_C_API XnStatus XN_C_DECL xnOSOpenFile(const XnChar *cpFileName, const XnUInt32 nFlags, XN_FILE_HANDLE *pFile)
XN_C_API XnStatus XN_C_DECL xnOSCloseSocket(XN_SOCKET_HANDLE Socket)
XN_C_API XnStatus XN_C_DECL xnOSGetCurrentProcessID(XN_PROCESS_ID *pProcID)
XN_C_API XnStatus XN_C_DECL xnOSDoesDirecotyExist(const XnChar *cpDirName, XnBool *pbResult)
XN_C_API XnStatus XN_C_DECL xnOSLockSemaphore(XN_SEMAPHORE_HANDLE hSemaphore, XnUInt32 nMilliseconds)
XN_C_API XnStatus XN_C_DECL xnOSReadDoubleFromINI(const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, XnDouble *fDest)
XN_C_API XnStatus XN_C_DECL xnOSGetTimeout(struct timespec *pTime, XnUInt32 nMilliseconds)
XN_C_API XnStatus XN_C_DECL xnOSCloseSemaphore(XN_SEMAPHORE_HANDLE *pSemaphoreHandle)
XN_C_API XnStatus XN_C_DECL xnOSGetCurrentDir(XnChar *cpDirName, const XnUInt32 nBufferSize)
XN_C_API XnStatus XN_C_DECL xnOSGetFileSize64(const XnChar *cpFileName, XnUInt64 *pnFileSize)
XN_C_API XnStatus XN_C_DECL xnOSWaitForCondition(const XN_EVENT_HANDLE EventHandle, XnUInt32 nMilliseconds, XnConditionFunc pConditionFunc, void *pConditionData)
XN_C_API XnStatus XN_C_DECL xnOSCreateNamedMutexEx(XN_MUTEX_HANDLE *pMutexHandle, const XnChar *cpMutexName, XnBool bAllowOtherUsers)
XN_C_API XnStatus XN_C_DECL xnOSUnLockMutex(const XN_MUTEX_HANDLE MutexHandle)
XN_C_API XnStatus XN_C_DECL xnOSLockMutex(const XN_MUTEX_HANDLE MutexHandle, XnUInt32 nMilliseconds)
XN_C_API XnStatus XN_C_DECL xnOSFlushFile(const XN_FILE_HANDLE File)
XN_C_API XnStatus XN_C_DECL xnOSWaitAndTerminateThread(XN_THREAD_HANDLE *pThreadHandle, XnUInt32 nMilliseconds)
XN_C_API XnStatus XN_C_DECL xnOSCloseFile(XN_FILE_HANDLE *pFile)
XN_C_API XnStatus XN_C_DECL xnOSWriteFile(const XN_FILE_HANDLE File, const void *pBuffer, const XnUInt32 nBufferSize)
XN_C_API XnStatus XN_C_DECL xnOSOpenNamedEvent(XN_EVENT_HANDLE *pEventHandle, const XnChar *cpEventName)
XN_C_API XnStatus XN_C_DECL xnOSCreateSharedMemory(const XnChar *strName, XnUInt32 nSize, XnUInt32 nAccessFlags, XN_SHARED_MEMORY_HANDLE *phSharedMem)
XN_C_API XnStatus XN_C_DECL xnOSCreateCriticalSection(XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle)
XN_C_API XnStatus XN_C_DECL xnOSGetAbsTimeout(struct timespec *pTime, XnUInt32 nMilliseconds)
XN_C_API XnStatus XN_C_DECL xnOSDeleteEmptyDirectory(const XnChar *strDirName)
XN_C_API XnStatus XN_C_DECL xnOSGetTimeStamp(XnUInt64 *nTimeStamp)
XN_C_API XnStatus XN_C_DECL xnOSGetCurrentThreadID(XN_THREAD_ID *pThreadID)
XnOSSocketType
Definition XnOS.h:112
@ XN_OS_TCP_SOCKET
Definition XnOS.h:116
@ XN_OS_UDP_SOCKET
Definition XnOS.h:114
XN_C_API XnStatus XN_C_DECL xnOSGetApplicationFilesDir(XnChar *cpDirName, const XnUInt32 nBufferSize)
XN_C_API XnStatus XN_C_DECL xnOSCreateSharedMemoryEx(const XnChar *strName, XnUInt32 nSize, XnUInt32 nAccessFlags, XnBool bAllowOtherUsers, XN_SHARED_MEMORY_HANDLE *phSharedMem)
XN_C_API XnStatus XN_C_DECL xnOSGetFileList(const XnChar *cpSearchPattern, const XnChar *cpPrefixPath, XnChar cpFileList[][XN_FILE_MAX_PATH], const XnUInt32 nMaxFiles, XnUInt32 *pnFoundFiles)
XN_C_API XnStatus XN_C_DECL xnOSGetFullPathName(const XnChar *strFilePath, XnChar *strFullPath, XnUInt32 nBufferSize)
XN_C_API XnStatus XN_C_DECL xnOSWriteIntToINI(const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, const XnUInt32 nSrc)
XN_C_API XnStatus XN_C_DECL xnOSUnlockSemaphore(XN_SEMAPHORE_HANDLE hSemaphore)
XN_C_API XnStatus XN_C_DECL xnOSCreateNamedEvent(XN_EVENT_HANDLE *pEventHandle, const XnChar *cpEventName, XnBool bManualReset)
XN_C_API XnStatus XN_C_DECL xnOSSendNetworkBuffer(XN_SOCKET_HANDLE Socket, const XnChar *cpBuffer, const XnUInt32 nBufferSize)
XN_C_API XnStatus XN_C_DECL xnOSSleep(XnUInt32 nMilliseconds)
struct XnOSSharedMemory XnOSSharedMemory
Definition XnOS.h:598
XN_C_API XnStatus XN_C_DECL xnOSWaitForThreadExit(XN_THREAD_HANDLE ThreadHandle, XnUInt32 nMilliseconds)
XN_C_API XnStatus XN_C_DECL xnOSDeleteDirectoryTree(const XnChar *strDirName)
XnBool(* XnConditionFunc)(void *pConditionData)
Definition XnOS.h:71
XN_C_API XnStatus XN_C_DECL xnOSSeekFile(const XN_FILE_HANDLE File, const XnOSSeekType SeekType, const XnInt32 nOffset)
XN_C_API XnStatus XN_C_DECL xnOSSetCurrentDir(const XnChar *cpDirName)
XN_C_API XnStatus XN_C_DECL xnOSLoadLibrary(const XnChar *cpFileName, XN_LIB_HANDLE *pLibHandle)
XN_C_API XnStatus XN_C_DECL xnOSInit()
XN_C_API void *XN_C_DECL xnOSMalloc(const XnSizeT nAllocSize)
XN_C_API void XN_C_DECL xnOSFree(const void *pMemBlock)
#define XN_C_API
Definition XnPlatform.h:121
@ XN_ERROR_GROUP_OS
Definition XnStatus.h:76
XnUInt32 XnStatus
Definition XnStatus.h:33
#define XN_STATUS_MESSAGE(csName, csMessage)
Definition XnStatus.h:99
#define XN_STATUS_MESSAGE_MAP_END(group)
Definition XnStatus.h:106
#define XN_STATUS_MESSAGE_MAP_START(group)
Definition XnStatus.h:95
Definition XnOS.h:64
XnUInt32 nProcessorsCount
Definition XnOS.h:67
XnChar csOSName[XN_MAX_OS_NAME_LENGTH]
Definition XnOS.h:65
XnChar csCPUName[XN_MAX_OS_NAME_LENGTH]
Definition XnOS.h:66
XnUInt64 nTotalMemory
Definition XnOS.h:68