Rob Shearman : include: Add declaration of sockaddr_storage to ws2def.h.
Alexandre Julliard
julliard at winehq.org
Tue Apr 7 09:04:39 CDT 2009
Module: wine
Branch: master
Commit: cb4265074f3dbe2c24813e0aef10b2bb7e88587c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cb4265074f3dbe2c24813e0aef10b2bb7e88587c
Author: Rob Shearman <robertshearman at gmail.com>
Date: Tue Apr 7 12:29:35 2009 +0100
include: Add declaration of sockaddr_storage to ws2def.h.
Move other declarations that belong in ws2def.h from winsock2.h.
---
include/Makefile.in | 1 +
include/winsock2.h | 23 +----------------
include/ws2def.h | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 73 insertions(+), 22 deletions(-)
diff --git a/include/Makefile.in b/include/Makefile.in
index 6c1878a..795e55c 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -473,6 +473,7 @@ SRCDIR_INCLUDES = \
wmistr.h \
wnaspi32.h \
wownt32.h \
+ ws2def.h \
ws2ipdef.h \
ws2spi.h \
ws2tcpip.h \
diff --git a/include/winsock2.h b/include/winsock2.h
index b73fde3..d54e8a8 100644
--- a/include/winsock2.h
+++ b/include/winsock2.h
@@ -47,6 +47,7 @@
#include <winsock.h>
#undef __WINE_WINSOCK2__
+#include <ws2def.h>
#ifdef __cplusplus
extern "C" {
@@ -421,28 +422,6 @@ typedef struct _BLOB {
} BLOB, *LPBLOB;
#endif
-#ifndef __CSADDR_DEFINED__
-#define __CSADDR_DEFINED__
-
-typedef struct _SOCKET_ADDRESS {
- LPSOCKADDR lpSockaddr;
- INT iSockaddrLength;
-} SOCKET_ADDRESS, *PSOCKET_ADDRESS, *LPSOCKET_ADDRESS;
-
-typedef struct _CSADDR_INFO {
- SOCKET_ADDRESS LocalAddr;
- SOCKET_ADDRESS RemoteAddr;
- INT iSocketType;
- INT iProtocol;
-} CSADDR_INFO, *PCSADDR_INFO, *LPCSADDR_INFO;
-#endif
-
-/*socket address list */
-typedef struct _SOCKET_ADDRESS_LIST {
- INT iAddressCount;
- SOCKET_ADDRESS Address[1];
-} SOCKET_ADDRESS_LIST, *LPSOCKET_ADDRESS_LIST;
-
/* addressfamily protocol pairs */
typedef struct _AFPROTOCOLS {
INT iAddressFamily;
diff --git a/include/ws2def.h b/include/ws2def.h
new file mode 100644
index 0000000..f2f7223
--- /dev/null
+++ b/include/ws2def.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2009 Robert Shearman
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _WS2DEF_
+#define _WS2DEF_
+
+/* FIXME: #include <inaddr.h> */
+
+#ifdef USE_WS_PREFIX
+#define WS(x) WS_##x
+#else
+#define WS(x) x
+#endif
+
+#ifndef __CSADDR_DEFINED__
+#define __CSADDR_DEFINED__
+
+typedef struct _SOCKET_ADDRESS {
+ LPSOCKADDR lpSockaddr;
+ INT iSockaddrLength;
+} SOCKET_ADDRESS, *PSOCKET_ADDRESS, *LPSOCKET_ADDRESS;
+
+typedef struct _CSADDR_INFO {
+ SOCKET_ADDRESS LocalAddr;
+ SOCKET_ADDRESS RemoteAddr;
+ INT iSocketType;
+ INT iProtocol;
+} CSADDR_INFO, *PCSADDR_INFO, *LPCSADDR_INFO;
+#endif
+
+#ifdef USE_WS_PREFIX
+#define WS__SS_MAXSIZE 128
+#define WS__SS_ALIGNSIZE (sizeof(__int64))
+#define WS__SS_PAD1SIZE (WS__SS_ALIGNSIZE - sizeof(short))
+#define WS__SS_PAD2SIZE (WS__SS_MAXSIZE - 2 * WS__SS_ALIGNSIZE)
+#else
+#define _SS_MAXSIZE 128
+#define _SS_ALIGNSIZE (sizeof(__int64))
+#define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof(short))
+#define _SS_PAD2SIZE (_SS_MAXSIZE - 2 * _SS_ALIGNSIZE)
+#endif
+
+typedef struct WS(sockaddr_storage) {
+ short ss_family;
+ char __ss_pad1[WS(_SS_PAD1SIZE)];
+ __int64 __ss_align;
+ char __ss_pad2[WS(_SS_PAD2SIZE)];
+} SOCKADDR_STORAGE, *PSOCKADDR_STORAGE, *LPSOCKADDR_STORAGE;
+
+/*socket address list */
+typedef struct _SOCKET_ADDRESS_LIST {
+ INT iAddressCount;
+ SOCKET_ADDRESS Address[1];
+} SOCKET_ADDRESS_LIST, *LPSOCKET_ADDRESS_LIST;
+
+#endif /* _WS2DEF_ */
More information about the wine-cvs
mailing list