Interface IStructureTypeField
Item representing the field of a structure type.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThis flag indicates that the field is anonymous (it does not have a meaningful name).static final intThis hint indicates that the field's value may be an offset relative to a memory base. -
Method Summary
Modifier and TypeMethodDescriptionintGet the alignment requirement for this field.intReserved for bit fields.intReserved for bit fields.intReserved for bit fields.intConvenience method returning the end offset (exclusive) of the field.intgetFlags()Retrieve the field flags.getName()Get the field name.getName(boolean includeBitfield) Get the field name.intGet the field offset within the structure.intgetSize()Get the field effective size (not counting padding, ie following gap bytes) in bytes.getType()Get the field type.booleanbooleanDetermine if this field is a bit field.booleanA synthetic field is an artificial field that represents a gap item, ie the unused space between two real structure field.
-
Field Details
-
FLAG_HINT_RVA
static final int FLAG_HINT_RVAThis hint indicates that the field's value may be an offset relative to a memory base.- See Also:
-
FLAG_ANONYMOUS
static final int FLAG_ANONYMOUSThis flag indicates that the field is anonymous (it does not have a meaningful name).- See Also:
-
-
Method Details
-
isSynthetic
boolean isSynthetic()A synthetic field is an artificial field that represents a gap item, ie the unused space between two real structure field.- Returns:
-
isAnonymous
boolean isAnonymous()- Returns:
-
getName
String getName()Get the field name.- Returns:
- the name, never null
-
getName
Get the field name.- Parameters:
includeBitfield-- Returns:
- the name, never null
-
getType
INativeType getType()Get the field type. A synthetic field has not type.- Returns:
- the type, or null for a synthetic field
-
getOffset
int getOffset()Get the field offset within the structure. Note that is this is a union-field, the value returned will always be zero.- Returns:
-
getSize
int getSize()Get the field effective size (not counting padding, ie following gap bytes) in bytes. If the field is a bitfield, the full field size is returned. Eg, "int a:1" could return 4.- Returns:
-
getEndOffset
int getEndOffset()Convenience method returning the end offset (exclusive) of the field. The value returned isgetOffset()+getSize(). If padding follows the field, the returned offset points to the first padding byte.- Returns:
-
isBitfield
boolean isBitfield()Determine if this field is a bit field.- Returns:
-
getBitstart
int getBitstart()Reserved for bit fields.- Returns:
-
getBitsize
int getBitsize()Reserved for bit fields.- Returns:
-
getBitend
int getBitend()Reserved for bit fields.- Returns:
-
getAlignment
int getAlignment()Get the alignment requirement for this field.- Returns:
- 0 if none, else a byte value specifying the alignment requirement for this field
-
getFlags
int getFlags()Retrieve the field flags.- Returns:
- a bitfield of
FLAG_xxxconstants
-