![]() |
OpenNI 1.5.7
|
00001 /***************************************************************************** 00002 * * 00003 * OpenNI 1.x Alpha * 00004 * Copyright (C) 2012 PrimeSense Ltd. * 00005 * * 00006 * This file is part of OpenNI. * 00007 * * 00008 * Licensed under the Apache License, Version 2.0 (the "License"); * 00009 * you may not use this file except in compliance with the License. * 00010 * You may obtain a copy of the License at * 00011 * * 00012 * http://www.apache.org/licenses/LICENSE-2.0 * 00013 * * 00014 * Unless required by applicable law or agreed to in writing, software * 00015 * distributed under the License is distributed on an "AS IS" BASIS, * 00016 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 00017 * See the License for the specific language governing permissions and * 00018 * limitations under the License. * 00019 * * 00020 *****************************************************************************/ 00021 #ifndef __XN_OS_H__ 00022 #define __XN_OS_H__ 00023 00024 //--------------------------------------------------------------------------- 00025 // Includes 00026 //--------------------------------------------------------------------------- 00027 #include "XnPlatform.h" 00028 #include "XnMacros.h" 00029 #include "XnStatusCodes.h" 00030 #include "XnOSStrings.h" 00031 #include "XnOSMemory.h" 00032 00033 //--------------------------------------------------------------------------- 00034 // Defines 00035 //--------------------------------------------------------------------------- 00036 #define XN_MASK_OS "xnOS" 00037 00038 // uncomment next line to activate memory profiling 00039 //#define XN_MEM_PROFILING 00040 00041 //--------------------------------------------------------------------------- 00042 // OS Identifier 00043 //--------------------------------------------------------------------------- 00044 #if (XN_PLATFORM == XN_PLATFORM_WIN32) 00045 #include "Win32/XnOSWin32.h" 00046 #elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM) 00047 #include "Linux-x86/XnOSLinux-x86.h" 00048 #elif defined(_ARC) 00049 #include "ARC/XnOSARC.h" 00050 #else 00051 #if defined __INTEL_COMPILER 00052 #include "Linux-x86/XnOSLinux.h" 00053 #else 00054 #error OpenNI OS Abstraction Layer - Unsupported Platform! 00055 #endif 00056 #endif 00057 00058 //--------------------------------------------------------------------------- 00059 // Types 00060 //--------------------------------------------------------------------------- 00061 #define XN_MAX_OS_NAME_LENGTH 255 00062 00063 typedef struct xnOSInfo 00064 { 00065 XnChar csOSName[XN_MAX_OS_NAME_LENGTH]; 00066 XnChar csCPUName[XN_MAX_OS_NAME_LENGTH]; 00067 XnUInt32 nProcessorsCount; 00068 XnUInt64 nTotalMemory; 00069 } xnOSInfo; 00070 00071 typedef XnBool (XN_CALLBACK_TYPE* XnConditionFunc)(void* pConditionData); 00072 00073 //--------------------------------------------------------------------------- 00074 // Global Variables 00075 //--------------------------------------------------------------------------- 00077 extern XnOSTimer g_xnOSHighResGlobalTimer; 00078 00079 //--------------------------------------------------------------------------- 00080 // Files 00081 //--------------------------------------------------------------------------- 00082 // File open modes 00084 #define XN_OS_FILE_READ 0x01 00085 00086 #define XN_OS_FILE_WRITE 0x02 00087 00088 #define XN_OS_FILE_CREATE_NEW_ONLY 0x04 00089 00090 #define XN_OS_FILE_TRUNCATE 0x08 00091 00092 #define XN_OS_FILE_APPEND 0x10 00093 00094 #define XN_OS_FILE_AUTO_FLUSH 0x20 00095 00096 // Seek types 00098 typedef enum { 00100 XN_OS_SEEK_SET = 0, 00102 XN_OS_SEEK_CUR, 00104 XN_OS_SEEK_END 00105 } XnOSSeekType; 00106 00107 //--------------------------------------------------------------------------- 00108 // Network 00109 //--------------------------------------------------------------------------- 00110 // Network socket type 00112 typedef enum { 00114 XN_OS_UDP_SOCKET = 0, 00116 XN_OS_TCP_SOCKET 00117 } XnOSSocketType; 00118 00119 #define XN_OS_NETWORK_LOCAL_HOST "127.0.0.1" 00120 00121 //--------------------------------------------------------------------------- 00122 // Macros 00123 //--------------------------------------------------------------------------- 00124 // Memory 00126 #define XN_VALIDATE_INPUT_PTR(x) XN_VALIDATE_PTR(x, XN_STATUS_NULL_INPUT_PTR) 00127 00129 #define XN_VALIDATE_OUTPUT_PTR(x) XN_VALIDATE_PTR(x, XN_STATUS_NULL_OUTPUT_PTR) 00130 00131 #define XN_VALIDATE_ALLOC_PTR(x) XN_VALIDATE_PTR(x, XN_STATUS_ALLOC_FAILED) 00132 00134 #define XN_VALIDATE_ALLOC(x,y) \ 00135 x = (y*)xnOSMalloc(sizeof(y)); \ 00136 XN_VALIDATE_ALLOC_PTR(x); 00137 00139 #define XN_VALIDATE_CALLOC(x,y,z) \ 00140 x = (y*)xnOSCalloc(z, sizeof(y)); \ 00141 XN_VALIDATE_ALLOC_PTR(x); 00142 00144 #define XN_VALIDATE_ALIGNED_ALLOC(x,y,w) \ 00145 x = (y*)xnOSMallocAligned(sizeof(y), w); \ 00146 XN_VALIDATE_ALLOC_PTR(x); 00147 00149 #define XN_VALIDATE_ALIGNED_CALLOC(x,y,z,w) \ 00150 x = (y*)xnOSCallocAligned(z, sizeof(y), w); \ 00151 XN_VALIDATE_ALLOC_PTR(x); 00152 00154 #define XN_FREE_AND_NULL(x) \ 00155 if (x != NULL) \ 00156 { \ 00157 xnOSFree(x); \ 00158 x = NULL; \ 00159 } 00160 00161 #define XN_ALIGNED_FREE_AND_NULL(x) \ 00162 if (x != NULL) \ 00163 { \ 00164 xnOSFreeAligned(x); \ 00165 x = NULL; \ 00166 } 00167 00168 00170 #if XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_WIN32_VAARGS_STYLE 00171 #define XN_VALIDATE_NEW(ptr, type, ...) \ 00172 { \ 00173 (ptr) = XN_NEW(type, __VA_ARGS__); \ 00174 if ((ptr) == NULL) \ 00175 { \ 00176 return (XN_STATUS_ALLOC_FAILED); \ 00177 } \ 00178 } 00179 00180 #elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_GCC_VAARGS_STYLE 00181 #define XN_VALIDATE_NEW(ptr, type, ...) \ 00182 { \ 00183 (ptr) = XN_NEW(type, ##__VA_ARGS__); \ 00184 if ((ptr) == NULL) \ 00185 { \ 00186 return (XN_STATUS_ALLOC_FAILED); \ 00187 } \ 00188 } 00189 #elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_ARC_VAARGS_STYLE 00190 #define XN_VALIDATE_NEW(ptr, type...) \ 00191 { \ 00192 (ptr) = XN_NEW(type); \ 00193 if ((ptr) == NULL) \ 00194 { \ 00195 return (XN_STATUS_ALLOC_FAILED); \ 00196 } \ 00197 } 00198 #else 00199 #define XN_VALIDATE_NEW(ptr, type) \ 00200 { \ 00201 (ptr) = XN_NEW(type); \ 00202 if ((ptr) == NULL) \ 00203 { \ 00204 return (XN_STATUS_ALLOC_FAILED); \ 00205 } \ 00206 } 00207 #endif 00208 00210 #if XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_WIN32_VAARGS_STYLE 00211 #define XN_VALIDATE_NEW_AND_INIT(ptr, type, ...) \ 00212 { \ 00213 XN_VALIDATE_NEW(ptr, type, __VA_ARGS__); \ 00214 XnStatus rc = (ptr)->Init(); \ 00215 if (rc != XN_STATUS_OK) \ 00216 { \ 00217 XN_DELETE(ptr); \ 00218 return (rc); \ 00219 } \ 00220 } 00221 #elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_GCC_VAARGS_STYLE 00222 #define XN_VALIDATE_NEW_AND_INIT(ptr, type, ...) \ 00223 { \ 00224 XN_VALIDATE_NEW(ptr, type, ##__VA_ARGS__); \ 00225 XnStatus rc = (ptr)->Init(); \ 00226 if (rc != XN_STATUS_OK) \ 00227 { \ 00228 XN_DELETE(ptr); \ 00229 return (rc); \ 00230 } \ 00231 } 00232 #elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_ARC_VAARGS_STYLE 00233 #define XN_VALIDATE_NEW_AND_INIT(ptr, type...) \ 00234 { \ 00235 XN_VALIDATE_NEW(ptr, type); \ 00236 XnStatus rc = (ptr)->Init(); \ 00237 if (rc != XN_STATUS_OK) \ 00238 { \ 00239 XN_DELETE(ptr); \ 00240 return (rc); \ 00241 } \ 00242 } 00243 #else 00244 #define XN_VALIDATE_NEW_AND_INIT(ptr, type) \ 00245 { \ 00246 XN_VALIDATE_NEW(ptr, type); \ 00247 XnStatus rc = (ptr)->Init(); \ 00248 if (rc != XN_STATUS_OK) \ 00249 { \ 00250 XN_DELETE(ptr); \ 00251 return (rc); \ 00252 } \ 00253 } 00254 #endif 00255 00256 // Strings 00258 #define XN_VALIDATE_STR_APPEND(w,x,y,z) \ 00259 z = xnOSStrAppend(w, x, y); \ 00260 XN_IS_STATUS_OK(z); 00261 00263 #define XN_VALIDATE_STR_PREFIX(w,x,y,z) \ 00264 z = xnOSStrPrefix(w, x, y); \ 00265 XN_IS_STATUS_OK(z); 00266 00267 #define XN_VALIDATE_STR_COPY(w,x,y,z) \ 00268 z = xnOSStrCopy(w, x, y); \ 00269 XN_IS_STATUS_OK(z); 00270 00271 #define XN_VALIDATE_STRN_COPY(v,w,x,y,z) \ 00272 z = xnOSStrNCopy(v, w, x, y); \ 00273 XN_IS_STATUS_OK(z); 00274 00275 // INI 00277 #define XN_VALIDATE_READ_INI_STR(u,v,w,x,y,z) \ 00278 z = xnOSReadStringFromINI(u, v, w, x, y); \ 00279 XN_IS_STATUS_OK(z); 00280 00282 #define XN_VALIDATE_READ_INI_INT(v,w,x,y,z) \ 00283 z = xnOSReadIntFromINI(v, w, x, y); \ 00284 XN_IS_STATUS_OK(z); 00285 00287 #define XN_VALIDATE_READ_INI_FLOAT(v,w,x,y,z) \ 00288 z = xnOSReadFloatFromINI(v, w, x, y); \ 00289 XN_IS_STATUS_OK(z); 00290 00292 #define XN_VALIDATE_READ_INI_DOUBLE(v,w,x,y,z) \ 00293 z = xnOSReadDoubleFromINI(v, w, x, y); \ 00294 XN_IS_STATUS_OK(z); 00295 00296 // Mutex 00298 #define XN_VALIDATE_LOCK_MUTEX(x,y,z) \ 00299 z = xnOSLockMutex(x, y); \ 00300 XN_IS_STATUS_OK(z); 00301 00303 #define XN_VALIDATE_UNLOCK_MUTEX(x,z) \ 00304 z = xnOSUnLockMutex(x); \ 00305 XN_IS_STATUS_OK(z); 00306 00307 // Files 00309 #define XN_VALIDATE_FILE_EXISTS_RET(x,y,z,w) \ 00310 y = xnOSDoesFileExist(x, &z); \ 00311 XN_IS_STATUS_OK(y); \ 00312 if (z == FALSE) \ 00313 { \ 00314 return (w); \ 00315 } 00316 #define XN_VALIDATE_FILE_EXISTS(x,y,z) \ 00317 XN_VALIDATE_FILE_EXISTS_RET(x,y,z,XN_STATUS_OS_FILE_NOT_FOUND) 00318 00319 //--------------------------------------------------------------------------- 00320 // Exported Function Declaration 00321 //--------------------------------------------------------------------------- 00322 // Common 00323 XN_C_API XnStatus XN_C_DECL xnOSInit(); 00324 XN_C_API XnStatus XN_C_DECL xnOSShutdown(); 00325 XN_C_API XnStatus XN_C_DECL xnOSGetInfo(xnOSInfo* pOSInfo); 00326 00327 00328 #if XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_WIN32_VAARGS_STYLE 00329 #define XN_NEW(type, ...) new type(__VA_ARGS__) 00330 #elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_GCC_VAARGS_STYLE 00331 #define XN_NEW(type, ...) new type(__VA_ARGS__) 00332 #elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_ARC_VAARGS_STYLE 00333 #define XN_NEW(type, arg...) new type(arg) 00334 #else 00335 #define XN_NEW(type, arg) new type(arg) 00336 #endif 00337 00338 #define XN_NEW_ARR(type, count) new type[count] 00339 #define XN_DELETE(p) delete (p) 00340 #define XN_DELETE_ARR(p) delete[] (p) 00341 00342 typedef enum 00343 { 00344 XN_ALLOCATION_MALLOC, 00345 XN_ALLOCATION_MALLOC_ALIGNED, 00346 XN_ALLOCATION_CALLOC, 00347 XN_ALLOCATION_CALLOC_ALIGNED, 00348 XN_ALLOCATION_NEW, 00349 XN_ALLOCATION_NEW_ARRAY 00350 } XnAllocationType; 00351 00355 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); 00356 00360 XN_C_API void XN_C_DECL xnOSLogMemFree(const void* pMemBlock); 00361 00365 XN_C_API void XN_C_DECL xnOSWriteMemoryReport(const XnChar* csFileName); 00366 00367 // for memory profiling, replace all malloc/calloc/free/new/delete calls 00368 #if (defined XN_MEM_PROFILING) && (!defined(XN_OS_IMPL)) 00369 #ifdef _MSC_VER 00370 #pragma message("Compiling with Memory Profiling!") 00371 #elif defined(__INTEL_COMPILER) 00372 #warning "Compiling with Memory Profiling!" 00373 //TODO: Add warning for linux compiler(s) 00374 #endif 00375 00376 #ifdef __cplusplus 00377 #include <new> 00378 static void* operator new(size_t size) 00379 { 00380 void* p = xnOSMalloc(size); 00381 return xnOSLogMemAlloc(p, XN_ALLOCATION_NEW, size, "", "", 0, ""); 00382 } 00383 static void* operator new[](size_t size) 00384 { 00385 void* p = xnOSMalloc(size); 00386 return xnOSLogMemAlloc(p, XN_ALLOCATION_NEW, size, "", "", 0, ""); 00387 } 00388 static void* operator new(size_t size, const XnChar* csFunction, const XnChar* csFile, XnUInt32 nLine, const XnChar* csAdditional) 00389 { 00390 void* p = xnOSMalloc(size); 00391 return xnOSLogMemAlloc(p, XN_ALLOCATION_NEW, size, csFunction, csFile, nLine, csAdditional); 00392 } 00393 00394 // called only if ctor threw exception 00395 static void operator delete(void* p, const XnChar* /*csFunction*/, const XnChar* /*csFile*/, XnUInt32 /*nLine*/, const XnChar* /*csAdditional*/) 00396 { 00397 xnOSLogMemFree(p); 00398 xnOSFree(p); 00399 } 00400 00401 static void operator delete(void* p) 00402 { 00403 xnOSLogMemFree(p); 00404 xnOSFree(p); 00405 } 00406 00407 static void* operator new[](size_t size, const XnChar* csFunction, const XnChar* csFile, XnUInt32 nLine, const XnChar* csAdditional) 00408 { 00409 void* p = xnOSMalloc(size); 00410 return xnOSLogMemAlloc(p, XN_ALLOCATION_NEW_ARRAY, size, csFunction, csFile, nLine, csAdditional); 00411 } 00412 00413 // called only if ctor threw exception 00414 static void operator delete[](void* p, const XnChar* /*csFunction*/, const XnChar* /*csFile*/, XnUInt32 /*nLine*/, const XnChar* /*csAdditional*/) 00415 { 00416 xnOSLogMemFree(p); 00417 xnOSFree(p); 00418 } 00419 00420 static void operator delete[](void* p) 00421 { 00422 xnOSLogMemFree(p); 00423 xnOSFree(p); 00424 } 00425 00426 #define xnOSMalloc(nAllocSize) xnOSLogMemAlloc(xnOSMalloc(nAllocSize), XN_ALLOCATION_MALLOC, nAllocSize, __FUNCTION__, __FILE__, __LINE__, NULL) 00427 #define xnOSMallocAligned(nAllocSize, nAlignment) xnOSLogMemAlloc(xnOSMallocAligned(nAllocSize, nAlignment), XN_ALLOCATION_MALLOC_ALIGNED, nAllocSize, __FUNCTION__, __FILE__, __LINE__, "Aligned to " XN_STRINGIFY(nAlignment)) 00428 #define xnOSCalloc(nAllocNum, nAllocSize) xnOSLogMemAlloc(xnOSCalloc(nAllocNum, nAllocSize), XN_ALLOCATION_CALLOC, nAllocNum*nAllocSize, __FUNCTION__, __FILE__, __LINE__, NULL) 00429 #define xnOSCallocAligned(nAllocNum, nAllocSize, nAlignment) xnOSLogMemAlloc(xnOSCallocAligned(nAllocNum, nAllocSize, nAlignment), XN_ALLOCATION_CALLOC_ALIGNED, nAllocNum*nAllocSize, __FUNCTION__, __FILE__, __LINE__, "Aligned to " XN_STRINGIFY(nAlignment)) 00430 #define xnOSFree(pMemBlock) { xnOSLogMemFree(pMemBlock); xnOSFree(pMemBlock); } 00431 #define xnOSFreeAligned(pMemBlock) { xnOSLogMemFree(pMemBlock); xnOSFreeAligned(pMemBlock); } 00432 00433 #undef XN_NEW 00434 #undef XN_NEW_ARR 00435 00436 #if XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_WIN32_VAARGS_STYLE 00437 #define XN_NEW(type, ...) new (__FUNCTION__, __FILE__, __LINE__, XN_STRINGIFY(type)) type(__VA_ARGS__) 00438 #elif XN_PLATFORM_VAARGS_TYPE == XN_PLATFORM_USE_GCC_VAARGS_STYLE 00439 #define XN_NEW(type, arg...) new (__FUNCTION__, __FILE__, __LINE__, XN_STRINGIFY(type)) type(arg) 00440 #else 00441 #define XN_NEW(type, arg) new (__FUNCTION__, __FILE__, __LINE__, XN_STRINGIFY(type)) type(arg) 00442 #endif 00443 00444 #define XN_NEW_ARR(type, count) new (__FUNCTION__, __FILE__, __LINE__, XN_STRINGIFY(count) " " XN_STRINGIFY(type)) type[count] 00445 00446 #endif 00447 #endif 00448 00449 // Files 00450 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); 00451 XN_C_API XnStatus XN_C_DECL xnOSOpenFile(const XnChar* cpFileName, const XnUInt32 nFlags, XN_FILE_HANDLE* pFile); 00452 XN_C_API XnStatus XN_C_DECL xnOSCloseFile(XN_FILE_HANDLE* pFile); 00453 XN_C_API XnStatus XN_C_DECL xnOSReadFile(const XN_FILE_HANDLE File, void* pBuffer, XnUInt32* pnBufferSize); 00454 XN_C_API XnStatus XN_C_DECL xnOSWriteFile(const XN_FILE_HANDLE File, const void* pBuffer, const XnUInt32 nBufferSize); 00455 XN_C_API XnStatus XN_API_DEPRECATED("Use xnOSSeekFile64() instead") XN_C_DECL 00456 xnOSSeekFile (const XN_FILE_HANDLE File, const XnOSSeekType SeekType, const XnInt32 nOffset); 00457 XN_C_API XnStatus XN_C_DECL xnOSSeekFile64(const XN_FILE_HANDLE File, const XnOSSeekType SeekType, const XnInt64 nOffset); 00458 XN_C_API XnStatus XN_API_DEPRECATED("Use xnOSTellFile64() instead") XN_C_DECL 00459 xnOSTellFile (const XN_FILE_HANDLE File, XnUInt32* nFilePos); 00460 XN_C_API XnStatus XN_C_DECL xnOSTellFile64(const XN_FILE_HANDLE File, XnUInt64* nFilePos); 00461 XN_C_API XnStatus XN_C_DECL xnOSFlushFile(const XN_FILE_HANDLE File); 00462 XN_C_API XnStatus XN_C_DECL xnOSDoesFileExist(const XnChar* cpFileName, XnBool* pbResult); 00463 XN_C_API XnStatus XN_C_DECL xnOSDoesDirecotyExist(const XnChar* cpDirName, XnBool* pbResult); 00464 XN_C_API XnStatus XN_C_DECL xnOSLoadFile(const XnChar* cpFileName, void* pBuffer, const XnUInt32 nBufferSize); 00465 XN_C_API XnStatus XN_C_DECL xnOSSaveFile(const XnChar* cpFileName, const void* pBuffer, const XnUInt32 nBufferSize); 00466 XN_C_API XnStatus XN_C_DECL xnOSAppendFile(const XnChar* cpFileName, const void* pBuffer, const XnUInt32 nBufferSize); 00467 XN_C_API XnStatus XN_API_DEPRECATED("Use xnOSGetFileSize64() instead") XN_C_DECL 00468 xnOSGetFileSize (const XnChar* cpFileName, XnUInt32* pnFileSize); 00469 XN_C_API XnStatus XN_C_DECL xnOSGetFileSize64(const XnChar* cpFileName, XnUInt64* pnFileSize); 00470 XN_C_API XnStatus XN_C_DECL xnOSCreateDirectory(const XnChar* cpDirName); 00471 XN_C_API XnStatus XN_C_DECL xnOSGetDirName(const XnChar* cpFilePath, XnChar* cpDirName, const XnUInt32 nBufferSize); 00472 XN_C_API XnStatus XN_C_DECL xnOSGetFileName(const XnChar* cpFilePath, XnChar* cpFileName, const XnUInt32 nBufferSize); 00473 XN_C_API XnStatus XN_C_DECL xnOSGetFullPathName(const XnChar* strFilePath, XnChar* strFullPath, XnUInt32 nBufferSize); 00474 XN_C_API XnStatus XN_C_DECL xnOSGetCurrentDir(XnChar* cpDirName, const XnUInt32 nBufferSize); 00475 XN_C_API XnStatus XN_C_DECL xnOSSetCurrentDir(const XnChar* cpDirName); 00476 XN_C_API XnStatus XN_C_DECL xnOSDeleteFile(const XnChar* cpFileName); 00477 XN_C_API XnStatus XN_C_DECL xnOSDeleteEmptyDirectory(const XnChar* strDirName); 00478 XN_C_API XnStatus XN_C_DECL xnOSDeleteDirectoryTree(const XnChar* strDirName); 00479 #ifdef XN_PLATFORM_ANDROID_ARM 00480 XN_C_API XnStatus XN_C_DECL xnOSGetApplicationFilesDir(XnChar* cpDirName, const XnUInt32 nBufferSize); 00481 XN_C_API XnStatus XN_C_DECL xnOSGetApplicationLibDir(XnChar* cpDirName, const XnUInt32 nBufferSize); 00482 #endif 00483 00484 // INI 00485 XN_C_API XnStatus XN_C_DECL xnOSReadStringFromINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, XnChar* cpDest, const XnUInt32 nDestLength); 00486 XN_C_API XnStatus XN_C_DECL xnOSReadFloatFromINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, XnFloat* fDest); 00487 XN_C_API XnStatus XN_C_DECL xnOSReadDoubleFromINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, XnDouble* fDest); 00488 XN_C_API XnStatus XN_C_DECL xnOSReadIntFromINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, XnUInt32* nDest); 00489 XN_C_API XnStatus XN_C_DECL xnOSWriteStringToINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, const XnChar* cpSrc); 00490 XN_C_API XnStatus XN_C_DECL xnOSWriteFloatToINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, const XnFloat fSrc); 00491 XN_C_API XnStatus XN_C_DECL xnOSWriteDoubleToINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, const XnDouble fSrc); 00492 XN_C_API XnStatus XN_C_DECL xnOSWriteIntToINI(const XnChar* cpINIFile, const XnChar* cpSection, const XnChar* cpKey, const XnUInt32 nSrc); 00493 00494 // Shared libraries 00495 XN_C_API XnStatus XN_C_DECL xnOSLoadLibrary(const XnChar* cpFileName, XN_LIB_HANDLE* pLibHandle); 00496 XN_C_API XnStatus XN_C_DECL xnOSFreeLibrary(const XN_LIB_HANDLE LibHandle); 00497 XN_C_API XnStatus XN_C_DECL xnOSGetProcAddress(const XN_LIB_HANDLE LibHandle, const XnChar* cpProcName, XnFarProc* pProcAddr); 00498 00499 struct timespec; 00500 00501 // Time 00502 XN_C_API XnStatus XN_C_DECL xnOSGetEpochTime(XnUInt32* nEpochTime); 00503 XN_C_API XnStatus XN_C_DECL xnOSGetTimeStamp(XnUInt64* nTimeStamp); 00504 XN_C_API XnStatus XN_C_DECL xnOSGetHighResTimeStamp(XnUInt64* nTimeStamp); 00505 XN_C_API XnStatus XN_C_DECL xnOSSleep(XnUInt32 nMilliseconds); 00506 XN_C_API XnStatus XN_C_DECL xnOSStartTimer(XnOSTimer* pTimer); 00507 XN_C_API XnStatus XN_C_DECL xnOSStartHighResTimer(XnOSTimer* pTimer); 00508 XN_C_API XnStatus XN_C_DECL xnOSQueryTimer(XnOSTimer Timer, XnUInt64* pnTimeSinceStart); 00509 XN_C_API XnStatus XN_C_DECL xnOSStopTimer(XnOSTimer* pTimer); 00510 XN_C_API XnStatus XN_C_DECL xnOSGetMonoTime(struct timespec* pTime); 00511 XN_C_API XnStatus XN_C_DECL xnOSGetTimeout(struct timespec* pTime, XnUInt32 nMilliseconds); 00512 XN_C_API XnStatus XN_C_DECL xnOSGetAbsTimeout(struct timespec* pTime, XnUInt32 nMilliseconds); 00513 00514 // Threads 00515 typedef enum XnThreadPriority 00516 { 00517 XN_PRIORITY_LOW, 00518 XN_PRIORITY_NORMAL, 00519 XN_PRIORITY_HIGH, 00520 XN_PRIORITY_CRITICAL 00521 } XnThreadPriority; 00522 00523 XN_C_API XnStatus XN_C_DECL xnOSCreateThread(XN_THREAD_PROC_PROTO pThreadProc, const XN_THREAD_PARAM pThreadParam, XN_THREAD_HANDLE* pThreadHandle); 00524 XN_C_API XnStatus XN_C_DECL xnOSTerminateThread(XN_THREAD_HANDLE* pThreadHandle); 00525 XN_C_API XnStatus XN_C_DECL xnOSCloseThread(XN_THREAD_HANDLE* pThreadHandle); 00526 XN_C_API XnStatus XN_C_DECL xnOSWaitForThreadExit(XN_THREAD_HANDLE ThreadHandle, XnUInt32 nMilliseconds); 00527 XN_C_API XnStatus XN_C_DECL xnOSSetThreadPriority(XN_THREAD_HANDLE ThreadHandle, XnThreadPriority nPriority); 00528 XN_C_API XnStatus XN_C_DECL xnOSGetCurrentThreadID(XN_THREAD_ID* pThreadID); 00529 XN_C_API XnStatus XN_C_DECL xnOSWaitAndTerminateThread(XN_THREAD_HANDLE* pThreadHandle, XnUInt32 nMilliseconds); 00530 00531 // Processes 00532 XN_C_API XnStatus XN_C_DECL xnOSGetCurrentProcessID(XN_PROCESS_ID* pProcID); 00533 XN_C_API XnStatus XN_C_DECL xnOSCreateProcess(const XnChar* strExecutable, XnUInt32 nArgs, const XnChar** pstrArgs, XN_PROCESS_ID* pProcID); 00534 00535 // Mutex 00536 XN_C_API XnStatus XN_C_DECL xnOSCreateMutex(XN_MUTEX_HANDLE* pMutexHandle); 00537 XN_C_API XnStatus XN_C_DECL xnOSCreateNamedMutex(XN_MUTEX_HANDLE* pMutexHandle, const XnChar* cpMutexName); 00538 XN_C_API XnStatus XN_C_DECL xnOSCreateNamedMutexEx(XN_MUTEX_HANDLE* pMutexHandle, const XnChar* cpMutexName, XnBool bAllowOtherUsers); 00539 XN_C_API XnStatus XN_C_DECL xnOSCloseMutex(XN_MUTEX_HANDLE* pMutexHandle); 00540 XN_C_API XnStatus XN_C_DECL xnOSLockMutex(const XN_MUTEX_HANDLE MutexHandle, XnUInt32 nMilliseconds); 00541 XN_C_API XnStatus XN_C_DECL xnOSUnLockMutex(const XN_MUTEX_HANDLE MutexHandle); 00542 00543 // Critical Sections 00544 XN_C_API XnStatus XN_C_DECL xnOSCreateCriticalSection(XN_CRITICAL_SECTION_HANDLE* pCriticalSectionHandle); 00545 XN_C_API XnStatus XN_C_DECL xnOSCloseCriticalSection(XN_CRITICAL_SECTION_HANDLE* pCriticalSectionHandle); 00546 XN_C_API XnStatus XN_C_DECL xnOSEnterCriticalSection(XN_CRITICAL_SECTION_HANDLE* pCriticalSectionHandle); 00547 XN_C_API XnStatus XN_C_DECL xnOSLeaveCriticalSection(XN_CRITICAL_SECTION_HANDLE* pCriticalSectionHandle); 00548 00549 // Events 00550 XN_C_API XnStatus XN_C_DECL xnOSCreateEvent(XN_EVENT_HANDLE* pEventHandle, XnBool bManualReset); 00551 XN_C_API XnStatus XN_C_DECL xnOSCreateNamedEvent(XN_EVENT_HANDLE* pEventHandle, const XnChar* cpEventName, XnBool bManualReset); 00552 XN_C_API XnStatus XN_C_DECL xnOSCreateNamedEventEx(XN_EVENT_HANDLE* pEventHandle, const XnChar* cpEventName, XnBool bManualReset, XnBool bAllowOtherUsers); 00553 XN_C_API XnStatus XN_C_DECL xnOSOpenNamedEvent(XN_EVENT_HANDLE* pEventHandle, const XnChar* cpEventName); 00554 XN_C_API XnStatus XN_C_DECL xnOSOpenNamedEventEx(XN_EVENT_HANDLE* pEventHandle, const XnChar* cpEventName, XnBool bAllowOtherUsers); 00555 XN_C_API XnStatus XN_C_DECL xnOSCloseEvent(XN_EVENT_HANDLE* pEventHandle); 00556 XN_C_API XnStatus XN_C_DECL xnOSSetEvent(const XN_EVENT_HANDLE EventHandle); 00557 XN_C_API XnStatus XN_C_DECL xnOSResetEvent(const XN_EVENT_HANDLE EventHandle); 00558 XN_C_API XnStatus XN_C_DECL xnOSWaitEvent(const XN_EVENT_HANDLE EventHandle, XnUInt32 nMilliseconds); 00559 XN_C_API XnBool XN_C_DECL xnOSIsEventSet(const XN_EVENT_HANDLE EventHandle); 00560 00561 // Semaphores 00562 XN_C_API XnStatus XN_C_DECL xnOSCreateSemaphore(XN_SEMAPHORE_HANDLE* pSemaphoreHandle, XnUInt32 nInitialCount); 00563 XN_C_API XnStatus XN_C_DECL xnOSLockSemaphore(XN_SEMAPHORE_HANDLE hSemaphore, XnUInt32 nMilliseconds); 00564 XN_C_API XnStatus XN_C_DECL xnOSUnlockSemaphore(XN_SEMAPHORE_HANDLE hSemaphore); 00565 XN_C_API XnStatus XN_C_DECL xnOSCloseSemaphore(XN_SEMAPHORE_HANDLE* pSemaphoreHandle); 00566 00575 XN_C_API XnStatus XN_C_DECL xnOSWaitForCondition(const XN_EVENT_HANDLE EventHandle, XnUInt32 nMilliseconds, XnConditionFunc pConditionFunc, void* pConditionData); 00576 00577 // Network 00578 struct xnOSSocket; 00579 typedef struct xnOSSocket* XN_SOCKET_HANDLE; 00580 00581 #define XN_SOCKET_DEFAULT_TIMEOUT 0xFFFEFFFE 00582 00583 XN_C_API XnStatus XN_C_DECL xnOSInitNetwork(); 00584 XN_C_API XnStatus XN_C_DECL xnOSShutdownNetwork(); 00585 XN_C_API XnStatus XN_C_DECL xnOSCreateSocket(const XnOSSocketType SocketType, const XnChar* cpIPAddress, const XnUInt16 nPort, XN_SOCKET_HANDLE* SocketPtr); 00586 XN_C_API XnStatus XN_C_DECL xnOSCloseSocket(XN_SOCKET_HANDLE Socket); 00587 XN_C_API XnStatus XN_C_DECL xnOSBindSocket(XN_SOCKET_HANDLE Socket); 00588 XN_C_API XnStatus XN_C_DECL xnOSListenSocket(XN_SOCKET_HANDLE Socket); 00589 XN_C_API XnStatus XN_C_DECL xnOSAcceptSocket(XN_SOCKET_HANDLE ListenSocket, XN_SOCKET_HANDLE* AcceptSocketPtr, XnUInt32 nMillisecsTimeout); 00590 XN_C_API XnStatus XN_C_DECL xnOSConnectSocket(XN_SOCKET_HANDLE Socket, XnUInt32 nMillisecsTimeout); 00591 XN_C_API XnStatus XN_C_DECL xnOSSetSocketBufferSize(XN_SOCKET_HANDLE Socket, const XnUInt32 nSocketBufferSize); 00592 XN_C_API XnStatus XN_C_DECL xnOSSendNetworkBuffer(XN_SOCKET_HANDLE Socket, const XnChar* cpBuffer, const XnUInt32 nBufferSize); 00593 XN_C_API XnStatus XN_C_DECL xnOSSendToNetworkBuffer(XN_SOCKET_HANDLE Socket, const XnChar* cpBuffer, const XnUInt32 nBufferSize, XN_SOCKET_HANDLE SocketTo); 00594 XN_C_API XnStatus XN_C_DECL xnOSReceiveNetworkBuffer(XN_SOCKET_HANDLE Socket, XnChar* cpBuffer, XnUInt32* pnBufferSize, XnUInt32 nMillisecsTimeout); 00595 XN_C_API XnStatus XN_C_DECL xnOSReceiveFromNetworkBuffer(XN_SOCKET_HANDLE Socket, XnChar* cpBuffer, XnUInt32* pnBufferSize, XN_SOCKET_HANDLE* SocketFrom); 00596 00597 // Shared Memory 00598 typedef struct XnOSSharedMemory XnOSSharedMemory, *XN_SHARED_MEMORY_HANDLE; 00599 00608 XN_C_API XnStatus XN_C_DECL xnOSCreateSharedMemory(const XnChar* strName, XnUInt32 nSize, XnUInt32 nAccessFlags, XN_SHARED_MEMORY_HANDLE* phSharedMem); 00609 00610 XN_C_API XnStatus XN_C_DECL xnOSCreateSharedMemoryEx(const XnChar* strName, XnUInt32 nSize, XnUInt32 nAccessFlags, XnBool bAllowOtherUsers, XN_SHARED_MEMORY_HANDLE* phSharedMem); 00611 00619 XN_C_API XnStatus XN_C_DECL xnOSOpenSharedMemory(const XnChar* strName, XnUInt32 nAccessFlags, XN_SHARED_MEMORY_HANDLE* phSharedMem); 00620 00621 XN_C_API XnStatus XN_C_DECL xnOSOpenSharedMemoryEx(const XnChar* strName, XnUInt32 nAccessFlags, XnBool bAllowOtherUsers, XN_SHARED_MEMORY_HANDLE* phSharedMem); 00622 00628 XN_C_API XnStatus XN_C_DECL xnOSCloseSharedMemory(XN_SHARED_MEMORY_HANDLE hSharedMem); 00629 00636 XN_C_API XnStatus XN_C_DECL xnOSSharedMemoryGetAddress(XN_SHARED_MEMORY_HANDLE hSharedMem, void** ppAddress); 00637 00638 // Keyboard 00639 XN_C_API XnBool XN_C_DECL xnOSWasKeyboardHit(); 00640 XN_C_API XnChar XN_C_DECL xnOSReadCharFromInput(); 00641 00642 // Debug Utilities 00643 XN_C_API XnStatus XN_C_DECL xnOSGetCurrentCallStack(XnUInt32 nFramesToSkip, XnChar** astrFrames, XnUInt32 nMaxNameLength, XnUInt32* pnFrames); 00644 00645 XN_STATUS_MESSAGE_MAP_START(XN_ERROR_GROUP_OS) 00646 XN_STATUS_MESSAGE(XN_STATUS_ALLOC_FAILED, "Memory allocation failed!") 00647 XN_STATUS_MESSAGE(XN_STATUS_OS_ALREADY_INIT, "Xiron OS already initialized!") 00648 XN_STATUS_MESSAGE(XN_STATUS_OS_NOT_INIT, "Xiron OS was not initialized!") 00649 XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_NOT_FOUND, "File not found!") 00650 XN_STATUS_MESSAGE(XN_STATUS_OS_INI_FILE_NOT_FOUND, "INI file not found!") 00651 XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_ALREDY_EXISTS, "File already exists!") 00652 XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_OPEN_FAILED, "Failed to open the file!") 00653 XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_CLOSE_FAILED, "Failed to close the file!") 00654 XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_READ_FAILED, "Failed to read from the file!") 00655 XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_WRITE_FAILED, "Failed to write to the file!") 00656 XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_SEEK_FAILED, "File seek failed!") 00657 XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_TELL_FAILED, "File Tell failed!") 00658 XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_FLUSH_FAILED, "File Flush failed!") 00659 XN_STATUS_MESSAGE(XN_STATUS_OS_FILE_GET_SIZE_FAILED, "Get File Size failed!") 00660 XN_STATUS_MESSAGE(XN_STATUS_OS_INI_READ_FAILED, "Failed to read from INI file!") 00661 XN_STATUS_MESSAGE(XN_STATUS_OS_INI_WRITE_FAILED, "Failed to write into INI file!") 00662 XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_SEEK_TYPE, "Invalid seek type!") 00663 XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_CREATION_FAILED, "Xiron OS failed to create a thread!") 00664 XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_TERMINATION_FAILED, "Xiron OS failed to terminate a thread!") 00665 XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_CLOSE_FAILED, "Xiron OS failed to close a thread!") 00666 XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_TIMEOUT, "Xiron OS got a thread timeout while waiting for a thread to exit!") 00667 XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_WAIT_FAILED, "Xiron OS failed to wait for a thread to exit!") 00668 XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_SET_PRIORITY_FAILED, "Xiron OS failed to set priority of a thread!") 00669 XN_STATUS_MESSAGE(XN_STATUS_OS_THREAD_UNSUPPORTED_PRIORITY, "Thread priority is unsupported by Xiron OS!") 00670 XN_STATUS_MESSAGE(XN_STATUS_OS_MUTEX_CREATION_FAILED, "Xiron OS failed to create a mutex!") 00671 XN_STATUS_MESSAGE(XN_STATUS_OS_MUTEX_CLOSE_FAILED, "Xiron OS failed to close a mutex!") 00672 XN_STATUS_MESSAGE(XN_STATUS_OS_MUTEX_LOCK_FAILED, "Xiron OS failed to lock a mutex!") 00673 XN_STATUS_MESSAGE(XN_STATUS_OS_MUTEX_TIMEOUT, "Xiron OS got a mutex timeout!") 00674 XN_STATUS_MESSAGE(XN_STATUS_OS_MUTEX_UNLOCK_FAILED, "Xiron OS failed to unlock a mutex!") 00675 XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_CREATION_FAILED, "Xiron OS failed to create an event!") 00676 XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_CLOSE_FAILED, "Xiron OS failed to close an event!") 00677 XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_SET_FAILED, "Xiron OS failed to set an event!") 00678 XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_RESET_FAILED, "Xiron OS failed to reset an event!") 00679 XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_TIMEOUT, "Xiron OS got an event timeout!") 00680 XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_WAIT_FAILED, "Xiron OS failed to wait on event!") 00681 XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_CANCELED, "This Xiron OS event was canceled!") 00682 XN_STATUS_MESSAGE(XN_STATUS_OS_CANT_LOAD_LIB, "Xiron OS failed to load shared library!") 00683 XN_STATUS_MESSAGE(XN_STATUS_OS_CANT_FREE_LIB, "Xiron OS failed to free shared library!") 00684 XN_STATUS_MESSAGE(XN_STATUS_OS_PROC_NOT_FOUND, "Xiron OS failed to get procedure address from shared library!") 00685 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_INIT_FAILED, "Xiron OS failed to initialize the network subsystem!") 00686 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SHUTDOWN_FAILED, "Xiron OS failed to shutdown the network subsystem!") 00687 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_CREATION_FAILED, "Xiron OS failed to create a network socket!") 00688 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_INVALID_SOCKET_TYPE, "Invalid Xiron OS socket type!") 00689 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_BUFFER_FAILED, "Failed to change the Xiron OS socket buffer size!") 00690 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SEND_FAILED, "Xiron OS failed to send a network buffer!") 00691 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_RECEIVE_FAILED, "Xiron OS failed to receive a network buffer!") 00692 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_BIND_FAILED, "Xiron OS failed to bind a network socket!") 00693 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_LISTEN_FAILED, "Xiron OS failed to listen on a network socket!") 00694 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_ACCEPT_FAILED, "Xiron OS failed to accept a network socket!") 00695 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_SOCKET_CONNECT_FAILED, "Xiron OS failed to connect to a network socket!") 00696 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_BAD_HOST_NAME, "Failed to resolve the host name!") 00697 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_TIMEOUT, "Got a timeout while waiting for a network command to complete!") 00698 XN_STATUS_MESSAGE(XN_STATUS_OS_TIMER_CREATION_FAILED, "Xiron OS failed to create a timer!") 00699 XN_STATUS_MESSAGE(XN_STATUS_OS_TIMER_QUERY_FAILED, "Xiron OS failed to query a timer!") 00700 XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_TIMER, "This Xiron OS timer is invalid!") 00701 XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_FILE, "This Xiron OS file is invalid!") 00702 XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_SOCKET, "This Xiron OS socket is invalid!") 00703 XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_MUTEX, "This Xiron OS mutex is invalid!") 00704 XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_THREAD, "This Xiron OS thread is invalid!") 00705 XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_EVENT, "This Xiron OS event is invalid!") 00706 XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_LIBRARY, "This Xiron OS shared library is invalid!") 00707 XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_CRITICAL_SECTION, "This Xiron OS critical section is invalid!") 00708 XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_FORMAT_STRING, "Xiron OS got an invalid format string!") 00709 XN_STATUS_MESSAGE(XN_STATUS_OS_UNSUPPORTED_FUNCTION, "This Xiron OS function is not supported!") 00710 XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_CREATE_DIR, "Failed to create a directory!") 00711 XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_DELETE_FILE, "Failed to delete a file!") 00712 XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_CREATE_SHARED_MEMORY, "Failed to create shared memory!") 00713 XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_OPEN_SHARED_MEMORY, "Failed to open shared memory!") 00714 XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_CLOSE_SHARED_MEMORY, "Failed to close shared memory!") 00715 XN_STATUS_MESSAGE(XN_STATUS_USB_ALREADY_INIT, "The Xiron USB subsystem was already initialize!") 00716 XN_STATUS_MESSAGE(XN_STATUS_USB_NOT_INIT, "The Xiron USB subsystem was not initialized!") 00717 XN_STATUS_MESSAGE(XN_STATUS_USB_INIT_FAILED, "The Xiron USB subsystem failed to initialize!") 00718 XN_STATUS_MESSAGE(XN_STATUS_USB_SHUTDOWN_FAILED, "The Xiron USB subsystem failed to shutdown!") 00719 XN_STATUS_MESSAGE(XN_STATUS_USB_ENUMERATE_FAILED, "The Xiron USB subsystem failed to enumerate devices!") 00720 XN_STATUS_MESSAGE(XN_STATUS_USB_LOAD_FAILED, "The Xiron USB subsystem failed to load!") 00721 XN_STATUS_MESSAGE(XN_STATUS_USB_FREE_FAILED, "The Xiron USB subsystem failed to free!") 00722 XN_STATUS_MESSAGE(XN_STATUS_USB_REGISTER_FAILED, "The Xiron USB subsystem failed to register the device!") 00723 XN_STATUS_MESSAGE(XN_STATUS_USB_UNREGISTER_FAILED, "The Xiron USB subsystem failed to unregister the device!") 00724 XN_STATUS_MESSAGE(XN_STATUS_USB_DEVICE_NOT_VALID, "Invalid Xiron USB device handle!") 00725 XN_STATUS_MESSAGE(XN_STATUS_USB_ENDPOINT_NOT_VALID, "Invalid Xiron USB endpoint handle!") 00726 XN_STATUS_MESSAGE(XN_STATUS_USB_DRIVER_NOT_FOUND, "USB driver not found!") 00727 XN_STATUS_MESSAGE(XN_STATUS_USB_DEVICE_NOT_FOUND, "USB device not found!") 00728 XN_STATUS_MESSAGE(XN_STATUS_USB_DEVICE_OPEN_FAILED, "Failed to open the USB device!") 00729 XN_STATUS_MESSAGE(XN_STATUS_USB_DEVICE_CLOSE_FAILED, "Failed to close the USB device!") 00730 XN_STATUS_MESSAGE(XN_STATUS_USB_DEVICE_GETINFO_FAILED, "Failed to get information about the USB device!") 00731 XN_STATUS_MESSAGE(XN_STATUS_USB_CONFIG_QUERY_FAILED, "USB config query failed!") 00732 XN_STATUS_MESSAGE(XN_STATUS_USB_INTERFACE_QUERY_FAILED, "USB interface query failed!") 00733 XN_STATUS_MESSAGE(XN_STATUS_USB_ENDPOINT_QUERY_FAILED, "USB endpoint query failed!") 00734 XN_STATUS_MESSAGE(XN_STATUS_USB_SET_ENDPOINT_POLICY_FAILED, "Failed to set USB endpoint policy!") 00735 XN_STATUS_MESSAGE(XN_STATUS_USB_UNKNOWN_ENDPOINT_TYPE, "Unknown USB endpoint type!") 00736 XN_STATUS_MESSAGE(XN_STATUS_USB_UNKNOWN_ENDPOINT_DIRECTION, "Unknown USB endpoint direction!") 00737 XN_STATUS_MESSAGE(XN_STATUS_USB_GET_SPEED_FAILED, "Failed to get the device speed!") 00738 XN_STATUS_MESSAGE(XN_STATUS_USB_GET_DRIVER_VERSION, "Failed to get the USB driver version!") 00739 XN_STATUS_MESSAGE(XN_STATUS_USB_UNKNOWN_DEVICE_SPEED, "Unknown USB device speed!") 00740 XN_STATUS_MESSAGE(XN_STATUS_USB_CONTROL_SEND_FAILED, "Failed to send a USB control request!") 00741 XN_STATUS_MESSAGE(XN_STATUS_USB_CONTROL_RECV_FAILED, "Failed to receive a USB control request!") 00742 XN_STATUS_MESSAGE(XN_STATUS_USB_ENDPOINT_READ_FAILED, "Failed to read from a USB endpoint!") 00743 XN_STATUS_MESSAGE(XN_STATUS_USB_ENDPOINT_WRITE_FAILED, "Failed to write into a USB endpoint!") 00744 XN_STATUS_MESSAGE(XN_STATUS_USB_TRANSFER_TIMEOUT, "USB transfer timeout!") 00745 XN_STATUS_MESSAGE(XN_STATUS_USB_TRANSFER_STALL, "USB transfer stall!") 00746 XN_STATUS_MESSAGE(XN_STATUS_USB_TRANSFER_MICRO_FRAME_ERROR, "USB transfer micro frame error!") 00747 XN_STATUS_MESSAGE(XN_STATUS_USB_TRANSFER_UNKNOWN_ERROR, "Unknown USB transfer error!") 00748 XN_STATUS_MESSAGE(XN_STATUS_USB_ENDPOINT_NOT_FOUND, "USB endpoint not found on device!") 00749 XN_STATUS_MESSAGE(XN_STATUS_USB_WRONG_ENDPOINT_TYPE, "Wrong USB endpoint type requested!") 00750 XN_STATUS_MESSAGE(XN_STATUS_USB_WRONG_ENDPOINT_DIRECTION, "Wrong USB endpoint direction requested!") 00751 XN_STATUS_MESSAGE(XN_STATUS_USB_WRONG_CONTROL_TYPE, "Wrong USB control type requested!") 00752 XN_STATUS_MESSAGE(XN_STATUS_USB_UNSUPPORTED_ENDPOINT_TYPE, "Unsupported USB endpoint type!") 00753 XN_STATUS_MESSAGE(XN_STATUS_USB_GOT_UNEXPECTED_BYTES, "Got unexpected bytes in USB transfer!") 00754 XN_STATUS_MESSAGE(XN_STATUS_USB_TOO_MUCH_DATA, "Got too much data in USB transfer!") 00755 XN_STATUS_MESSAGE(XN_STATUS_USB_NOT_ENOUGH_DATA, "Didn't get enough data in USB transfer!") 00756 XN_STATUS_MESSAGE(XN_STATUS_USB_BUFFER_TOO_SMALL, "USB Buffer is too small!") 00757 XN_STATUS_MESSAGE(XN_STATUS_USB_OVERLAPIO_FAILED, "USB Overlapped I/O operation failed!") 00758 XN_STATUS_MESSAGE(XN_STATUS_USB_ABORT_FAILED, "Failed to abort USB endpoint!") 00759 XN_STATUS_MESSAGE(XN_STATUS_USB_FLUSH_FAILED, "Failed to flush USB endpoint!") 00760 XN_STATUS_MESSAGE(XN_STATUS_USB_RESET_FAILED, "Failed to reset USB endpoint!") 00761 XN_STATUS_MESSAGE(XN_STATUS_USB_SET_INTERFACE_FAILED, "Failed to set USB interface!") 00762 XN_STATUS_MESSAGE(XN_STATUS_USB_GET_INTERFACE_FAILED, "Failed to get USB interface!") 00763 XN_STATUS_MESSAGE(XN_STATUS_USB_READTHREAD_NOT_INIT, "Read thread is not initialized for this USB end point!") 00764 XN_STATUS_MESSAGE(XN_STATUS_USB_READTHREAD_ALREADY_INIT, "Read thread is already initialized for this USB end point!") 00765 XN_STATUS_MESSAGE(XN_STATUS_USB_READTHREAD_SHUTDOWN_FAILED, "Read thread failed to shutdown properly!") 00766 XN_STATUS_MESSAGE(XN_STATUS_USB_IS_BUSY, "USB is busy!") 00767 XN_STATUS_MESSAGE(XN_STATUS_USB_NOT_BUSY, "USB is not busy!") 00768 XN_STATUS_MESSAGE(XN_STATUS_USB_SET_CONFIG_FAILED, "Failed to set USB config!") 00769 XN_STATUS_MESSAGE(XN_STATUS_USB_GET_CONFIG_FAILED, "Failed to get USB config!") 00770 XN_STATUS_MESSAGE(XN_STATUS_USB_OPEN_ENDPOINT_FAILED, "Failed to open an USB endpoint!") 00771 XN_STATUS_MESSAGE(XN_STATUS_USB_CLOSE_ENDPOINT_FAILED, "Failed to close an USB endpoint!") 00772 XN_STATUS_MESSAGE(XN_STATUS_USB_ALREADY_OPEN, "A device is already opened!") 00773 XN_STATUS_MESSAGE(XN_STATUS_USB_TRANSFER_PENDING, "USB transfer is still pending!") 00774 XN_STATUS_MESSAGE(XN_STATUS_USB_INTERFACE_NOT_SUPPORTED, "USB interface is not supported!") 00775 XN_STATUS_MESSAGE(XN_STATUS_USB_FAILED_TO_REGISTER_CALLBACK, "Failed to register the USB device callback!") 00776 XN_STATUS_MESSAGE(XN_STATUS_OS_NETWORK_CONNECTION_CLOSED, "The network connection has been closed!") 00777 XN_STATUS_MESSAGE(XN_STATUS_OS_EVENT_OPEN_FAILED, "Xiron OS failed to open an event!") 00778 XN_STATUS_MESSAGE(XN_STATUS_OS_PROCESS_CREATION_FAILED, "Xiron OS failed to create a process!") 00779 XN_STATUS_MESSAGE(XN_STATUS_OS_SEMAPHORE_CREATION_FAILED, "Xiron OS Failed to create a semaphore!") 00780 XN_STATUS_MESSAGE(XN_STATUS_OS_SEMAPHORE_CLOSE_FAILED, "Xiron OS failed to close a semaphore!") 00781 XN_STATUS_MESSAGE(XN_STATUS_OS_SEMAPHORE_LOCK_FAILED, "Xiron OS failed to lock a semaphore!") 00782 XN_STATUS_MESSAGE(XN_STATUS_OS_SEMAPHORE_UNLOCK_FAILED, "Xiron OS failed to unlock a semaphore!") 00783 XN_STATUS_MESSAGE(XN_STATUS_OS_SEMAPHORE_TIMEOUT, "Xiron OS got a semaphore timeout!") 00784 XN_STATUS_MESSAGE(XN_STATUS_OS_INVALID_SEMAPHORE, "This Xiron OS semaphore is invalid!") 00785 XN_STATUS_MESSAGE(XN_STATUS_OS_ENV_VAR_NOT_FOUND, "The environment variable could not be found!") 00786 XN_STATUS_MESSAGE(XN_STATUS_USB_NO_REQUEST_PENDING, "There is no request pending!") 00787 XN_STATUS_MESSAGE(XN_STATUS_OS_FAILED_TO_DELETE_DIR, "Failed to delete a directory!") 00788 XN_STATUS_MESSAGE_MAP_END(XN_ERROR_GROUP_OS) 00789 00790 #endif //__XN_OS_H__ 00791
1.7.6.1