* tar xzf utvpn-src-unix-v101-7101-public-2010.06.27.tar.gz
[lab.git] / utvpn / utvpn-unix-v101-7101-public / src / Mayaqua / openssl / e_os2.h
diff --git a/utvpn/utvpn-unix-v101-7101-public/src/Mayaqua/openssl/e_os2.h b/utvpn/utvpn-unix-v101-7101-public/src/Mayaqua/openssl/e_os2.h
new file mode 100644 (file)
index 0000000..ed44d14
--- /dev/null
@@ -0,0 +1,285 @@
+/* e_os2.h */\r
+/* ====================================================================\r
+ * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer. \r
+ *\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in\r
+ *    the documentation and/or other materials provided with the\r
+ *    distribution.\r
+ *\r
+ * 3. All advertising materials mentioning features or use of this\r
+ *    software must display the following acknowledgment:\r
+ *    "This product includes software developed by the OpenSSL Project\r
+ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"\r
+ *\r
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to\r
+ *    endorse or promote products derived from this software without\r
+ *    prior written permission. For written permission, please contact\r
+ *    openssl-core@openssl.org.\r
+ *\r
+ * 5. Products derived from this software may not be called "OpenSSL"\r
+ *    nor may "OpenSSL" appear in their names without prior written\r
+ *    permission of the OpenSSL Project.\r
+ *\r
+ * 6. Redistributions of any form whatsoever must retain the following\r
+ *    acknowledgment:\r
+ *    "This product includes software developed by the OpenSSL Project\r
+ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY\r
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR\r
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\r
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\r
+ * OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ * ====================================================================\r
+ *\r
+ * This product includes cryptographic software written by Eric Young\r
+ * (eay@cryptsoft.com).  This product includes software written by Tim\r
+ * Hudson (tjh@cryptsoft.com).\r
+ *\r
+ */\r
+\r
+#include <openssl/opensslconf.h>\r
+\r
+#ifndef HEADER_E_OS2_H\r
+#define HEADER_E_OS2_H\r
+\r
+#ifdef  __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+/******************************************************************************\r
+ * Detect operating systems.  This probably needs completing.\r
+ * The result is that at least one OPENSSL_SYS_os macro should be defined.\r
+ * However, if none is defined, Unix is assumed.\r
+ **/\r
+\r
+#define OPENSSL_SYS_UNIX\r
+\r
+/* ----------------------- Macintosh, before MacOS X ----------------------- */\r
+#if defined(__MWERKS__) && defined(macintosh) || defined(OPENSSL_SYSNAME_MAC)\r
+# undef OPENSSL_SYS_UNIX\r
+# define OPENSSL_SYS_MACINTOSH_CLASSIC\r
+#endif\r
+\r
+/* ----------------------- NetWare ----------------------------------------- */\r
+#if defined(NETWARE) || defined(OPENSSL_SYSNAME_NETWARE)\r
+# undef OPENSSL_SYS_UNIX\r
+# define OPENSSL_SYS_NETWARE\r
+#endif\r
+\r
+/* ---------------------- Microsoft operating systems ---------------------- */\r
+\r
+/* The 16 bit environments are pretty straightforward */\r
+#if defined(OPENSSL_SYSNAME_WIN16) || defined(OPENSSL_SYSNAME_MSDOS)\r
+# undef OPENSSL_SYS_UNIX\r
+# define OPENSSL_SYS_MSDOS\r
+#endif\r
+#if defined(OPENSSL_SYSNAME_WIN16)\r
+# undef OPENSSL_SYS_UNIX\r
+# define OPENSSL_SYS_WIN16\r
+#endif\r
+\r
+/* For 32 bit environment, there seems to be the CygWin environment and then\r
+   all the others that try to do the same thing Microsoft does... */\r
+#if defined(OPENSSL_SYSNAME_UWIN)\r
+# undef OPENSSL_SYS_UNIX\r
+# define OPENSSL_SYS_WIN32_UWIN\r
+#else\r
+# if defined(__CYGWIN32__) || defined(OPENSSL_SYSNAME_CYGWIN32)\r
+#  undef OPENSSL_SYS_UNIX\r
+#  define OPENSSL_SYS_WIN32_CYGWIN\r
+# else\r
+#  if defined(_WIN32) || defined(OPENSSL_SYSNAME_WIN32)\r
+#   undef OPENSSL_SYS_UNIX\r
+#   define OPENSSL_SYS_WIN32\r
+#  endif\r
+#  if defined(OPENSSL_SYSNAME_WINNT)\r
+#   undef OPENSSL_SYS_UNIX\r
+#   define OPENSSL_SYS_WINNT\r
+#  endif\r
+#  if defined(OPENSSL_SYSNAME_WINCE)\r
+#   undef OPENSSL_SYS_UNIX\r
+#   define OPENSSL_SYS_WINCE\r
+#  endif\r
+# endif\r
+#endif\r
+\r
+/* Anything that tries to look like Microsoft is "Windows" */\r
+#if defined(OPENSSL_SYS_WIN16) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE)\r
+# undef OPENSSL_SYS_UNIX\r
+# define OPENSSL_SYS_WINDOWS\r
+# ifndef OPENSSL_SYS_MSDOS\r
+#  define OPENSSL_SYS_MSDOS\r
+# endif\r
+#endif\r
+\r
+/* DLL settings.  This part is a bit tough, because it's up to the application\r
+   implementor how he or she will link the application, so it requires some\r
+   macro to be used. */\r
+#ifdef OPENSSL_SYS_WINDOWS\r
+# ifndef OPENSSL_OPT_WINDLL\r
+#  if defined(_WINDLL) /* This is used when building OpenSSL to indicate that\r
+                          DLL linkage should be used */\r
+#   define OPENSSL_OPT_WINDLL\r
+#  endif\r
+# endif\r
+#endif\r
+\r
+/* -------------------------------- OpenVMS -------------------------------- */\r
+#if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYSNAME_VMS)\r
+# undef OPENSSL_SYS_UNIX\r
+# define OPENSSL_SYS_VMS\r
+# if defined(__DECC)\r
+#  define OPENSSL_SYS_VMS_DECC\r
+# elif defined(__DECCXX)\r
+#  define OPENSSL_SYS_VMS_DECC\r
+#  define OPENSSL_SYS_VMS_DECCXX\r
+# else\r
+#  define OPENSSL_SYS_VMS_NODECC\r
+# endif\r
+#endif\r
+\r
+/* --------------------------------- OS/2 ---------------------------------- */\r
+#if defined(__EMX__) || defined(__OS2__)\r
+# undef OPENSSL_SYS_UNIX\r
+# define OPENSSL_SYS_OS2\r
+#endif\r
+\r
+/* --------------------------------- Unix ---------------------------------- */\r
+#ifdef OPENSSL_SYS_UNIX\r
+# if defined(linux) || defined(__linux__) || defined(OPENSSL_SYSNAME_LINUX)\r
+#  define OPENSSL_SYS_LINUX\r
+# endif\r
+# ifdef OPENSSL_SYSNAME_MPE\r
+#  define OPENSSL_SYS_MPE\r
+# endif\r
+# ifdef OPENSSL_SYSNAME_SNI\r
+#  define OPENSSL_SYS_SNI\r
+# endif\r
+# ifdef OPENSSL_SYSNAME_ULTRASPARC\r
+#  define OPENSSL_SYS_ULTRASPARC\r
+# endif\r
+# ifdef OPENSSL_SYSNAME_NEWS4\r
+#  define OPENSSL_SYS_NEWS4\r
+# endif\r
+# ifdef OPENSSL_SYSNAME_MACOSX\r
+#  define OPENSSL_SYS_MACOSX\r
+# endif\r
+# ifdef OPENSSL_SYSNAME_MACOSX_RHAPSODY\r
+#  define OPENSSL_SYS_MACOSX_RHAPSODY\r
+#  define OPENSSL_SYS_MACOSX\r
+# endif\r
+# ifdef OPENSSL_SYSNAME_SUNOS\r
+#  define OPENSSL_SYS_SUNOS\r
+#endif\r
+# if defined(_CRAY) || defined(OPENSSL_SYSNAME_CRAY)\r
+#  define OPENSSL_SYS_CRAY\r
+# endif\r
+# if defined(_AIX) || defined(OPENSSL_SYSNAME_AIX)\r
+#  define OPENSSL_SYS_AIX\r
+# endif\r
+#endif\r
+\r
+/* --------------------------------- VOS ----------------------------------- */\r
+#ifdef OPENSSL_SYSNAME_VOS\r
+# define OPENSSL_SYS_VOS\r
+#endif\r
+\r
+/* ------------------------------- VxWorks --------------------------------- */\r
+#ifdef OPENSSL_SYSNAME_VXWORKS\r
+# define OPENSSL_SYS_VXWORKS\r
+#endif\r
+\r
+/**\r
+ * That's it for OS-specific stuff\r
+ *****************************************************************************/\r
+\r
+\r
+/* Specials for I/O an exit */\r
+#ifdef OPENSSL_SYS_WIN16\r
+# define OPENSSL_NO_FP_API\r
+#endif\r
+#ifdef OPENSSL_SYS_MSDOS\r
+# define OPENSSL_UNISTD_IO <io.h>\r
+# define OPENSSL_DECLARE_EXIT extern void exit(int);\r
+#else\r
+# define OPENSSL_UNISTD_IO OPENSSL_UNISTD\r
+# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */\r
+#endif\r
+\r
+/* Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare\r
+   certain global symbols that, with some compilers under VMS, have to be\r
+   defined and declared explicitely with globaldef and globalref.\r
+   Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare\r
+   DLL exports and imports for compilers under Win32.  These are a little\r
+   more complicated to use.  Basically, for any library that exports some\r
+   global variables, the following code must be present in the header file\r
+   that declares them, before OPENSSL_EXTERN is used:\r
+\r
+   #ifdef SOME_BUILD_FLAG_MACRO\r
+   # undef OPENSSL_EXTERN\r
+   # define OPENSSL_EXTERN OPENSSL_EXPORT\r
+   #endif\r
+\r
+   The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL\r
+   have some generally sensible values, and for OPENSSL_EXTERN to have the\r
+   value OPENSSL_IMPORT.\r
+*/\r
+\r
+#if defined(OPENSSL_SYS_VMS_NODECC)\r
+# define OPENSSL_EXPORT globalref\r
+# define OPENSSL_IMPORT globalref\r
+# define OPENSSL_GLOBAL globaldef\r
+#elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL)\r
+# define OPENSSL_EXPORT extern __declspec(dllexport)\r
+# define OPENSSL_IMPORT extern __declspec(dllimport)\r
+# define OPENSSL_GLOBAL\r
+#else\r
+# define OPENSSL_EXPORT extern\r
+# define OPENSSL_IMPORT extern\r
+# define OPENSSL_GLOBAL\r
+#endif\r
+#define OPENSSL_EXTERN OPENSSL_IMPORT\r
+\r
+/* Macros to allow global variables to be reached through function calls when\r
+   required (if a shared library version requvres it, for example.\r
+   The way it's done allows definitions like this:\r
+\r
+       // in foobar.c\r
+       OPENSSL_IMPLEMENT_GLOBAL(int,foobar) = 0;\r
+       // in foobar.h\r
+       OPENSSL_DECLARE_GLOBAL(int,foobar);\r
+       #define foobar OPENSSL_GLOBAL_REF(foobar)\r
+*/\r
+#ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION\r
+# define OPENSSL_IMPLEMENT_GLOBAL(type,name)                        \\r
+       extern type _hide_##name;                                    \\r
+       type *_shadow_##name(void) { return &_hide_##name; }         \\r
+       static type _hide_##name\r
+# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void)\r
+# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name()))\r
+#else\r
+# define OPENSSL_IMPLEMENT_GLOBAL(type,name) OPENSSL_GLOBAL type _shadow_##name\r
+# define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name\r
+# define OPENSSL_GLOBAL_REF(name) _shadow_##name\r
+#endif\r
+\r
+#ifdef  __cplusplus\r
+}\r
+#endif\r
+#endif\r