"

2013 FRC Java API

"

com.sun.squawk.vm
Class FieldOffsets

java.lang.Object
  extended by com.sun.squawk.vm.FieldOffsets

public class FieldOffsets
extends Object

This class contains the offsets and types for fields that must be directly accessed by the VM or other Squawk tools such as the mapper. The romizer ensures that these offsets and types are correct when it creates the image for the bootstrap suite. The value of the offset depends on whether the field is static or not - see Member.getOffset() for more detail.

A simple version of the field's type is also encoded into the high 32 bits of each entry all of which are longs. The types are restricted to byte, char, short, int, long, float, double, and Object and are encoded using the corresponding CID value placed in the high 32 bits of the long.

This unfortunate encoding is needed if we want to keep the type and offset in one place because these values are needed in parts of the VM that need to be executed before normal object construction can take place. Two routines are provided to decode the offset and type of a field, and the offset can also be obtained by casting the field into an int.

The name of the constant must be composed of the name of the class that defines the field (with '.'s replaced by '_'s) and the name of the field with a '$' separating them.


Field Summary
static long com_sun_squawk_Isolate$savedStackChunks
          The offset of the 'savedStackChunks' field in com.sun.squawk.Isolate.
static long com_sun_squawk_Klass$componentType
          The offset of the 'componentType' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$dataMap
          The offset of the 'dataMap' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$dataMapLength
          The offset of the 'dataMapLength' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$dataMapWord
          The offset of the 'dataMapWord' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$id
          The offset of the 'id' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$indexForClinit
          The offset of the 'indexForClinit' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$indexForInit
          The offset of the 'indexForInit' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$indexForMain
          The offset of the 'indexForMain' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$initModifiers
          The offset of the 'initModifiers' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$instanceSizeBytes
          The offset of the 'instanceSizeBytes' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$interfaces
          The offset of the 'superType' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$modifiers
          The offset of the 'modifiers' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$mustClinit
          The offset of the 'mustClinit' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$name
          The offset of the 'name' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$objects
          The offset of the 'objects' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$oopMap
          The offset of the 'oopMap' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$oopMapWord
          The offset of the 'oopMapWord' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$refStaticFieldsSize
          The offset of the 'refStaticFieldsSize' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$self
          The offset of the 'self' field in in com.sun.squawk.Klass and the 'klass' field com.sun.squawk.ObjectAssociation which must be identical.
static long com_sun_squawk_Klass$state
          The offset of the 'state' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$staticFieldsSize
          The offset of the 'staticFieldsSize' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$staticMethods
          The offset of the 'staticMethods' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$superType
          The offset of the 'superType' field in com.sun.squawk.Klass.
static long com_sun_squawk_Klass$virtualMethods
          The offset of the 'virtualMethods' field in com.sun.squawk.Klass and com.sun.squawk.ObjectAssociation.
static long com_sun_squawk_KlassMetadata$classTable
          The offset of the 'classTable' field in com.sun.squawk.KlassMetadata.
static long com_sun_squawk_KlassMetadata$definedClass
          The offset of the 'definedClass' field in com.sun.squawk.KlassMetadata.
static long com_sun_squawk_KlassMetadata$symbols
          The offset of the 'definedClass' field in com.sun.squawk.KlassMetadata.
static long com_sun_squawk_ObjectAssociation$klass
           
static long com_sun_squawk_ObjectAssociation$virtualMethods
           
static long com_sun_squawk_Suite$classes
          The offset of the 'classes' field in com.sun.squawk.Suite.
static long com_sun_squawk_Suite$metadatas
          The offset of the 'metadatas' field in com.sun.squawk.Suite.
static long com_sun_squawk_Suite$name
          The offset of the 'name' field in com.sun.squawk.Suite.
static long com_sun_squawk_util_SquawkHashtable$entryTable
          The offset of the 'entryTable' field in com.sun.squawk.util.SquawkHashtable.
static long com_sun_squawk_VMThread$isolate
          The offset of the 'isolate' field in com.sun.squawk.VMThread.
static long com_sun_squawk_VMThread$stack
          The offset of the 'stack' field in com.sun.squawk.VMThread.
static long com_sun_squawk_VMThread$stackSize
          The offset of the 'stackSize' field in com.sun.squawk.VMThread.
static long java_lang_Class$klass
          The offset of the 'vmThread' field in java.lang.Thread.
static long java_lang_Thread$target
          The offset of the 'target' field in java.lang.Thread.
static long java_lang_Thread$vmThread
          The offset of the 'vmThread' field in java.lang.Thread.
static long java_lang_Throwable$trace
          The offset of the 'trace' field in java.lang.Throwable.
 
Method Summary
static int decodeOffset(long fieldDesc)
          Decodes a field's offset from a given field descriptor.
static int decodeSystemID(long fieldDesc)
          Decodes a field's type from a given field descriptor.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

com_sun_squawk_Klass$self

public static final long com_sun_squawk_Klass$self
The offset of the 'self' field in in com.sun.squawk.Klass and the 'klass' field com.sun.squawk.ObjectAssociation which must be identical.

See Also:
Constant Field Values

com_sun_squawk_ObjectAssociation$klass

public static final long com_sun_squawk_ObjectAssociation$klass
See Also:
Constant Field Values

com_sun_squawk_Klass$virtualMethods

public static final long com_sun_squawk_Klass$virtualMethods
The offset of the 'virtualMethods' field in com.sun.squawk.Klass and com.sun.squawk.ObjectAssociation. which must be identical.

See Also:
Constant Field Values

com_sun_squawk_ObjectAssociation$virtualMethods

public static final long com_sun_squawk_ObjectAssociation$virtualMethods
See Also:
Constant Field Values

com_sun_squawk_Klass$staticMethods

public static final long com_sun_squawk_Klass$staticMethods
The offset of the 'staticMethods' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$name

public static final long com_sun_squawk_Klass$name
The offset of the 'name' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$componentType

public static final long com_sun_squawk_Klass$componentType
The offset of the 'componentType' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$superType

public static final long com_sun_squawk_Klass$superType
The offset of the 'superType' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$interfaces

public static final long com_sun_squawk_Klass$interfaces
The offset of the 'superType' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$objects

public static final long com_sun_squawk_Klass$objects
The offset of the 'objects' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$oopMap

public static final long com_sun_squawk_Klass$oopMap
The offset of the 'oopMap' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$oopMapWord

public static final long com_sun_squawk_Klass$oopMapWord
The offset of the 'oopMapWord' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$dataMap

public static final long com_sun_squawk_Klass$dataMap
The offset of the 'dataMap' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$dataMapWord

public static final long com_sun_squawk_Klass$dataMapWord
The offset of the 'dataMapWord' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$modifiers

public static final long com_sun_squawk_Klass$modifiers
The offset of the 'modifiers' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$dataMapLength

public static final long com_sun_squawk_Klass$dataMapLength
The offset of the 'dataMapLength' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$id

public static final long com_sun_squawk_Klass$id
The offset of the 'id' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$instanceSizeBytes

public static final long com_sun_squawk_Klass$instanceSizeBytes
The offset of the 'instanceSizeBytes' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$staticFieldsSize

public static final long com_sun_squawk_Klass$staticFieldsSize
The offset of the 'staticFieldsSize' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$refStaticFieldsSize

public static final long com_sun_squawk_Klass$refStaticFieldsSize
The offset of the 'refStaticFieldsSize' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$indexForInit

public static final long com_sun_squawk_Klass$indexForInit
The offset of the 'indexForInit' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$indexForClinit

public static final long com_sun_squawk_Klass$indexForClinit
The offset of the 'indexForClinit' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$indexForMain

public static final long com_sun_squawk_Klass$indexForMain
The offset of the 'indexForMain' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$state

public static final long com_sun_squawk_Klass$state
The offset of the 'state' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$initModifiers

public static final long com_sun_squawk_Klass$initModifiers
The offset of the 'initModifiers' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_Klass$mustClinit

public static final long com_sun_squawk_Klass$mustClinit
The offset of the 'mustClinit' field in com.sun.squawk.Klass.

See Also:
Constant Field Values

com_sun_squawk_util_SquawkHashtable$entryTable

public static final long com_sun_squawk_util_SquawkHashtable$entryTable
The offset of the 'entryTable' field in com.sun.squawk.util.SquawkHashtable.

See Also:
Constant Field Values

java_lang_Thread$vmThread

public static final long java_lang_Thread$vmThread
The offset of the 'vmThread' field in java.lang.Thread.

See Also:
Constant Field Values

java_lang_Thread$target

public static final long java_lang_Thread$target
The offset of the 'target' field in java.lang.Thread.

See Also:
Constant Field Values

java_lang_Class$klass

public static final long java_lang_Class$klass
The offset of the 'vmThread' field in java.lang.Thread.

See Also:
Constant Field Values

com_sun_squawk_VMThread$isolate

public static final long com_sun_squawk_VMThread$isolate
The offset of the 'isolate' field in com.sun.squawk.VMThread.

See Also:
Constant Field Values

com_sun_squawk_VMThread$stack

public static final long com_sun_squawk_VMThread$stack
The offset of the 'stack' field in com.sun.squawk.VMThread.

See Also:
Constant Field Values

com_sun_squawk_VMThread$stackSize

public static final long com_sun_squawk_VMThread$stackSize
The offset of the 'stackSize' field in com.sun.squawk.VMThread.

See Also:
Constant Field Values

com_sun_squawk_Isolate$savedStackChunks

public static final long com_sun_squawk_Isolate$savedStackChunks
The offset of the 'savedStackChunks' field in com.sun.squawk.Isolate.

See Also:
Constant Field Values

java_lang_Throwable$trace

public static final long java_lang_Throwable$trace
The offset of the 'trace' field in java.lang.Throwable. Used by VM.printVMStackTrace()..

See Also:
Constant Field Values

com_sun_squawk_Suite$classes

public static final long com_sun_squawk_Suite$classes
The offset of the 'classes' field in com.sun.squawk.Suite. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

See Also:
Constant Field Values

com_sun_squawk_Suite$name

public static final long com_sun_squawk_Suite$name
The offset of the 'name' field in com.sun.squawk.Suite. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

See Also:
Constant Field Values

com_sun_squawk_Suite$metadatas

public static final long com_sun_squawk_Suite$metadatas
The offset of the 'metadatas' field in com.sun.squawk.Suite. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

See Also:
Constant Field Values

com_sun_squawk_KlassMetadata$definedClass

public static final long com_sun_squawk_KlassMetadata$definedClass
The offset of the 'definedClass' field in com.sun.squawk.KlassMetadata. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

See Also:
Constant Field Values

com_sun_squawk_KlassMetadata$symbols

public static final long com_sun_squawk_KlassMetadata$symbols
The offset of the 'definedClass' field in com.sun.squawk.KlassMetadata. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

See Also:
Constant Field Values

com_sun_squawk_KlassMetadata$classTable

public static final long com_sun_squawk_KlassMetadata$classTable
The offset of the 'classTable' field in com.sun.squawk.KlassMetadata. Used by com.sun.squawk.ObjectGraphLoader of the Romizer.

See Also:
Constant Field Values
Method Detail

decodeSystemID

public static int decodeSystemID(long fieldDesc)
Decodes a field's type from a given field descriptor.

Parameters:
fieldDesc - an encoded field descriptor
Returns:
the system ID of the type encoded in fieldDesc

decodeOffset

public static int decodeOffset(long fieldDesc)
Decodes a field's offset from a given field descriptor.

Parameters:
fieldDesc - an encoded field descriptor
Returns:
the offset encoded in fieldDesc. This is equivalent to (int)field

"

2013 FRC Java API

"

"
For updated information see the Java FRC site
"