Warning: This file is not a C or C++ file. It does not have highlighting.

1//===-- OpenMP/InteropAPI.h - OpenMP interoperability types and API - C++ -===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9//===----------------------------------------------------------------------===//
10
11#ifndef OMPTARGET_OPENMP_INTEROP_API_H
12#define OMPTARGET_OPENMP_INTEROP_API_H
13
14#include "omp.h"
15
16#include "omptarget.h"
17
18extern "C" {
19
20typedef enum kmp_interop_type_t {
21 kmp_interop_type_unknown = -1,
22 kmp_interop_type_platform,
23 kmp_interop_type_device,
24 kmp_interop_type_tasksync,
25} kmp_interop_type_t;
26
27/// The interop value type, aka. the interop object.
28typedef struct omp_interop_val_t {
29 /// Device and interop-type are determined at construction time and fix.
30 omp_interop_val_t(intptr_t device_id, kmp_interop_type_t interop_type)
31 : interop_type(interop_type), device_id(device_id) {}
32 const char *err_str = nullptr;
33 __tgt_async_info *async_info = nullptr;
34 __tgt_device_info device_info;
35 const kmp_interop_type_t interop_type;
36 const intptr_t device_id;
37 const omp_foreign_runtime_ids_t vendor_id = cuda;
38 const intptr_t backend_type_id = omp_interop_backend_type_cuda_1;
39} omp_interop_val_t;
40
41} // extern "C"
42
43#endif // OMPTARGET_OPENMP_INTEROP_API_H
44

Warning: This file is not a C or C++ file. It does not have highlighting.

source code of offload/include/OpenMP/InteropAPI.h