001 /* 002 * This file is part of the Jikes RVM project (http://jikesrvm.org). 003 * 004 * This file is licensed to You under the Eclipse Public License (EPL); 005 * You may not use this file except in compliance with the License. You 006 * may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/eclipse-1.0.php 009 * 010 * See the COPYRIGHT.txt file distributed with this work for information 011 * regarding copyright ownership. 012 */ 013 package org.jikesrvm; 014 015 import org.vmmagic.unboxed.*; 016 017 /** 018 * Constants defining heap layout constants 019 */ 020 public interface HeapLayoutConstants { 021 022 /** The address of the start of the data section of the boot image. */ 023 Address BOOT_IMAGE_DATA_START = 024 Address.fromIntZeroExtend( 0x60000000 ); 025 026 /** The address of the start of the code section of the boot image. */ 027 Address BOOT_IMAGE_CODE_START = 028 Address.fromIntZeroExtend( 0x64000000 ); 029 030 /** The address of the start of the ref map section of the boot image. */ 031 Address BOOT_IMAGE_RMAP_START = 032 Address.fromIntZeroExtend( 0x67000000 ); 033 034 /** The address in virtual memory that is the highest that can be mapped. */ 035 Address MAXIMUM_MAPPABLE = 036 Address.fromIntZeroExtend( 0xb0000000 ); 037 038 /** The maximum boot image data size */ 039 int BOOT_IMAGE_DATA_SIZE = 56<<20; 040 041 /** The maximum boot image code size */ 042 int BOOT_IMAGE_CODE_SIZE = 24<<20; 043 044 /* Typical compression ratio is about 1/20 */ 045 int BAD_MAP_COMPRESSION = 5; // conservative heuristic 046 int MAX_BOOT_IMAGE_RMAP_SIZE = BOOT_IMAGE_DATA_SIZE/BAD_MAP_COMPRESSION; 047 048 /** The address of the end of the data section of the boot image. */ 049 Address BOOT_IMAGE_DATA_END = BOOT_IMAGE_DATA_START.plus(BOOT_IMAGE_DATA_SIZE); 050 /** The address of the end of the code section of the boot image. */ 051 Address BOOT_IMAGE_CODE_END = BOOT_IMAGE_CODE_START.plus(BOOT_IMAGE_CODE_SIZE); 052 /** The address of the end of the ref map section of the boot image. */ 053 Address BOOT_IMAGE_RMAP_END = BOOT_IMAGE_RMAP_START.plus(MAX_BOOT_IMAGE_RMAP_SIZE); 054 /** The address of the end of the boot image. */ 055 Address BOOT_IMAGE_END = BOOT_IMAGE_RMAP_END; 056 }