eal/windows: improve compatibility networking headers

Extend compatibility header system to support librte_cmdline.

pthread.h has to include windows.h, which exposes struct in_addr, etc.
conflicting with compatibility headers. WIN32_LEAN_AND_MEAN macro
is required to disable this behavior. Use rte_windows.h to define
WIN32_LEAN_AND_MEAN for pthread library.

Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
This commit is contained in:
Dmitry Kozlyuk 2020-09-29 00:50:50 +03:00 committed by Thomas Monjalon
parent b5741b5704
commit f40a74cfcf
3 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,30 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright (c) 2020 Dmitry Kozlyuk
*/
#ifndef _ARPA_INET_H_
#define _ARPA_INET_H_
/**
* @file
*
* Compatibility header
*
* Although symbols declared here are present on Windows,
* including <winsock2.h> would expose too much macros breaking common code.
*/
#include <netinet/in.h>
#include <sys/socket.h>
/* defined in ws2_32.dll */
__attribute__((stdcall))
int
inet_pton(int af, const char *src, void *dst);
/* defined in ws2_32.dll */
__attribute__((stdcall))
const char *
inet_ntop(int af, const void *src, char *dst, socklen_t size);
#endif /* _ARPA_INET_H_ */

View File

@ -5,6 +5,8 @@
#ifndef _IN_H_
#define _IN_H_
#include <sys/socket.h>
#define IPPROTO_IP 0
#define IPPROTO_HOPOPTS 0
#define IPPROTO_ICMP 1
@ -22,4 +24,14 @@
#define IPPROTO_DSTOPTS 60
#define IPPROTO_SCTP 132
#define INET6_ADDRSTRLEN 46
struct in_addr {
uint32_t s_addr;
};
struct in6_addr {
uint8_t s6_addr[16];
};
#endif

View File

@ -0,0 +1,24 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright (c) 2020 Dmitry Kozlyuk
*/
#ifndef _SYS_SOCKET_H_
#define _SYS_SOCKET_H_
/**
* @file
*
* Compatibility header
*
* Although symbols declared here are present on Windows,
* including <winsock2.h> would expose too much macros breaking common code.
*/
#include <stddef.h>
#define AF_INET 2
#define AF_INET6 23
typedef size_t socklen_t;
#endif /* _SYS_SOCKET_H_ */