Package ghidra.program.model.data
Interface BitFieldPacking
-
- All Known Implementing Classes:
BitFieldPackingImpl
public interface BitFieldPacking
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description int
getZeroLengthBoundary()
A non-zero value indicates the fixed alignment size for bit-fields which follow a zero-length bitfield if greater than a bitfields base type normal alignment.boolean
isTypeAlignmentEnabled()
Control whether the alignment of bit-field types is respected when laying out structures.boolean
useMSConvention()
Control if the alignment and packing of bit-fields follows MSVC conventions.
-
-
-
Method Detail
-
useMSConvention
boolean useMSConvention()
Control if the alignment and packing of bit-fields follows MSVC conventions. When this is enabled it takes precedence over all other bitfield packing controls.- Returns:
- true if MSVC packing conventions are used, else false (e.g., GNU conventions apply).
-
isTypeAlignmentEnabled
boolean isTypeAlignmentEnabled()
Control whether the alignment of bit-field types is respected when laying out structures. Corresponds to PCC_BITFIELD_TYPE_MATTERS in GCC.- Returns:
- true when the alignment of the bit-field type should be used to impact the alignment of the containing structure, and ensure that individual bit-fields will not straddle an alignment boundary.
-
getZeroLengthBoundary
int getZeroLengthBoundary()
A non-zero value indicates the fixed alignment size for bit-fields which follow a zero-length bitfield if greater than a bitfields base type normal alignment. Corresponds to EMPTY_FIELD_BOUNDARY in GCC. This value is only used whenisTypeAlignmentEnabled()
returns false and#isZeroLengthAlignmentEnabled()
returns true.- Returns:
- fixed alignment size as number of bytes for a bit-field which follows a zero-length bit-field
-
-