diff options
author | Andy Polyakov <appro@openssl.org> | 2005-07-05 11:44:45 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2005-07-05 11:44:45 +0000 |
commit | 1875e6db29fb832d3cac101024ccb1f690b35028 (patch) | |
tree | 21b9c820ea71319acbe4cf985219cffea69e9d86 /e_os.h | |
parent | 0962fbbf98bfb4ef060dc6a54d11636f01706cd0 (diff) | |
download | openssl-1875e6db29fb832d3cac101024ccb1f690b35028.tar.gz |
Pull up Win64 support from 0.9.8.
Diffstat (limited to 'e_os.h')
-rw-r--r-- | e_os.h | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -266,6 +266,16 @@ extern "C" { # include <stddef.h> # include <errno.h> # include <string.h> +# ifdef _WIN64 +# define strlen(s) _strlen31(s) +/* cut strings to 2GB */ +static unsigned int _strlen31(const char *str) + { + unsigned int len=0; + while (*str && len<0x80000000U) str++, len++; + return len&0x7FFFFFFF; + } +# endif # include <malloc.h> # endif # include <io.h> @@ -426,6 +436,15 @@ extern "C" { # elif !defined(__DJGPP__) # include <winsock.h> extern HINSTANCE _hInstance; +# ifdef _WIN64 +/* + * Even though sizeof(SOCKET) is 8, it's safe to cast it to int, because + * the value constitutes an index in per-process table of limited size + * and not a real pointer. + */ +# define socket(d,t,p) ((int)socket(d,t,p)) +# define accept(s,f,l) ((int)accept(s,f,l)) +# endif # define SSLeay_Write(a,b,c) send((a),(b),(c),0) # define SSLeay_Read(a,b,c) recv((a),(b),(c),0) # define SHUTDOWN(fd) { shutdown((fd),0); closesocket(fd); } |