101 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			101 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#ifndef HX_OS_H
							 | 
						||
| 
								 | 
							
								#define HX_OS_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// OS FLAGS
							 | 
						||
| 
								 | 
							
								#if defined(_WIN32)
							 | 
						||
| 
								 | 
							
								#	define NEKO_WINDOWS
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__APPLE__) || defined(__MACH__) || defined(macintosh)
							 | 
						||
| 
								 | 
							
								#	define NEKO_MAC
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(linux) || defined(__linux__)
							 | 
						||
| 
								 | 
							
								#	define NEKO_LINUX
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__FreeBSD_kernel__)
							 | 
						||
| 
								 | 
							
								#	define NEKO_GNUKBSD
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
							 | 
						||
| 
								 | 
							
								#	define NEKO_BSD
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// COMPILER/PROCESSOR FLAGS
							 | 
						||
| 
								 | 
							
								#if defined(__GNUC__)
							 | 
						||
| 
								 | 
							
								#	define NEKO_GCC
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(_MSC_VER)
							 | 
						||
| 
								 | 
							
								#	define NEKO_VCC
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__MINGW32__)
							 | 
						||
| 
								 | 
							
								#	define NEKO_MINGW
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__i386__) || defined(_WIN32)
							 | 
						||
| 
								 | 
							
								#	define NEKO_X86
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(__ppc__)
							 | 
						||
| 
								 | 
							
								#	define NEKO_PPC
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(_64BITS) && (defined(__LP64__) || defined(_LP64))
							 | 
						||
| 
								 | 
							
								#define _64BITS
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(_64BITS)
							 | 
						||
| 
								 | 
							
								#	define NEKO_64BITS
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(NEKO_LINUX) || defined(NEKO_MAC) || defined(NEKO_BSD) || defined(NEKO_GNUKBSD)
							 | 
						||
| 
								 | 
							
								#	define NEKO_POSIX
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(NEKO_GCC)
							 | 
						||
| 
								 | 
							
								#	define NEKO_THREADED
							 | 
						||
| 
								 | 
							
								#	define NEKO_DIRECT_THREADED
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <stddef.h>
							 | 
						||
| 
								 | 
							
								#ifndef NEKO_VCC
							 | 
						||
| 
								 | 
							
								#	include <stdint.h>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#undef EXPORT
							 | 
						||
| 
								 | 
							
								#undef IMPORT
							 | 
						||
| 
								 | 
							
								#if defined(NEKO_VCC) || defined(NEKO_MINGW)
							 | 
						||
| 
								 | 
							
								#	define INLINE __inline
							 | 
						||
| 
								 | 
							
								#	define EXPORT __declspec( dllexport )
							 | 
						||
| 
								 | 
							
								#	define IMPORT __declspec( dllimport )
							 | 
						||
| 
								 | 
							
								#elif defined (HX_LINUX)
							 | 
						||
| 
								 | 
							
								#	define INLINE inline
							 | 
						||
| 
								 | 
							
								#	define EXPORT __attribute__ ((visibility("default")))
							 | 
						||
| 
								 | 
							
								#	define IMPORT
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#	define INLINE inline
							 | 
						||
| 
								 | 
							
								#	define EXPORT __attribute__ ((visibility("default")))
							 | 
						||
| 
								 | 
							
								#	define IMPORT
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef NEKO_POSIX
							 | 
						||
| 
								 | 
							
								#	include <errno.h>
							 | 
						||
| 
								 | 
							
								#	define POSIX_LABEL(name)	name:
							 | 
						||
| 
								 | 
							
								#	define HANDLE_EINTR(label)	if( errno == EINTR ) goto label
							 | 
						||
| 
								 | 
							
								#	define HANDLE_FINTR(f,label) if( ferror(f) && errno == EINTR ) goto label
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#	define POSIX_LABEL(name)
							 | 
						||
| 
								 | 
							
								#	define HANDLE_EINTR(label)
							 | 
						||
| 
								 | 
							
								#	define HANDLE_FINTR(f,label)
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |