[project @ 2004-08-13 13:04:50 by simonmar]
[ghc-hetmet.git] / ghc / rts / FrontPanel.c
index fd5bbe1..85faeeb 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: FrontPanel.c,v 1.1 2000/11/01 11:41:47 simonmar Exp $
+ * $Id: FrontPanel.c,v 1.9 2004/08/13 13:09:49 simonmar Exp $
  *
  * (c) The GHC Team 2000
  *
@@ -9,13 +9,14 @@
 
 #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 "StoragePriv.h"
+#include "Storage.h"
 #include "Stats.h"
 #include "RtsFlags.h"
 #include "Schedule.h"
@@ -128,7 +129,7 @@ initFrontPanel( void )
 
     gtk_init( &prog_argc, &prog_argv );
 
-    window = create_GHC_Visualisation_Tool();
+    window = create_GHC_Front_Panel();
     map_drawing_area  = lookup_widget(window, "memmap");
     gen_drawing_area  = lookup_widget(window, "generations");
     res_drawing_area  = lookup_widget(window, "res_drawingarea");
@@ -395,6 +396,7 @@ 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);
@@ -402,22 +404,12 @@ updateFrontPanel( void )
                if (bd->free == (void *)-1) {
                    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
        }
 
        
@@ -614,7 +606,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;
            } else {
                bd = generations[g].steps[s].blocks;
            }
@@ -628,13 +620,10 @@ residencyCensus( void )
                    type = Other;
                    
                    switch (info->type) {
-                   case BCO:
-                       size = bco_sizeW((StgBCO *)p);
-                       type = Other;
-                       break;
-                       
+
                    case CONSTR:
-                       if (((StgClosure *)p)->header.info == &DEAD_WEAK_info) {
+                   case BCO:
+                       if (((StgClosure *)p)->header.info == &stg_DEAD_WEAK_info) {
                            size = sizeofW(StgWeak);
                            type = Other;
                            break;
@@ -685,7 +674,7 @@ residencyCensus( void )
                        type = BlackHole;
                        break;
 
-                   case AP_UPD:
+                   case AP:
                        size = pap_sizeW((StgPAP *)p);
                        type = Thunk;
                        break;
@@ -716,6 +705,7 @@ residencyCensus( void )
                    case STABLE_NAME:
                    case MVAR:
                    case MUT_VAR:
+                   case MUT_CONS:
                    case IND_PERM:
                    case IND_OLDGEN_PERM:
                        size = sizeW_fromITBL(info);