Blob Blame History Raw
diff -ru bdwgc.orig/include/private/gcconfig.h bdwgc/include/private/gcconfig.h
--- bdwgc.orig/include/private/gcconfig.h
+++ bdwgc/include/private/gcconfig.h
@@ -102,6 +102,27 @@ EXTERN_C_BEGIN
 #  define LINUX
 #endif
 
+# if defined(__midipix__)
+#  define MIDIPIX
+#  include <fcntl.h>
+#  include <sys/select.h>
+
+#  include <psxtypes/psxtypes.h>
+#  include <pemagine/pemagine.h>
+#  include <ntapi/nt_thread.h>
+
+int __gc_data_start_mark__[1];
+int __gc_data_end_mark__[1];
+#endif
+
+#  ifdef MIDIPIX
+#    define OS_TYPE "MIDIPIX"
+#    define DATASTART   ((ptr_t)__gc_data_start_mark__)
+#    define DATAEND     ((ptr_t)__gc_data_end_mark__)
+#    define STACKBOTTOM (ptr_t)(((nt_tib *)pe_get_teb_address())->stack_base)
+#    define USE_MMAP_ANON
+#  endif
+
 /* And one for NetBSD: */
 #if defined(__NetBSD__)
 #  define NETBSD
@@ -505,7 +526,7 @@ EXTERN_C_BEGIN
 #  define mach_type_known
 #elif (defined(__i386__) || defined(i386) || defined(__X86__)) \
     && (defined(ANY_BSD) || defined(DARWIN) || defined(EMBOX)  \
-        || defined(LINUX) || defined(QNX) || defined(SERENITY))
+        || defined(LINUX) || defined(QNX) || defined(SERENITY) || defined(MIDIPIX))
 #  define I386
 #  define mach_type_known
 #elif (defined(__ia64) || defined(__ia64__)) && defined(LINUX)
@@ -558,7 +579,7 @@ EXTERN_C_BEGIN
 #elif (defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) \
        || defined(__X86_64__))                                        \
     && (defined(ANY_BSD) || defined(COSMO) || defined(DARWIN)         \
-        || defined(LINUX) || defined(QNX) || defined(SERENITY))
+        || defined(LINUX) || defined(QNX) || defined(SERENITY) || defined(MIDIPIX))
 #  define X86_64
 #  define mach_type_known
 #endif
@@ -1540,6 +1561,13 @@ extern char *_STACKTOP;
 #    define DATAEND ((ptr_t)(&_end))
 #    define GETPAGESIZE() 4096
 #  endif
+#  ifdef MIDIPIX
+#    define OS_TYPE "MIDIPIX"
+#    define DATASTART   ((ptr_t)__gc_data_start_mark__)
+#    define DATAEND     ((ptr_t)__gc_data_end_mark__)
+#    define STACKBOTTOM (ptr_t)(((nt_tib *)pe_get_teb_address())->stack_base)
+#    define USE_MMAP_ANON
+#  endif
 #  ifdef DARWIN
 #    define DARWIN_DONT_PARSE_STACK 1
 #    define STACKBOTTOM ((ptr_t)0xc0000000)
@@ -2604,7 +2632,7 @@ EXTERN_C_BEGIN
 #if defined(AIX) || defined(ANY_BSD) || defined(BSD) || defined(COSMO)     \
     || defined(DARWIN) || defined(DGUX) || defined(HAIKU) || defined(HPUX) \
     || defined(HURD) || defined(IRIX5) || defined(LINUX) || defined(OSF1)  \
-    || defined(QNX) || defined(SERENITY) || defined(SVR4)
+    || defined(QNX) || defined(SERENITY) || defined(SVR4) || defined(MIDIPIX)
 #  define UNIX_LIKE /* Basic Unix-like system calls work.   */
 #endif