Linux GNU 11.4.0 Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 1 / 0 / 1
Functions: 0.0% 0 / 0 / 1
Branches: 50.0% 1 / 0 / 2

OMCompiler/Compiler/Util/FFI.mo
Line Branch Exec Source
1 /*
2 * This file is part of OpenModelica.
3 *
4 * Copyright (c) 1998-2026, Open Source Modelica Consortium (OSMC),
5 * c/o Linköpings universitet, Department of Computer and Information Science,
6 * SE-58183 Linköping, Sweden.
7 *
8 * All rights reserved.
9 *
10 * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF AGPL VERSION 3 LICENSE OR
11 * THIS OSMC PUBLIC LICENSE (OSMC-PL) VERSION 1.8.
12 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES
13 * RECIPIENT'S ACCEPTANCE OF THE OSMC PUBLIC LICENSE OR THE GNU AGPL
14 * VERSION 3, ACCORDING TO RECIPIENTS CHOICE.
15 *
16 * The OpenModelica software and the OSMC (Open Source Modelica Consortium)
17 * Public License (OSMC-PL) are obtained from OSMC, either from the above
18 * address, from the URLs:
19 * http://www.openmodelica.org or
20 * https://github.com/OpenModelica/ or
21 * http://www.ida.liu.se/projects/OpenModelica,
22 * and in the OpenModelica distribution.
23 *
24 * GNU AGPL version 3 is obtained from:
25 * https://www.gnu.org/licenses/licenses.html#GPL
26 *
27 * This program is distributed WITHOUT ANY WARRANTY; without
28 * even the implied warranty of MERCHANTABILITY or FITNESS
29 * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH
30 * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF OSMC-PL.
31 *
32 * See the full OSMC Public License conditions for more details.
33 *
34 */
35
36 encapsulated package FFI
37 import Expression = NFExpression;
38 import Type = NFType;
39
40 type ArgSpec = enumeration(
41 INPUT,
42 OUTPUT,
43 LOCAL
44 );
45
46
1/2
✓ Branch 2 taken 256 times.
✗ Branch 3 not taken.
259 function callFunction
47 "Calls the function identified by the given handle (from
48 System.lookupFunction) using the given array of arguments and the type of
49 the return value. Each argument should also have a corresponding specifier
50 in the specs array that tells whether the variable is an input, output, or
51 local variable. The return value of the called function is returned, along
52 with a list of any output values of the function."
53 input Integer fnHandle;
54 input array<Expression> args;
55 input array<ArgSpec> specs;
56 input Type returnType;
57 output Expression returnValue;
58 output list<Expression> outputArgs;
59 external "C" returnValue = FFI_callFunction(fnHandle, args, specs, returnType, outputArgs)
60 annotation(Library = "omcruntime");
61 end callFunction;
62
63 annotation(__OpenModelica_Interface="nf_frontend");
64 end FFI;
65