From 468dabb5262fca1ec032e9b16418e48d23d89deb Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sat, 14 May 2022 15:40:02 +0200 Subject: Do not use ssize_t on Windows It doesn't have it. --- src/libslirp.h | 7 +++++-- src/main.h | 2 +- src/slirp.c | 4 ++-- src/util.c | 8 ++++---- src/util.h | 10 ++++++---- test/ncsitest.c | 2 +- test/pingtest.c | 2 +- 7 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/libslirp.h b/src/libslirp.h index 3afad21..ca109b6 100644 --- a/src/libslirp.h +++ b/src/libslirp.h @@ -10,7 +10,10 @@ #include #include #include +typedef int slirp_ssize_t; #else +#include +typedef ssize_t slirp_ssize_t; #include #include #endif @@ -33,8 +36,8 @@ enum { SLIRP_POLL_HUP = 1 << 4, }; -typedef ssize_t (*SlirpReadCb)(void *buf, size_t len, void *opaque); -typedef ssize_t (*SlirpWriteCb)(const void *buf, size_t len, void *opaque); +typedef slirp_ssize_t (*SlirpReadCb)(void *buf, size_t len, void *opaque); +typedef slirp_ssize_t (*SlirpWriteCb)(const void *buf, size_t len, void *opaque); typedef void (*SlirpTimerCb)(void *opaque); typedef int (*SlirpAddPollCb)(int fd, int events, void *opaque); typedef int (*SlirpGetREventsCb)(int idx, void *opaque); diff --git a/src/main.h b/src/main.h index 3b3f883..35ac58d 100644 --- a/src/main.h +++ b/src/main.h @@ -11,6 +11,6 @@ extern struct in_addr loopback_addr; extern unsigned long loopback_mask; int if_encap(Slirp *slirp, struct mbuf *ifm); -ssize_t slirp_send(struct socket *so, const void *buf, size_t len, int flags); +slirp_ssize_t slirp_send(struct socket *so, const void *buf, size_t len, int flags); #endif diff --git a/src/slirp.c b/src/slirp.c index 54056c9..25051f9 100644 --- a/src/slirp.c +++ b/src/slirp.c @@ -1511,7 +1511,7 @@ int slirp_remove_guestfwd(Slirp *slirp, struct in_addr guest_addr, htons(guest_port)); } -ssize_t slirp_send(struct socket *so, const void *buf, size_t len, int flags) +slirp_ssize_t slirp_send(struct socket *so, const void *buf, size_t len, int flags) { if (so->s == -1 && so->guestfwd) { /* XXX this blocks entire thread. Rewrite to use @@ -1587,7 +1587,7 @@ void slirp_socket_recv(Slirp *slirp, struct in_addr guest_addr, int guest_port, void slirp_send_packet_all(Slirp *slirp, const void *buf, size_t len) { - ssize_t ret = slirp->cb->send_packet(buf, len, slirp->opaque); + slirp_ssize_t ret = slirp->cb->send_packet(buf, len, slirp->opaque); if (ret < 0) { g_critical("Failed to send packet, ret: %ld", (long)ret); diff --git a/src/util.c b/src/util.c index e6bccbe..8267f0c 100644 --- a/src/util.c +++ b/src/util.c @@ -303,7 +303,7 @@ int slirp_getsockname_wrap(int sockfd, struct sockaddr *addr, int *addrlen) } #undef send -ssize_t slirp_send_wrap(int sockfd, const void *buf, size_t len, int flags) +slirp_ssize_t slirp_send_wrap(int sockfd, const void *buf, size_t len, int flags) { int ret; ret = send(sockfd, buf, len, flags); @@ -314,7 +314,7 @@ ssize_t slirp_send_wrap(int sockfd, const void *buf, size_t len, int flags) } #undef sendto -ssize_t slirp_sendto_wrap(int sockfd, const void *buf, size_t len, int flags, +slirp_ssize_t slirp_sendto_wrap(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *addr, int addrlen) { int ret; @@ -326,7 +326,7 @@ ssize_t slirp_sendto_wrap(int sockfd, const void *buf, size_t len, int flags, } #undef recv -ssize_t slirp_recv_wrap(int sockfd, void *buf, size_t len, int flags) +slirp_ssize_t slirp_recv_wrap(int sockfd, void *buf, size_t len, int flags) { int ret; ret = recv(sockfd, buf, len, flags); @@ -337,7 +337,7 @@ ssize_t slirp_recv_wrap(int sockfd, void *buf, size_t len, int flags) } #undef recvfrom -ssize_t slirp_recvfrom_wrap(int sockfd, void *buf, size_t len, int flags, +slirp_ssize_t slirp_recvfrom_wrap(int sockfd, void *buf, size_t len, int flags, struct sockaddr *addr, int *addrlen) { int ret; diff --git a/src/util.h b/src/util.h index 218226d..9f73b41 100644 --- a/src/util.h +++ b/src/util.h @@ -45,6 +45,8 @@ #include #endif +#include "libslirp.h" + #if defined(_WIN32) && (defined(__x86_64__) || defined(__i386__)) #define SLIRP_PACKED __attribute__((gcc_struct, packed)) #else @@ -129,14 +131,14 @@ int slirp_getpeername_wrap(int fd, struct sockaddr *addr, int *addrlen); #define getsockname slirp_getsockname_wrap int slirp_getsockname_wrap(int fd, struct sockaddr *addr, int *addrlen); #define send slirp_send_wrap -ssize_t slirp_send_wrap(int fd, const void *buf, size_t len, int flags); +slirp_ssize_t slirp_send_wrap(int fd, const void *buf, size_t len, int flags); #define sendto slirp_sendto_wrap -ssize_t slirp_sendto_wrap(int fd, const void *buf, size_t len, int flags, +slirp_ssize_t slirp_sendto_wrap(int fd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, int addrlen); #define recv slirp_recv_wrap -ssize_t slirp_recv_wrap(int fd, void *buf, size_t len, int flags); +slirp_ssize_t slirp_recv_wrap(int fd, void *buf, size_t len, int flags); #define recvfrom slirp_recvfrom_wrap -ssize_t slirp_recvfrom_wrap(int fd, void *buf, size_t len, int flags, +slirp_ssize_t slirp_recvfrom_wrap(int fd, void *buf, size_t len, int flags, struct sockaddr *src_addr, int *addrlen); #define closesocket slirp_closesocket_wrap int slirp_closesocket_wrap(int fd); diff --git a/test/ncsitest.c b/test/ncsitest.c index c763af2..36aa090 100644 --- a/test/ncsitest.c +++ b/test/ncsitest.c @@ -148,7 +148,7 @@ static void test_ncsi_oem_mlx_gma(Slirp *slirp) assert(oem->data[MLX_GMA_STATUS_OFFSET] == 1); } -static ssize_t send_packet(const void *buf, size_t len, void *opaque) +static slirp_ssize_t send_packet(const void *buf, size_t len, void *opaque) { assert(len <= NCSI_RESPONSE_CAPACITY); memcpy(opaque, buf, len); diff --git a/test/pingtest.c b/test/pingtest.c index 8607db6..247a5b1 100644 --- a/test/pingtest.c +++ b/test/pingtest.c @@ -85,7 +85,7 @@ static void checksum(uint8_t *data, size_t size, uint8_t *cksum) { /* This is called when receiving a packet from the virtual network, for the * guest */ -static ssize_t send_packet(const void *buf, size_t len, void *opaque) { +static slirp_ssize_t send_packet(const void *buf, size_t len, void *opaque) { const uint8_t *data = buf; assert(len >= 14); -- cgit v1.1