1// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
5#ifndef RUNTIME_VM_COMPILER_FFI_ABI_H_
6#define RUNTIME_VM_COMPILER_FFI_ABI_H_
7
8#if defined(DART_PRECOMPILED_RUNTIME)
9#error "AOT runtime should not use compiler sources (including header files)"
10#endif // defined(DART_PRECOMPILED_RUNTIME)
11
12#include <platform/globals.h>
13
14namespace dart {
15
16namespace compiler {
17
18namespace ffi {
19
20// These ABIs should be kept in sync with pkg/vm/lib/transformations/ffi.dart.
21enum class Abi {
22 kWordSize64 = 0,
23 kWordSize32Align32 = 1,
24 kWordSize32Align64 = 2
25};
26
27// The target ABI. Defines sizes and alignment of native types.
28Abi TargetAbi();
29
30} // namespace ffi
31
32} // namespace compiler
33
34} // namespace dart
35
36#endif // RUNTIME_VM_COMPILER_FFI_ABI_H_
37