public interface

IStructureType

implements INativeType
com.pnfsoftware.jeb.core.units.code.asm.type.IStructureType
Known Indirect Subclasses

Class Overview

Type item representing a structure or union (structure wit overlapping fields).

Fields manipulation (addition, removal, etc.) can be done via the structure's controlling type manager.

Summary

[Expand]
Inherited Constants
From interface com.pnfsoftware.jeb.core.units.code.ICodeItem
Public Methods
abstract int getAlignment()
Retrieve the structure's actual global alignment.
abstract IStructureTypeField getField(int index)
abstract IStructureTypeField getFieldAfter(int offset)
abstract IStructureTypeField getFieldAt(int offset, int bitstart)
abstract IStructureTypeField getFieldAt(int offset)
abstract IStructureTypeField getFieldByName(String name)
abstract IStructureTypeField getFieldOver(int offset)
abstract List<? extends IStructureTypeField> getFields()
Get the list of true (non-synthetic) fields.
abstract int getFieldsCount()
Get the number of fields.
abstract List<? extends IStructureTypeField> getFieldsWithGaps()
Get a complete list of fields as well as gaps in-between fields (synthetic fields).
abstract int getIndexOfField(IStructureTypeField field)
Get the index of the provided field.
abstract int getPadding()
Retrieve the structure's fields alignment, aka fields padding/packing.
abstract boolean isCircular(INativeType type)
abstract boolean isStructure()
Determine whether this type is a structure (not a union).
abstract boolean isUnion()
Determine whether this type is a union (not a structure).
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.ICodeItem
From interface com.pnfsoftware.jeb.core.units.code.ICodeType
From interface com.pnfsoftware.jeb.core.units.code.asm.items.INativeItem
From interface com.pnfsoftware.jeb.core.units.code.asm.items.INativeItemListenable
From interface com.pnfsoftware.jeb.core.units.code.asm.type.INativeType

Public Methods

public abstract int getAlignment ()

Retrieve the structure's actual global alignment. It may be bigger than the alignment set when the structure was created (if any was provided).

public abstract IStructureTypeField getField (int index)

public abstract IStructureTypeField getFieldAfter (int offset)

public abstract IStructureTypeField getFieldAt (int offset, int bitstart)

public abstract IStructureTypeField getFieldAt (int offset)

public abstract IStructureTypeField getFieldByName (String name)

public abstract IStructureTypeField getFieldOver (int offset)

public abstract List<? extends IStructureTypeField> getFields ()

Get the list of true (non-synthetic) fields.

public abstract int getFieldsCount ()

Get the number of fields.

public abstract List<? extends IStructureTypeField> getFieldsWithGaps ()

Get a complete list of fields as well as gaps in-between fields (synthetic fields).

public abstract int getIndexOfField (IStructureTypeField field)

Get the index of the provided field.

public abstract int getPadding ()

Retrieve the structure's fields alignment, aka fields padding/packing.

This value should not be negative. It is 0 if this object represents a union (no padding). In the general case, the value is MAX_VALUE to indicate that structure fields are aligned on the size of their underlying primitive types, i.e. "natural" padding. Example: a 4-byte integer field would be aligned on a 4-byte boundary. A padding value is value indicates that members are byte-aligned (i.e. not aligned); a padding value of 2 indicates members are aligned on at most 2-bytes, etc.

public abstract boolean isCircular (INativeType type)

public abstract boolean isStructure ()

Determine whether this type is a structure (not a union).

public abstract boolean isUnion ()

Determine whether this type is a union (not a structure).