Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: libscpi/inc/scpi/cc.h
- Revision:
- 0:be95bfb06686
diff -r 000000000000 -r be95bfb06686 libscpi/inc/scpi/cc.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libscpi/inc/scpi/cc.h Mon Jan 17 13:20:09 2022 +0000
@@ -0,0 +1,206 @@
+/*-
+ * BSD 2-Clause License
+ *
+ * Copyright (c) 2012-2018, Jan Breuer
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * @file cc.h
+ *
+ * @brief compiler detection
+ *
+ *
+ */
+
+#ifndef __SCPI_CC_H_
+#define __SCPI_CC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(__STDC__)
+# define C89 1
+# if defined(__STDC_VERSION__)
+# define C90 1
+# if (__STDC_VERSION__ >= 199409L)
+# define C94 1
+# endif
+# if (__STDC_VERSION__ >= 199901L)
+# define C99 1
+# endif
+# endif
+#endif
+
+#if (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 200809L) || \
+ (defined _XOPEN_SOURCE && _XOPEN_SOURCE >= 700)
+ #define HAVE_STRNDUP 1
+ #define HAVE_STRNLEN 1
+#endif
+
+#if (defined _BSD_SOURCE && _BSD_SOURCE) || \
+ (defined _XOPEN_SOURCE && _XOPEN_SOURCE >= 500) || \
+ (defined _ISOC99_SOURCE && _ISOC99_SOURCE) || \
+ (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 200112L) || \
+ C99
+ #define HAVE_SNPRINTF 1
+#endif
+
+#if (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 200112L)
+ #define HAVE_STRNCASECMP 1
+#endif
+
+#if (defined _BSD_SOURCE && _BSD_SOURCE) || \
+ (defined _SVID_SOURCE && _SVID_SOURCE) || \
+ (defined _XOPEN_SOURCE && _XOPEN_SOURCE) || \
+ (defined _ISOC99_SOURCE && _ISOC99_SOURCE) || \
+ (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 200112L) ||\
+ C99
+ #define HAVE_ISNAN 1
+#endif
+
+#if (defined _XOPEN_SOURCE && _XOPEN_SOURCE >= 600)|| \
+ (defined _ISOC99_SOURCE && _ISOC99_SOURCE) || \
+ (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 200112L) || \
+ C99
+ #define HAVE_ISFINITE 1
+ #define HAVE_SIGNBIT 1
+#endif
+
+#if (defined _XOPEN_SOURCE && XOPEN_SOURCE >= 600) || \
+ (defined _BSD_SOURCE && _BSD_SOURCE) || \
+ (defined _SVID_SOURCE && _SVID_SOURCE) || \
+ (defined _ISOC99_SOURCE && _ISOC99_SOURCE) || \
+ (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 200112L)
+ #define HAVE_STRTOLL 1
+#endif
+
+#if (defined _XOPEN_SOURCE && _XOPEN_SOURCE >= 600) || \
+ (defined _ISOC99_SOURCE && _ISOC99_SOURCE) || \
+ (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 200112L) || \
+ C99
+ #define HAVE_STRTOF 1
+#endif
+
+#if (defined _ISOC99_SOURCE && _ISOC99_SOURCE) || C99
+ #define HAVE_STDBOOL 1
+#endif
+
+/* Compiler specific */
+/* RealView/Keil ARM Compiler, e.g. Cortex-M CPUs */
+#if defined(__CC_ARM)
+#define HAVE_STRNCASECMP 1
+#endif
+
+/* National Instruments (R) CVI x86/x64 PC platform */
+#if defined(_CVI_)
+#define HAVE_STRNICMP 1
+#endif
+
+/* 8bit PIC - PIC16, etc */
+#if defined(_MPC_)
+#define HAVE_STRNICMP 1
+#endif
+
+/* PIC24 */
+#if defined(__C30__)
+#endif
+
+/* PIC32mx */
+#if defined(__C32__)
+#define HAVE_FINITE 1
+#endif
+
+/* AVR libc */
+#if defined(__AVR__)
+#include <stdlib.h>
+#define HAVE_DTOSTRE 1
+#undef HAVE_STRTOF
+#define HAVE_STRTOF 0
+#endif
+
+/* default values */
+#ifndef HAVE_STRNLEN
+#define HAVE_STRNLEN 0
+#endif
+
+#ifndef HAVE_STRDUP
+#define HAVE_STRDUP 0
+#endif
+
+#ifndef HAVE_STRNDUP
+#define HAVE_STRNDUP 0
+#endif
+
+#ifndef HAVE_STRNICMP
+#define HAVE_STRNICMP 0
+#endif
+
+#ifndef HAVE_STDBOOL
+#define HAVE_STDBOOL 0
+#endif
+
+#ifndef HAVE_SNPRINTF
+#define HAVE_SNPRINTF 0
+#endif
+
+#ifndef HAVE_STRNCASECMP
+#define HAVE_STRNCASECMP 0
+#endif
+
+#ifndef HAVE_ISNAN
+#define HAVE_ISNAN 0
+#endif
+
+#ifndef HAVE_ISFINITE
+#define HAVE_ISFINITE 0
+#endif
+
+#ifndef HAVE_FINITE
+#define HAVE_FINITE 0
+#endif
+
+#ifndef HAVE_SIGNBIT
+#define HAVE_SIGNBIT 0
+#endif
+
+#ifndef HAVE_STRTOLL
+#define HAVE_STRTOLL 0
+#endif
+
+#ifndef HAVE_STRTOF
+#define HAVE_STRTOF 0
+#endif
+
+#ifndef HAVE_DTOSTRE
+#define HAVE_DTOSTRE 0
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SCPI_CC_H_ */
+
