1//===- macho_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 Darwin dynamic loading features.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef ORC_RT_MACHO_PLATFORM_H
14#define ORC_RT_MACHO_PLATFORM_H
15
16#include "common.h"
17#include "executor_address.h"
18
19// Atexit functions.
20ORC_RT_INTERFACE int __orc_rt_macho_cxa_atexit(void (*func)(void *), void *arg,
21 void *dso_handle);
22ORC_RT_INTERFACE void __orc_rt_macho_cxa_finalize(void *dso_handle);
23
24// dlfcn functions.
25ORC_RT_INTERFACE const char *__orc_rt_macho_jit_dlerror();
26ORC_RT_INTERFACE void *__orc_rt_macho_jit_dlopen(const char *path, int mode);
27ORC_RT_INTERFACE int __orc_rt_macho_jit_dlclose(void *dso_handle);
28ORC_RT_INTERFACE void *__orc_rt_macho_jit_dlsym(void *dso_handle,
29 const char *symbol);
30
31namespace __orc_rt {
32namespace macho {
33
34enum dlopen_mode : int {
35 ORC_RT_RTLD_LAZY = 0x1,
36 ORC_RT_RTLD_NOW = 0x2,
37 ORC_RT_RTLD_LOCAL = 0x4,
38 ORC_RT_RTLD_GLOBAL = 0x8
39};
40
41} // end namespace macho
42} // end namespace __orc_rt
43
44#endif // ORC_RT_MACHO_PLATFORM_H
45

source code of compiler-rt/lib/orc/macho_platform.h