Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
     2 /* ====================================================================
 
     3  * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
 
     5  * Redistribution and use in source and binary forms, with or without
 
     6  * modification, are permitted provided that the following conditions
 
     9  * 1. Redistributions of source code must retain the above copyright
 
    10  *    notice, this list of conditions and the following disclaimer. 
 
    12  * 2. Redistributions in binary form must reproduce the above copyright
 
    13  *    notice, this list of conditions and the following disclaimer in
 
    14  *    the documentation and/or other materials provided with the
 
    17  * 3. All advertising materials mentioning features or use of this
 
    18  *    software must display the following acknowledgment:
 
    19  *    "This product includes software developed by the OpenSSL Project
 
    20  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
 
    22  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
 
    23  *    endorse or promote products derived from this software without
 
    24  *    prior written permission. For written permission, please contact
 
    25  *    openssl-core@openssl.org.
 
    27  * 5. Products derived from this software may not be called "OpenSSL"
 
    28  *    nor may "OpenSSL" appear in their names without prior written
 
    29  *    permission of the OpenSSL Project.
 
    31  * 6. Redistributions of any form whatsoever must retain the following
 
    33  *    "This product includes software developed by the OpenSSL Project
 
    34  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
 
    36  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
 
    37  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
    38  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 
    39  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
 
    40  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
    41  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 
    42  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 
    43  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 
    44  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 
    45  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 
    46  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 
    47  * OF THE POSSIBILITY OF SUCH DAMAGE.
 
    48  * ====================================================================
 
    50  * This product includes cryptographic software written by Eric Young
 
    51  * (eay@cryptsoft.com).  This product includes software written by Tim
 
    52  * Hudson (tjh@cryptsoft.com).
 
    56  © Portions copyright (c) 2006 Nokia Corporation.  All rights reserved.
 
    59 #include <openssl/opensslconf.h>
 
    62 #ifndef HEADER_E_OS2_H
 
    63 #define HEADER_E_OS2_H
 
    65 #if (defined(__SYMBIAN32__) && !defined(SYMBIAN))
 
    73 /******************************************************************************
 
    74  * Detect operating systems.  This probably needs completing.
 
    75  * The result is that at least one OPENSSL_SYS_os macro should be defined.
 
    76  * However, if none is defined, Unix is assumed.
 
    79 #define OPENSSL_SYS_UNIX
 
    81 /* ----------------------- Macintosh, before MacOS X ----------------------- */
 
    82 #if defined(__MWERKS__) && defined(macintosh) || defined(OPENSSL_SYSNAME_MAC)
 
    83 # undef OPENSSL_SYS_UNIX
 
    84 # define OPENSSL_SYS_MACINTOSH_CLASSIC
 
    87 /* ----------------------- NetWare ----------------------------------------- */
 
    88 #if defined(NETWARE) || defined(OPENSSL_SYSNAME_NETWARE)
 
    89 # undef OPENSSL_SYS_UNIX
 
    90 # define OPENSSL_SYS_NETWARE
 
    93 /* ---------------------- Microsoft operating systems ---------------------- */
 
    95 /* For 32 bit environment, there seems to be the CygWin environment and then
 
    96    all the others that try to do the same thing Microsoft does... */
 
    97 #if defined(OPENSSL_SYSNAME_UWIN)
 
    98 # undef OPENSSL_SYS_UNIX
 
    99 # define OPENSSL_SYS_WIN32_UWIN
 
   101 # if defined(__CYGWIN32__) || defined(OPENSSL_SYSNAME_CYGWIN32)
 
   102 #  undef OPENSSL_SYS_UNIX
 
   103 #  define OPENSSL_SYS_WIN32_CYGWIN
 
   105 #  if defined(_WIN32) || defined(OPENSSL_SYSNAME_WIN32)
 
   106 #   undef OPENSSL_SYS_UNIX
 
   107 #   define OPENSSL_SYS_WIN32
 
   109 #  if defined(OPENSSL_SYSNAME_WINNT)
 
   110 #   undef OPENSSL_SYS_UNIX
 
   111 #   define OPENSSL_SYS_WINNT
 
   113 #  if defined(OPENSSL_SYSNAME_WINCE)
 
   114 #   undef OPENSSL_SYS_UNIX
 
   115 #   define OPENSSL_SYS_WINCE
 
   120 /* Anything that tries to look like Microsoft is "Windows" */
 
   121 #if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE)
 
   122 # undef OPENSSL_SYS_UNIX
 
   123 # define OPENSSL_SYS_WINDOWS
 
   124 # ifndef OPENSSL_SYS_MSDOS
 
   125 #  define OPENSSL_SYS_MSDOS
 
   129 /* DLL settings.  This part is a bit tough, because it's up to the application
 
   130    implementor how he or she will link the application, so it requires some
 
   132 #ifdef OPENSSL_SYS_WINDOWS
 
   133 # ifndef OPENSSL_OPT_WINDLL
 
   134 #  if defined(_WINDLL) /* This is used when building OpenSSL to indicate that
 
   135                           DLL linkage should be used */
 
   136 #   define OPENSSL_OPT_WINDLL
 
   141 /* -------------------------------- OpenVMS -------------------------------- */
 
   142 #if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYSNAME_VMS)
 
   143 # undef OPENSSL_SYS_UNIX
 
   144 # define OPENSSL_SYS_VMS
 
   146 #  define OPENSSL_SYS_VMS_DECC
 
   147 # elif defined(__DECCXX)
 
   148 #  define OPENSSL_SYS_VMS_DECC
 
   149 #  define OPENSSL_SYS_VMS_DECCXX
 
   151 #  define OPENSSL_SYS_VMS_NODECC
 
   155 /* --------------------------------- OS/2 ---------------------------------- */
 
   156 #if defined(__EMX__) || defined(__OS2__)
 
   157 # undef OPENSSL_SYS_UNIX
 
   158 # define OPENSSL_SYS_OS2
 
   161 /* --------------------------------- Unix ---------------------------------- */
 
   162 #ifdef OPENSSL_SYS_UNIX
 
   163 # if defined(linux) || defined(__linux__) || defined(OPENSSL_SYSNAME_LINUX)
 
   164 #  define OPENSSL_SYS_LINUX
 
   166 # ifdef OPENSSL_SYSNAME_MPE
 
   167 #  define OPENSSL_SYS_MPE
 
   169 # ifdef OPENSSL_SYSNAME_SNI
 
   170 #  define OPENSSL_SYS_SNI
 
   172 # ifdef OPENSSL_SYSNAME_ULTRASPARC
 
   173 #  define OPENSSL_SYS_ULTRASPARC
 
   175 # ifdef OPENSSL_SYSNAME_NEWS4
 
   176 #  define OPENSSL_SYS_NEWS4
 
   178 # ifdef OPENSSL_SYSNAME_MACOSX
 
   179 #  define OPENSSL_SYS_MACOSX
 
   181 # ifdef OPENSSL_SYSNAME_MACOSX_RHAPSODY
 
   182 #  define OPENSSL_SYS_MACOSX_RHAPSODY
 
   183 #  define OPENSSL_SYS_MACOSX
 
   185 # ifdef OPENSSL_SYSNAME_SUNOS
 
   186 #  define OPENSSL_SYS_SUNOS
 
   188 # if defined(_CRAY) || defined(OPENSSL_SYSNAME_CRAY)
 
   189 #  define OPENSSL_SYS_CRAY
 
   191 # if defined(_AIX) || defined(OPENSSL_SYSNAME_AIX)
 
   192 #  define OPENSSL_SYS_AIX
 
   196 /* --------------------------------- VOS ----------------------------------- */
 
   197 #ifdef OPENSSL_SYSNAME_VOS
 
   198 # define OPENSSL_SYS_VOS
 
   201 /* ------------------------------- VxWorks --------------------------------- */
 
   202 #ifdef OPENSSL_SYSNAME_VXWORKS
 
   203 # define OPENSSL_SYS_VXWORKS
 
   206 #endif //#ifndef SYMBAIN
 
   208  * That's it for OS-specific stuff
 
   209  *****************************************************************************/
 
   212 /* Specials for I/O an exit */
 
   213 #ifdef OPENSSL_SYS_MSDOS
 
   214 # define OPENSSL_UNISTD_IO <io.h>
 
   215 # define OPENSSL_DECLARE_EXIT extern void exit(int);
 
   217 # define OPENSSL_UNISTD_IO OPENSSL_UNISTD
 
   218 # define OPENSSL_DECLARE_EXIT /* declared in unistd.h */
 
   221 /* Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare
 
   222    certain global symbols that, with some compilers under VMS, have to be
 
   223    defined and declared explicitely with globaldef and globalref.
 
   224    Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare
 
   225    DLL exports and imports for compilers under Win32.  These are a little
 
   226    more complicated to use.  Basically, for any library that exports some
 
   227    global variables, the following code must be present in the header file
 
   228    that declares them, before OPENSSL_EXTERN is used:
 
   230    #ifdef SOME_BUILD_FLAG_MACRO
 
   231    # undef OPENSSL_EXTERN
 
   232    # define OPENSSL_EXTERN OPENSSL_EXPORT
 
   235    The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL
 
   236    have some generally sensible values, and for OPENSSL_EXTERN to have the
 
   237    value OPENSSL_IMPORT.
 
   240 #if defined(OPENSSL_SYS_VMS_NODECC)
 
   241 # define OPENSSL_EXPORT globalref
 
   242 # define OPENSSL_IMPORT globalref
 
   243 # define OPENSSL_GLOBAL globaldef
 
   244 #elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL)
 
   245 # define OPENSSL_EXPORT extern __declspec(dllexport)
 
   246 # define OPENSSL_IMPORT extern __declspec(dllimport)
 
   247 # define OPENSSL_GLOBAL
 
   249 # define OPENSSL_EXPORT extern
 
   250 # define OPENSSL_IMPORT extern
 
   251 # define OPENSSL_GLOBAL
 
   253 #define OPENSSL_EXTERN OPENSSL_IMPORT
 
   255 /* Macros to allow global variables to be reached through function calls when
 
   256    required (if a shared library version requvres it, for example.
 
   257    The way it's done allows definitions like this:
 
   260 	OPENSSL_IMPLEMENT_GLOBAL(int,foobar) = 0;
 
   262 	OPENSSL_DECLARE_GLOBAL(int,foobar);
 
   263 	#define foobar OPENSSL_GLOBAL_REF(foobar)
 
   266 #ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION
 
   267 # define OPENSSL_IMPLEMENT_GLOBAL(type,name)			     \
 
   268 	extern type _hide_##name;				     \
 
   269 	type *_shadow_##name(void) { return &_hide_##name; }	     \
 
   270 	static type _hide_##name
 
   271 # define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void)
 
   272 # define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name()))
 
   275 # define OPENSSL_IMPLEMENT_GLOBAL(type,name) OPENSSL_GLOBAL type _shadow_##name
 
   276 # define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name
 
   277 # define OPENSSL_GLOBAL_REF(name) _shadow_##name
 
   279 # define OPENSSL_IMPLEMENT_GLOBAL(type,name)
 
   280 # define OPENSSL_DECLARE_GLOBAL(type,name)
 
   281 # define OPENSSL_GLOBAL_REF(name) libcrypto_ImpurePtr()->_shadow_##name