Interface LLVMOpInfoCallbackI

  • All Superinterfaces:
    CallbackI, CallbackI.I, Pointer
    All Known Implementing Classes:
    LLVMOpInfoCallback
    Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    public interface LLVMOpInfoCallbackI
    extends CallbackI.I
    Instances of this interface may be passed to the CreateDisasm, CreateDisasmCPU and CreateDisasmCPUFeatures methods.

    Type

    
     int (*) (
         void *DisInfo,
         uint64_t PC,
         uint64_t Offset,
         uint64_t Size,
         int TagType,
         void *TagBuf
     )
    • Method Detail

      • getSignature

        default java.lang.String getSignature()
        Description copied from interface: CallbackI
        Returns the dyncall signature for this callback function. [INTERNAL API]
        Specified by:
        getSignature in interface CallbackI
        Returns:
        the dyncall signature
      • callback

        default int callback​(long args)
        Description copied from interface: CallbackI.I
        Will be called by native code.
        Specified by:
        callback in interface CallbackI.I
        Parameters:
        args - pointer to a DCArgs iterator
        Returns:
        the value to store to the result DCValue
      • invoke

        int invoke​(long DisInfo,
                   long PC,
                   long Offset,
                   long Size,
                   int TagType,
                   long TagBuf)
        The type for the operand information call back function.

        This is called to get the symbolic information for an operand of an instruction. Typically this is from the relocation information, symbol table, etc. That block of information is saved when the disassembler context is created and passed to the call back in the DisInfo parameter. The instruction containing operand is at the PC parameter. For some instruction sets, there can be more than one operand with symbolic information. To determine the symbolic operand information for each operand, the bytes for the specific operand in the instruction are specified by the Offset parameter and its byte width is the size parameter. For instructions sets with fixed widths and one symbolic operand per instruction, the Offset parameter will be zero and Size parameter will be the instruction width. The information is returned in TagBuf and is Triple specific with its specific information defined by the value of TagType for that Triple. If symbolic information is returned the function returns 1, otherwise it returns 0.