Browse Source

Merge pull request #19 from lye/freebsd-platform-code

Add FreeBSD support to the codebase.
Branimir Karadžić 11 years ago
parent
commit
1031d3ed1b

+ 5 - 1
include/bx/allocator.h

@@ -12,7 +12,11 @@
 #include <new>
 
 #if BX_CONFIG_ALLOCATOR_CRT
-#	include <malloc.h>
+#	if BX_PLATFORM_FREEBSD
+#		include <stdlib.h>
+#	else
+#		include <malloc.h>
+#	endif
 #endif // BX_CONFIG_ALLOCATOR_CRT
 
 #if BX_CONFIG_ALLOCATOR_DEBUG

+ 1 - 0
include/bx/macros.h

@@ -162,6 +162,7 @@
 				|BX_PLATFORM_OSX \
 				|BX_PLATFORM_QNX \
 				|BX_PLATFORM_WINDOWS \
+				|BX_PLATFORM_FREEBSD \
 				)
 #endif // BX_CONFIG_CRT_FILE_READER_WRITER
 

+ 4 - 3
include/bx/os.h

@@ -15,10 +15,11 @@
 	|| BX_PLATFORM_LINUX \
 	|| BX_PLATFORM_OSX \
 	|| BX_PLATFORM_IOS \
-	|| BX_PLATFORM_EMSCRIPTEN
+	|| BX_PLATFORM_EMSCRIPTEN \
+	|| BX_PLATFORM_FREEBSD
 
 #	include <sched.h> // sched_yield
-#	if BX_PLATFORM_IOS || BX_PLATFORM_OSX || BX_PLATFORM_NACL
+#	if BX_PLATFORM_IOS || BX_PLATFORM_OSX || BX_PLATFORM_NACL || BX_PLATFORM_FREEBSD
 #		include <pthread.h> // mach_port_t
 #	endif // BX_PLATFORM_IOS || BX_PLATFORM_OSX || BX_PLATFORM_NACL
 
@@ -77,7 +78,7 @@ namespace bx
 		return (pid_t)::syscall(SYS_gettid);
 #elif BX_PLATFORM_IOS || BX_PLATFORM_OSX
 		return (mach_port_t)::pthread_mach_thread_np(pthread_self() );
-#elif BX_PLATFORM_NACL
+#elif BX_PLATFORM_NACL || BX_PLATFORM_FREEBSD
 		// Casting __nc_basic_thread_data*... need better way to do this.
 		return *(uint32_t*)::pthread_self();
 #else

+ 8 - 1
include/bx/platform.h

@@ -19,6 +19,7 @@
 #define BX_PLATFORM_QNX 0
 #define BX_PLATFORM_WINDOWS 0
 #define BX_PLATFORM_XBOX360 0
+#define BX_PLATFORM_FREEBSD 0
 
 #define BX_CPU_ARM  0
 #define BX_CPU_JIT  0
@@ -83,6 +84,9 @@
 #elif defined(__QNX__)
 #	undef BX_PLATFORM_QNX
 #	define BX_PLATFORM_QNX 1
+#elif defined(__FreeBSD__)
+#	undef BX_PLATFORM_FREEBSD
+#	define BX_PLATFORM_FREEBSD 1
 #else
 #	error "BX_PLATFORM_* is not defined!"
 #endif //
@@ -93,7 +97,8 @@
 						|| BX_PLATFORM_LINUX \
 						|| BX_PLATFORM_NACL \
 						|| BX_PLATFORM_OSX \
-						|| BX_PLATFORM_QNX)
+						|| BX_PLATFORM_QNX \
+						|| BX_PLATFORM_FREEBSD )
 
 // http://sourceforge.net/apps/mediawiki/predef/index.php?title=Architectures
 #if defined(__arm__)
@@ -160,6 +165,8 @@
 #	define BX_PLATFORM_NAME "OSX"
 #elif BX_PLATFORM_QNX
 #	define BX_PLATFORM_NAME "QNX"
+#elif BX_PLATFORM_FREEBSD
+#	define BX_PLATFORM_NAME "FreeBSD"
 #elif BX_PLATFORM_WINDOWS
 #	define BX_PLATFORM_NAME "Windows"
 #endif // BX_PLATFORM_

+ 1 - 1
include/bx/readerwriter.h

@@ -15,7 +15,7 @@
 #if BX_COMPILER_MSVC
 #	define fseeko64 _fseeki64
 #	define ftello64 _ftelli64
-#elif BX_PLATFORM_ANDROID|BX_PLATFORM_IOS|BX_PLATFORM_OSX|BX_PLATFORM_QNX
+#elif BX_PLATFORM_ANDROID|BX_PLATFORM_IOS|BX_PLATFORM_OSX|BX_PLATFORM_QNX|BX_PLATFORM_FREEBSD
 #	define fseeko64 fseeko
 #	define ftello64 ftello
 #endif // BX_

+ 3 - 1
include/bx/string.h

@@ -7,7 +7,9 @@
 #define BX_PRINTF_H_HEADER_GUARD
 
 #include "bx.h"
-#include <alloca.h>
+#if !BX_PLATFORM_FREEBSD
+#	include <alloca.h>
+#endif
 #include <ctype.h>  // tolower
 #include <stdarg.h> // va_list
 #include <stdio.h>  // vsnprintf, vsnwprintf

+ 1 - 1
include/bx/timer.h

@@ -12,7 +12,7 @@
 #	include <time.h> // clock, clock_gettime
 #elif BX_PLATFORM_EMSCRIPTEN
 #	include <emscripten.h>
-#elif BX_PLATFORM_NACL || BX_PLATFORM_LINUX || BX_PLATFORM_OSX || BX_PLATFORM_IOS || BX_PLATFORM_QNX
+#elif BX_PLATFORM_NACL || BX_PLATFORM_LINUX || BX_PLATFORM_OSX || BX_PLATFORM_IOS || BX_PLATFORM_QNX || BX_PLATFORM_FREEBSD
 #	include <sys/time.h> // gettimeofday
 #elif BX_PLATFORM_WINDOWS
 #	include <windows.h>