Search in sources :

Example 1 with CifData

use of com.oracle.svm.truffle.nfi.NativeSignature.CifData in project graal by oracle.

the class Target_com_oracle_truffle_nfi_impl_NFIContext method prepareSignature.

@Substitute
@SuppressWarnings("static-method")
long prepareSignature(Target_com_oracle_truffle_nfi_impl_LibFFIType retType, Target_com_oracle_truffle_nfi_impl_LibFFIType... args) {
    CifData data = PrepareHelper.prepareArgs(args);
    int ret = LibFFI.ffi_prep_cif(data.cif(), LibFFI.FFI_DEFAULT_ABI(), WordFactory.unsigned(args.length), WordFactory.pointer(retType.type), data.args());
    return PrepareHelper.checkRet(data, ret);
}
Also used : CifData(com.oracle.svm.truffle.nfi.NativeSignature.CifData) Substitute(com.oracle.svm.core.annotate.Substitute)

Example 2 with CifData

use of com.oracle.svm.truffle.nfi.NativeSignature.CifData in project graal by oracle.

the class Target_com_oracle_truffle_nfi_impl_NFIContext method prepareSignatureVarargs.

@Substitute
@SuppressWarnings("static-method")
long prepareSignatureVarargs(Target_com_oracle_truffle_nfi_impl_LibFFIType retType, int nFixedArgs, Target_com_oracle_truffle_nfi_impl_LibFFIType... args) {
    CifData data = PrepareHelper.prepareArgs(args);
    int ret = LibFFI.ffi_prep_cif_var(data.cif(), LibFFI.FFI_DEFAULT_ABI(), WordFactory.unsigned(nFixedArgs), WordFactory.unsigned(args.length), WordFactory.pointer(retType.type), data.args());
    return PrepareHelper.checkRet(data, ret);
}
Also used : CifData(com.oracle.svm.truffle.nfi.NativeSignature.CifData) Substitute(com.oracle.svm.core.annotate.Substitute)

Aggregations

Substitute (com.oracle.svm.core.annotate.Substitute)2 CifData (com.oracle.svm.truffle.nfi.NativeSignature.CifData)2