1e18a033bSKonstantin Ananyev
2e18a033bSKonstantin Ananyev/*
3e18a033bSKonstantin Ananyev * Copyright (C) Maxim Dounin
4e18a033bSKonstantin Ananyev * Copyright (C) Nginx, Inc.
5e18a033bSKonstantin Ananyev */
6e18a033bSKonstantin Ananyev
7e18a033bSKonstantin Ananyev
8e18a033bSKonstantin Ananyev#ifndef _NGX_DLOPEN_H_INCLUDED_
9e18a033bSKonstantin Ananyev#define _NGX_DLOPEN_H_INCLUDED_
10e18a033bSKonstantin Ananyev
11e18a033bSKonstantin Ananyev
12e18a033bSKonstantin Ananyev#include <ngx_config.h>
13e18a033bSKonstantin Ananyev#include <ngx_core.h>
14e18a033bSKonstantin Ananyev
15e18a033bSKonstantin Ananyev
16e18a033bSKonstantin Ananyev#define ngx_dlopen(path)           dlopen((char *) path, RTLD_NOW | RTLD_GLOBAL)
17e18a033bSKonstantin Ananyev#define ngx_dlopen_n               "dlopen()"
18e18a033bSKonstantin Ananyev
19e18a033bSKonstantin Ananyev#define ngx_dlsym(handle, symbol)  dlsym(handle, symbol)
20e18a033bSKonstantin Ananyev#define ngx_dlsym_n                "dlsym()"
21e18a033bSKonstantin Ananyev
22e18a033bSKonstantin Ananyev#define ngx_dlclose(handle)        dlclose(handle)
23e18a033bSKonstantin Ananyev#define ngx_dlclose_n              "dlclose()"
24e18a033bSKonstantin Ananyev
25e18a033bSKonstantin Ananyev
26e18a033bSKonstantin Ananyev#if (NGX_HAVE_DLOPEN)
27e18a033bSKonstantin Ananyevchar *ngx_dlerror(void);
28e18a033bSKonstantin Ananyev#endif
29e18a033bSKonstantin Ananyev
30e18a033bSKonstantin Ananyev
31e18a033bSKonstantin Ananyev#endif /* _NGX_DLOPEN_H_INCLUDED_ */
32