Interface LLVMSymbolLookupCallbackI

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

    public interface LLVMSymbolLookupCallbackI
    extends CallbackI.P
    Instances of this interface may be passed to the CreateDisasm, CreateDisasmCPU and CreateDisasmCPUFeatures methods.


     char const * (*) (
         void *DisInfo,
         uint64_t ReferenceValue,
         uint64_t *ReferenceType,
         uint64_t ReferencePC,
         char const **ReferenceName
    • 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
        the dyncall signature
      • callback

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

        long invoke​(long DisInfo,
                    long ReferenceValue,
                    long ReferenceType,
                    long ReferencePC,
                    long ReferenceName)
        The type for the symbol lookup function.

        This may be called by the disassembler for things like adding a comment for a PC plus a constant offset load instruction to use a symbol name instead of a load address value. It is passed the block information is saved when the disassembler context is created and the ReferenceValue to look up as a symbol. If no symbol is found for the ReferenceValue NULL is returned. The ReferenceType of the instruction is passed indirectly as is the PC of the instruction in ReferencePC. If the output reference can be determined its type is returned indirectly in ReferenceType along with ReferenceName if any, or that is set to NULL.