Class Invoker

java.lang.Object
com.kenai.jffi.Invoker
Direct Known Subclasses:
Invoker.ILP32, Invoker.LP64

public abstract class Invoker extends Object
Provides native function invocation facilities.
  • Field Details

  • Constructor Details

  • Method Details

    • getInstance

      public static Invoker getInstance()
      Gets the Invoker singleton.
      Returns:
      An instance of Invoker.
    • getObjectParameterInvoker

      public final ObjectParameterInvoker getObjectParameterInvoker()
      Gets the fast-path object parameter invoker.
      Returns:
      An instance of ObjectParameterInvoker
    • invokeI0

      public final int invokeI0(CallContext context, long function)
      Invokes a function with no arguments, and returns a 32 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      Returns:
      A 32 bit integer value.
    • invokeI1

      public final int invokeI1(CallContext context, long function, int arg1)
      Invokes a function with one integer argument, and returns a 32 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - A 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeI2

      public final int invokeI2(CallContext context, long function, int arg1, int arg2)
      Invokes a function with two integer arguments, and returns a 32 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeI3

      public final int invokeI3(CallContext context, long function, int arg1, int arg2, int arg3)
      Invokes a function with three integer arguments, and returns a 32 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      arg3 - The third 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeI4

      public final int invokeI4(CallContext context, long function, int arg1, int arg2, int arg3, int arg4)
      Invokes a function with four integer arguments, and returns a 32 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      arg3 - The third 32 bit integer argument.
      arg4 - The fourth 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeI5

      public final int invokeI5(CallContext context, long function, int arg1, int arg2, int arg3, int arg4, int arg5)
      Invokes a function with five integer arguments, and returns a 32 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      arg3 - The third 32 bit integer argument.
      arg4 - The fourth 32 bit integer argument.
      arg5 - The fifth 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeI6

      public final int invokeI6(CallContext context, long function, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6)
      Invokes a function with six integer arguments, and returns a 32 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      arg3 - The third 32 bit integer argument.
      arg4 - The fourth 32 bit integer argument.
      arg5 - The fifth 32 bit integer argument.
      arg6 - The sixth 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeI0NoErrno

      public final int invokeI0NoErrno(CallContext context, long function)
    • invokeI1NoErrno

      public final int invokeI1NoErrno(CallContext context, long function, int arg1)
    • invokeI2NoErrno

      public final int invokeI2NoErrno(CallContext context, long function, int arg1, int arg2)
    • invokeI3NoErrno

      public final int invokeI3NoErrno(CallContext context, long function, int arg1, int arg2, int arg3)
    • invokeI4NoErrno

      public final int invokeI4NoErrno(CallContext context, long function, int arg1, int arg2, int arg3, int arg4)
    • invokeI5NoErrno

      public final int invokeI5NoErrno(CallContext context, long function, int arg1, int arg2, int arg3, int arg4, int arg5)
    • invokeI6NoErrno

      public final int invokeI6NoErrno(CallContext context, long function, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6)
    • invokeVrI

      @Deprecated public final int invokeVrI(Function function)
      Deprecated.
      Invokes a function with no arguments, and returns a 32 bit integer.
      Parameters:
      function - The Function to invoke.
      Returns:
      A 32 bit integer value.
    • invokeNoErrnoVrI

      @Deprecated public final int invokeNoErrnoVrI(Function function)
      Deprecated.
      Invokes a function with no arguments, and returns a 32 bit integer. This method does not save the errno value.
      Parameters:
      function - The Function to invoke.
      Returns:
      A 32 bit integer value.
    • invokeIrI

      @Deprecated public final int invokeIrI(Function function, int arg1)
      Deprecated.
      Invokes a function with one integer argument, and returns a 32 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - A 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeNoErrnoIrI

      @Deprecated public final int invokeNoErrnoIrI(Function function, int arg1)
      Deprecated.
      Invokes a function with one integer argument, and returns a 32 bit integer. This method does not save the errno value.
      Parameters:
      function - The Function to invoke.
      arg1 - A 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeIIrI

      @Deprecated public final int invokeIIrI(Function function, int arg1, int arg2)
      Deprecated.
      Invokes a function with two integer arguments, and returns a 32 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeNoErrnoIIrI

      @Deprecated public final int invokeNoErrnoIIrI(Function function, int arg1, int arg2)
      Deprecated.
      Invokes a function with two integer arguments, and returns a 32 bit integer. This method does not save the errno value.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeIIIrI

      @Deprecated public final int invokeIIIrI(Function function, int arg1, int arg2, int arg3)
      Deprecated.
      Invokes a function with three integer arguments, and returns a 32 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      arg3 - The third 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeNoErrnoIIIrI

      @Deprecated public final int invokeNoErrnoIIIrI(Function function, int arg1, int arg2, int arg3)
      Deprecated.
      Invokes a function with three integer arguments, and returns a 32 bit integer. This method does not save the errno value.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      arg3 - The third 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeIIIIrI

      @Deprecated public final int invokeIIIIrI(Function function, int arg1, int arg2, int arg3, int arg4)
      Deprecated.
      Invokes a function with four integer arguments, and returns a 32 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      arg3 - The third 32 bit integer argument.
      arg4 - The fourth 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeIIIIIrI

      @Deprecated public final int invokeIIIIIrI(Function function, int arg1, int arg2, int arg3, int arg4, int arg5)
      Deprecated.
      Invokes a function with five integer arguments, and returns a 32 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      arg3 - The third 32 bit integer argument.
      arg4 - The fourth 32 bit integer argument.
      arg5 - The fifth 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeIIIIIIrI

      @Deprecated public final int invokeIIIIIIrI(Function function, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6)
      Deprecated.
      Invokes a function with six integer arguments, and returns a 32 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 32 bit integer argument.
      arg2 - The second 32 bit integer argument.
      arg3 - The third 32 bit integer argument.
      arg4 - The fourth 32 bit integer argument.
      arg5 - The fifth 32 bit integer argument.
      arg6 - The sixth 32 bit integer argument.
      Returns:
      A 32 bit integer value.
    • invokeL0

      public final long invokeL0(CallContext context, long function)
      Invokes a function with no arguments, and returns a 64 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      Returns:
      A 64 bit integer value.
    • invokeL1

      public final long invokeL1(CallContext context, long function, long arg1)
      Invokes a function with one 64 bit integer argument, and returns a 64 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeL2

      public final long invokeL2(CallContext context, long function, long arg1, long arg2)
      Invokes a function with two 64 bit integer arguments, and returns a 64 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first 64 bit integer argument.
      arg2 - The second 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeL3

      public final long invokeL3(CallContext context, long function, long arg1, long arg2, long arg3)
      Invokes a function with three 64 bit integer arguments, and returns a 64 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first 64 bit integer argument.
      arg2 - The second 64 bit integer argument.
      arg3 - The third 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeL4

      public final long invokeL4(CallContext context, long function, long arg1, long arg2, long arg3, long arg4)
      Invokes a function with four 64 bit integer arguments, and returns a 64 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first 64 bit integer argument.
      arg2 - The second 64 bit integer argument.
      arg3 - The third 64 bit integer argument.
      arg4 - The fourth 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeL5

      public final long invokeL5(CallContext context, long function, long arg1, long arg2, long arg3, long arg4, long arg5)
      Invokes a function with five 64 bit integer arguments, and returns a 64 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first 64 bit integer argument.
      arg2 - The second 64 bit integer argument.
      arg3 - The third 64 bit integer argument.
      arg4 - The fourth 64 bit integer argument.
      arg5 - The fifth 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeL6

      public final long invokeL6(CallContext context, long function, long arg1, long arg2, long arg3, long arg4, long arg5, long arg6)
      Invokes a function with six 64 bit integer arguments, and returns a 64 bit integer.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first 64 bit integer argument.
      arg2 - The second 64 bit integer argument.
      arg3 - The third 64 bit integer argument.
      arg4 - The fourth 64 bit integer argument.
      arg5 - The fifth 64 bit integer argument.
      arg6 - The sixth 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeL0NoErrno

      public final long invokeL0NoErrno(CallContext context, long function)
    • invokeL1NoErrno

      public final long invokeL1NoErrno(CallContext context, long function, long arg1)
    • invokeL2NoErrno

      public final long invokeL2NoErrno(CallContext context, long function, long arg1, long arg2)
    • invokeL3NoErrno

      public final long invokeL3NoErrno(CallContext context, long function, long arg1, long arg2, long arg3)
    • invokeL4NoErrno

      public final long invokeL4NoErrno(CallContext context, long function, long arg1, long arg2, long arg3, long arg4)
    • invokeL5NoErrno

      public final long invokeL5NoErrno(CallContext context, long function, long arg1, long arg2, long arg3, long arg4, long arg5)
    • invokeL6NoErrno

      public final long invokeL6NoErrno(CallContext context, long function, long arg1, long arg2, long arg3, long arg4, long arg5, long arg6)
    • invokeVrL

      public final long invokeVrL(Function function)
      Invokes a function with no arguments, and returns a 64 bit integer.
      Parameters:
      function - The Function to invoke.
      Returns:
      A 64 bit integer value.
    • invokeLrL

      public final long invokeLrL(Function function, long arg1)
      Invokes a function with one 64 bit integer argument, and returns a 64 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - The 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeLLrL

      public final long invokeLLrL(Function function, long arg1, long arg2)
      Invokes a function with two 64 bit integer arguments, and returns a 64 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 64 bit integer argument.
      arg2 - The second 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeLLLrL

      public final long invokeLLLrL(Function function, long arg1, long arg2, long arg3)
      Invokes a function with three 64 bit integer arguments, and returns a 64 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 64 bit integer argument.
      arg2 - The second 64 bit integer argument.
      arg3 - The third 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeLLLLrL

      public final long invokeLLLLrL(Function function, long arg1, long arg2, long arg3, long arg4)
      Invokes a function with four 64 bit integer arguments, and returns a 64 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 64 bit integer argument.
      arg2 - The second 64 bit integer argument.
      arg3 - The third 64 bit integer argument.
      arg4 - The fourth 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeLLLLLrL

      public final long invokeLLLLLrL(Function function, long arg1, long arg2, long arg3, long arg4, long arg5)
      Invokes a function with five 64 bit integer arguments, and returns a 64 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 64 bit integer argument.
      arg2 - The second 64 bit integer argument.
      arg3 - The third 64 bit integer argument.
      arg4 - The fourth 64 bit integer argument.
      arg5 - The fifth 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeLLLLLLrL

      public final long invokeLLLLLLrL(Function function, long arg1, long arg2, long arg3, long arg4, long arg5, long arg6)
      Invokes a function with six 64 bit integer arguments, and returns a 64 bit integer.
      Parameters:
      function - The Function to invoke.
      arg1 - The first 64 bit integer argument.
      arg2 - The second 64 bit integer argument.
      arg3 - The third 64 bit integer argument.
      arg4 - The fourth 64 bit integer argument.
      arg5 - The fifth 64 bit integer argument.
      arg6 - The sixth 64 bit integer argument.
      Returns:
      A 64 bit integer value.
    • invokeN0

      public final long invokeN0(CallContext context, long function)
      Invokes a function with no arguments, and returns a numeric value.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      Returns:
      A numeric value.
    • invokeN1

      public final long invokeN1(CallContext context, long function, long arg1)
      Invokes a function with one numeric argument, and returns a numeric value.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The numeric argument.
      Returns:
      A numeric value.
    • invokeN2

      public final long invokeN2(CallContext context, long function, long arg1, long arg2)
      Invokes a function with two numeric arguments, and returns a numeric value.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first numeric argument.
      arg2 - The second numeric argument.
      Returns:
      A numeric value.
    • invokeN3

      public final long invokeN3(CallContext context, long function, long arg1, long arg2, long arg3)
      Invokes a function with three numeric arguments, and returns a numeric value.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first numeric argument.
      arg2 - The second numeric argument.
      arg3 - The third numeric argument.
      Returns:
      A numeric value.
    • invokeN4

      public final long invokeN4(CallContext context, long function, long arg1, long arg2, long arg3, long arg4)
      Invokes a function with four numeric arguments, and returns a numeric value.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first numeric argument.
      arg2 - The second numeric argument.
      arg3 - The third numeric argument.
      arg4 - The fourth numeric argument.
      Returns:
      A numeric value.
    • invokeN5

      public final long invokeN5(CallContext context, long function, long arg1, long arg2, long arg3, long arg4, long arg5)
      Invokes a function with five numeric arguments, and returns a numeric value.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first numeric argument.
      arg2 - The second numeric argument.
      arg3 - The third numeric argument.
      arg4 - The fourth numeric argument.
      arg5 - The fifth numeric argument.
      Returns:
      A numeric value.
    • invokeN6

      public final long invokeN6(CallContext context, long function, long arg1, long arg2, long arg3, long arg4, long arg5, long arg6)
      Invokes a function with six numeric arguments, and returns a numeric value.
      Parameters:
      context - The CallContext describing how to invoke the function.
      function - Address of the native function to invoke.
      arg1 - The first numeric argument.
      arg2 - The second numeric argument.
      arg3 - The third numeric argument.
      arg4 - The fourth numeric argument.
      arg5 - The fifth numeric argument.
      arg6 - The sixth numeric argument.
      Returns:
      A numeric value.
    • invokeVrN

      public final long invokeVrN(Function function)
      Invokes a function with no arguments, and returns a numeric value.
      Parameters:
      function - The Function to invoke.
      Returns:
      A numeric value.
    • invokeNrN

      public final long invokeNrN(Function function, long arg1)
      Invokes a function with one numeric argument, and returns a numeric value.
      Parameters:
      function - The Function to invoke.
      arg1 - The numeric argument.
      Returns:
      A numeric value.
    • invokeNNrN

      public final long invokeNNrN(Function function, long arg1, long arg2)
      Invokes a function with two numeric arguments, and returns a numeric value.
      Parameters:
      function - The Function to invoke.
      arg1 - The first numeric argument.
      arg2 - The second numeric argument.
      Returns:
      A numeric value.
    • invokeNNNrN

      public final long invokeNNNrN(Function function, long arg1, long arg2, long arg3)
      Invokes a function with three numeric arguments, and returns a numeric value.
      Parameters:
      function - The Function to invoke.
      arg1 - The first numeric argument.
      arg2 - The second numeric argument.
      arg3 - The third numeric argument.
      Returns:
      A numeric value.
    • invokeNNNNrN

      public final long invokeNNNNrN(Function function, long arg1, long arg2, long arg3, long arg4)
      Invokes a function with four numeric arguments, and returns a numeric value.
      Parameters:
      function - The Function to invoke.
      arg1 - The first numeric argument.
      arg2 - The second numeric argument.
      arg3 - The third numeric argument.
      arg4 - The fourth numeric argument.
      Returns:
      A numeric value.
    • invokeNNNNNrN

      public final long invokeNNNNNrN(Function function, long arg1, long arg2, long arg3, long arg4, long arg5)
      Invokes a function with five numeric arguments, and returns a numeric value.
      Parameters:
      function - The Function to invoke.
      arg1 - The first numeric argument.
      arg2 - The second numeric argument.
      arg3 - The third numeric argument.
      arg4 - The fourth numeric argument.
      arg5 - The fifth numeric argument.
      Returns:
      A numeric value.
    • invokeNNNNNNrN

      public final long invokeNNNNNNrN(Function function, long arg1, long arg2, long arg3, long arg4, long arg5, long arg6)
      Invokes a function with six numeric arguments, and returns a numeric value.
      Parameters:
      function - The Function to invoke.
      arg1 - The first numeric argument.
      arg2 - The second numeric argument.
      arg3 - The third numeric argument.
      arg4 - The fourth numeric argument.
      arg5 - The fifth numeric argument.
      arg6 - The sixth numeric argument.
      Returns:
      A numeric value.
    • invokeNNO1rN

      @Deprecated public final long invokeNNO1rN(Function function, long n1, long n2, Object o1, int o1off, int o1len, ObjectParameterInfo o1flags)
      Deprecated.
      Invokes a function with two numeric arguments, and returns a numeric value.
      Parameters:
      function - The Function to invoke.
      n1 - first numeric argument.
      n2 - second numeric argument.
      o1 - array or buffer, to be passed as a pointer for the first numeric parameter.
      o1off - offset from the start of the array pr buffer.
      o1len - length of the array to use.
      o1flags - object flags (type, direction, parameter index).
    • invokeNNO2rN

      @Deprecated public final long invokeNNO2rN(Function function, long n1, long n2, Object o1, int o1off, int o1len, ObjectParameterInfo o1flags, Object o2, int o2off, int o2len, ObjectParameterInfo o2flags)
      Deprecated.
      Invokes a function with two numeric arguments, and returns a numeric value.
      Parameters:
      function - The Function to invoke.
      n1 - first numeric argument.
      n2 - second numeric argument.
      o1 - array or buffer, to be passed as a pointer for the first numeric parameter.
      o1off - offset from the start of the array pr buffer.
      o1len - length of the array to use.
      o1flags - object flags (type, direction, parameter index).
    • invokeNNNO1rN

      @Deprecated public final long invokeNNNO1rN(Function function, long n1, long n2, long n3, Object o1, int o1off, int o1len, ObjectParameterInfo o1flags)
      Deprecated.
      Invokes a function with two numeric arguments, and returns a numeric value.
      Parameters:
      function - The Function to invoke.
    • invokeNNNO2rN

      @Deprecated public final long invokeNNNO2rN(Function function, long n1, long n2, long n3, Object o1, int o1off, int o1len, ObjectParameterInfo o1flags, Object o2, int o2off, int o2len, ObjectParameterInfo o2flags)
      Deprecated.
      Invokes a function with two numeric arguments, and returns a numeric value.
      Parameters:
      function - The Function to invoke.
    • newObjectCountError

      private static RuntimeException newObjectCountError(int objCount)
    • newInsufficientObjectCountError

      private static RuntimeException newInsufficientObjectCountError(int objCount)
    • newHeapObjectCountError

      private static RuntimeException newHeapObjectCountError(int objCount)
    • invokeN1O1

      public final long invokeN1O1(CallContext ctx, long function, long n1, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN2O1

      public final long invokeN2O1(CallContext ctx, long function, long n1, long n2, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN2O2

      public final long invokeN2O2(CallContext ctx, long function, long n1, long n2, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info)
    • invokeN3O1

      public final long invokeN3O1(CallContext ctx, long function, long n1, long n2, long n3, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN3O2

      public final long invokeN3O2(CallContext ctx, long function, long n1, long n2, long n3, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info)
    • invokeN3O3

      public final long invokeN3O3(CallContext ctx, long function, long n1, long n2, long n3, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info)
    • invokeN4O1

      public final long invokeN4O1(CallContext ctx, long function, long n1, long n2, long n3, long n4, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN4O2

      public final long invokeN4O2(CallContext ctx, long function, long n1, long n2, long n3, long n4, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info)
    • invokeN4O3

      public final long invokeN4O3(CallContext ctx, long function, long n1, long n2, long n3, long n4, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info)
    • invokeN5O1

      public final long invokeN5O1(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN5O2

      public final long invokeN5O2(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info)
    • invokeN5O3

      public final long invokeN5O3(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info)
    • invokeN6O1

      public final long invokeN6O1(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, long n6, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN6O2

      public final long invokeN6O2(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, long n6, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info)
    • invokeN6O3

      public final long invokeN6O3(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, long n6, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info)
    • invokeN1

      public final long invokeN1(CallContext ctx, long function, long n1, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN2

      public final long invokeN2(CallContext ctx, long function, long n1, long n2, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN2

      public final long invokeN2(CallContext ctx, long function, long n1, long n2, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info)
    • invokeN3

      public final long invokeN3(CallContext ctx, long function, long n1, long n2, long n3, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN3

      public final long invokeN3(CallContext ctx, long function, long n1, long n2, long n3, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info)
    • invokeN3

      public final long invokeN3(CallContext ctx, long function, long n1, long n2, long n3, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info)
    • invokeN4

      public final long invokeN4(CallContext ctx, long function, long n1, long n2, long n3, long n4, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN4

      public final long invokeN4(CallContext ctx, long function, long n1, long n2, long n3, long n4, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info)
    • invokeN4

      public final long invokeN4(CallContext ctx, long function, long n1, long n2, long n3, long n4, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info)
    • invokeN4

      public final long invokeN4(CallContext ctx, long function, long n1, long n2, long n3, long n4, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info, Object o4, ObjectParameterStrategy s4, ObjectParameterInfo o4info)
    • invokeN5

      public final long invokeN5(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN5

      public final long invokeN5(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info)
    • invokeN5

      public final long invokeN5(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info)
    • invokeN5

      public final long invokeN5(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info, Object o4, ObjectParameterStrategy s4, ObjectParameterInfo o4info)
    • invokeN5

      public final long invokeN5(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info, Object o4, ObjectParameterStrategy s4, ObjectParameterInfo o4info, Object o5, ObjectParameterStrategy s5, ObjectParameterInfo o5info)
    • invokeN6

      public final long invokeN6(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, long n6, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info)
    • invokeN6

      public final long invokeN6(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, long n6, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info)
    • invokeN6

      public final long invokeN6(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, long n6, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info)
    • invokeN6

      public final long invokeN6(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, long n6, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info, Object o4, ObjectParameterStrategy s4, ObjectParameterInfo o4info)
    • invokeN6

      public final long invokeN6(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, long n6, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info, Object o4, ObjectParameterStrategy s4, ObjectParameterInfo o4info, Object o5, ObjectParameterStrategy s5, ObjectParameterInfo o5info)
    • invokeN6

      public final long invokeN6(CallContext ctx, long function, long n1, long n2, long n3, long n4, long n5, long n6, int objCount, Object o1, ObjectParameterStrategy s1, ObjectParameterInfo o1info, Object o2, ObjectParameterStrategy s2, ObjectParameterInfo o2info, Object o3, ObjectParameterStrategy s3, ObjectParameterInfo o3info, Object o4, ObjectParameterStrategy s4, ObjectParameterInfo o4info, Object o5, ObjectParameterStrategy s5, ObjectParameterInfo o5info, Object o6, ObjectParameterStrategy s6, ObjectParameterInfo o6info)
    • invokeAddress

      public long invokeAddress(Function function, HeapInvocationBuffer buffer)
      Invokes a function and returns a native memory address.
      Parameters:
      function - The Function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeAddress

      public abstract long invokeAddress(CallContext ctx, long function, HeapInvocationBuffer buffer)
      Invokes a function and returns a native memory address.
      Parameters:
      ctx - The call context which describes how to call the native function.
      function - The address of the native function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeInt

      public final int invokeInt(Function function, HeapInvocationBuffer buffer)
      Invokes a function and returns a 32 bit integer value.
      Parameters:
      function - The Function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeInt

      public final int invokeInt(CallContext ctx, long function, HeapInvocationBuffer buffer)
      Invokes a function and returns a 32 bit integer value.
      Parameters:
      ctx - The call context which describes how to call the native function.
      function - The address of the native function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeLong

      public final long invokeLong(Function function, HeapInvocationBuffer buffer)
      Invokes a function and returns a 64 bit integer value.
      Parameters:
      function - The Function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeLong

      public final long invokeLong(CallContext ctx, long function, HeapInvocationBuffer buffer)
      Invokes a function and returns a 64 bit integer value.
      Parameters:
      ctx - The call context which describes how to call the native function.
      function - The address of the native function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeFloat

      public final float invokeFloat(Function function, HeapInvocationBuffer buffer)
      Invokes a function and returns a 32 bit floating point value.
      Parameters:
      function - The Function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeFloat

      public final float invokeFloat(CallContext ctx, long function, HeapInvocationBuffer buffer)
      Invokes a function and returns a 32 bit floating point value.
      Parameters:
      ctx - The call context which describes how to call the native function.
      function - The address of the native function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeDouble

      public final double invokeDouble(Function function, HeapInvocationBuffer buffer)
      Invokes a function and returns a 64 bit floating point value.
      Parameters:
      function - The Function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeDouble

      public final double invokeDouble(CallContext ctx, long function, HeapInvocationBuffer buffer)
      Invokes a function and returns a 64 bit floating point value.
      Parameters:
      ctx - The call context describing how to call the native function.
      function - The address of the native function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeBigDecimal

      public final BigDecimal invokeBigDecimal(Function function, HeapInvocationBuffer buffer)
      Invokes a function and returns a 64 bit floating point value.
      Parameters:
      function - The Function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeBigDecimal

      public final BigDecimal invokeBigDecimal(CallContext ctx, long function, HeapInvocationBuffer buffer)
      Invokes a function and returns a 64 bit floating point value.
      Parameters:
      function - The Function to invoke.
      buffer - A buffer containing the arguments to the function.
      Returns:
      A native memory address.
    • invokeStruct

      public final byte[] invokeStruct(Function function, HeapInvocationBuffer buffer)
      Invokes a function that returns a C struct by value.
      Parameters:
      function - The Function to invoke.
      buffer - The parameter buffer.
      Returns:
      A byte array with the return value encoded in native byte order.
    • invokeStruct

      public final byte[] invokeStruct(CallContext ctx, long function, HeapInvocationBuffer buffer)
      Invokes a function that returns a C struct by value.
      Parameters:
      ctx - The call context which describes how to call the native function.
      function - The address of the native function to invoke.
      buffer - The parameter buffer.
      Returns:
      A byte array with the return value encoded in native byte order.
    • invokeStruct

      public final void invokeStruct(Function function, HeapInvocationBuffer buffer, byte[] returnBuffer, int offset)
      Invokes a function that returns a C struct by value.
      Parameters:
      function - The Function to invoke.
      buffer - The parameter buffer.
      returnBuffer - The output buffer to place the return value in.
      offset - The offset within returnBuffer to place the return value.
    • invokeStruct

      public final void invokeStruct(CallContext ctx, long function, HeapInvocationBuffer buffer, byte[] returnBuffer, int offset)
      Invokes a function that returns a C struct by value.
      Parameters:
      ctx - The call context which describes how to call the native function.
      function - The address of the native function to invoke.
      buffer - The parameter buffer.
      returnBuffer - The output buffer to place the return value in.
      offset - The offset within returnBuffer to place the return value.
    • invokeObject

      public final Object invokeObject(Function function, HeapInvocationBuffer buffer)
    • invoke

      public final void invoke(Function function, long returnBuffer, long[] parameters)
      Invokes a function, with the parameters loaded into native memory buffers, and the function result is stored in a native memory buffer.
      Parameters:
      function - The Function to invoke.
      returnBuffer - The address of the native buffer to place the result of the function call in.
      parameters - An array of addresses of the function parameters.
    • invoke

      public final void invoke(CallContext ctx, long function, long returnBuffer, long[] parameters)
      Invokes a function, with the parameters loaded into native memory buffers, and the function result is stored in a native memory buffer.
      Parameters:
      ctx - The call context which describes how to call the native function.
      function - The address of the native function to invoke.
      returnBuffer - The address of the native buffer to place the result of the function call in.
      parameters - An array of addresses of the function parameters.
    • invokeArrayWithObjectsInt32

      private int invokeArrayWithObjectsInt32(long ctx, long function, HeapInvocationBuffer buffer, ObjectBuffer objectBuffer)
      Convenience method to pass the objects and object descriptor array down as normal arguments, so hotspot can optimize it. This is faster than the native code pulling the objects and descriptors out of arrays.
      Parameters:
      function - The native function to invoke.
      buffer - A buffer containing the arguments to the function.
      objectBuffer - A buffer containing objects to be passed to the native function.
      Returns:
      A 32 bit integer value.
    • invokeArrayWithObjectsInt64

      private long invokeArrayWithObjectsInt64(long ctx, long function, HeapInvocationBuffer buffer, ObjectBuffer objectBuffer)
      Convenience method to pass the objects and object descriptor array down as normal arguments, so hotspot can optimize it. This is faster than the native code pulling the objects and descriptors out of arrays.
      Parameters:
      function - The native function to invoke.
      buffer - A buffer containing the arguments to the function.
      objectBuffer - A buffer containing objects to be passed to the native function.
      Returns:
      A 64 bit integer value.