2008-05-08 Miguel de Icaza <miguel@novell.com>
[mono.git] / libgc / os_dep.c
index ef80a9d093ec2dfd0965a28965177628804ac8ba..39cb513f68f9e55410940d7d80f7a4388c95a810 100644 (file)
@@ -1396,7 +1396,7 @@ int * etext_addr;
 }
 # endif
 
-# if defined(FREEBSD) && (defined(I386) || defined(powerpc) || defined(__powerpc__)) && !defined(PCR)
+# if defined(FREEBSD) && (defined(I386) || defined(powerpc) || defined(__powerpc__) ||  defined(__x86_64__)) && !defined(PCR)
 /* Its unclear whether this should be identical to the above, or       */
 /* whether it should apply to non-X86 architectures.                   */
 /* For now we don't assume that there is always an empty page after    */
@@ -1617,6 +1617,8 @@ word bytes;
 #   else
       GC_ASSERT(last_addr != 0);
 #   endif
+         if (((word)result % HBLKSIZE) != 0)
+                 ABORT ("GC_unix_get_mem: Memory returned by mmap is not aligned to HBLKSIZE.");
     return((ptr_t)result);
 }
 
@@ -3700,7 +3702,7 @@ void GC_dirty_init() {
         mask,
         GC_ports.exception,
         EXCEPTION_DEFAULT,
-        MACHINE_THREAD_STATE
+        GC_MACH_THREAD_STATE_FLAVOR
     );
     if(r != KERN_SUCCESS) ABORT("task_set_exception_ports failed");