It makes more sense to refer to specific function manuals than the concept
[openssl.git] / e_os.h
diff --git a/e_os.h b/e_os.h
index 0bb2bfa69323672cd1e894ba7da0ab1a02a65da8..00edebe6d47c568e12fcc871c9d7356d751df770 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -114,7 +114,7 @@ extern "C" {
  ********************************************************************/
 /* The following is used becaue of the small stack in some
  * Microsoft operating systems */
-#if defined(OPENSSL_SYS_MSDOS)
+#if defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYSNAME_WIN32)
 #  define MS_STATIC    static
 #else
 #  define MS_STATIC
@@ -160,6 +160,13 @@ extern "C" {
 #define closesocket(s)         MacSocket_close(s)
 #define readsocket(s,b,n)      MacSocket_recv((s),(b),(n),true)
 #define writesocket(s,b,n)     MacSocket_send((s),(b),(n))
+#elif defined(OPENSSL_SYS_VMS)
+#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)       recv((s),(b),(n),0)
+#define writesocket(s,b,n)      send((s),(b),(n),0)
 #else
 #define get_last_socket_error()        errno
 #define clear_socket_error()   errno=0
@@ -184,6 +191,14 @@ extern "C" {
 
 #if (defined(WINDOWS) || defined(MSDOS))
 
+#  ifdef __DJGPP__
+#    include <unistd.h>
+#    include <sys/stat.h>
+#    define _setmode setmode
+#    define _O_TEXT O_TEXT
+#    define _O_BINARY O_BINARY
+#  endif /* __DJGPP__ */
+
 #  ifndef S_IFDIR
 #    define S_IFDIR    _S_IFDIR
 #  endif
@@ -329,7 +344,7 @@ extern "C" {
 /*************/
 
 #ifdef USE_SOCKETS
-#  if defined(WINDOWS) || defined(MSDOS)
+#  if (defined(WINDOWS) || defined(MSDOS)) && !defined(__DJGPP__)
       /* windows world */
 
 #    ifdef OPENSSL_NO_SOCK
@@ -416,7 +431,9 @@ extern HINSTANCE _hInstance;
 #    define SSLeay_Write(a,b,c)    write((a),(b),(c))
 #    define SHUTDOWN(fd)    { shutdown((fd),0); closesocket((fd)); }
 #    define SHUTDOWN2(fd)   { shutdown((fd),2); closesocket((fd)); }
+#    ifndef INVALID_SOCKET
 #    define INVALID_SOCKET     (-1)
+#    endif /* INVALID_SOCKET */
 #  endif
 #endif