Package ghidra.program.model.data
Interface BitFieldPacking
- All Known Implementing Classes:
BitFieldPackingImpl
public interface BitFieldPacking
-
Method Summary
Modifier and TypeMethodDescriptionint
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.default boolean
Determine if this BitFieldPacking is equivalent to another specified instanceboolean
Control whether the alignment of bit-field types is respected when laying out structures.boolean
Control if the alignment and packing of bit-fields follows MSVC conventions.
-
Method Details
-
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.- Returns:
- fixed alignment size as number of bytes for a bit-field which follows a zero-length bit-field
-
isEquivalent
Determine if this BitFieldPacking is equivalent to another specified instance- Parameters:
obj
- is the other instance- Returns:
- true if they are equivalent
-