/**************************************************************************** * * * OpenNI 1.x Alpha * * Copyright (C) 2011 PrimeSense Ltd. * * * * This file is part of OpenNI. * * * * OpenNI is free software: you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published * * by the Free Software Foundation, either version 3 of the License, or * * (at your option) any later version. * * * * OpenNI is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public License * * along with OpenNI. If not, see . * * * ****************************************************************************/ #ifndef _XN_OSLINUX_X86_H_ #define _XN_OSLINUX_X86_H_ //--------------------------------------------------------------------------- // Includes //--------------------------------------------------------------------------- #include #include #include #include //--------------------------------------------------------------------------- // Files //--------------------------------------------------------------------------- /** A generic handle type. */ typedef void* XN_HANDLE; /** A file handle type. */ typedef FILE* XN_FILE_HANDLE; /** The value of an invalid file handle. */ #define XN_INVALID_FILE_HANDLE NULL /** A string that specifies the current directory. */ #define XN_FILE_LOCAL_DIR "./" /** The file directory separator. */ #define XN_FILE_DIR_SEP "/" /** The file extension separator. */ #define XN_FILE_EXT_SEP "." /** The file "all" wildcard. */ #define XN_FILE_ALL_WILDCARD "*" /** The newline separation string. */ #define XN_NEW_LINE_SEP "\n" //--------------------------------------------------------------------------- // INI Files //--------------------------------------------------------------------------- /** A string that specifies the extension of INI files. */ #define XN_INI_FILE_EXT "ini" /** The maximum allowed INI string length (in bytes). */ // Note: This must always be big enough to contain a 32-bit number! #define XN_INI_MAX_LEN 256 //--------------------------------------------------------------------------- // Shared Libraries //--------------------------------------------------------------------------- /** A shared library handle type. */ typedef void* XN_LIB_HANDLE; /** A string that specifies the prefix of shared library files. */ #define XN_SHARED_LIBRARY_PREFIX "lib" /** A string that specifies the postfix of shared library files. */ #define XN_SHARED_LIBRARY_POSTFIX ".so" //--------------------------------------------------------------------------- // Threads //--------------------------------------------------------------------------- /** A Xiron thread type. */ typedef int XN_THREAD_HANDLE; /** A Xiron thread ID. */ typedef int XN_THREAD_ID; /** A Xiron process ID. */ typedef int XN_PROCESS_ID; /** The thread entry point function prototype. */ typedef void* (*XN_THREAD_PROC_PROTO)(void* arg); /** The thread entry point function definition. */ #define XN_THREAD_PROC void* /** The thread return function. */ #define XN_THREAD_PROC_RETURN(ret) return((void*)ret) /** The thread passable data pointer type. */ typedef void* XN_THREAD_PARAM; //--------------------------------------------------------------------------- // Time Outs //--------------------------------------------------------------------------- /** The mutex lock infinite timeout. */ #define XN_WAIT_INFINITE 0xFFFFFFFF //--------------------------------------------------------------------------- // Mutex //--------------------------------------------------------------------------- /** A Xiron mutex type. */ struct XnMutex; typedef struct XnMutex* XN_MUTEX_HANDLE; //--------------------------------------------------------------------------- // Critical Sections //--------------------------------------------------------------------------- /** A Xiron critical sections type. */ typedef XN_MUTEX_HANDLE XN_CRITICAL_SECTION_HANDLE; //--------------------------------------------------------------------------- // Events //--------------------------------------------------------------------------- /** A Xiron event type. */ struct _XnEvent; typedef struct _XnEvent *XN_EVENT_HANDLE; //--------------------------------------------------------------------------- // Semaphores //--------------------------------------------------------------------------- /** A Xiron event type. */ struct _XnSemaphore; typedef struct _XnSemaphore *XN_SEMAPHORE_HANDLE; //--------------------------------------------------------------------------- // Timer //--------------------------------------------------------------------------- /** The Xiron OS timer structure. */ typedef struct XnOSTimer { XnUInt64 nStartTick; } XnOSTimer; //--------------------------------------------------------------------------- // Network //--------------------------------------------------------------------------- /** The network host name and port separator. */ #define XN_NETWORK_HOST_PORT_SEP ":" //--------------------------------------------------------------------------- // Swaps //--------------------------------------------------------------------------- #define XN_PREPARE_VAR16_IN_BUFFER(var) (var) #define XN_PREPARE_VAR32_IN_BUFFER(var) (var) #define XN_PREPARE_VAR64_IN_BUFFER(var) (var) #define XN_PREPARE_VAR_FLOAT_IN_BUFFER(var) (var) #define XN_IMPLEMENT_OS \ printf("Not Implemented: %s at %s(%u)\n", __FUNCTION__, __FILE__, __LINE__); \ _brk(); #endif //_XN_OSLINUX_X86_H_