summaryrefslogtreecommitdiff
path: root/misc.c
diff options
context:
space:
mode:
authorJonathan Chambers <joncham@gmail.com>2018-01-30 10:32:38 +0300
committerIvan Maidanski <ivmai@mail.ru>2018-01-30 10:32:38 +0300
commitd16debf3e6799477cec6387f26bb30fa513aace5 (patch)
tree7bbfb9c066d5a68e62fbc3084e1fd8ee7f464744 /misc.c
parentd5dad58d38b8f23438ae676054aebf6d0f1ae5e8 (diff)
downloadbdwgc-d16debf3e6799477cec6387f26bb30fa513aace5.tar.gz
Initial support of Xbox One (DURANGO) target
(part of commit 9379c66 from Unity-Technologies/bdwgc) Issue #173 (bdwgc). * include/private/gc_priv.h [THREADS && MSWIN_XBOX1] (GC_write_cs): Declare. * include/private/gcconfig.h [(_MSC_VER && _M_IX86 >= 300 || _WIN32) && _XBOX_ONE] (MSWIN_XBOX1): Define (instead of MSWIN32). * include/private/gcconfig.h [X86_64 && MSWIN_XBOX1] (NO_GETENV, DATASTART, DATAEND, STACKBOTTOM, GETPAGESIZE, USE_MMAP, PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, MAP_PRIVATE, MAP_FIXED, MAP_FAILED): Define. * include/private/gcconfig.h [X86_64 && MSWIN_XBOX1] (durango_get_stack_bottom): Declare external function. * include/private/gcconfig.h [USE_MUNMAP && !MUNMAP_THRESHOLD && MSWIN_XBOX1] (MUNMAP_THRESHOLD): Define to 2; update comment. * include/private/gcconfig.h [GC_WIN32_THREADS && !CYGWIN32 && !MSWIN32 && !MSWINCE]: Do not issue #error if MSWIN_XBOX1. * include/private/gcconfig.h [MSWIN_XBOX1] (durango_get_mem): Declare function. * include/private/gcconfig.h [MSWIN_XBOX1] (GET_MEM): Define. * mark_rts.c [DYNAMIC_LOADING] (GC_cond_register_dynamic_libraries): Do not call GC_remove_tmp_roots and GC_register_dynamic_libraries if MSWIN_XBOX1 (set GC_no_dls to true instead). * misc.c [MSWIN_XBOX1 && THREADS] (GC_write_cs): Define variable. * misc.c [!MSWIN32 && !MSWINCE && !OS2 && !MACOS && !GC_ANDROID_LOG && !NN_PLATFORM_CTR && !NINTENDO_SWITCH && !AMIGA && !SN_TARGET_ORBIS && !__CC_ARM]: Do not include unistd.h if MSWIN_XBOX1. * os_dep.c [!OS2 && !PCR && !AMIGA && !MACOS && !MSWINCE && !SN_TARGET_ORBIS && !__CC_ARM && !MSWIN32]: Likewise. * os_dep.c [MMAP_SUPPORTED && MSWIN_XBOX1] (durango_get_mem): Define new internal function. * os_dep.c [!MSWINCE && USE_WINALLOC] (GLOBAL_ALLOC_TEST, GC_mem_top_down, GC_win32_get_mem, GC_win32_free_heap): Do not define if MSWIN_XBOX1. * win32_threads.c [!CYGWIN32 && !MSWINCE] (GC_beginthreadex): Likewise. * os_dep.c [USE_MUNMAP && !NN_PLATFORM_CTR && !MSWIN32 && !MSWINCE]: Do not include unistd.h, sys/mman.h, sys/stat.h, sys/types.h if MSWIN_XBOX1. * win32_threads.c [GC_ASSERTIONS] (GC_write_disabled): Define only if MSWIN32 or MSWINCE. * win32_threads.c [GC_ASSERTIONS] (GC_stop_world): Do not use GC_write_disabled if MSWIN_XBOX1. * win32_threads.c [PARALLEL_MARK && !GC_PTHREADS_PARAMARK && MSWIN_XBOX1] (GC_start_mark_threads_inner): Use CreateThread() instead of _beginthreadex().
Diffstat (limited to 'misc.c')
-rw-r--r--misc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/misc.c b/misc.c
index 73d24d26..02dde3e3 100644
--- a/misc.c
+++ b/misc.c
@@ -712,8 +712,9 @@ GC_API int GC_CALL GC_is_init_called(void)
return GC_is_initialized;
}
-#if (defined(MSWIN32) || defined(MSWINCE)) && defined(THREADS)
- GC_INNER CRITICAL_SECTION GC_write_cs;
+#if (defined(MSWIN32) || defined(MSWINCE) || defined(MSWIN_XBOX1)) \
+ && defined(THREADS)
+ GC_INNER CRITICAL_SECTION GC_write_cs;
#endif
#ifndef DONT_USE_ATEXIT
@@ -1549,7 +1550,8 @@ GC_API void GC_CALL GC_enable_incremental(void)
# define WRITE(level, buf, len) switch_log_write(buf, len)
#else
-# if !defined(AMIGA) && !defined(SN_TARGET_ORBIS) && !defined(__CC_ARM)
+# if !defined(AMIGA) && !defined(MSWIN_XBOX1) && !defined(SN_TARGET_ORBIS) \
+ && !defined(__CC_ARM)
# include <unistd.h>
# endif