[project @ 2002-05-14 08:15:49 by matthewc]
[ghc-hetmet.git] / ghc / rts / MBlock.h
index 8ca6c51..40461a0 100644 (file)
@@ -1,15 +1,16 @@
 /* -----------------------------------------------------------------------------
- * $Id: MBlock.h,v 1.11 2001/12/10 01:28:00 sebc Exp $
+ * $Id: MBlock.h,v 1.14 2002/05/14 08:15:49 matthewc Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
  * MegaBlock Allocator interface.
  *
  * ---------------------------------------------------------------------------*/
-
+#ifndef __MBLOCK_H__
+#define __MBLOCK_H__
 extern lnat mblocks_allocated;
 
-#ifdef ENABLE_WIN32_DLL_SUPPORT
+#if defined(mingw32_TARGET_OS)
 extern int is_heap_alloced(const void* p);
 #endif
 
@@ -30,10 +31,18 @@ extern void * getMBlocks(nat n);
 #define HEAP_BASE 0x50000000
 #elif openbsd_TARGET_OS
 #define HEAP_BASE 0x50000000
+
 #elif linux_TARGET_OS
+#if ia64_TARGET_ARCH
+/* Shared libraries are in region 1, text in region 2, data in region 3.
+ * Stack is at the top of region 4.  We use the bottom.
+ */
+#define HEAP_BASE (4L<<61)
+#else
 /* Any ideas?
  */
 #define HEAP_BASE 0x50000000
+#endif
 
 #elif solaris2_TARGET_OS
 /* guess */
@@ -63,3 +72,5 @@ extern void * getMBlocks(nat n);
 #error Dont know where to get memory from on this architecture
 /* ToDo: memory locations on other architectures */
 #endif
+
+#endif