EPICS Base
7.0.5.1
epicsExport.h
Go to the documentation of this file.
1
/*************************************************************************\
2
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
3
* National Laboratory.
4
* Copyright (c) 2002 The Regents of the University of California, as
5
* Operator of Los Alamos National Laboratory.
6
* SPDX-License-Identifier: EPICS
7
* EPICS Base is distributed subject to a Software License Agreement found
8
* in file LICENSE that is included with this distribution.
9
\*************************************************************************/
10
11
#ifndef INC_epicsExport_H
12
#define INC_epicsExport_H
13
29
#define epicsExportSharedSymbols
30
#include <
shareLib.h
>
31
32
#ifdef __cplusplus
33
extern
"C"
{
34
#endif
35
36
typedef
void (*REGISTRAR)(void);
37
38
#define EPICS_EXPORT_POBJ(typ, obj) pvar_ ## typ ## _ ## obj
39
#define EPICS_EXPORT_PFUNC(fun) EPICS_EXPORT_POBJ(func, fun)
40
75
#define epicsExportAddress(typ, obj) \
76
epicsShareExtern typ *EPICS_EXPORT_POBJ(typ,obj); \
77
epicsShareDef typ *EPICS_EXPORT_POBJ(typ, obj) = (typ *) (char *) &obj
78
94
#define epicsExportRegistrar(fun) \
95
epicsShareFunc REGISTRAR EPICS_EXPORT_PFUNC(fun) = (REGISTRAR) &fun
96
111
#define epicsRegisterFunction(fun) \
112
static void register_func_ ## fun(void) \
113
{ \
114
registryFunctionAdd(#fun, (REGISTRYFUNCTION) fun); \
115
} \
116
epicsExportRegistrar(register_func_ ## fun)
117
118
#ifdef __cplusplus
119
}
120
#endif
121
122
#endif
/* INC_epicsExport_H */
shareLib.h
Mark external symbols and entry points for shared libraries.
Generated on Sun Mar 21 2021 16:10:18 for EPICS Base by
1.8.13