X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=e_os.h;h=60a3bf290be431b1a7cc3ddbdab1977f6f9aad20;hp=8bfc1dcb100aa32745c23c4afb41121ee62f5138;hb=HEAD;hpb=3e4981dd59d301f60bcc85f7c893db1ee4a21906 diff --git a/e_os.h b/e_os.h deleted file mode 100644 index 8bfc1dcb10..0000000000 --- a/e_os.h +++ /dev/null @@ -1,381 +0,0 @@ -/* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OSSL_E_OS_H -# define OSSL_E_OS_H - -# include -# include - -# include -# include -# include "internal/nelem.h" - -/* - * contains what we can justify to make visible to the - * outside; this file e_os.h is not part of the exported interface. - */ - -# if defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI) -# define NO_CHMOD -# define NO_SYSLOG -# endif - -# define get_last_sys_error() errno -# define clear_sys_error() errno=0 -# define set_sys_error(e) errno=(e) - -/******************************************************************** - The Microsoft section - ********************************************************************/ -# if defined(OPENSSL_SYS_WIN32) && !defined(WIN32) -# define WIN32 -# endif -# if defined(OPENSSL_SYS_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -# endif -# if defined(OPENSSL_SYS_MSDOS) && !defined(MSDOS) -# define MSDOS -# endif - -# ifdef WIN32 -# undef get_last_sys_error -# undef clear_sys_error -# undef set_sys_error -# define get_last_sys_error() GetLastError() -# define clear_sys_error() SetLastError(0) -# define set_sys_error(e) SetLastError(e) -# if !defined(WINNT) -# define WIN_CONSOLE_BUG -# endif -# else -# endif - -# if (defined(WINDOWS) || defined(MSDOS)) - -# ifdef __DJGPP__ -# include -# include -# define _setmode setmode -# define _O_TEXT O_TEXT -# define _O_BINARY O_BINARY -# undef DEVRANDOM_EGD /* Neither MS-DOS nor FreeDOS provide 'egd' sockets. */ -# undef DEVRANDOM -# define DEVRANDOM "/dev/urandom\x24" -# endif /* __DJGPP__ */ - -# ifndef S_IFDIR -# define S_IFDIR _S_IFDIR -# endif - -# ifndef S_IFMT -# define S_IFMT _S_IFMT -# endif - -# if !defined(WINNT) && !defined(__DJGPP__) -# define NO_SYSLOG -# endif - -# ifdef WINDOWS -# if !defined(_WIN32_WCE) && !defined(_WIN32_WINNT) - /* - * Defining _WIN32_WINNT here in e_os.h implies certain "discipline." - * Most notably we ought to check for availability of each specific - * routine that was introduced after denoted _WIN32_WINNT with - * GetProcAddress(). Normally newer functions are masked with higher - * _WIN32_WINNT in SDK headers. So that if you wish to use them in - * some module, you'd need to override _WIN32_WINNT definition in - * the target module in order to "reach for" prototypes, but replace - * calls to new functions with indirect calls. Alternatively it - * might be possible to achieve the goal by /DELAYLOAD-ing .DLLs - * and check for current OS version instead. - */ -# define _WIN32_WINNT 0x0501 -# endif -# if defined(_WIN32_WINNT) || defined(_WIN32_WCE) - /* - * Just like defining _WIN32_WINNT including winsock2.h implies - * certain "discipline" for maintaining [broad] binary compatibility. - * As long as structures are invariant among Winsock versions, - * it's sufficient to check for specific Winsock2 API availability - * at run-time [DSO_global_lookup is recommended]... - */ -# include -# include - /* - * Clang-based C++Builder 10.3.3 toolchains cannot find C inline - * definitions at link-time. This header defines WspiapiLoad() as an - * __inline function. https://quality.embarcadero.com/browse/RSP-33806 - */ -# if !defined(__BORLANDC__) || !defined(__clang__) -# include -# endif - /* yes, they have to be #included prior to */ -# endif -# include -# include -# include -# include -# if defined(_WIN32_WCE) && !defined(EACCES) -# define EACCES 13 -# endif -# include -# ifdef _WIN64 -# define strlen(s) _strlen31(s) -/* cut strings to 2GB */ -static __inline unsigned int _strlen31(const char *str) -{ - unsigned int len = 0; - while (*str && len < 0x80000000U) - str++, len++; - return len & 0x7FFFFFFF; -} -# endif -# include -# if defined(_MSC_VER) && !defined(_WIN32_WCE) && !defined(_DLL) && defined(stdin) -# if _MSC_VER>=1300 && _MSC_VER<1600 -# undef stdin -# undef stdout -# undef stderr -FILE *__iob_func(); -# define stdin (&__iob_func()[0]) -# define stdout (&__iob_func()[1]) -# define stderr (&__iob_func()[2]) -# elif _MSC_VER<1300 && defined(I_CAN_LIVE_WITH_LNK4049) -# undef stdin -# undef stdout -# undef stderr - /* - * pre-1300 has __p__iob(), but it's available only in msvcrt.lib, - * or in other words with /MD. Declaring implicit import, i.e. with - * _imp_ prefix, works correctly with all compiler options, but - * without /MD results in LINK warning LNK4049: 'locally defined - * symbol "__iob" imported'. - */ -extern FILE *_imp___iob; -# define stdin (&_imp___iob[0]) -# define stdout (&_imp___iob[1]) -# define stderr (&_imp___iob[2]) -# endif -# endif -# endif -# include -# include - -# ifdef OPENSSL_SYS_WINCE -# define OPENSSL_NO_POSIX_IO -# endif - -# define EXIT(n) exit(n) -# define LIST_SEPARATOR_CHAR ';' -# ifndef W_OK -# define W_OK 2 -# endif -# ifndef R_OK -# define R_OK 4 -# endif -# ifdef OPENSSL_SYS_WINCE -# define DEFAULT_HOME "" -# else -# define DEFAULT_HOME "C:" -# endif - -/* Avoid Visual Studio 13 GetVersion deprecated problems */ -# if defined(_MSC_VER) && _MSC_VER>=1800 -# define check_winnt() (1) -# define check_win_minplat(x) (1) -# else -# define check_winnt() (GetVersion() < 0x80000000) -# define check_win_minplat(x) (LOBYTE(LOWORD(GetVersion())) >= (x)) -# endif - -# else /* The non-microsoft world */ - -# if defined(OPENSSL_SYS_VXWORKS) -# include -# else -# include -# endif - -# ifdef OPENSSL_SYS_VMS -# define VMS 1 - /* - * some programs don't include stdlib, so exit() and others give implicit - * function warnings - */ -# include -# if defined(__DECC) -# include -# else -# include -# endif -# define LIST_SEPARATOR_CHAR ',' - /* We don't have any well-defined random devices on VMS, yet... */ -# undef DEVRANDOM - /*- - We need to do this since VMS has the following coding on status codes: - - Bits 0-2: status type: 0 = warning, 1 = success, 2 = error, 3 = info ... - The important thing to know is that odd numbers are considered - good, while even ones are considered errors. - Bits 3-15: actual status number - Bits 16-27: facility number. 0 is considered "unknown" - Bits 28-31: control bits. If bit 28 is set, the shell won't try to - output the message (which, for random codes, just looks ugly) - - So, what we do here is to change 0 to 1 to get the default success status, - and everything else is shifted up to fit into the status number field, and - the status is tagged as an error, which is what is wanted here. - - Finally, we add the VMS C facility code 0x35a000, because there are some - programs, such as Perl, that will reinterpret the code back to something - POSIX. 'man perlvms' explains it further. - - NOTE: the perlvms manual wants to turn all codes 2 to 255 into success - codes (status type = 1). I couldn't disagree more. Fortunately, the - status type doesn't seem to bother Perl. - -- Richard Levitte - */ -# define EXIT(n) exit((n) ? (((n) << 3) | 2 | 0x10000000 | 0x35a000) : 1) - -# define DEFAULT_HOME "SYS$LOGIN:" - -# else - /* !defined VMS */ -# include -# include -# ifdef OPENSSL_SYS_WIN32_CYGWIN -# include -# include -# endif - -# define LIST_SEPARATOR_CHAR ':' -# define EXIT(n) exit(n) -# endif - -# endif - -/***********************************************/ - -# if defined(OPENSSL_SYS_WINDOWS) -# define strcasecmp _stricmp -# define strncasecmp _strnicmp -# if (_MSC_VER >= 1310) && !defined(_WIN32_WCE) -# define open _open -# define fdopen _fdopen -# define close _close -# ifndef strdup -# define strdup _strdup -# endif -# define unlink _unlink -# define fileno _fileno -# endif -# else -# include -# endif - -/* vxworks */ -# if defined(OPENSSL_SYS_VXWORKS) -# include -# include -# include -# include -# include -# include - -# define TTY_STRUCT int -# define sleep(a) taskDelay((a) * sysClkRateGet()) - -/* - * NOTE: these are implemented by helpers in database app! if the database is - * not linked, we need to implement them elsewhere - */ -struct hostent *gethostbyname(const char *name); -struct hostent *gethostbyaddr(const char *addr, int length, int type); -struct servent *getservbyname(const char *name, const char *proto); - -# endif -/* end vxworks */ - -/* ----------------------------- HP NonStop -------------------------------- */ -/* Required to support platform variant without getpid() and pid_t. */ -# if defined(__TANDEM) && defined(_GUARDIAN_TARGET) -# include -# include -# define getservbyname(name,proto) getservbyname((char*)name,proto) -# define gethostbyname(name) gethostbyname((char*)name) -# define ioctlsocket(a,b,c) ioctl(a,b,c) -# ifdef NO_GETPID -inline int nssgetpid(); -# ifndef NSSGETPID_MACRO -# define NSSGETPID_MACRO -# include -# include - inline int nssgetpid() - { - short phandle[10]={0}; - union pseudo_pid { - struct { - short cpu; - short pin; - } cpu_pin ; - int ppid; - } ppid = { 0 }; - PROCESSHANDLE_GETMINE_(phandle); - PROCESSHANDLE_DECOMPOSE_(phandle, &ppid.cpu_pin.cpu, &ppid.cpu_pin.pin); - return ppid.ppid; - } -# define getpid(a) nssgetpid(a) -# endif /* NSSGETPID_MACRO */ -# endif /* NO_GETPID */ -/*# define setsockopt(a,b,c,d,f) setsockopt(a,b,c,(char*)d,f)*/ -/*# define getsockopt(a,b,c,d,f) getsockopt(a,b,c,(char*)d,f)*/ -/*# define connect(a,b,c) connect(a,(struct sockaddr *)b,c)*/ -/*# define bind(a,b,c) bind(a,(struct sockaddr *)b,c)*/ -/*# define sendto(a,b,c,d,e,f) sendto(a,(char*)b,c,d,(struct sockaddr *)e,f)*/ -# if defined(OPENSSL_THREADS) && !defined(_PUT_MODEL_) - /* - * HPNS SPT threads - */ -# define SPT_THREAD_SIGNAL 1 -# define SPT_THREAD_AWARE 1 -# include -# undef close -# define close spt_close -/* -# define get_last_socket_error() errno -# define clear_socket_error() errno=0 -# define ioctlsocket(a,b,c) ioctl(a,b,c) -# define closesocket(s) close(s) -# define readsocket(s,b,n) read((s),(char*)(b),(n)) -# define writesocket(s,b,n) write((s),(char*)(b),(n) -*/ -# define accept(a,b,c) accept(a,(struct sockaddr *)b,c) -# define recvfrom(a,b,c,d,e,f) recvfrom(a,b,(socklen_t)c,d,e,f) -# endif -# endif - -# ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -# define CRYPTO_memcmp memcmp -# endif - -# ifndef OPENSSL_NO_SECURE_MEMORY - /* unistd.h defines _POSIX_VERSION */ -# if (defined(OPENSSL_SYS_UNIX) \ - && ( (defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L) \ - || defined(__sun) || defined(__hpux) || defined(__sgi) \ - || defined(__osf__) )) \ - || defined(_WIN32) - /* secure memory is implemented */ -# else -# define OPENSSL_NO_SECURE_MEMORY -# endif -# endif - -#endif