Go to the documentation of this file.
19 #ifndef GRPC_SUPPORT_PORT_PLATFORM_H
20 #define GRPC_SUPPORT_PORT_PLATFORM_H
23 #if __cplusplus >= 201402L
24 #define GRPC_DEPRECATED(reason) [[deprecated(reason)]]
26 #define GRPC_DEPRECATED(reason)
27 #endif // __cplusplus >= 201402L
32 #ifndef GPR_ABSEIL_SYNC
33 #if defined(__APPLE__)
37 #define GPR_ABSEIL_SYNC 1
39 #endif // GPR_ABSEIL_SYNC
42 #if defined(_WIN64) || defined(WIN64) || defined(_WIN32) || defined(WIN32)
43 #ifndef WIN32_LEAN_AND_MEAN
44 #define GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED
45 #define WIN32_LEAN_AND_MEAN
67 #if !defined(GRPC_DLL)
68 #if defined(GRPC_DLL_EXPORTS)
69 #define GRPC_DLL __declspec(dllexport)
70 #elif defined(GRPC_DLL_IMPORTS)
71 #define GRPC_DLL __declspec(dllimport)
74 #endif // defined(GRPC_DLL_EXPORTS)
78 #if !defined(GRPCXX_DLL)
79 #if defined(GRPCXX_DLL_EXPORTS)
80 #define GRPCXX_DLL __declspec(dllexport)
81 #elif defined(GRPCXX_DLL_IMPORTS)
82 #define GRPCXX_DLL __declspec(dllimport)
85 #endif // defined(GRPCXX_DLL_EXPORTS)
90 #if defined(GPR_DLL_EXPORTS)
91 #define GPR_DLL __declspec(dllexport)
92 #elif defined(GPR_DLL_IMPORTS)
93 #define GPR_DLL __declspec(dllimport)
96 #endif // defined(GPR_DLL_EXPORTS)
100 #define GRPC_NOMINMX_WAS_NOT_DEFINED
108 "Please compile grpc with _WIN32_WINNT of at least 0x600 (aka Windows Vista)"
110 #if (_WIN32_WINNT < 0x0600)
112 "Please compile grpc with _WIN32_WINNT of at least 0x600 (aka Windows Vista)"
115 #ifdef GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED
116 #undef GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED
117 #undef WIN32_LEAN_AND_MEAN
120 #ifdef GRPC_NOMINMAX_WAS_NOT_DEFINED
121 #undef GRPC_NOMINMAX_WAS_NOT_DEFINED
135 #if !defined(GPR_NO_AUTODETECT_PLATFORM)
136 #if defined(_WIN64) || defined(WIN64) || defined(_WIN32) || defined(WIN32)
137 #if defined(_WIN64) || defined(WIN64)
138 #define GPR_ARCH_64 1
140 #define GPR_ARCH_32 1
142 #define GPR_PLATFORM_STRING "windows"
143 #define GPR_WINDOWS 1
144 #define GPR_WINDOWS_SUBPROCESS 1
145 #define GPR_WINDOWS_ENV
147 #define GPR_GETPID_IN_UNISTD_H 1
148 #define GPR_MSYS_TMPFILE
149 #define GPR_POSIX_LOG
150 #define GPR_POSIX_STRING
151 #define GPR_POSIX_TIME
153 #define GPR_GETPID_IN_PROCESS_H 1
154 #define GPR_WINDOWS_TMPFILE
155 #define GPR_WINDOWS_LOG
156 #define GPR_WINDOWS_CRASH_HANDLER 1
157 #define GPR_WINDOWS_STAT
158 #define GPR_WINDOWS_STRING
159 #define GPR_WINDOWS_TIME
162 #define GPR_GCC_ATOMIC 1
164 #define GPR_WINDOWS_ATOMIC 1
166 #elif defined(ANDROID) || defined(__ANDROID__)
167 #define GPR_PLATFORM_STRING "android"
168 #define GPR_ANDROID 1
169 #ifndef __ANDROID_API__
170 #error "__ANDROID_API__ must be defined for Android builds."
172 #if __ANDROID_API__ < 21
173 #error "Requires Android API v21 and above"
175 #define GPR_SUPPORT_BINDER_TRANSPORT 1
181 #define GPR_ARCH_64 1
183 #define GPR_ARCH_32 1
185 #define GPR_CPU_POSIX 1
186 #define GPR_GCC_SYNC 1
187 #define GPR_POSIX_ENV 1
188 #define GPR_POSIX_TMPFILE 1
189 #define GPR_POSIX_STAT 1
190 #define GPR_ANDROID_LOG 1
191 #define GPR_POSIX_STRING 1
192 #define GPR_POSIX_SUBPROCESS 1
193 #define GPR_POSIX_SYNC 1
194 #define GPR_POSIX_TIME 1
195 #define GPR_HAS_PTHREAD_H 1
196 #define GPR_GETPID_IN_UNISTD_H 1
197 #define GPR_SUPPORT_CHANNELS_FROM_FD 1
198 #elif defined(__linux__)
199 #define GPR_PLATFORM_STRING "linux"
203 #ifndef _DEFAULT_SOURCE
204 #define _DEFAULT_SOURCE
209 #include <features.h>
210 #define GPR_CPU_LINUX 1
211 #define GPR_GCC_ATOMIC 1
213 #define GPR_LINUX_LOG
214 #define GPR_SUPPORT_CHANNELS_FROM_FD 1
215 #define GPR_LINUX_ENV 1
216 #define GPR_POSIX_TMPFILE 1
217 #define GPR_POSIX_STAT 1
218 #define GPR_POSIX_STRING 1
219 #define GPR_POSIX_SUBPROCESS 1
220 #define GPR_POSIX_SYNC 1
221 #define GPR_POSIX_TIME 1
222 #define GPR_HAS_PTHREAD_H 1
223 #define GPR_GETPID_IN_UNISTD_H 1
225 #define GPR_ARCH_64 1
227 #define GPR_ARCH_32 1
230 #define GPR_POSIX_CRASH_HANDLER 1
231 #ifdef __GLIBC_PREREQ
232 #if __GLIBC_PREREQ(2, 12)
233 #define GPR_LINUX_PTHREAD_NAME 1
237 #define GPR_LINUX_PTHREAD_NAME 1
239 #include <linux/version.h>
241 #define GPR_MUSL_LIBC_COMPAT 1
243 #elif defined(__ASYLO__)
244 #define GPR_ARCH_64 1
245 #define GPR_CPU_POSIX 1
246 #define GPR_PLATFORM_STRING "asylo"
247 #define GPR_GCC_SYNC 1
248 #define GPR_POSIX_STAT 1
249 #define GPR_POSIX_SYNC 1
250 #define GPR_POSIX_STRING 1
251 #define GPR_POSIX_LOG 1
252 #define GPR_POSIX_TIME 1
253 #define GPR_POSIX_ENV 1
255 #define GRPC_POSIX_SOCKET 1
256 #define GRPC_POSIX_SOCKETADDR
257 #define GRPC_POSIX_SOCKETUTILS 1
258 #define GRPC_TIMER_USE_GENERIC 1
259 #define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1
260 #define GRPC_POSIX_WAKEUP_FD 1
261 #define GRPC_HAVE_MSG_NOSIGNAL 1
262 #define GRPC_HAVE_UNIX_SOCKET 1
264 #define GPR_NO_AUTODETECT_PLATFORM 1
265 #elif defined(__APPLE__)
266 #include <Availability.h>
267 #include <TargetConditionals.h>
272 #define GPR_PLATFORM_STRING "ios"
273 #define GPR_CPU_IPHONE 1
274 #define GRPC_CFSTREAM 1
278 #define GPR_PLATFORM_STRING "osx"
279 #define GPR_CPU_POSIX 1
280 #define GPR_POSIX_CRASH_HANDLER 1
283 #define GPR_GCC_ATOMIC 1
284 #define GPR_POSIX_LOG 1
285 #define GPR_POSIX_ENV 1
286 #define GPR_POSIX_TMPFILE 1
287 #define GPR_POSIX_STAT 1
288 #define GPR_POSIX_STRING 1
289 #define GPR_POSIX_SUBPROCESS 1
290 #define GPR_POSIX_SYNC 1
291 #define GPR_POSIX_TIME 1
292 #define GPR_HAS_PTHREAD_H 1
293 #define GPR_GETPID_IN_UNISTD_H 1
294 #ifndef GRPC_CFSTREAM
295 #define GPR_SUPPORT_CHANNELS_FROM_FD 1
298 #define GPR_ARCH_64 1
300 #define GPR_ARCH_32 1
302 #elif defined(__FreeBSD__)
303 #define GPR_PLATFORM_STRING "freebsd"
307 #define GPR_FREEBSD 1
308 #define GPR_CPU_POSIX 1
309 #define GPR_GCC_ATOMIC 1
310 #define GPR_POSIX_LOG 1
311 #define GPR_POSIX_ENV 1
312 #define GPR_POSIX_TMPFILE 1
313 #define GPR_POSIX_STAT 1
314 #define GPR_POSIX_STRING 1
315 #define GPR_POSIX_SUBPROCESS 1
316 #define GPR_POSIX_SYNC 1
317 #define GPR_POSIX_TIME 1
318 #define GPR_HAS_PTHREAD_H 1
319 #define GPR_GETPID_IN_UNISTD_H 1
320 #define GPR_SUPPORT_CHANNELS_FROM_FD 1
322 #define GPR_ARCH_64 1
324 #define GPR_ARCH_32 1
326 #elif defined(__OpenBSD__)
327 #define GPR_PLATFORM_STRING "openbsd"
331 #define GPR_OPENBSD 1
332 #define GPR_CPU_POSIX 1
333 #define GPR_GCC_ATOMIC 1
334 #define GPR_POSIX_LOG 1
335 #define GPR_POSIX_ENV 1
336 #define GPR_POSIX_TMPFILE 1
337 #define GPR_POSIX_STAT 1
338 #define GPR_POSIX_STRING 1
339 #define GPR_POSIX_SUBPROCESS 1
340 #define GPR_POSIX_SYNC 1
341 #define GPR_POSIX_TIME 1
342 #define GPR_HAS_PTHREAD_H 1
343 #define GPR_GETPID_IN_UNISTD_H 1
344 #define GPR_SUPPORT_CHANNELS_FROM_FD 1
346 #define GPR_ARCH_64 1
348 #define GPR_ARCH_32 1
350 #elif defined(__sun) && defined(__SVR4)
351 #define GPR_PLATFORM_STRING "solaris"
352 #define GPR_SOLARIS 1
353 #define GPR_CPU_POSIX 1
354 #define GPR_GCC_ATOMIC 1
355 #define GPR_POSIX_LOG 1
356 #define GPR_POSIX_ENV 1
357 #define GPR_POSIX_TMPFILE 1
358 #define GPR_POSIX_STAT 1
359 #define GPR_POSIX_STRING 1
360 #define GPR_POSIX_SUBPROCESS 1
361 #define GPR_POSIX_SYNC 1
362 #define GPR_POSIX_TIME 1
363 #define GPR_HAS_PTHREAD_H 1
364 #define GPR_GETPID_IN_UNISTD_H 1
366 #define GPR_ARCH_64 1
368 #define GPR_ARCH_32 1
371 #define GPR_PLATFORM_STRING "aix"
376 #define GPR_CPU_POSIX 1
377 #define GPR_GCC_ATOMIC 1
378 #define GPR_POSIX_LOG 1
379 #define GPR_POSIX_ENV 1
380 #define GPR_POSIX_TMPFILE 1
381 #define GPR_POSIX_STAT 1
382 #define GPR_POSIX_STRING 1
383 #define GPR_POSIX_SUBPROCESS 1
384 #define GPR_POSIX_SYNC 1
385 #define GPR_POSIX_TIME 1
386 #define GPR_HAS_PTHREAD_H 1
387 #define GPR_GETPID_IN_UNISTD_H 1
389 #define GPR_ARCH_64 1
391 #define GPR_ARCH_32 1
393 #elif defined(__NetBSD__)
396 #define GPR_PLATFORM_STRING "netbsd"
401 #define GPR_CPU_POSIX 1
402 #define GPR_GCC_ATOMIC 1
403 #define GPR_GCC_TLS 1
404 #define GPR_POSIX_LOG 1
405 #define GPR_POSIX_ENV 1
406 #define GPR_POSIX_TMPFILE 1
407 #define GPR_POSIX_STAT 1
408 #define GPR_POSIX_STRING 1
409 #define GPR_POSIX_SUBPROCESS 1
410 #define GPR_POSIX_SYNC 1
411 #define GPR_POSIX_TIME 1
412 #define GPR_GETPID_IN_UNISTD_H 1
413 #define GPR_SUPPORT_CHANNELS_FROM_FD 1
415 #define GPR_ARCH_64 1
417 #define GPR_ARCH_32 1
419 #elif defined(__native_client__)
420 #define GPR_PLATFORM_STRING "nacl"
424 #ifndef _DEFAULT_SOURCE
425 #define _DEFAULT_SOURCE
431 #define GPR_CPU_POSIX 1
432 #define GPR_GCC_ATOMIC 1
433 #define GPR_POSIX_LOG 1
434 #define GPR_POSIX_ENV 1
435 #define GPR_POSIX_TMPFILE 1
436 #define GPR_POSIX_STAT 1
437 #define GPR_POSIX_STRING 1
438 #define GPR_POSIX_SUBPROCESS 1
439 #define GPR_POSIX_SYNC 1
440 #define GPR_POSIX_TIME 1
441 #define GPR_HAS_PTHREAD_H 1
442 #define GPR_GETPID_IN_UNISTD_H 1
444 #define GPR_ARCH_64 1
446 #define GPR_ARCH_32 1
448 #elif defined(__Fuchsia__)
450 #define GPR_FUCHSIA 1
451 #define GPR_ARCH_64 1
452 #define GPR_PLATFORM_STRING "fuchsia"
453 #include <features.h>
456 #define GPR_MUSL_LIBC_COMPAT 1
457 #define GPR_CPU_POSIX 1
458 #define GPR_GCC_ATOMIC 1
459 #define GPR_POSIX_LOG 1
460 #define GPR_POSIX_SYNC 1
461 #define GPR_POSIX_ENV 1
462 #define GPR_POSIX_TMPFILE 1
463 #define GPR_POSIX_STAT 1
464 #define GPR_POSIX_SUBPROCESS 1
465 #define GPR_POSIX_SYNC 1
466 #define GPR_POSIX_STRING 1
467 #define GPR_POSIX_TIME 1
468 #define GPR_HAS_PTHREAD_H 1
469 #define GPR_GETPID_IN_UNISTD_H 1
470 #define GRPC_ROOT_PEM_PATH "/config/ssl/cert.pem"
471 #elif defined(__HAIKU__)
472 #define GPR_PLATFORM_STRING "haiku"
479 #define GPR_CPU_POSIX 1
480 #define GPR_GCC_ATOMIC 1
481 #define GPR_POSIX_LOG 1
482 #define GPR_POSIX_ENV 1
483 #define GPR_POSIX_TMPFILE 1
484 #define GPR_POSIX_STAT 1
485 #define GPR_POSIX_STRING 1
486 #define GPR_POSIX_SUBPROCESS 1
487 #define GPR_POSIX_SYNC 1
488 #define GPR_POSIX_TIME 1
489 #define GPR_HAS_PTHREAD_H 1
490 #define GPR_GETPID_IN_UNISTD_H 1
491 #define GPR_SUPPORT_CHANNELS_FROM_FD 1
493 #define GPR_ARCH_64 1
495 #define GPR_ARCH_32 1
497 #elif defined(__QNX__) || defined(__QNXNTO__)
498 #define GPR_PLATFORM_STRING "qnx"
499 #define GPR_CPU_POSIX 1
500 #define GPR_GCC_ATOMIC 1
501 #define GPR_POSIX_LOG 1
502 #define GPR_POSIX_ENV 1
503 #define GPR_POSIX_TMPFILE 1
504 #define GPR_POSIX_STAT 1
505 #define GPR_POSIX_STRING 1
506 #define GPR_POSIX_SYNC 1
507 #define GPR_POSIX_TIME 1
508 #define GPR_HAS_PTHREAD_H 1
509 #define GPR_GETPID_IN_UNISTD_H 1
511 #define GPR_ARCH_64 1
513 #define GPR_ARCH_32 1
516 #error "Could not auto-detect platform"
520 #if defined(__has_include)
521 #if __has_include(<atomic>)
522 #define GRPC_HAS_CXX11_ATOMIC
526 #ifndef GPR_PLATFORM_STRING
527 #warning "GPR_PLATFORM_STRING not auto-detected"
528 #define GPR_PLATFORM_STRING "unknown"
532 #undef GPR_FORBID_UNREACHABLE_CODE
533 #define GPR_FORBID_UNREACHABLE_CODE 1
538 typedef __int8 int8_t;
539 typedef __int16 int16_t;
540 typedef __int32 int32_t;
541 typedef __int64 int64_t;
542 typedef unsigned __int8 uint8_t;
543 typedef unsigned __int16 uint16_t;
544 typedef unsigned __int32 uint32_t;
545 typedef unsigned __int64 uint64_t;
565 #define GPR_CYCLE_COUNTER_FALLBACK 1
567 #define GPR_CYCLE_COUNTER_FALLBACK 1
571 #ifndef GPR_CACHELINE_SIZE_LOG
572 #if defined(__i386__) || defined(__x86_64__)
573 #define GPR_CACHELINE_SIZE_LOG 6
575 #ifndef GPR_CACHELINE_SIZE_LOG
578 #define GPR_CACHELINE_SIZE_LOG 6
582 #define GPR_CACHELINE_SIZE (1 << GPR_CACHELINE_SIZE_LOG)
585 #if defined(GPR_GCC_ATOMIC) && !defined(__ATOMIC_RELAXED)
586 #undef GPR_GCC_ATOMIC
587 #define GPR_GCC_SYNC 1
591 #if defined(GPR_GCC_ATOMIC) + defined(GPR_GCC_SYNC) + \
592 defined(GPR_WINDOWS_ATOMIC) != \
594 #error Must define exactly one of GPR_GCC_ATOMIC, GPR_GCC_SYNC, GPR_WINDOWS_ATOMIC
597 #if defined(GPR_ARCH_32) + defined(GPR_ARCH_64) != 1
598 #error Must define exactly one of GPR_ARCH_32, GPR_ARCH_64
601 #if defined(GPR_CPU_LINUX) + defined(GPR_CPU_POSIX) + defined(GPR_WINDOWS) + \
602 defined(GPR_CPU_IPHONE) + defined(GPR_CPU_CUSTOM) != \
604 #error Must define exactly one of GPR_CPU_LINUX, GPR_CPU_POSIX, GPR_WINDOWS, GPR_CPU_IPHONE, GPR_CPU_CUSTOM
609 #define GPR_MAX_ALIGNMENT 16
615 #ifndef GRPC_IF_NAMETOINDEX
616 #define GRPC_IF_NAMETOINDEX 1
620 #if defined(__GNUC__) && !defined(__MINGW32__)
621 #define GRPC_UNUSED __attribute__((unused))
627 #ifndef GPR_PRINT_FORMAT_CHECK
629 #define GPR_PRINT_FORMAT_CHECK(FORMAT_STR, ARGS) \
630 __attribute__((format(printf, FORMAT_STR, ARGS)))
632 #define GPR_PRINT_FORMAT_CHECK(FORMAT_STR, ARGS)
636 #ifndef GPR_HAS_CPP_ATTRIBUTE
637 #ifdef __has_cpp_attribute
638 #define GPR_HAS_CPP_ATTRIBUTE(a) __has_cpp_attribute(a)
640 #define GPR_HAS_CPP_ATTRIBUTE(a) 0
644 #if defined(__GNUC__) && !defined(__MINGW32__)
645 #define GPR_ALIGN_STRUCT(n) __attribute__((aligned(n)))
647 #define GPR_ALIGN_STRUCT(n)
650 #ifndef GRPC_MUST_USE_RESULT
651 #if GPR_HAS_CPP_ATTRIBUTE(nodiscard)
652 #define GRPC_MUST_USE_RESULT [[nodiscard]]
653 #elif defined(__GNUC__) && !defined(__MINGW32__)
654 #define GRPC_MUST_USE_RESULT __attribute__((warn_unused_result))
656 #define GRPC_MUST_USE_RESULT
658 #ifdef USE_STRICT_WARNING
667 #define GRPC_MUST_USE_RESULT_WHEN_USE_STRICT_WARNING GRPC_MUST_USE_RESULT
669 #define GRPC_MUST_USE_RESULT_WHEN_USE_STRICT_WARNING
673 #ifndef GRPC_REINITIALIZES
674 #if defined(__clang__)
675 #if GPR_HAS_CPP_ATTRIBUTE(clang::reinitializes)
676 #define GRPC_REINITIALIZES [[clang::reinitializes]]
678 #define GRPC_REINITIALIZES
681 #define GRPC_REINITIALIZES
685 #ifndef GPR_HAS_ATTRIBUTE
686 #ifdef __has_attribute
687 #define GPR_HAS_ATTRIBUTE(a) __has_attribute(a)
689 #define GPR_HAS_ATTRIBUTE(a) 0
693 #if GPR_HAS_ATTRIBUTE(noreturn)
694 #define GPR_ATTRIBUTE_NORETURN __attribute__((noreturn))
696 #define GPR_ATTRIBUTE_NORETURN
699 #if defined(GPR_FORBID_UNREACHABLE_CODE) && GPR_FORBID_UNREACHABLE_CODE
700 #define GPR_UNREACHABLE_CODE(STATEMENT)
710 #define GPR_UNREACHABLE_CODE(STATEMENT) \
712 gpr_unreachable_code(#STATEMENT, __FILE__, __LINE__); \
722 #define GRPCAPI GPRAPI
726 #define CENSUSAPI GRPCAPI
729 #ifndef GPR_HAS_FEATURE
731 #define GPR_HAS_FEATURE(a) __has_feature(a)
733 #define GPR_HAS_FEATURE(a) 0
737 #ifndef GPR_ATTRIBUTE_NOINLINE
738 #if GPR_HAS_ATTRIBUTE(noinline) || (defined(__GNUC__) && !defined(__clang__))
739 #define GPR_ATTRIBUTE_NOINLINE __attribute__((noinline))
740 #define GPR_HAS_ATTRIBUTE_NOINLINE 1
742 #define GPR_ATTRIBUTE_NOINLINE
746 #ifndef GPR_NO_UNIQUE_ADDRESS
747 #if GPR_HAS_CPP_ATTRIBUTE(no_unique_address)
748 #define GPR_NO_UNIQUE_ADDRESS [[no_unique_address]]
750 #define GPR_NO_UNIQUE_ADDRESS
754 #ifndef GRPC_DEPRECATED
755 #if GPR_HAS_CPP_ATTRIBUTE(deprecated)
756 #define GRPC_DEPRECATED(reason) [[deprecated(reason)]]
758 #define GRPC_DEPRECATED(reason)
762 #ifndef GPR_ATTRIBUTE_WEAK
765 #if (GPR_HAS_ATTRIBUTE(weak) || (defined(__GNUC__) && !defined(__clang__))) && \
766 !(defined(__llvm__) && defined(_WIN32))
767 #define GPR_ATTRIBUTE_WEAK __attribute__((weak))
768 #define GPR_HAS_ATTRIBUTE_WEAK 1
770 #define GPR_ATTRIBUTE_WEAK
774 #ifndef GPR_ATTRIBUTE_NO_TSAN
775 #if GPR_HAS_FEATURE(thread_sanitizer)
776 #define GPR_ATTRIBUTE_NO_TSAN __attribute__((no_sanitize("thread")))
778 #ifndef GPR_ATTRIBUTE_NO_TSAN
779 #define GPR_ATTRIBUTE_NO_TSAN
784 #ifndef GRPC_TSAN_SUPPRESSED
785 #if defined(__SANITIZE_THREAD__)
786 #define GRPC_TSAN_ENABLED
787 #elif GPR_HAS_FEATURE(thread_sanitizer)
788 #define GRPC_TSAN_ENABLED
793 #ifndef GRPC_ASAN_SUPPRESSED
794 #if defined(__SANITIZE_ADDRESS__)
795 #define GRPC_ASAN_ENABLED
796 #elif GPR_HAS_FEATURE(address_sanitizer)
797 #define GRPC_ASAN_ENABLED
802 #ifndef GRPC_ALLOW_EXCEPTIONS
804 #if defined(_MSC_VER) && defined(_CPPUNWIND)
805 #define GRPC_ALLOW_EXCEPTIONS 1
806 #elif defined(__EXCEPTIONS)
807 #define GRPC_ALLOW_EXCEPTIONS 1
809 #define GRPC_ALLOW_EXCEPTIONS 0
813 #define GRPC_ALLOW_EXCEPTIONS 1
815 #define GRPC_ALLOW_EXCEPTIONS 0
824 #define GPR_LIKELY(x) __builtin_expect((x), 1)
825 #define GPR_UNLIKELY(x) __builtin_expect((x), 0)
827 #define GPR_LIKELY(x) (x)
828 #define GPR_UNLIKELY(x) (x)
831 #ifndef __STDC_FORMAT_MACROS
832 #define __STDC_FORMAT_MACROS
840 #ifndef GPR_MSVC_EMPTY_BASE_CLASS_WORKAROUND
842 #define GPR_MSVC_EMPTY_BASE_CLASS_WORKAROUND __declspec(empty_bases)
844 #define GPR_MSVC_EMPTY_BASE_CLASS_WORKAROUND
848 #define GRPC_CALLBACK_API_NONEXPERIMENTAL
855 #if __clang__ && __clang_major__ <= 12 && __has_feature(memory_sanitizer)
856 #undef GPR_NO_UNIQUE_ADDRESS
857 #define GPR_NO_UNIQUE_ADDRESS
const char * file
Definition: log.h:76
int line
Definition: log.h:77