 |
FreeRDP
|
Loading...
Searching...
No Matches
23#include <winpr/winpr.h>
24#include <winpr/wlog.h>
25#include <winpr/platform.h>
30#define FREERDP_ENTRY_POINT(fkt) \
35#define FREERDP_CC __cdecl
40#if defined _WIN32 || defined __CYGWIN__
43#define FREERDP_API __attribute__((dllexport))
45#define FREERDP_API __declspec(dllexport)
49#define FREERDP_API __attribute__((dllimport))
51#define FREERDP_API __declspec(dllimport)
55#if defined(__GNUC__) && (__GNUC__ >= 4)
56#if defined(__cplusplus) && (__cplusplus >= 201703L)
57#define FREERDP_API [[gnu::visibility("default")]]
58#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202311L)
59#define FREERDP_API [[gnu::visibility("default")]]
61#define FREERDP_API __attribute__((visibility("default")))
68#if defined(EXPORT_ALL_SYMBOLS)
69#define FREERDP_LOCAL FREERDP_API
71#if defined _WIN32 || defined __CYGWIN__
74#if defined(__GNUC__) && (__GNUC__ >= 4)
75#if defined(__cplusplus) && (__cplusplus >= 201703L)
76#define FREERDP_LOCAL [[gnu::visibility("hidden")]]
77#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202311L)
78#define FREERDP_LOCAL [[gnu::visibility("hidden")]]
80#define FREERDP_LOCAL __attribute__((visibility("hidden")))
88#define IFCALL(_cb, ...) \
94 WLog_VRB("com.freerdp.api", "IFCALL(" #_cb ") == nullptr"); \
96#define IFCALLRET(_cb, _ret, ...) \
100 _ret = _cb(__VA_ARGS__); \
102 WLog_VRB("com.freerdp.api", "IFCALLRET(" #_cb ") == nullptr"); \
105#if defined(__GNUC__) || defined(__clang__)
106#define IFCALLRESULT(_default_return, _cb, ...) \
108 if (_cb == nullptr) \
110 WLog_VRB("com.freerdp.api", "IFCALLRESULT(" #_cb ") == nullptr"); \
112 ((_cb != nullptr) ? _cb(__VA_ARGS__) : (_default_return)); \
115#define IFCALLRESULT(_default_return, _cb, ...) \
116 ((_cb != nullptr) ? _cb(__VA_ARGS__) : (_default_return))
119#define ALIGN64 DECLSPEC_ALIGN(8)