1 //===- coff_platform.h -------------------------------------------*- 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 // ORC Runtime support for dynamic loading features on COFF-based platforms.
10 //
11 //===----------------------------------------------------------------------===//
12 
13 #ifndef ORC_RT_COFF_PLATFORM_H
14 #define ORC_RT_COFF_PLATFORM_H
15 
16 #include "common.h"
17 #include "executor_address.h"
18 
19 // dlfcn functions.
20 ORC_RT_INTERFACE const char *__orc_rt_coff_jit_dlerror();
21 ORC_RT_INTERFACE void *__orc_rt_coff_jit_dlopen(const char *path, int mode);
22 ORC_RT_INTERFACE int __orc_rt_coff_jit_dlclose(void *header);
23 ORC_RT_INTERFACE void *__orc_rt_coff_jit_dlsym(void *header,
24                                                const char *symbol);
25 
26 namespace __orc_rt {
27 namespace coff {
28 
29 enum dlopen_mode : int {
30   ORC_RT_RTLD_LAZY = 0x1,
31   ORC_RT_RTLD_NOW = 0x2,
32   ORC_RT_RTLD_LOCAL = 0x4,
33   ORC_RT_RTLD_GLOBAL = 0x8
34 };
35 
36 } // end namespace coff
37 } // end namespace __orc_rt
38 
39 #endif
40