[project @ 2005-12-09 11:35:44 by simonmar]
[ghc-hetmet.git] / ghc / rts / FrontPanel.c
index 5f28103..579b75b 100644 (file)
@@ -1,5 +1,4 @@
 /* -----------------------------------------------------------------------------
- * $Id: FrontPanel.c,v 1.4 2001/01/19 11:08:05 simonmar Exp $
  *
  * (c) The GHC Team 2000
  *
@@ -9,21 +8,21 @@
 
 #ifdef RTS_GTK_FRONTPANEL
 
-#define NON_POSIX_SOURCE
+/* Alas, not Posix. */
+/* #include "PosixSource.h" */
 
 #include "Rts.h"
 #include "RtsUtils.h"
 #include "MBlock.h"
 #include "FrontPanel.h"
 #include "Storage.h"
-#include "StoragePriv.h"
 #include "Stats.h"
 #include "RtsFlags.h"
 #include "Schedule.h"
 
-#include <unistd.h>
-#include <gdk/gdktypes.h>
 #include <gtk/gtk.h>
+#include <unistd.h>
+#include <string.h>
 
 #include "VisSupport.h"
 #include "VisWindow.h"
@@ -102,7 +101,7 @@ configure_event( GtkWidget *widget, GdkEventConfigure *event STG_UNUSED,
                      widget->allocation.width,
                      widget->allocation.height);
 
-  fprintf(stderr, "configure!\n");
+  debugBelch("configure!\n");
   updateFrontPanel();
   return TRUE;
 }
@@ -396,29 +395,20 @@ updateFrontPanel( void )
                            block_width, block_height, blocks_per_line );
            }
            
+#if 0 /* Segfaults because bd appears to be bogus but != NULL. stolz, 2003-06-24 */
            /* color each block */
            for (; a <= LAST_BLOCK(m); (char *)a += BLOCK_SIZE) {
                bd = Bdescr((P_)a);
                ASSERT(bd->start == a);
-               if (bd->free == (void *)-1) {
+                if (bd->flags & BF_FREE) {
                    colorBlock( a, &free_color, 
                                block_width, block_height, blocks_per_line );
-               } else if (bd->gen != NULL) {
-                   colorBlock( a, &gen_colors[bd->gen->no],
+               } else {
+                   colorBlock( a, &gen_colors[bd->gen_no],
                                block_width, block_height, blocks_per_line );
-               } else if (bd->link != NULL) {
-                   if (bd->link->free == (void *)-1) {
-                       colorBlock( a, &free_color, 
-                                   block_width, block_height, blocks_per_line );
-                       
-                   } else if (bd->link->gen != NULL) {
-                       colorBlock( a, &gen_colors[bd->link->gen->no],
-                                   block_width, block_height, blocks_per_line );
-                   } else {
-                       belch("block at %p: can't indentify", bd->start);
-                   }
                }
            }
+#endif
        }
 
        
@@ -615,7 +605,7 @@ residencyCensus( void )
                g == 0 && s == 0) continue;
 
            if (RtsFlags.GcFlags.generations == 1) {
-               bd = generations[g].steps[s].to_space;
+/*             bd = generations[g].steps[s].to_blocks; FIXME to_blocks does not exist */
            } else {
                bd = generations[g].steps[s].blocks;
            }
@@ -678,12 +668,12 @@ residencyCensus( void )
                    case SE_CAF_BLACKHOLE:
                    case SE_BLACKHOLE:
                    case BLACKHOLE:
-                   case BLACKHOLE_BQ:
+/*                 case BLACKHOLE_BQ: FIXME: case does not exist */
                        size = sizeW_fromITBL(info);
                        type = BlackHole;
                        break;
 
-                   case AP_UPD:
+                   case AP:
                        size = pap_sizeW((StgPAP *)p);
                        type = Thunk;
                        break;
@@ -710,10 +700,10 @@ residencyCensus( void )
                        break;
                        
                    case WEAK:
-                   case FOREIGN:
                    case STABLE_NAME:
                    case MVAR:
                    case MUT_VAR:
+/*                 case MUT_CONS: FIXME: case does not exist */
                    case IND_PERM:
                    case IND_OLDGEN_PERM:
                        size = sizeW_fromITBL(info);