1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* e_os2.h */ 2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ==================================================================== 3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Redistribution and use in source and binary forms, with or without 6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * modification, are permitted provided that the following conditions 7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * are met: 8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1. Redistributions of source code must retain the above copyright 10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer. 11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer in 14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the documentation and/or other materials provided with the 15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * distribution. 16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 3. All advertising materials mentioning features or use of this 18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * software must display the following acknowledgment: 19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software developed by the OpenSSL Project 20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * endorse or promote products derived from this software without 24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * prior written permission. For written permission, please contact 25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * openssl-core@openssl.org. 26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 5. Products derived from this software may not be called "OpenSSL" 28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * nor may "OpenSSL" appear in their names without prior written 29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * permission of the OpenSSL Project. 30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 6. Redistributions of any form whatsoever must retain the following 32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * acknowledgment: 33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software developed by the OpenSSL Project 34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OF THE POSSIBILITY OF SUCH DAMAGE. 48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ==================================================================== 49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This product includes cryptographic software written by Eric Young 51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * (eay@cryptsoft.com). This product includes software written by Tim 52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Hudson (tjh@cryptsoft.com). 53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/opensslconf.h> 57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef HEADER_E_OS2_H 59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HEADER_E_OS2_H 60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef __cplusplus 62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern "C" { 63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/****************************************************************************** 66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Detect operating systems. This probably needs completing. 67656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The result is that at least one OPENSSL_SYS_os macro should be defined. 68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * However, if none is defined, Unix is assumed. 69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project **/ 70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OPENSSL_SYS_UNIX 72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ----------------------- Macintosh, before MacOS X ----------------------- */ 74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(__MWERKS__) && defined(macintosh) || defined(OPENSSL_SYSNAME_MAC) 75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# undef OPENSSL_SYS_UNIX 76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_MACINTOSH_CLASSIC 77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ----------------------- NetWare ----------------------------------------- */ 80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(NETWARE) || defined(OPENSSL_SYSNAME_NETWARE) 81656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# undef OPENSSL_SYS_UNIX 82656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_NETWARE 83656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ---------------------- Microsoft operating systems ---------------------- */ 86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Note that MSDOS actually denotes 32-bit environments running on top of 88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project MS-DOS, such as DJGPP one. */ 89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(OPENSSL_SYSNAME_MSDOS) 90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# undef OPENSSL_SYS_UNIX 91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_MSDOS 92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 93656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* For 32 bit environment, there seems to be the CygWin environment and then 95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project all the others that try to do the same thing Microsoft does... */ 96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(OPENSSL_SYSNAME_UWIN) 97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# undef OPENSSL_SYS_UNIX 98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_WIN32_UWIN 99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# if defined(__CYGWIN32__) || defined(OPENSSL_SYSNAME_CYGWIN32) 101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# undef OPENSSL_SYS_UNIX 102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_WIN32_CYGWIN 103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# else 104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# if defined(_WIN32) || defined(OPENSSL_SYSNAME_WIN32) 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# undef OPENSSL_SYS_UNIX 106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_WIN32 107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# if defined(OPENSSL_SYSNAME_WINNT) 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# undef OPENSSL_SYS_UNIX 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_WINNT 111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# if defined(OPENSSL_SYSNAME_WINCE) 113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# undef OPENSSL_SYS_UNIX 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_WINCE 115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Anything that tries to look like Microsoft is "Windows" */ 120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) 121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# undef OPENSSL_SYS_UNIX 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_WINDOWS 123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifndef OPENSSL_SYS_MSDOS 124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_MSDOS 125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 126656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 127656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* DLL settings. This part is a bit tough, because it's up to the application 129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project implementor how he or she will link the application, so it requires some 130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project macro to be used. */ 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef OPENSSL_SYS_WINDOWS 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifndef OPENSSL_OPT_WINDLL 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# if defined(_WINDLL) /* This is used when building OpenSSL to indicate that 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DLL linkage should be used */ 135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_OPT_WINDLL 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* -------------------------------- OpenVMS -------------------------------- */ 141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYSNAME_VMS) 142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# undef OPENSSL_SYS_UNIX 143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_VMS 144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# if defined(__DECC) 145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_VMS_DECC 146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# elif defined(__DECCXX) 147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_VMS_DECC 148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_VMS_DECCXX 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# else 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_VMS_NODECC 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* --------------------------------- OS/2 ---------------------------------- */ 155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(__EMX__) || defined(__OS2__) 156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# undef OPENSSL_SYS_UNIX 157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_OS2 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* --------------------------------- Unix ---------------------------------- */ 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef OPENSSL_SYS_UNIX 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# if defined(linux) || defined(__linux__) || defined(OPENSSL_SYSNAME_LINUX) 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_LINUX 164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifdef OPENSSL_SYSNAME_MPE 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_MPE 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifdef OPENSSL_SYSNAME_SNI 169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_SNI 170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifdef OPENSSL_SYSNAME_ULTRASPARC 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_ULTRASPARC 173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifdef OPENSSL_SYSNAME_NEWS4 175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_NEWS4 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifdef OPENSSL_SYSNAME_MACOSX 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_MACOSX 179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifdef OPENSSL_SYSNAME_MACOSX_RHAPSODY 181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_MACOSX_RHAPSODY 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_MACOSX 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifdef OPENSSL_SYSNAME_SUNOS 185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_SUNOS 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# if defined(_CRAY) || defined(OPENSSL_SYSNAME_CRAY) 188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_CRAY 189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# if defined(_AIX) || defined(OPENSSL_SYSNAME_AIX) 191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_AIX 192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* --------------------------------- VOS ----------------------------------- */ 1967b476c43f6a45574eb34697244b592e7b09f05a3Brian Carlstrom#if defined(__VOS__) || defined(OPENSSL_SYSNAME_VOS) 197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_VOS 1987b476c43f6a45574eb34697244b592e7b09f05a3Brian Carlstrom#ifdef __HPPA__ 1997b476c43f6a45574eb34697244b592e7b09f05a3Brian Carlstrom# define OPENSSL_SYS_VOS_HPPA 2007b476c43f6a45574eb34697244b592e7b09f05a3Brian Carlstrom#endif 2017b476c43f6a45574eb34697244b592e7b09f05a3Brian Carlstrom#ifdef __IA32__ 2027b476c43f6a45574eb34697244b592e7b09f05a3Brian Carlstrom# define OPENSSL_SYS_VOS_IA32 2037b476c43f6a45574eb34697244b592e7b09f05a3Brian Carlstrom#endif 204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ------------------------------- VxWorks --------------------------------- */ 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef OPENSSL_SYSNAME_VXWORKS 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_SYS_VXWORKS 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 211221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom/* --------------------------------- BeOS ---------------------------------- */ 212221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#if defined(__BEOS__) 213221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom# define OPENSSL_SYS_BEOS 214221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom# include <sys/socket.h> 215221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom# if defined(BONE_VERSION) 216221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom# define OPENSSL_SYS_BEOS_BONE 217221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom# else 218221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom# define OPENSSL_SYS_BEOS_R5 219221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom# endif 220221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 221221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/** 223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * That's it for OS-specific stuff 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *****************************************************************************/ 225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Specials for I/O an exit */ 228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef OPENSSL_SYS_MSDOS 229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_UNISTD_IO <io.h> 230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_DECLARE_EXIT extern void exit(int); 231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_UNISTD_IO OPENSSL_UNISTD 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */ 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project certain global symbols that, with some compilers under VMS, have to be 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project defined and declared explicitely with globaldef and globalref. 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DLL exports and imports for compilers under Win32. These are a little 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project more complicated to use. Basically, for any library that exports some 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project global variables, the following code must be present in the header file 243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project that declares them, before OPENSSL_EXTERN is used: 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project #ifdef SOME_BUILD_FLAG_MACRO 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project # undef OPENSSL_EXTERN 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project # define OPENSSL_EXTERN OPENSSL_EXPORT 248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project #endif 249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL 251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project have some generally sensible values, and for OPENSSL_EXTERN to have the 252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project value OPENSSL_IMPORT. 253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project*/ 254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(OPENSSL_SYS_VMS_NODECC) 256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_EXPORT globalref 257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_IMPORT globalref 258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_GLOBAL globaldef 259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) 260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_EXPORT extern __declspec(dllexport) 261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_IMPORT extern __declspec(dllimport) 262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_GLOBAL 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_EXPORT extern 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_IMPORT extern 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_GLOBAL 267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OPENSSL_EXTERN OPENSSL_IMPORT 269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Macros to allow global variables to be reached through function calls when 271221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom required (if a shared library version requires it, for example. 272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project The way it's done allows definitions like this: 273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project // in foobar.c 275221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) 276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project // in foobar.h 277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_DECLARE_GLOBAL(int,foobar); 278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project #define foobar OPENSSL_GLOBAL_REF(foobar) 279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project*/ 280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION 281221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) \ 282221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom type *_shadow_##name(void) \ 283221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom { static type _hide_##name=value; return &_hide_##name; } 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) 286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 287221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) OPENSSL_GLOBAL type _shadow_##name=value; 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name 289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define OPENSSL_GLOBAL_REF(name) _shadow_##name 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 292392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) && macintosh==1 && !defined(MAC_OS_GUSI_SOURCE) 293392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom# define ossl_ssize_t long 294392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 295392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 296392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifdef OPENSSL_SYS_MSDOS 297392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom# define ossl_ssize_t long 298392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 299392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 300392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if defined(NeXT) || defined(OPENSSL_SYS_NEWS4) || defined(OPENSSL_SYS_SUNOS) 301392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom# define ssize_t int 302392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 303392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 304392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if defined(__ultrix) && !defined(ssize_t) 305392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom# define ossl_ssize_t int 306392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 307392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 308392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifndef ossl_ssize_t 309392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom# define ossl_ssize_t ssize_t 310392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 311392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef __cplusplus 313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 316