Una llamada ascendente es lo opuesto a una llamada descendente: el código nativo vuelve a llamar a Java. Esto se utiliza cuando una biblioteca C acepta un puntero de función, por ejemplo, el comparador de qsort, los controladores de eventos o las devoluciones de llamada de complementos. La API de FFM le permite encapsular cualquier MethodHandle de Java como un puntero de función nativo a través de Linker.upcallStub.
Llamada descendente frente a llamada ascendente