diff options
author | Andy Polyakov <appro@openssl.org> | 2005-07-04 23:24:12 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2005-07-04 23:24:12 +0000 |
commit | dabaea8048988709af709e7d329dff311635ff84 (patch) | |
tree | 86c6a690dbd0c85798f1af86e44259be4106c3b4 /e_os.h | |
parent | 09c1a425a9daaf7c174f1ce62a832b61bb9532b4 (diff) |
To secure Win64 API I'm throwing in this minimalistic Win64 support.
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); } |