summaryrefslogtreecommitdiffstats
path: root/util/include/axutil_utils_defines.h
diff options
context:
space:
mode:
Diffstat (limited to 'util/include/axutil_utils_defines.h')
-rw-r--r--util/include/axutil_utils_defines.h226
1 files changed, 226 insertions, 0 deletions
diff --git a/util/include/axutil_utils_defines.h b/util/include/axutil_utils_defines.h
new file mode 100644
index 0000000..c12c842
--- /dev/null
+++ b/util/include/axutil_utils_defines.h
@@ -0,0 +1,226 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXUTIL_UTILS_DEFINES_H
+#define AXUTIL_UTILS_DEFINES_H
+
+#include <stddef.h>
+
+#if !defined(_WIN32)
+#include <stdint.h>
+#endif
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#if defined(_WIN32) && !defined(AXIS2_SKIP_INT_TYPEDEFS)
+ /**
+ * ANSI Type definitions for Windows
+ */
+ typedef unsigned __int8 uint8_t;
+ typedef __int8 int8_t;
+ typedef unsigned __int16 uint16_t;
+ typedef __int16 int16_t;
+ typedef unsigned __int32 uint32_t;
+ typedef __int32 int32_t;
+ typedef unsigned __int64 uint64_t;
+ typedef __int64 int64_t;
+#endif
+
+/**
+ * Definition of format specifiers
+ * for printf family of functions
+ */
+
+#if defined(_WIN32)
+#define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%I64d"
+#define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%I64u"
+#define AXIS2_PRINTF_INT32_FORMAT_SPECIFIER "%I32d"
+#define AXIS2_PRINTF_UINT32_FORMAT_SPECIFIER "%I32u"
+#else
+#if __WORDSIZE == 64
+#define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%ld"
+#define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%lu"
+#else
+#define AXIS2_PRINTF_INT64_FORMAT_SPECIFIER "%lld"
+#define AXIS2_PRINTF_UINT64_FORMAT_SPECIFIER "%llu"
+#endif
+#define AXIS2_PRINTF_INT32_FORMAT_SPECIFIER "%d"
+#define AXIS2_PRINTF_UINT32_FORMAT_SPECIFIER "%u"
+#endif
+
+ /**
+ * Type definitions
+ */
+ typedef char axis2_char_t;
+ typedef int axis2_bool_t;
+ typedef int axis2_status_t;
+ typedef int axis2_scope_t;
+ typedef unsigned int axis2_ssize_t;
+ typedef char axis2_byte_t;
+ typedef unsigned char axis2_unsigned_byte_t;
+
+#define AXIS2_STRING(s) s
+
+#define AXIS2_CHAR(c) c
+
+#define AXIS2_CRLF_LENGTH 2
+
+#define AXIS2_CRLF "\r\n"
+
+ /* These constant definitions should later be moved to platform dependant
+ * files
+ */
+
+#define AXIS2_EOLN '\0'
+
+ /**
+ * Boolean values
+ */
+#define AXIS2_TRUE 1
+#define AXIS2_FALSE 0
+
+ /**
+ * Exporting
+ */
+#if defined(_WIN32) && !defined(AXIS2_DECLARE_STATIC)
+#define AXIS2_EXPORT __declspec(dllexport)
+#else
+#define AXIS2_EXPORT
+#endif
+
+ /**
+ * Importing
+ */
+#if defined(_WIN32)
+#define AXIS2_IMPORT __declspec(dllimport)
+#else
+#define AXIS2_IMPORT
+#endif
+
+ /**
+ * Calling Conventions
+ */
+#if defined(__GNUC__)
+#if defined(__i386)
+#define AXIS2_CALL __attribute__((cdecl))
+#define AXIS2_WUR __attribute__((warn_unused_result))
+#else
+#define AXIS2_CALL
+#define AXIS2_WUR
+
+
+#endif
+#else
+#if defined(__unix)
+#define AXIS2_CALL
+#define AXIS2_WUR
+
+
+#else /* WIN32 */
+#define AXIS2_CALL __stdcall
+#define AXIS2_WUR
+#endif
+#endif
+#define AXIS2_THREAD_FUNC AXIS2_CALL
+
+
+#ifdef DOXYGEN
+
+ /* define these just so doxygen documents them */
+
+ /**
+ * AXIS2_DECLARE_STATIC is defined when including Axis2's Core headers,
+ * to provide static linkage when the dynamic library may be unavailable.
+ *
+ * @see AXIS2_DECLARE_EXPORT
+ *
+ * AXIS2_DECLARE_STATIC and AXIS2_DECLARE_EXPORT are left undefined when
+ * including Axis2's Core headers, to import and link the symbols from the
+ * dynamic Axis2 Core library and assure appropriate indirection and calling
+ * conventions at compile time.
+ */
+# define AXIS2_DECLARE_STATIC
+
+ /**
+ * AXIS2_DECLARE_EXPORT is defined when building the Axis2 Core dynamic
+ * library, so that all public symbols are exported.
+ *
+ * @see AXIS2_DECLARE_STATIC
+ */
+# define AXIS2_DECLARE_EXPORT
+
+#endif /* def DOXYGEN */
+
+#if !defined(_WIN32)
+
+ /**
+ * Axis2 Core functions are declared with AXIS2_EXTERN AXIS2_CALL
+
+ , so they may
+ * use the most appropriate calling convention. Other
+ * Core functions with variable arguments must use AXIS2_DECLARE_NONSTD().
+ * @code
+ * AXIS2_EXTERN rettype) axis2_func(args AXIS2_CALL
+
+
+ * @endcode
+ */
+#define AXIS2_EXTERN
+
+ /**
+ * Axis2 Core variable argument and hook functions are declared with
+ * AXIS2_DECLARE_NONSTD(), as they must use the C language calling convention.
+ * @see AXIS2_DECLARE
+ * @code
+ * AXIS2_DECLARE_NONSTD(rettype) axis2_func(args [...])
+ * @endcode
+ */
+#define AXIS2_DECLARE_NONSTD(type) type
+
+ /**
+ * Axis2 Core variables are declared with AXIS2_DECLARE_DATA.
+ * This assures the appropriate indirection is invoked at compile time.
+ *
+ * @code
+ * AXIS2_DECLARE_DATA type axis2_variable
+ * @endcode
+ */
+#define AXIS2_DECLARE_DATA
+
+#elif defined(AXIS2_DECLARE_STATIC)
+#define AXIS2_EXTERN
+#define AXIS2_EXTERN_NONSTD
+#define AXIS2_DECLARE_DATA
+#elif defined(AXIS2_DECLARE_EXPORT)
+#define AXIS2_EXTERN AXIS2_EXPORT
+#define AXIS2_EXTERN_NONSTD AXIS2_EXPORT
+#define AXIS2_DECLARE_DATA
+#else
+#define AXIS2_EXTERN AXIS2_IMPORT
+#define AXIS2_EXTERN_NONSTD AXIS2_IMPORT
+#define AXIS2_DECLARE_DATA
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AXIS2_UTILS_DEFINES_H */