boolean mainSpace ) {     this.blockSize = blockSize; int tileNum0 = countTileNum(start0, end0, blockSize); int tileNum1 = countTileNum(start1, end1, blockSize); int tileNum = tileNum0 + tileNum1; int maxTileNum = tileNum + MIDDLE_TILES; tiles = new Tile[maxTileNum]; for(int i = 0; i < maxTileNum; i++) tiles[i] = new Tile();    subspace[0] = new Subspace(start0, start0, 0, blockSize, 0); subspace[1] = new Subspace(start1, start1, tileNum0 + MIDDLE_TILES, blockSize, 0); allTileNum = MIDDLE_TILES;   String tmp = (blockSize < 1024) ? "Block Size: " + blockSize + " bytes\n": "Block Size: " + (blockSize / 1024) + " bytes\n";    space = new ServerSpace( Plan.getNextServerSpaceId(),  name,                        "JMTk Semispace GC", 	 "Block ",                    tmp,                   	 size,			 "UNUSED",                    mainSpace                    ); setTilenames(0);    scalarUsedSpaceStream = new Stream( space, 					 SS_SCALAR_USED_SPACE_STREAM,		 StreamConstants.INT_TYPE,			 "Scalar Used Space stream",		 0, 					 blockSize,					 0, 					 0,						 "Space used by scalars: ", 			 " bytes",					 StreamConstants.PRESENTATION_PERCENT,	 StreamConstants.PAINT_STYLE_ZERO, 		 0,						 Color.Red);				  arrayUsedSpaceStream = new Stream( space, 					 SS_ARRAY_USED_SPACE_STREAM,		 StreamConstants.INT_TYPE,			 "Array Used Space stream",			 0, 					 blockSize,					 0, 					 0,						 "Space used by arrays: ", 			 " bytes",					 StreamConstants.PRESENTATION_PERCENT,	 StreamConstants.PAINT_STYLE_ZERO, 		 0,						 Color.Blue);				  scalarObjectsStream = new Stream( space, SS_SCALAR_OBJECTS_STREAM, StreamConstants.SHORT_TYPE, "Scalar Objects stream", 0, jikesObjectsPerBlock(blockSize), 0, 0, "No. of scalar objects = ", " objects", StreamConstants.PRESENTATION_PLUS, StreamConstants.PAINT_STYLE_ZERO, 0, Color.Green);  arrayObjectsStream = new Stream( space, SS_ARRAY_OBJECTS_STREAM, StreamConstants.SHORT_TYPE, "Array Objects stream", 0, jikesObjectsPerBlock(blockSize), 0, 0, "No. of array objects = ", " objects", StreamConstants.PRESENTATION_PLUS, StreamConstants.PAINT_STYLE_ZERO, 0, Color.Cyan);   zero(); }
boolean mainSpace ) {}
  public SemiSpaceDriver                     (String name,		     int blockSize,		     VM_Address start0, 		     VM_Address end0,   		     VM_Address start1,		     VM_Address end1,		     int size,		     boolean mainSpace ) {        // Set up drivers for each Space (in this case only 1)      // Set up array of tiles for max possible use    this.blockSize = blockSize;    int tileNum0 = countTileNum(start0, end0, blockSize);    int tileNum1 = countTileNum(start1, end1, blockSize);    int tileNum = tileNum0 + tileNum1;      	 // tile num for the two spaces...    int maxTileNum = tileNum + MIDDLE_TILES; 	// ...plus the middle tiles    tiles = new Tile[maxTileNum];    for(int i = 0; i < maxTileNum; i++)      tiles[i] = new Tile();    // Set up two semispaces. For now, these are of zero length: the collector     // must call resize() before gathering data    subspace[0] = new Subspace(start0, start0, 0, blockSize, 0);    subspace[1] = new Subspace(start1, start1, tileNum0 + MIDDLE_TILES, blockSize, 0);    allTileNum = MIDDLE_TILES;    // Set the block label    String tmp = (blockSize < 1024) ?                   "Block Size: " + blockSize + " bytes\n":                   "Block Size: " + (blockSize / 1024) + " bytes\n";        // Create a single GCspy Space    space = new ServerSpace(		    Plan.getNextServerSpaceId(), /* space id */		    name,                       /* server name */		    "JMTk Semispace GC", 	/* driver (space) name */		    "Block ",                   /* space title */		    tmp,                   	/* block info */		    size,			/* number of tiles */		    "UNUSED",                   /* the label for unused blocks */		    mainSpace                   /* main space */ );    setTilenames(0);       // Initialise the Space's 4 Streams    scalarUsedSpaceStream            = new Stream(	             space, 					/* the space */		     SS_SCALAR_USED_SPACE_STREAM,		/* space ID */		     StreamConstants.INT_TYPE,			/* stream data type */		     "Scalar Used Space stream",		/* stream name */		     0, 					/* min. data value */		     blockSize,					/* max. data value */		     0, 					/* zero value */		     0,						/* default value */		    "Space used by scalars: ", 			/* value prefix */		    " bytes",					/* value suffix */		     StreamConstants.PRESENTATION_PERCENT,	/* presentation style */		     StreamConstants.PAINT_STYLE_ZERO, 		/* paint style */		     0,						/* max stream index */		     Color.Red);				/* tile colour */    arrayUsedSpaceStream            = new Stream(	             space, 					/* the space */		     SS_ARRAY_USED_SPACE_STREAM,		/* space ID */		     StreamConstants.INT_TYPE,			/* stream data type */		     "Array Used Space stream",			/* stream name */		     0, 					/* min. data value */		     blockSize,					/* max. data value */		     0, 					/* zero value */		     0,						/* default value */		    "Space used by arrays: ", 			/* value prefix */		    " bytes",					/* value suffix */		     StreamConstants.PRESENTATION_PERCENT,	/* presentation style */		     StreamConstants.PAINT_STYLE_ZERO, 		/* paint style */		     0,						/* max stream index */		     Color.Blue);				/* tile colour */    scalarObjectsStream = new Stream(	             space, 		     SS_SCALAR_OBJECTS_STREAM,		     StreamConstants.SHORT_TYPE,		     "Scalar Objects stream",		     0, 		     jikesObjectsPerBlock(blockSize),		     0, 		     0,		     "No. of scalar objects = ", 		     " objects",		     StreamConstants.PRESENTATION_PLUS,		     StreamConstants.PAINT_STYLE_ZERO, 		     0,		     Color.Green);   arrayObjectsStream = new Stream(	             space, 		     SS_ARRAY_OBJECTS_STREAM,		     StreamConstants.SHORT_TYPE,		     "Array Objects stream",		     0, 		     jikesObjectsPerBlock(blockSize),		     0, 		     0,		     "No. of array objects = ", 		     " objects",		     StreamConstants.PRESENTATION_PLUS,		     StreamConstants.PAINT_STYLE_ZERO, 		     0,		     Color.Cyan);    // Initialise the statistics    zero();  }