// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. // Contains the Dart FFI interface to the c-library defined in // sdk/runtime/bin/ffi_test/ffi_test_functions.cc. // The code contained in this class is intended to be added to Dart programs // generated by dartfuzz.dart. class DartFuzzFfiApi { static const ffiapi = """ ffi.DynamicLibrary ffiTestFunctions = ffi.DynamicLibrary.open("libffi_test_functions.so"); typedef NativeBinaryOp = ffi.Int32 Function(ffi.Int32, ffi.Int32); typedef BinaryOp = int Function(int, int); BinaryOp sumPlus42 = ffiTestFunctions.lookupFunction("SumPlus42"); typedef NativeReturnMaxUint8 = ffi.Uint8 Function(); int Function() returnMaxUint8 = ffiTestFunctions .lookup("ReturnMaxUint8") .cast>() .asFunction(); typedef NativeReturnMaxUint16 = ffi.Uint16 Function(); int Function() returnMaxUint16 = ffiTestFunctions .lookup("ReturnMaxUint16") .cast>() .asFunction(); typedef NativeReturnMaxUint32 = ffi.Uint32 Function(); int Function() returnMaxUint32 = ffiTestFunctions .lookup("ReturnMaxUint32") .cast>() .asFunction(); typedef NativeReturnMinInt8 = ffi.Int8 Function(); int Function() returnMinInt8 = ffiTestFunctions .lookup("ReturnMinInt8") .cast>() .asFunction(); typedef NativeReturnMinInt16 = ffi.Int16 Function(); int Function() returnMinInt16 = ffiTestFunctions .lookup("ReturnMinInt16") .cast>() .asFunction(); typedef NativeReturnMinInt32 = ffi.Int32 Function(); int Function() returnMinInt32 = ffiTestFunctions .lookup("ReturnMinInt32") .cast>() .asFunction(); typedef NativeTakeMaxUint8 = ffi.IntPtr Function(ffi.Uint8); int Function(int) takeMaxUint8 = ffiTestFunctions .lookup("TakeMaxUint8") .cast>() .asFunction(); typedef NativeTakeMaxUint16 = ffi.IntPtr Function(ffi.Uint16); int Function(int) takeMaxUint16 = ffiTestFunctions .lookup("TakeMaxUint16") .cast>() .asFunction(); typedef NativeTakeMaxUint32 = ffi.IntPtr Function(ffi.Uint32); int Function(int) takeMaxUint32 = ffiTestFunctions .lookup("TakeMaxUint32") .cast>() .asFunction(); typedef NativeTakeMinInt8 = ffi.IntPtr Function(ffi.Int8); int Function(int) takeMinInt8 = ffiTestFunctions .lookup("TakeMinInt8") .cast>() .asFunction(); typedef NativeTakeMinInt16 = ffi.IntPtr Function(ffi.Int16); int Function(int) takeMinInt16 = ffiTestFunctions .lookup("TakeMinInt16") .cast>() .asFunction(); typedef NativeTakeMinInt32 = ffi.IntPtr Function(ffi.Int32); int Function(int) takeMinInt32 = ffiTestFunctions .lookup("TakeMinInt32") .cast>() .asFunction(); typedef NativeQuadOpSigned = ffi.Int64 Function( ffi.Int8, ffi.Int16, ffi.Int32, ffi.Int64); typedef QuadOp = int Function(int, int, int, int); typedef IntComputationType = ffi.Int64 Function( ffi.Int8, ffi.Int16, ffi.Int32, ffi.Int64); QuadOp intComputation = ffiTestFunctions .lookupFunction("IntComputation"); typedef NativeQuadOpUnsigned = ffi.Uint64 Function( ffi.Uint8, ffi.Uint16, ffi.Uint32, ffi.Uint64); typedef UintComputationType = ffi.Uint64 Function( ffi.Uint8, ffi.Uint16, ffi.Uint32, ffi.Uint64); QuadOp uintComputation = ffiTestFunctions .lookupFunction("UintComputation"); typedef DoubleUnaryOp = double Function(double); typedef NativeDoubleUnaryOp = ffi.Double Function(ffi.Double); DoubleUnaryOp times1_337Double = ffiTestFunctions .lookupFunction("Times1_337Double"); typedef NativeFloatUnaryOp = ffi.Float Function(ffi.Float); DoubleUnaryOp times1_337Float = ffiTestFunctions .lookupFunction("Times1_337Float"); typedef DecenaryOp = int Function( int, int, int, int, int, int, int, int, int, int); typedef NativeDecenaryOp = ffi.IntPtr Function( ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr); DecenaryOp sumManyInts = ffiTestFunctions .lookupFunction("SumManyInts"); UndenaryOp sumManyIntsOdd = ffiTestFunctions .lookupFunction("SumManyIntsOdd"); typedef NativeDoubleDecenaryOp = ffi.Double Function( ffi.Double, ffi.Double, ffi.Double, ffi.Double, ffi.Double, ffi.Double, ffi.Double, ffi.Double, ffi.Double, ffi.Double); typedef DoubleDecenaryOp = double Function(double, double, double, double, double, double, double, double, double, double); DoubleDecenaryOp sumManyDoubles = ffiTestFunctions .lookupFunction("SumManyDoubles"); typedef NativeVigesimalOp = ffi.Double Function( ffi.IntPtr, ffi.Float, ffi.IntPtr, ffi.Double, ffi.IntPtr, ffi.Float, ffi.IntPtr, ffi.Double, ffi.IntPtr, ffi.Float, ffi.IntPtr, ffi.Double, ffi.IntPtr, ffi.Float, ffi.IntPtr, ffi.Double, ffi.IntPtr, ffi.Float, ffi.IntPtr, ffi.Double); typedef VigesimalOp = double Function( int, double, int, double, int, double, int, double, int, double, int, double, int, double, int, double, int, double, int, double); VigesimalOp sumManyNumbers = ffiTestFunctions .lookupFunction("SumManyNumbers"); typedef NativeSenaryOp = ffi.Int64 Function( ffi.Int8, ffi.Int16, ffi.Int32, ffi.Uint8, ffi.Uint16, ffi.Uint32); typedef SenaryOp = int Function(int, int, int, int, int, int); SenaryOp sumSmallNumbers = ffiTestFunctions .lookupFunction("SumSmallNumbers"); typedef NativeFloatPointerToBool = ffi.Uint8 Function(ffi.Pointer); typedef FloatPointerToBool = int Function(ffi.Pointer); FloatPointerToBool isRoughly1337 = ffiTestFunctions.lookupFunction< NativeFloatPointerToBool, FloatPointerToBool>("IsRoughly1337"); typedef NativeVoidToFloat = ffi.Float Function(); typedef VoidToDouble = double Function(); VoidToDouble inventFloatValue = ffiTestFunctions .lookupFunction("InventFloatValue"); typedef NullaryOp = int Function(); typedef NativeNullaryOp64 = ffi.Int64 Function(); final minInt64 = ffiTestFunctions.lookupFunction("MinInt64"); typedef NativeNullaryOp32 = ffi.Int32 Function(); final minInt32 = ffiTestFunctions.lookupFunction("MinInt32"); typedef NativeNullaryOpDouble = ffi.Double Function(); typedef NullaryOpDbl = double Function(); final smallDouble = ffiTestFunctions .lookupFunction("SmallDouble"); typedef NativeUndenaryOp = ffi.IntPtr Function( ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr, ffi.IntPtr); typedef UndenaryOp = int Function( int, int, int, int, int, int, int, int, int, int, int); final regress37069 = ffiTestFunctions .lookupFunction("Regress37069"); """; }