public class BootRecord extends Object
The virtual machine image consists entirely of java objects. The first java-object, the boot record, is the communication area between the host operating system and the virtual machine. It consists of read-only fields containing startup information used by the assembler bootstrap loader, by the virtual machine's initializer methods, and by the virtual machine's operating system call interface methods.
See also: BootImageWriter.main(), jvm.c
The boot record looks like this (note that fields are layed out "backwards"):
lo-mem +---------------+ | fieldN-1 | +---------------+ | ... | +---------------+ | field1 | +---------------+ | field0 | +---------------+ \ | tib pointer | | +---------------+ | object header | lock word | | +---------------+ / hi-memThe "spRegister" field of the boot record points to the word immediately preceeding the top of a stack object (ie. it's ready to accept a "push" instruction). The stack object is an array of words that looks like this:
lo-mem +---------------+ \ | tib pointer | | +---------------+ | array | lock word | | object +---------------+ | header | .length | | +---------------+ / | <empty> | +---------------+ | ... | +---------------+ | <empty> | +---------------+ spRegister -> hi-mem
The "ipRegister" field of the boot record points to the first word of an array of machine instructions comprising the virtual machine's startoff code -- see "VM.boot()".
The "tocRegister" field of the boot record points to an array of words containing the static fields and method addresses of the virtual machine image -- see "Statics.slots[]".
The remaining fields of the boot record serve as a function linkage area between services residing in the host operating system and services residing in the virtual machine.
Constructor and Description |
---|
BootRecord() |
Modifier and Type | Method and Description |
---|---|
void |
setHeapRange(int id,
Address start,
Address end) |
void |
showHeapRanges() |
public static BootRecord the_boot_record
public Address bootImageDataStart
public Address bootImageDataEnd
public Address bootImageCodeStart
public Address bootImageCodeEnd
public Address bootImageRMapStart
public Address bootImageRMapEnd
public Extent initialHeapSize
public Extent maximumHeapSize
public Extent bytesInPage
public AddressArray heapRanges
public int verboseBoot
public int verboseSignalHandling
public Address spRegister
public Address ipRegister
public Address tocRegister
int bootCompleted
public Address sysJavaVM
public FunctionTable JNIFunctions
int hardwareTrapMethodId
Offset deliverHardwareExceptionOffset
public Offset dumpStackAndDieOffset
public Offset bootThreadOffset
Offset debugRequestedOffset
int externalSignalFlag
public Address sysConsoleWriteCharIP
public Address sysConsoleWriteIntegerIP
public Address sysConsoleWriteLongIP
public Address sysConsoleWriteDoubleIP
public Address sysGetenvIP
public Address sysMemmoveIP
public Address sysMallocIP
public Address sysCallocIP
public Address sysZeroNTIP
public Address sysZeroPagesIP
public Address sysSyncCacheIP
public Address sysReadByteIP
public Address sysWriteByteIP
public Address sysReadBytesIP
public Address sysWriteBytesIP
public Address sysMMapErrnoIP
public Address sysMProtectIP
public Address sysNumProcessorsIP
public Address sysThreadBindSupportedIP
public Address sysThreadBindIP
public Address sysThreadCreateIP
public Address sysThreadYieldIP
public Address sysGetThreadIdIP
public Address sysStashVMThreadIP
public Address sysThreadTerminateIP
public Address sysGetThreadPriorityHandleIP
public Address sysGetThreadPriorityIP
public Address sysSetThreadPriorityIP
public Address sysMonitorCreateIP
public Address sysMonitorDestroyIP
public Address sysMonitorEnterIP
public Address sysMonitorExitIP
public Address sysMonitorTimedWaitAbsoluteIP
public Address sysMonitorWaitIP
public Address sysMonitorBroadcastIP
public Address sysLongDivideIP
public Address sysLongRemainderIP
public Address sysLongToFloatIP
public Address sysLongToDoubleIP
public Address sysFloatToIntIP
public Address sysDoubleToIntIP
public Address sysFloatToLongIP
public Address sysDoubleToLongIP
public Address sysDoubleRemainderIP
public Address sysPrimitiveParseFloatIP
public Address sysPrimitiveParseIntIP
public Address sysParseMemorySizeIP
Address sysCurrentTimeMillisIP
Address sysNanoTimeIP
Address sysNanoSleepIP
Address sysDlopenIP
Address sysDlsymIP
public Address sysVaCopyIP
public Address sysVaEndIP
public Address sysVaArgJbooleanIP
public Address sysVaArgJbyteIP
public Address sysVaArgJcharIP
public Address sysVaArgJshortIP
public Address sysVaArgJintIP
public Address sysVaArgJlongIP
public Address sysVaArgJfloatIP
public Address sysVaArgJdoubleIP
public Address sysVaArgJobjectIP
public Address sysVMMathSinIP
public Address sysVMMathCosIP
public Address sysVMMathTanIP
public Address sysVMMathAsinIP
public Address sysVMMathAcosIP
public Address sysVMMathAtanIP
public Address sysVMMathAtan2IP
public Address sysVMMathCoshIP
public Address sysVMMathSinhIP
public Address sysVMMathTanhIP
public Address sysVMMathExpIP
public Address sysVMMathLogIP
public Address sysVMMathSqrtIP
public Address sysVMMathPowIP
public Address sysVMMathIEEEremainderIP
public Address sysVMMathCeilIP
public Address sysVMMathFloorIP
public Address sysVMMathRintIP
public Address sysVMMathCbrtIP
public Address sysVMMathExpm1IP
public Address sysVMMathHypotIP
public Address sysVMMathLog10IP
public Address sysVMMathLog1pIP
public Address sysEnableAlignmentCheckingIP
public Address sysDisableAlignmentCheckingIP
public Address sysReportAlignmentCheckingIP
public Address gcspyDriverAddStreamIP
public Address gcspyDriverEndOutputIP
public Address gcspyDriverInitIP
public Address gcspyDriverInitOutputIP
public Address gcspyDriverResizeIP
public Address gcspyDriverSetTileNameRangeIP
public Address gcspyDriverSetTileNameIP
public Address gcspyDriverSpaceInfoIP
public Address gcspyDriverStartCommIP
public Address gcspyDriverStreamIP
public Address gcspyDriverStreamByteValueIP
public Address gcspyDriverStreamShortValueIP
public Address gcspyDriverStreamIntValueIP
public Address gcspyDriverSummaryIP
public Address gcspyDriverSummaryValueIP
public Address gcspyIntWriteControlIP
public Address gcspyMainServerAddDriverIP
public Address gcspyMainServerAddEventIP
public Address gcspyMainServerInitIP
public Address gcspyMainServerIsConnectedIP
public Address gcspyMainServerOuterLoopIP
public Address gcspyMainServerSafepointIP
public Address gcspyMainServerSetGeneralInfoIP
public Address gcspyMainServerStartCompensationTimerIP
public Address gcspyMainServerStopCompensationTimerIP
public Address gcspyStartserverIP
public Address gcspyStreamInitIP
public Address gcspyFormatSizeIP
public Address gcspySprintfIP
public Address sysPerfEventInitIP
public Address sysPerfEventCreateIP
public Address sysPerfEventEnableIP
public Address sysPerfEventDisableIP
public Address sysPerfEventReadIP
public BootRecord()
public void showHeapRanges()
public void setHeapRange(int id, Address start, Address end)