Package ghidra.pcode.exec

# Class AnnotatedPcodeUseropLibrary.FixedArgsAnnotatedPcodeUseropDefinition<T>

java.lang.Object
ghidra.pcode.exec.AnnotatedPcodeUseropLibrary.AnnotatedPcodeUseropDefinition<T>
ghidra.pcode.exec.AnnotatedPcodeUseropLibrary.FixedArgsAnnotatedPcodeUseropDefinition<T>

Type Parameters:
  `T` - the type of data processed by the userop

All Implemented Interfaces:
  `PcodeUseropLibrary.PcodeUseropDefinition<T>`

Enclosing class:
  `AnnotatedPcodeUseropLibrary<T>`

protected static class AnnotatedPcodeUseropLibrary.FixedArgsAnnotatedPcodeUseropDefinition<T> extends AnnotatedPcodeUseropLibrary.AnnotatedPcodeUseropDefinition<T>
An annotated userop with a fixed number of arguments

- ## Field Summary

  ### Fields inherited from class ghidra.pcode.exec.AnnotatedPcodeUseropLibrary.AnnotatedPcodeUseropDefinition

  `method`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FixedArgsAnnotatedPcodeUseropDefinition(AnnotatedPcodeUseropLibrary<T> library, Type opType, MethodHandles.Lookup lookup, Method method, AnnotatedPcodeUseropLibrary.PcodeUserop annot)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getInputCount()`
  Get the number of input operands accepted by the userop.
  `protected void`
  `initStarting()`
  `protected void`
  `placeInputs(PcodeExecutor<T> executor, List<Object> args, List<Varnode> inVars)`
  `protected void`
  `processNonAnnotatedParameter(Type declClsOpType, Type opType, int i, Parameter p)`
  `protected void`
  `validateInputs(List<Varnode> inVars)`

  ### Methods inherited from class ghidra.pcode.exec.AnnotatedPcodeUseropLibrary.AnnotatedPcodeUseropDefinition

  `canInlinePcode, create, execute, fromPrimitive, getDefiningLibrary, getJavaMethod, getName, getOutputType, hasSideEffects, initFinished, isFunctional, isPrimitive, modifiesContext`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface ghidra.pcode.exec.PcodeUseropLibrary.PcodeUseropDefinition

  `execute`

- ## Constructor Details

  - ### FixedArgsAnnotatedPcodeUseropDefinition

    public FixedArgsAnnotatedPcodeUseropDefinition(AnnotatedPcodeUseropLibrary<T> library, Type opType, MethodHandles.Lookup lookup, Method method, AnnotatedPcodeUseropLibrary.PcodeUserop annot)

- ## Method Details

  - ### initStarting

    protected void initStarting()
    Overrides:
      `initStarting` in class `AnnotatedPcodeUseropLibrary.AnnotatedPcodeUseropDefinition<T>`

  - ### processNonAnnotatedParameter

    protected void processNonAnnotatedParameter(Type declClsOpType, Type opType, int i, Parameter p)
    Specified by:
      `processNonAnnotatedParameter` in class `AnnotatedPcodeUseropLibrary.AnnotatedPcodeUseropDefinition<T>`

  - ### validateInputs

    protected void validateInputs(List<Varnode> inVars) throws PcodeExecutionException
    Overrides:
      `validateInputs` in class `AnnotatedPcodeUseropLibrary.AnnotatedPcodeUseropDefinition<T>`
    Throws:
      `PcodeExecutionException`

  - ### placeInputs

    protected void placeInputs(PcodeExecutor<T> executor, List<Object> args, List<Varnode> inVars)
    Specified by:
      `placeInputs` in class `AnnotatedPcodeUseropLibrary.AnnotatedPcodeUseropDefinition<T>`

  - ### getInputCount

    public int getInputCount()
    Description copied from interface: `PcodeUseropLibrary.PcodeUseropDefinition`
    Get the number of input operands accepted by the userop.
    Returns:
      the count or -1 if the userop is variadic