From: Paolo Bonzini <pbonzini@redhat.com>
To: Jan Kiszka <jan.kiszka@siemens.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 1/2] slirp: clean up conflicts with system headers
Date: Thu, 22 Mar 2012 20:24:21 +0100 [thread overview]
Message-ID: <4F6B7C65.6080201@redhat.com> (raw)
In-Reply-To: <4F6B38CB.8080400@siemens.com>
Il 22/03/2012 15:35, Jan Kiszka ha scritto:
>> @@ -167,9 +164,6 @@ int inet_aton(const char *cp, struct in_addr *ia);
>> #include "bootp.h"
>> #include "tftp.h"
>>
>> -/* osdep.c */
>> -int qemu_socket(int domain, int type, int protocol);
>> -
>> #define ETH_ALEN 6
>> #define ETH_HLEN 14
>>
>> diff --git a/slirp/tcp.h b/slirp/tcp.h
>> index b3817cb..8299603 100644
>> --- a/slirp/tcp.h
>> +++ b/slirp/tcp.h
>> @@ -45,6 +45,7 @@ typedef uint32_t tcp_seq;
>> * TCP header.
>> * Per RFC 793, September, 1981.
>> */
>> +#define tcphdr slirp_tcphdr
>
> Nice :). What about s/tcphdr/bsd_tcphdr/ or so for all slirp files?
Well, we have a precedent here:
/* Avoid conflicting with the libc insque() and remque(), which
have different prototypes. */
#define insque slirp_insque
#define remque slirp_remque
> Even better would be enabling slirp to use an existing declaration. But that
> looks trickier in first sight.
Yep, especially with no Autoconf.
>> struct tcphdr {
>> uint16_t th_sport; /* source port */
>> uint16_t th_dport; /* destination port */
>> @@ -58,12 +59,6 @@ struct tcphdr {
>> th_off:4; /* data offset */
>> #endif
>> uint8_t th_flags;
>> -#define TH_FIN 0x01
>> -#define TH_SYN 0x02
>> -#define TH_RST 0x04
>> -#define TH_PUSH 0x08
>> -#define TH_ACK 0x10
>> -#define TH_URG 0x20
>> uint16_t th_win; /* window */
>> uint16_t th_sum; /* checksum */
>> uint16_t th_urp; /* urgent pointer */
>> @@ -71,6 +66,16 @@ struct tcphdr {
>>
>> #include "tcp_var.h"
>>
>> +#ifndef TH_FIN
>> +#define TH_FIN 0x01
>> +#define TH_SYN 0x02
>> +#define TH_RST 0x04
>> +#define TH_PUSH 0x08
>> +#define TH_ACK 0x10
>> +#define TH_URG 0x20
>> +#endif
>> +
>> +#ifndef TCPOPT_EOL
>> #define TCPOPT_EOL 0
>> #define TCPOPT_NOP 1
>> #define TCPOPT_MAXSEG 2
>> @@ -86,6 +91,7 @@ struct tcphdr {
>>
>> #define TCPOPT_TSTAMP_HDR \
>> (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP)
>> +#endif
>
> Is there no portable header that offers those defines for us?
That would be netinet/tcp.h, but the problem is that there are some
differences. For example TCP_MSS is usually 512.
BTW the same could happen for ip.h, it's only that we never include it.
We need to include netinet/tcp.h outside slirp for TCP_NODELAY.
>> /*
>> * Default maximum segment size for TCP.
>> @@ -95,10 +101,13 @@ struct tcphdr {
>> *
>> * We make this 1460 because we only care about Ethernet in the qemu context.
>> */
>> +#undef TCP_MSS
>> #define TCP_MSS 1460
>>
>> +#undef TCP_MAXWIN
>> #define TCP_MAXWIN 65535 /* largest value for (unscaled) window */
>>
>> +#undef TCP_MAX_WINSHIFT
>> #define TCP_MAX_WINSHIFT 14 /* maximum window shift */
>>
>> /*
>
> Same here.
>
> The direction is appreciated a lot, but I'm measuring only a moderate
> overall hack-level reduction. ;)
Agreed, but one step at a time... this patch sticks to what it
promises, "clean up conflicts with system headers". :)
Paolo
next prev parent reply other threads:[~2012-03-22 19:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-22 0:02 [Qemu-devel] [PATCH 0/2] slirp: remove fd_block/fd_nonblock Paolo Bonzini
2012-03-22 0:02 ` [Qemu-devel] [PATCH 1/2] slirp: clean up conflicts with system headers Paolo Bonzini
2012-03-22 14:35 ` Jan Kiszka
2012-03-22 19:24 ` Paolo Bonzini [this message]
2012-03-23 9:00 ` Jan Kiszka
2012-03-22 0:02 ` [Qemu-devel] [PATCH 2/2] slirp: use socket_set_nonblock Paolo Bonzini
2012-03-28 18:47 ` [Qemu-devel] [PATCH 0/2] slirp: remove fd_block/fd_nonblock Jan Kiszka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F6B7C65.6080201@redhat.com \
--to=pbonzini@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.