USRP Hardware Driver and Device Manual
Version: 4.10.0.0_release
UHD and USRP Manual
Loading...
Searching...
No Matches
config.hpp
Go to the documentation of this file.
1
//
2
// Copyright 2010-2011,2014-2016 Ettus Research LLC
3
// Copyright 2018 Ettus Research, a National Instruments Company
4
//
5
// SPDX-License-Identifier: GPL-3.0-or-later
6
//
7
8
#pragma once
9
10
#ifdef _MSC_VER
11
12
# define UHD_MSVC _MSC_VER
13
// suppress warnings
14
//# pragma warning(push)
15
//# pragma warning(disable: 4511) // copy constructor can't not be generated
16
//# pragma warning(disable: 4512) // assignment operator can't not be generated
17
//# pragma warning(disable: 4100) // unreferenced formal parameter
18
//# pragma warning(disable: 4996) // <symbol> was declared deprecated
19
# pragma warning(disable : 4355)
// 'this' : used in base member initializer list
20
//# pragma warning(disable: 4706) // assignment within conditional expression
21
# pragma warning(disable : 4251)
// class 'A<T>' needs to have dll-interface to be used
22
// by clients of class 'B'
23
//# pragma warning(disable: 4127) // conditional expression is constant
24
//# pragma warning(disable: 4290) // C++ exception specification ignored except to ...
25
//# pragma warning(disable: 4180) // qualifier applied to function type has no meaning;
26
// ignored
27
# pragma warning(disable : 4275)
// non dll-interface class ... used as base for
28
// dll-interface class ...
29
//# pragma warning(disable: 4267) // 'var' : conversion from 'size_t' to 'type', possible
30
// loss of data # pragma warning(disable: 4511) // 'class' : copy constructor could not be
31
// generated
32
# pragma warning(disable : 4250)
// 'class' : inherits 'method' via dominance
33
# pragma warning( \
34
disable : 4200)
// nonstandard extension used : zero-sized array in struct/union
35
36
// define logical operators
37
# include <ciso646>
38
39
// define ssize_t
40
# ifndef _SSIZE_T_DEFINED
41
# define _SSIZE_T_DEFINED
42
# include <BaseTsd.h>
43
typedef
SSIZE_T ssize_t;
44
# endif
/* _SSIZE_T_DEFINED */
45
46
#endif
// _MSC_VER
47
49
//
50
// \deprecated This is no longer necessary, as C and C++ now have standard
51
// ways of declaring a fallthrough.
52
#define UHD_FALLTHROUGH [[fallthrough]];
53
54
// define cross platform attribute macros
55
#if defined(UHD_MSVC)
56
# define UHD_EXPORT __declspec(dllexport)
57
# define UHD_IMPORT __declspec(dllimport)
58
# define UHD_EXPORT_HEADER
59
# define UHD_IMPORT_HEADER
60
# define UHD_INLINE __forceinline
61
# define UHD_FORCE_INLINE __forceinline
62
# define UHD_DEPRECATED __declspec(deprecated)
63
# define UHD_ALIGNED(x) __declspec(align(x))
64
# define UHD_UNUSED(x) x
65
# define UHD_FUNCTION __FUNCTION__
66
# define UHD_PRETTY_FUNCTION __FUNCSIG__
67
#elif defined(__MINGW32__)
68
# define UHD_EXPORT __declspec(dllexport)
69
# define UHD_IMPORT __declspec(dllimport)
70
# define UHD_EXPORT_HEADER
71
# define UHD_IMPORT_HEADER
72
# define UHD_INLINE inline
73
# define UHD_FORCE_INLINE inline
74
# define UHD_DEPRECATED __declspec(deprecated)
75
# define UHD_ALIGNED(x) __declspec(align(x))
76
# define UHD_UNUSED(x) x __attribute__((unused))
77
# define UHD_FUNCTION __func__
78
# define UHD_PRETTY_FUNCTION __PRETTY_FUNCTION__
79
#elif defined(__clang__)
80
# define UHD_EXPORT __attribute__((visibility("default")))
81
# define UHD_IMPORT __attribute__((visibility("default")))
82
# define UHD_EXPORT_HEADER __attribute__((visibility("default")))
83
# define UHD_IMPORT_HEADER __attribute__((visibility("default")))
84
# define UHD_INLINE inline __attribute__((always_inline))
85
# define UHD_FORCE_INLINE inline __attribute__((always_inline))
86
# define UHD_DEPRECATED __attribute__((deprecated))
87
# define UHD_ALIGNED(x) __attribute__((aligned(x)))
88
# define UHD_UNUSED(x) x __attribute__((unused))
89
# define UHD_FUNCTION __func__
90
# define UHD_PRETTY_FUNCTION __PRETTY_FUNCTION__
91
# if __clang_major__ >= 10
92
# define UHD_HAVE_WDEPRECATED_VOLATILE
93
# endif
94
#elif defined(__GNUG__) && __GNUG__ >= 4
95
# define UHD_EXPORT __attribute__((visibility("default")))
96
# define UHD_IMPORT __attribute__((visibility("default")))
97
# define UHD_EXPORT_HEADER __attribute__((visibility("default")))
98
# define UHD_IMPORT_HEADER __attribute__((visibility("default")))
99
# define UHD_INLINE inline __attribute__((always_inline))
100
# define UHD_FORCE_INLINE inline __attribute__((always_inline))
101
# define UHD_DEPRECATED __attribute__((deprecated))
102
# define UHD_ALIGNED(x) __attribute__((aligned(x)))
103
# define UHD_UNUSED(x) x __attribute__((unused))
104
# define UHD_FUNCTION __func__
105
# define UHD_PRETTY_FUNCTION __PRETTY_FUNCTION__
106
# if __GNUG__ >= 10
107
# define UHD_HAVE_WVOLATILE
108
# endif
109
#else
110
# define UHD_EXPORT
111
# define UHD_IMPORT
112
# define UHD_EXPORT_HEADER
113
# define UHD_IMPORT_HEADER
114
# define UHD_INLINE inline
115
# define UHD_FORCE_INLINE inline
116
# define UHD_DEPRECATED
117
# define UHD_ALIGNED(x)
118
# define UHD_UNUSED(x) x
119
# define UHD_FUNCTION __func__
120
# define UHD_PRETTY_FUNCTION __func__
121
#endif
122
123
// Define API declaration macro
124
//
125
// UHD_API should be used for classes/structs that
126
// have a direct cpp implementations that get directly
127
// built into a so/dylib/dll.
128
//
129
// UHD_API_HEADER should be used for classes/structs
130
// that are implemented in header only like hpp/ipp.
131
#ifdef UHD_STATIC_LIB
132
# define UHD_API
133
# define UHD_API_HEADER
134
#else
135
# ifdef UHD_DLL_EXPORTS
136
# define UHD_API UHD_EXPORT
137
# define UHD_API_HEADER UHD_EXPORT_HEADER
138
# else
139
# define UHD_API UHD_IMPORT
140
# define UHD_API_HEADER UHD_IMPORT_HEADER
141
# endif
// UHD_DLL_EXPORTS
142
#endif
// UHD_STATIC_LIB
143
144
// Platform defines for conditional parts of headers:
145
// Taken from boost/config/select_platform_config.hpp,
146
// however, we define macros, not strings for platforms.
147
#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GLIBC__)) \
148
&& !defined(_CRAYC) && !defined(__FreeBSD_kernel__) && !defined(__GNU__)
149
# define UHD_PLATFORM_LINUX
150
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
151
# define UHD_PLATFORM_WIN32
152
#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
153
# define UHD_PLATFORM_MACOS
154
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) \
155
|| defined(__FreeBSD_kernel__)
156
# define UHD_PLATFORM_BSD
157
#endif
158
159
// Define 'stringize' preprocessor macros. The stringize macro, XSTR, takes
160
// variable arguments so that it can deal with strings that contain commas.
161
// There are two different versions because MSVC handles this syntax a bit
162
// differently than other compilers.
163
#if defined(UHD_MSVC)
164
# define XSTR(x, ...) # x
165
#else
166
# define XSTR(x...) # x
167
#endif
168
169
#define STR(x) XSTR(x)
include
uhd
config.hpp
Generated by
1.13.2