# Package ghidra.program.model.lang.protorules

package ghidra.program.model.lang.protorules

- Related Packages
  Package
  Description
  ghidra.program.model.lang
- Class
  Description
  AndFilter
  Logically AND multiple QualifierFilters together into a single filter.
  AssignAction
  An action that assigns an Address to a function prototype parameter A request for the address of either return storage or an input parameter is made through the assignAddress() method, which is given full information about the function prototype.
  ConsumeAs
  Consume a parameter from a specific resource list Normally the resource list is determined by the parameter data-type, but this action specifies an overriding resource list.
  ConsumeExtra
  Consume additional registers from an alternate resource list This action is a side-effect and doesn't assign an address for the current parameter.
  ConsumeRemaining
  Consume all the remaining registers from a given resource list This action is a side-effect and doesn't assign an address for the current parameter.
  ConvertToPointer
  Action converting the parameter's data-type to a pointer, and assigning storage for the pointer.
  DatatypeFilter
  A filter selecting a specific class of data-type.
  DatatypeMatchFilter
  Check if the function signature has a specific data-type in a specific position.
  ExtraStack
  Consume stack resources as a side-effect This action is a side-effect and doesn't assign an address for the current parameter.
  GotoStack
  Action assigning a parameter Address from the next available stack location
  HiddenReturnAssign
  Allocate the return value as an input parameter A pointer to where the return value is to be stored is passed in as an input parameter.
  HomogeneousAggregate
  Filter on a homogeneous aggregate data-type All primitive data-types must be the same.
  MetaTypeFilter
  Filter on a single meta data-type.
  ModelRule
  A rule controlling how parameters are assigned addresses Rules are applied to a parameter in the context of a full function prototype.
  MultiMemberAssign
  Consume a register per primitive member of an aggregate data-type The data-type is split up into its underlying primitive elements, and each one is assigned a register from the specific resource list.
  MultiSlotAssign
  Consume multiple registers to pass a data-type Available registers are consumed until the data-type is covered, and an appropriate join space address is assigned.
  MultiSlotDualAssign
  Consume multiple registers from different storage classes to pass a data-type This action is for calling conventions that can use both floating-point and general purpose registers when assigning storage for a single composite data-type, such as the X86-64 System V ABI
  PositionMatchFilter
  Filter that selects for a particular parameter position.
  PrimitiveExtractor
  PrimitiveExtractor.Primitive
  QualifierFilter
  A filter on some aspect of a specific function prototype.
  SizeRestrictedFilter
  A base class for data-type filters that tests either for either a range or an enumerated list of sizes.
  VarargsFilter
  A filter that selects a range of function parameters that are considered optional.