From c21d959440c5be6b456ca8780c2450ffd39fab99 Mon Sep 17 00:00:00 2001 From: Marc-André Lureau Date: Thu, 17 Jan 2019 15:43:43 +0400 Subject: slirp: replace qemu_notify_event() with a callback Introduce a SlirpCb callback to kick the main io-thread. Add an intermediary sodrop() function that will call SlirpCb.notify callback when sbdrop() returns true. Signed-off-by: Marc-André Lureau Signed-off-by: Samuel Thibault --- slirp/tcp_input.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'slirp/tcp_input.c') diff --git a/slirp/tcp_input.c b/slirp/tcp_input.c index de5b74a52b..7c1fe18fec 100644 --- a/slirp/tcp_input.c +++ b/slirp/tcp_input.c @@ -506,7 +506,7 @@ findso: SEQ_GT(ti->ti_ack, tp->t_rtseq)) tcp_xmit_timer(tp, tp->t_rtt); acked = ti->ti_ack - tp->snd_una; - sbdrop(&so->so_snd, acked); + sodrop(so, acked); tp->snd_una = ti->ti_ack; m_free(m); @@ -1118,10 +1118,10 @@ trimthenstep6: } if (acked > so->so_snd.sb_cc) { tp->snd_wnd -= so->so_snd.sb_cc; - sbdrop(&so->so_snd, (int )so->so_snd.sb_cc); + sodrop(so, (int)so->so_snd.sb_cc); ourfinisacked = 1; } else { - sbdrop(&so->so_snd, acked); + sodrop(so, acked); tp->snd_wnd -= acked; ourfinisacked = 0; } -- cgit v1.2.3-55-g7522 From a9d8b3ec4385793815d7121785730422fa3dfb68 Mon Sep 17 00:00:00 2001 From: Marc-André Lureau Date: Thu, 17 Jan 2019 15:43:52 +0400 Subject: slirp: replace remaining qemu headers dependency Except for the migration code which is gated by WITH_QEMU, only include our own headers, so libslirp can be built standalone. Signed-off-by: Marc-André Lureau Signed-off-by: Samuel Thibault --- slirp/arp_table.c | 3 ++- slirp/bootp.c | 1 - slirp/cksum.c | 1 - slirp/dhcpv6.c | 1 - slirp/dnssearch.c | 1 - slirp/if.c | 1 - slirp/ip6.h | 1 + slirp/ip6_icmp.c | 1 - slirp/ip6_input.c | 1 - slirp/ip6_output.c | 2 -- slirp/ip_icmp.c | 1 - slirp/ip_input.c | 1 - slirp/ip_output.c | 1 - slirp/mbuf.c | 1 - slirp/misc.c | 2 -- slirp/ncsi.c | 1 - slirp/ndp_table.c | 2 -- slirp/sbuf.c | 1 - slirp/slirp.c | 2 -- slirp/socket.c | 2 -- slirp/tcp_input.c | 1 - slirp/tcp_output.c | 1 - slirp/tcp_subr.c | 1 - slirp/tcp_timer.c | 1 - slirp/tftp.c | 6 ++++-- slirp/udp.c | 1 - slirp/udp6.c | 2 -- slirp/util.h | 21 +++++++++++++++++++++ 28 files changed, 28 insertions(+), 33 deletions(-) (limited to 'slirp/tcp_input.c') diff --git a/slirp/arp_table.c b/slirp/arp_table.c index bf71b984ad..58eafdcfd8 100644 --- a/slirp/arp_table.c +++ b/slirp/arp_table.c @@ -22,9 +22,10 @@ * THE SOFTWARE. */ -#include "qemu/osdep.h" #include "slirp.h" +#include + void arp_table_add(Slirp *slirp, uint32_t ip_addr, uint8_t ethaddr[ETH_ALEN]) { const uint32_t broadcast_addr = diff --git a/slirp/bootp.c b/slirp/bootp.c index 4c9a77eb98..d396849a05 100644 --- a/slirp/bootp.c +++ b/slirp/bootp.c @@ -21,7 +21,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "qemu/osdep.h" #include "slirp.h" #if defined(_WIN32) diff --git a/slirp/cksum.c b/slirp/cksum.c index 84c858fafb..25bfa67348 100644 --- a/slirp/cksum.c +++ b/slirp/cksum.c @@ -30,7 +30,6 @@ * in_cksum.c,v 1.2 1994/08/02 07:48:16 davidg Exp */ -#include "qemu/osdep.h" #include "slirp.h" /* diff --git a/slirp/dhcpv6.c b/slirp/dhcpv6.c index e27d9a46f8..9ffba38e8f 100644 --- a/slirp/dhcpv6.c +++ b/slirp/dhcpv6.c @@ -20,7 +20,6 @@ * along with this program; if not, see . */ -#include "qemu/osdep.h" #include "slirp.h" #include "dhcpv6.h" diff --git a/slirp/dnssearch.c b/slirp/dnssearch.c index 8fb563321b..c459cece8d 100644 --- a/slirp/dnssearch.c +++ b/slirp/dnssearch.c @@ -22,7 +22,6 @@ * THE SOFTWARE. */ -#include "qemu/osdep.h" #include "slirp.h" static const uint8_t RFC3397_OPT_DOMAIN_SEARCH = 119; diff --git a/slirp/if.c b/slirp/if.c index 90b9078687..2ad03b8a79 100644 --- a/slirp/if.c +++ b/slirp/if.c @@ -5,7 +5,6 @@ * terms and conditions of the copyright. */ -#include "qemu/osdep.h" #include "slirp.h" static void diff --git a/slirp/ip6.h b/slirp/ip6.h index 5361bd7449..1b3364f960 100644 --- a/slirp/ip6.h +++ b/slirp/ip6.h @@ -7,6 +7,7 @@ #define SLIRP_IP6_H #include +#include #define ALLNODES_MULTICAST { .s6_addr = \ { 0xff, 0x02, 0x00, 0x00,\ diff --git a/slirp/ip6_icmp.c b/slirp/ip6_icmp.c index b3b7e50a31..2a432ebbd4 100644 --- a/slirp/ip6_icmp.c +++ b/slirp/ip6_icmp.c @@ -3,7 +3,6 @@ * Guillaume Subiron, Yann Bordenave, Serigne Modou Wagne. */ -#include "qemu/osdep.h" #include "slirp.h" #include "ip6_icmp.h" diff --git a/slirp/ip6_input.c b/slirp/ip6_input.c index ab656a0a9d..1b8c003c66 100644 --- a/slirp/ip6_input.c +++ b/slirp/ip6_input.c @@ -3,7 +3,6 @@ * Guillaume Subiron, Yann Bordenave, Serigne Modou Wagne. */ -#include "qemu/osdep.h" #include "slirp.h" #include "ip6_icmp.h" diff --git a/slirp/ip6_output.c b/slirp/ip6_output.c index 52c88ad691..19d1ae7748 100644 --- a/slirp/ip6_output.c +++ b/slirp/ip6_output.c @@ -3,8 +3,6 @@ * Guillaume Subiron, Yann Bordenave, Serigne Modou Wagne. */ -#include "qemu/osdep.h" -#include "qemu-common.h" #include "slirp.h" /* Number of packets queued before we start sending diff --git a/slirp/ip_icmp.c b/slirp/ip_icmp.c index 19e247f773..6b6344b776 100644 --- a/slirp/ip_icmp.c +++ b/slirp/ip_icmp.c @@ -30,7 +30,6 @@ * ip_icmp.c,v 1.7 1995/05/30 08:09:42 rgrimes Exp */ -#include "qemu/osdep.h" #include "slirp.h" #include "ip_icmp.h" diff --git a/slirp/ip_input.c b/slirp/ip_input.c index d360620838..774ce662e6 100644 --- a/slirp/ip_input.c +++ b/slirp/ip_input.c @@ -38,7 +38,6 @@ * terms and conditions of the copyright. */ -#include "qemu/osdep.h" #include "slirp.h" #include "ip_icmp.h" diff --git a/slirp/ip_output.c b/slirp/ip_output.c index db403f04c1..f6ec141df5 100644 --- a/slirp/ip_output.c +++ b/slirp/ip_output.c @@ -38,7 +38,6 @@ * terms and conditions of the copyright. */ -#include "qemu/osdep.h" #include "slirp.h" /* Number of packets queued before we start sending diff --git a/slirp/mbuf.c b/slirp/mbuf.c index d8d275e0e7..521c02c967 100644 --- a/slirp/mbuf.c +++ b/slirp/mbuf.c @@ -15,7 +15,6 @@ * the flags */ -#include "qemu/osdep.h" #include "slirp.h" #define MBUF_THRESH 30 diff --git a/slirp/misc.c b/slirp/misc.c index ee77aff337..3c02510101 100644 --- a/slirp/misc.c +++ b/slirp/misc.c @@ -5,9 +5,7 @@ * terms and conditions of the copyright. */ -#include "qemu/osdep.h" #include "slirp.h" -#include "libslirp.h" inline void insque(void *a, void *b) diff --git a/slirp/ncsi.c b/slirp/ncsi.c index 8594382270..327f17543c 100644 --- a/slirp/ncsi.c +++ b/slirp/ncsi.c @@ -6,7 +6,6 @@ * This code is licensed under the GPL version 2 or later. See the * COPYING file in the top-level directory. */ -#include "qemu/osdep.h" #include "slirp.h" #include "ncsi-pkt.h" diff --git a/slirp/ndp_table.c b/slirp/ndp_table.c index b7b73722f7..34ea4fdf1f 100644 --- a/slirp/ndp_table.c +++ b/slirp/ndp_table.c @@ -3,8 +3,6 @@ * Guillaume Subiron, Yann Bordenave, Serigne Modou Wagne. */ -#include "qemu/osdep.h" -#include "qemu-common.h" #include "slirp.h" void ndp_table_add(Slirp *slirp, struct in6_addr ip_addr, diff --git a/slirp/sbuf.c b/slirp/sbuf.c index c83e4dd8ed..51a9f0cc7d 100644 --- a/slirp/sbuf.c +++ b/slirp/sbuf.c @@ -5,7 +5,6 @@ * terms and conditions of the copyright. */ -#include "qemu/osdep.h" #include "slirp.h" static void sbappendsb(struct sbuf *sb, struct mbuf *m); diff --git a/slirp/slirp.c b/slirp/slirp.c index ec1f606d72..730b78255c 100644 --- a/slirp/slirp.c +++ b/slirp/slirp.c @@ -21,8 +21,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "qemu/osdep.h" -#include "qemu-common.h" #include "slirp.h" #ifdef WITH_QEMU diff --git a/slirp/socket.c b/slirp/socket.c index 2e8dc22fb6..dea201f5ce 100644 --- a/slirp/socket.c +++ b/slirp/socket.c @@ -5,8 +5,6 @@ * terms and conditions of the copyright. */ -#include "qemu/osdep.h" -#include "qemu-common.h" #include "slirp.h" #include "ip_icmp.h" #ifdef __sun__ diff --git a/slirp/tcp_input.c b/slirp/tcp_input.c index 7c1fe18fec..864da7d857 100644 --- a/slirp/tcp_input.c +++ b/slirp/tcp_input.c @@ -38,7 +38,6 @@ * terms and conditions of the copyright. */ -#include "qemu/osdep.h" #include "slirp.h" #include "ip_icmp.h" diff --git a/slirp/tcp_output.c b/slirp/tcp_output.c index 6dd1ecf5d9..2b4335eb34 100644 --- a/slirp/tcp_output.c +++ b/slirp/tcp_output.c @@ -38,7 +38,6 @@ * terms and conditions of the copyright. */ -#include "qemu/osdep.h" #include "slirp.h" static const u_char tcp_outflags[TCP_NSTATES] = { diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c index d8846a33b0..879a7dcd29 100644 --- a/slirp/tcp_subr.c +++ b/slirp/tcp_subr.c @@ -38,7 +38,6 @@ * terms and conditions of the copyright. */ -#include "qemu/osdep.h" #include "slirp.h" /* patchable/settable parameters for tcp */ diff --git a/slirp/tcp_timer.c b/slirp/tcp_timer.c index a843e57a2b..703907eb37 100644 --- a/slirp/tcp_timer.c +++ b/slirp/tcp_timer.c @@ -30,7 +30,6 @@ * tcp_timer.c,v 1.2 1994/08/02 07:49:10 davidg Exp */ -#include "qemu/osdep.h" #include "slirp.h" static struct tcpcb *tcp_timers(register struct tcpcb *tp, int timer); diff --git a/slirp/tftp.c b/slirp/tftp.c index 5c31886190..2d8f978786 100644 --- a/slirp/tftp.c +++ b/slirp/tftp.c @@ -22,9 +22,11 @@ * THE SOFTWARE. */ -#include "qemu/osdep.h" #include "slirp.h" -#include "qemu-common.h" + +#include +#include +#include static inline int tftp_session_in_use(struct tftp_session *spt) { diff --git a/slirp/udp.c b/slirp/udp.c index 3915971b50..ac42be0d8e 100644 --- a/slirp/udp.c +++ b/slirp/udp.c @@ -38,7 +38,6 @@ * terms and conditions of the copyright. */ -#include "qemu/osdep.h" #include "slirp.h" #include "ip_icmp.h" diff --git a/slirp/udp6.c b/slirp/udp6.c index fa531e03c4..be5cba1f54 100644 --- a/slirp/udp6.c +++ b/slirp/udp6.c @@ -3,8 +3,6 @@ * Guillaume Subiron */ -#include "qemu/osdep.h" -#include "qemu-common.h" #include "slirp.h" #include "udp.h" #include "dhcpv6.h" diff --git a/slirp/util.h b/slirp/util.h index ef75804560..4963747aef 100644 --- a/slirp/util.h +++ b/slirp/util.h @@ -48,6 +48,27 @@ # define SLIRP_PACKED __attribute__((packed)) #endif +#ifndef DIV_ROUND_UP +#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) +#endif + +#ifndef container_of +#define container_of(ptr, type, member) __extension__ ({ \ + void *__mptr = (void *)(ptr); \ + ((type *)(__mptr - offsetof(type, member))); }) +#endif + +#if defined(_WIN32) /* CONFIG_IOVEC */ +# if !defined(IOV_MAX) /* XXX: to avoid duplicate with QEMU osdep.h */ +struct iovec { + void *iov_base; + size_t iov_len; +}; +# endif +#else +#include +#endif + #define SCALE_MS 1000000 #define ETH_ALEN 6 -- cgit v1.2.3-55-g7522 From d7df0b41dc38327388c3f19fdf4246793d4a1e4b Mon Sep 17 00:00:00 2001 From: Marc-André Lureau Date: Thu, 17 Jan 2019 15:43:53 +0400 Subject: slirp: prefer c99 types over BSD kind Replace: - u_char -> uint8_t - u_short -> uint16_t - u_long -> uint32_t - u_int -> unsigned - caddr_t -> char * Signed-off-by: Marc-André Lureau Signed-off-by: Samuel Thibault --- slirp/ip_icmp.c | 6 +++--- slirp/ip_icmp.h | 18 +++++++++--------- slirp/ip_input.c | 4 ++-- slirp/main.h | 2 +- slirp/mbuf.h | 2 +- slirp/slirp.c | 12 ++++++------ slirp/slirp.h | 8 +++----- slirp/socket.c | 6 +++--- slirp/socket.h | 4 ++-- slirp/tcp_input.c | 22 +++++++++++----------- slirp/tcp_output.c | 12 ++++++------ slirp/tcp_subr.c | 18 +++++++++--------- slirp/tcp_timer.c | 2 +- slirp/tcp_var.h | 14 +++++++------- slirp/udp.c | 6 +++--- slirp/udp.h | 2 +- util/osdep.c | 2 +- 17 files changed, 69 insertions(+), 71 deletions(-) (limited to 'slirp/tcp_input.c') diff --git a/slirp/ip_icmp.c b/slirp/ip_icmp.c index 6b6344b776..7c5cb75ae5 100644 --- a/slirp/ip_icmp.c +++ b/slirp/ip_icmp.c @@ -240,7 +240,7 @@ end_error: #define ICMP_MAXDATALEN (IP_MSS-28) void -icmp_send_error(struct mbuf *msrc, u_char type, u_char code, int minsize, +icmp_send_error(struct mbuf *msrc, uint8_t type, uint8_t code, int minsize, const char *message) { unsigned hlen, shlen, s_ip_len; @@ -388,7 +388,7 @@ icmp_reflect(struct mbuf *m) * Strip out original options by copying rest of first * mbuf's data back, and adjust the IP length. */ - memmove((caddr_t)(ip + 1), (caddr_t)ip + hlen, + memmove((char *)(ip + 1), (char *)ip + hlen, (unsigned )(m->m_len - hlen)); hlen -= optlen; ip->ip_hl = hlen >> 2; @@ -412,7 +412,7 @@ void icmp_receive(struct socket *so) struct mbuf *m = so->so_m; struct ip *ip = mtod(m, struct ip *); int hlen = ip->ip_hl << 2; - u_char error_code; + uint8_t error_code; struct icmp *icp; int id, len; diff --git a/slirp/ip_icmp.h b/slirp/ip_icmp.h index d88ab34c1b..a4e5b8b265 100644 --- a/slirp/ip_icmp.h +++ b/slirp/ip_icmp.h @@ -44,22 +44,22 @@ typedef uint32_t n_time; * Structure of an icmp header. */ struct icmp { - u_char icmp_type; /* type of message, see below */ - u_char icmp_code; /* type sub code */ - u_short icmp_cksum; /* ones complement cksum of struct */ + uint8_t icmp_type; /* type of message, see below */ + uint8_t icmp_code; /* type sub code */ + uint16_t icmp_cksum; /* ones complement cksum of struct */ union { - u_char ih_pptr; /* ICMP_PARAMPROB */ + uint8_t ih_pptr; /* ICMP_PARAMPROB */ struct in_addr ih_gwaddr; /* ICMP_REDIRECT */ struct ih_idseq { - u_short icd_id; - u_short icd_seq; + uint16_t icd_id; + uint16_t icd_seq; } ih_idseq; int ih_void; /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */ struct ih_pmtu { - u_short ipm_void; - u_short ipm_nextmtu; + uint16_t ipm_void; + uint16_t ipm_nextmtu; } ih_pmtu; } icmp_hun; #define icmp_pptr icmp_hun.ih_pptr @@ -156,7 +156,7 @@ struct icmp { void icmp_init(Slirp *slirp); void icmp_cleanup(Slirp *slirp); void icmp_input(struct mbuf *, int); -void icmp_send_error(struct mbuf *msrc, u_char type, u_char code, int minsize, +void icmp_send_error(struct mbuf *msrc, uint8_t type, uint8_t code, int minsize, const char *message); void icmp_reflect(struct mbuf *); void icmp_receive(struct socket *so); diff --git a/slirp/ip_input.c b/slirp/ip_input.c index 774ce662e6..e0b94b0e42 100644 --- a/slirp/ip_input.c +++ b/slirp/ip_input.c @@ -458,11 +458,11 @@ ip_stripoptions(register struct mbuf *m, struct mbuf *mopt) { register int i; struct ip *ip = mtod(m, struct ip *); - register caddr_t opts; + register char *opts; int olen; olen = (ip->ip_hl<<2) - sizeof (struct ip); - opts = (caddr_t)(ip + 1); + opts = (char *)(ip + 1); i = m->m_len - (sizeof (struct ip) + olen); memcpy(opts, opts + olen, (unsigned)i); m->m_len -= olen; diff --git a/slirp/main.h b/slirp/main.h index 4bc05fb904..f11d4572b7 100644 --- a/slirp/main.h +++ b/slirp/main.h @@ -8,7 +8,7 @@ #ifndef SLIRP_MAIN_H #define SLIRP_MAIN_H -extern u_int curtime; +extern unsigned curtime; extern struct in_addr loopback_addr; extern unsigned long loopback_mask; diff --git a/slirp/mbuf.h b/slirp/mbuf.h index cbf17e136b..e2d443418a 100644 --- a/slirp/mbuf.h +++ b/slirp/mbuf.h @@ -85,7 +85,7 @@ struct mbuf { int m_size; /* Size of mbuf, from m_dat or m_ext */ struct socket *m_so; - caddr_t m_data; /* Current location of data */ + char *m_data; /* Current location of data */ int m_len; /* Amount of data in this mbuf, from m_data */ Slirp *slirp; diff --git a/slirp/slirp.c b/slirp/slirp.c index 730b78255c..3304c83001 100644 --- a/slirp/slirp.c +++ b/slirp/slirp.c @@ -46,7 +46,7 @@ static const uint8_t special_ethaddr[ETH_ALEN] = { 0x52, 0x55, 0x00, 0x00, 0x00, 0x00 }; -u_int curtime; +unsigned curtime; static QTAILQ_HEAD(, Slirp) slirp_instances = QTAILQ_HEAD_INITIALIZER(slirp_instances); @@ -55,9 +55,9 @@ static struct in_addr dns_addr; #ifndef _WIN32 static struct in6_addr dns6_addr; #endif -static u_int dns_addr_time; +static unsigned dns_addr_time; #ifndef _WIN32 -static u_int dns6_addr_time; +static unsigned dns6_addr_time; #endif #define TIMEOUT_FAST 2 /* milliseconds */ @@ -92,7 +92,7 @@ int get_dns_addr(struct in_addr *pdns_addr) } if ((ret = GetNetworkParams(FixedInfo, &BufLen)) != ERROR_SUCCESS) { - printf("GetNetworkParams failed. ret = %08x\n", (u_int)ret ); + printf("GetNetworkParams failed. ret = %08x\n", (unsigned)ret ); if (FixedInfo) { GlobalFree(FixedInfo); FixedInfo = NULL; @@ -126,7 +126,7 @@ static void winsock_cleanup(void) static int get_dns_addr_cached(void *pdns_addr, void *cached_addr, socklen_t addrlen, - struct stat *cached_stat, u_int *cached_time) + struct stat *cached_stat, unsigned *cached_time) { struct stat old_stat; if (curtime - *cached_time < TIMEOUT_DEFAULT) { @@ -149,7 +149,7 @@ static int get_dns_addr_cached(void *pdns_addr, void *cached_addr, static int get_dns_addr_resolv_conf(int af, void *pdns_addr, void *cached_addr, socklen_t addrlen, uint32_t *scope_id, - u_int *cached_time) + unsigned *cached_time) { char buff[512]; char buff2[257]; diff --git a/slirp/slirp.h b/slirp/slirp.h index 0e4d973c2a..05b8364c07 100644 --- a/slirp/slirp.h +++ b/slirp/slirp.h @@ -12,8 +12,6 @@ #define WIN32_LEAN_AND_MEAN #endif -typedef char *caddr_t; - # include # include # include @@ -124,8 +122,8 @@ bool ndp_table_search(Slirp *slirp, struct in6_addr ip_addr, struct Slirp { QTAILQ_ENTRY(Slirp) entry; - u_int time_fasttimo; - u_int last_slowtimo; + unsigned time_fasttimo; + unsigned last_slowtimo; bool do_slowtimo; bool in_enabled, in6_enabled; @@ -245,7 +243,7 @@ int ip6_output(struct socket *, struct mbuf *, int fast); /* tcp_input.c */ void tcp_input(register struct mbuf *, int, struct socket *, unsigned short af); -int tcp_mss(register struct tcpcb *, u_int); +int tcp_mss(register struct tcpcb *, unsigned); /* tcp_output.c */ int tcp_output(register struct tcpcb *); diff --git a/slirp/socket.c b/slirp/socket.c index dea201f5ce..c896fa6da3 100644 --- a/slirp/socket.c +++ b/slirp/socket.c @@ -506,7 +506,7 @@ sorecvfrom(struct socket *so) /* XXX Check if reply is "correct"? */ if(len == -1 || len == 0) { - u_char code=ICMP_UNREACH_PORT; + uint8_t code=ICMP_UNREACH_PORT; if(errno == EHOSTUNREACH) code=ICMP_UNREACH_HOST; else if(errno == ENETUNREACH) code=ICMP_UNREACH_NET; @@ -676,8 +676,8 @@ sosendto(struct socket *so, struct mbuf *m) * Listen for incoming TCP connections */ struct socket * -tcp_listen(Slirp *slirp, uint32_t haddr, u_int hport, uint32_t laddr, - u_int lport, int flags) +tcp_listen(Slirp *slirp, uint32_t haddr, unsigned hport, uint32_t laddr, + unsigned lport, int flags) { struct sockaddr_in addr; struct socket *so; diff --git a/slirp/socket.h b/slirp/socket.h index 1c1c8b5871..e4d12cd591 100644 --- a/slirp/socket.h +++ b/slirp/socket.h @@ -61,7 +61,7 @@ struct socket { int32_t so_state; /* internal state flags SS_*, below */ struct tcpcb *so_tcpcb; /* pointer to TCP protocol control block */ - u_int so_expire; /* When the socket will expire */ + unsigned so_expire; /* When the socket will expire */ int so_queued; /* Number of packets queued from this socket */ int so_nqueued; /* Number of packets queued in a row @@ -144,7 +144,7 @@ int sosendoob(struct socket *); int sowrite(struct socket *); void sorecvfrom(struct socket *); int sosendto(struct socket *, struct mbuf *); -struct socket * tcp_listen(Slirp *, uint32_t, u_int, uint32_t, u_int, +struct socket * tcp_listen(Slirp *, uint32_t, unsigned, uint32_t, unsigned, int); void soisfconnecting(register struct socket *); void soisfconnected(register struct socket *); diff --git a/slirp/tcp_input.c b/slirp/tcp_input.c index 864da7d857..6749b32f5d 100644 --- a/slirp/tcp_input.c +++ b/slirp/tcp_input.c @@ -76,7 +76,7 @@ } \ } -static void tcp_dooptions(struct tcpcb *tp, u_char *cp, int cnt, +static void tcp_dooptions(struct tcpcb *tp, uint8_t *cp, int cnt, struct tcpiphdr *ti); static void tcp_xmit_timer(register struct tcpcb *tp, int rtt); @@ -197,7 +197,7 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso, unsigned short af) struct ip save_ip, *ip; struct ip6 save_ip6, *ip6; register struct tcpiphdr *ti; - caddr_t optp = NULL; + char *optp = NULL; int optlen = 0; int len, tlen, off; register struct tcpcb *tp = NULL; @@ -205,7 +205,7 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso, unsigned short af) struct socket *so = NULL; int todrop, acked, ourfinisacked, needoutput = 0; int iss = 0; - u_long tiwin; + uint32_t tiwin; int ret; struct sockaddr_storage lhost, fhost; struct sockaddr_in *lhost4, *fhost4; @@ -327,7 +327,7 @@ tcp_input(struct mbuf *m, int iphlen, struct socket *inso, unsigned short af) ti->ti_len = tlen; if (off > sizeof (struct tcphdr)) { optlen = off - sizeof (struct tcphdr); - optp = mtod(m, caddr_t) + sizeof (struct tcpiphdr); + optp = mtod(m, char *) + sizeof (struct tcpiphdr); } tiflags = ti->ti_flags; @@ -469,7 +469,7 @@ findso: * else do it below (after getting remote address). */ if (optp && tp->t_state != TCPS_LISTEN) - tcp_dooptions(tp, (u_char *)optp, optlen, ti); + tcp_dooptions(tp, (uint8_t *)optp, optlen, ti); /* * Header prediction: check for the two common cases @@ -724,7 +724,7 @@ findso: tcp_template(tp); if (optp) - tcp_dooptions(tp, (u_char *)optp, optlen, ti); + tcp_dooptions(tp, (uint8_t *)optp, optlen, ti); if (iss) tp->iss = iss; @@ -1039,7 +1039,7 @@ trimthenstep6: tp->t_dupacks = 0; else if (++tp->t_dupacks == TCPREXMTTHRESH) { tcp_seq onxt = tp->snd_nxt; - u_int win = + unsigned win = MIN(tp->snd_wnd, tp->snd_cwnd) / 2 / tp->t_maxseg; @@ -1108,8 +1108,8 @@ trimthenstep6: * (maxseg^2 / cwnd per packet). */ { - register u_int cw = tp->snd_cwnd; - register u_int incr = tp->t_maxseg; + register unsigned cw = tp->snd_cwnd; + register unsigned incr = tp->t_maxseg; if (cw > tp->snd_ssthresh) incr = incr * incr / cw; @@ -1381,7 +1381,7 @@ drop: } static void -tcp_dooptions(struct tcpcb *tp, u_char *cp, int cnt, struct tcpiphdr *ti) +tcp_dooptions(struct tcpcb *tp, uint8_t *cp, int cnt, struct tcpiphdr *ti) { uint16_t mss; int opt, optlen; @@ -1511,7 +1511,7 @@ tcp_xmit_timer(register struct tcpcb *tp, int rtt) */ int -tcp_mss(struct tcpcb *tp, u_int offer) +tcp_mss(struct tcpcb *tp, unsigned offer) { struct socket *so = tp->t_socket; int mss; diff --git a/slirp/tcp_output.c b/slirp/tcp_output.c index 2b4335eb34..e9674df121 100644 --- a/slirp/tcp_output.c +++ b/slirp/tcp_output.c @@ -40,7 +40,7 @@ #include "slirp.h" -static const u_char tcp_outflags[TCP_NSTATES] = { +static const uint8_t tcp_outflags[TCP_NSTATES] = { TH_RST|TH_ACK, 0, TH_SYN, TH_SYN|TH_ACK, TH_ACK, TH_ACK, TH_FIN|TH_ACK, TH_FIN|TH_ACK, TH_FIN|TH_ACK, TH_ACK, TH_ACK, @@ -63,7 +63,7 @@ tcp_output(struct tcpcb *tp) register struct tcpiphdr *ti, tcpiph_save; struct ip *ip; struct ip6 *ip6; - u_char opt[MAX_TCPOPTLEN]; + uint8_t opt[MAX_TCPOPTLEN]; unsigned optlen, hdrlen; int idle, sendalot; @@ -271,7 +271,7 @@ send: opt[0] = TCPOPT_MAXSEG; opt[1] = 4; mss = htons((uint16_t) tcp_mss(tp, 0)); - memcpy((caddr_t)(opt + 2), (caddr_t)&mss, sizeof(mss)); + memcpy((char *)(opt + 2), (char *)&mss, sizeof(mss)); optlen = 4; } } @@ -301,7 +301,7 @@ send: m->m_data += IF_MAXLINKHDR; m->m_len = hdrlen; - sbcopy(&so->so_snd, off, (int) len, mtod(m, caddr_t) + hdrlen); + sbcopy(&so->so_snd, off, (int) len, mtod(m, char *) + hdrlen); m->m_len += len; /* @@ -324,7 +324,7 @@ send: ti = mtod(m, struct tcpiphdr *); - memcpy((caddr_t)ti, &tp->t_template, sizeof (struct tcpiphdr)); + memcpy((char *)ti, &tp->t_template, sizeof (struct tcpiphdr)); /* * Fill in fields, remembering maximum advertised @@ -353,7 +353,7 @@ send: ti->ti_seq = htonl(tp->snd_max); ti->ti_ack = htonl(tp->rcv_nxt); if (optlen) { - memcpy((caddr_t)(ti + 1), (caddr_t)opt, optlen); + memcpy((char *)(ti + 1), (char *)opt, optlen); ti->ti_off = (sizeof (struct tcphdr) + optlen) >> 2; } ti->ti_flags = flags; diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c index 879a7dcd29..e35628a892 100644 --- a/slirp/tcp_subr.c +++ b/slirp/tcp_subr.c @@ -163,7 +163,7 @@ tcp_respond(struct tcpcb *tp, struct tcpiphdr *ti, struct mbuf *m, * ti points into m so the next line is just making * the mbuf point to ti */ - m->m_data = (caddr_t)ti; + m->m_data = (char *)ti; m->m_len = sizeof (struct tcpiphdr); tlen = 0; @@ -182,7 +182,7 @@ tcp_respond(struct tcpcb *tp, struct tcpiphdr *ti, struct mbuf *m, } #undef xchg } - ti->ti_len = htons((u_short)(sizeof (struct tcphdr) + tlen)); + ti->ti_len = htons((uint16_t)(sizeof (struct tcphdr) + tlen)); tlen += sizeof (struct tcpiphdr); m->m_len = tlen; @@ -613,10 +613,10 @@ int tcp_emu(struct socket *so, struct mbuf *m) { Slirp *slirp = so->slirp; - u_int n1, n2, n3, n4, n5, n6; + unsigned n1, n2, n3, n4, n5, n6; char buff[257]; uint32_t laddr; - u_int lport; + unsigned lport; char *bptr; DEBUG_CALL("tcp_emu"); @@ -853,7 +853,7 @@ tcp_emu(struct socket *so, struct mbuf *m) bptr = m->m_data; while (bptr < m->m_data + m->m_len) { - u_short p; + uint16_t p; static int ra = 0; char ra_tbl[4]; @@ -909,8 +909,8 @@ tcp_emu(struct socket *so, struct mbuf *m) /* This is the field containing the port * number that RA-player is listening to. */ - lport = (((u_char*)bptr)[0] << 8) - + ((u_char *)bptr)[1]; + lport = (((uint8_t*)bptr)[0] << 8) + + ((uint8_t *)bptr)[1]; if (lport < 6970) lport += 256; /* don't know why */ if (lport < 6970 || lport > 7170) @@ -928,8 +928,8 @@ tcp_emu(struct socket *so, struct mbuf *m) } if (p == 7071) p = 0; - *(u_char *)bptr++ = (p >> 8) & 0xff; - *(u_char *)bptr = p & 0xff; + *(uint8_t *)bptr++ = (p >> 8) & 0xff; + *(uint8_t *)bptr = p & 0xff; ra = 0; return 1; /* port redirected, we're done */ break; diff --git a/slirp/tcp_timer.c b/slirp/tcp_timer.c index 703907eb37..7be54570af 100644 --- a/slirp/tcp_timer.c +++ b/slirp/tcp_timer.c @@ -232,7 +232,7 @@ tcp_timers(register struct tcpcb *tp, int timer) * to go below this.) */ { - u_int win = MIN(tp->snd_wnd, tp->snd_cwnd) / 2 / tp->t_maxseg; + unsigned win = MIN(tp->snd_wnd, tp->snd_cwnd) / 2 / tp->t_maxseg; if (win < 2) win = 2; tp->snd_cwnd = tp->t_maxseg; diff --git a/slirp/tcp_var.h b/slirp/tcp_var.h index 895ef6df1e..27ef1a51cb 100644 --- a/slirp/tcp_var.h +++ b/slirp/tcp_var.h @@ -47,9 +47,9 @@ struct tcpcb { short t_rxtshift; /* log(2) of rexmt exp. backoff */ short t_rxtcur; /* current retransmit value */ short t_dupacks; /* consecutive dup acks recd */ - u_short t_maxseg; /* maximum segment size */ + uint16_t t_maxseg; /* maximum segment size */ uint8_t t_force; /* 1 if forcing out a byte */ - u_short t_flags; + uint16_t t_flags; #define TF_ACKNOW 0x0001 /* ack peer immediately */ #define TF_DELACK 0x0002 /* ack, but try to delay it */ #define TF_NODELAY 0x0004 /* don't delay packets to coalesce */ @@ -105,7 +105,7 @@ struct tcpcb { tcp_seq t_rtseq; /* sequence number being timed */ short t_srtt; /* smoothed round-trip time */ short t_rttvar; /* variance in round-trip time */ - u_short t_rttmin; /* minimum rtt allowed */ + uint16_t t_rttmin; /* minimum rtt allowed */ uint32_t max_sndwnd; /* largest window peer has offered */ /* out-of-band data */ @@ -116,10 +116,10 @@ struct tcpcb { short t_softerror; /* possible error not yet reported */ /* RFC 1323 variables */ - u_char snd_scale; /* window scaling for send window */ - u_char rcv_scale; /* window scaling for recv window */ - u_char request_r_scale; /* pending window scaling */ - u_char requested_s_scale; + uint8_t snd_scale; /* window scaling for send window */ + uint8_t rcv_scale; /* window scaling for recv window */ + uint8_t request_r_scale; /* pending window scaling */ + uint8_t requested_s_scale; uint32_t ts_recent; /* timestamp echo data */ uint32_t ts_recent_age; /* when last updated */ tcp_seq last_ack_sent; diff --git a/slirp/udp.c b/slirp/udp.c index ac42be0d8e..5baa604b33 100644 --- a/slirp/udp.c +++ b/slirp/udp.c @@ -92,7 +92,7 @@ udp_input(register struct mbuf *m, int iphlen) * Get IP and UDP header together in first mbuf. */ ip = mtod(m, struct ip *); - uh = (struct udphdr *)((caddr_t)ip + iphlen); + uh = (struct udphdr *)((char *)ip + iphlen); /* * Make mbuf data length reflect UDP length. @@ -319,8 +319,8 @@ udp_tos(struct socket *so) } struct socket * -udp_listen(Slirp *slirp, uint32_t haddr, u_int hport, uint32_t laddr, - u_int lport, int flags) +udp_listen(Slirp *slirp, uint32_t haddr, unsigned hport, uint32_t laddr, + unsigned lport, int flags) { struct sockaddr_in addr; struct socket *so; diff --git a/slirp/udp.h b/slirp/udp.h index be657cf922..3d29504caa 100644 --- a/slirp/udp.h +++ b/slirp/udp.h @@ -78,7 +78,7 @@ void udp_cleanup(Slirp *); void udp_input(register struct mbuf *, int); int udp_attach(struct socket *, unsigned short af); void udp_detach(struct socket *); -struct socket * udp_listen(Slirp *, uint32_t, u_int, uint32_t, u_int, +struct socket * udp_listen(Slirp *, uint32_t, unsigned, uint32_t, unsigned, int); int udp_output(struct socket *so, struct mbuf *m, struct sockaddr_in *saddr, struct sockaddr_in *daddr, diff --git a/util/osdep.c b/util/osdep.c index 4b5dc7287d..3f04326040 100644 --- a/util/osdep.c +++ b/util/osdep.c @@ -29,7 +29,7 @@ #include /* See MySQL bug #7156 (http://bugs.mysql.com/bug.php?id=7156) for discussion about Solaris header problems */ -extern int madvise(caddr_t, size_t, int); +extern int madvise(char *, size_t, int); #endif #include "qemu-common.h" -- cgit v1.2.3-55-g7522