summaryrefslogtreecommitdiff
path: root/os_dep.c
diff options
context:
space:
mode:
authorivmai <ivmai>2010-12-26 18:12:55 +0100
committerIvan Maidanski <ivmai@mail.ru>2011-07-26 19:06:55 +0200
commitce1f87461b04c05f8502b502e387dd1130e7830c (patch)
tree7f18a439cd406c71b312658d3432627746bb507f /os_dep.c
parent1c76fc46d5d0894a34a8c31dced57087cca90611 (diff)
2010-12-26 Ivan Maidanski <ivmai@mail.ru> (mostly really Miguel de Icaza)
* misc.c (GC_allocate_ml): Define global variable if SN_TARGET_PS3. * misc.c (GC_init): Initialize GC_allocate_ml if SN_TARGET_PS3. * os_dep.c (SIGSEGV): Define to dummy zero if SN_TARGET_PS3. * os_dep.c (GC_unix_mmap_get_mem): Don't define if SN_TARGET_PS3. * os_dep.c (GC_default_push_other_roots, GC_push_thread_structures): Define for SN_TARGET_PS3. * include/private/gc_locks.h (GC_allocate_ml, LOCK, UNLOCK): Define for SN_TARGET_PS3. * include/private/gcconfig.h (SN_TARGET_PS3): Recognize new macro (Sony PS/3 target). * include/private/gcconfig.h (THREADS): Define unconditionally if SN_TARGET_PS3. * include/private/gcconfig.h (GET_MEM): Define for SN_TARGET_PS3.
Diffstat (limited to 'os_dep.c')
-rw-r--r--os_dep.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/os_dep.c b/os_dep.c
index 9205b9b..3a66831 100644
--- a/os_dep.c
+++ b/os_dep.c
@@ -55,7 +55,7 @@
#endif
#include <stdio.h>
-#if defined(MSWINCE)
+#if defined(MSWINCE) || defined(SN_TARGET_PS3)
# define SIGSEGV 0 /* value is irrelevant */
#else
# include <signal.h>
@@ -1993,9 +1993,9 @@ void GC_register_data_segments(void)
* Auxiliary routines for obtaining memory from OS.
*/
-# if !defined(OS2) && !defined(PCR) && !defined(AMIGA) \
- && !defined(MSWIN32) && !defined(MSWINCE) \
- && !defined(MACOS) && !defined(DOS4GW) && !defined(NONSTOP)
+# if !defined(OS2) && !defined(PCR) && !defined(AMIGA) && !defined(MSWIN32) \
+ && !defined(MSWINCE) && !defined(MACOS) && !defined(DOS4GW) \
+ && !defined(NONSTOP) && !defined(SN_TARGET_PS3)
# define SBRK_ARG_T ptrdiff_t
@@ -2563,6 +2563,18 @@ STATIC void GC_default_push_other_roots(void)
# endif /* GC_WIN32_THREADS || GC_PTHREADS */
+# ifdef SN_TARGET_PS3
+ STATIC void GC_default_push_other_roots(void)
+ {
+ ABORT("GC_default_push_other_roots is not implemented\n");
+ }
+
+ void GC_push_thread_structures(void)
+ {
+ ABORT("GC_push_thread_structures is not implemented\n");
+ }
+# endif /* SN_TARGET_PS3 */
+
GC_INNER void (*GC_push_other_roots)(void) = GC_default_push_other_roots;
#endif /* THREADS */