From: "Daniel P. Berrangé" <berrange@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel@nongnu.org, samuel.thibault@ens-lyon.org,
rjones@redhat.com, stefanha@redhat.com, renzo@cs.unibo.it
Subject: Re: [Qemu-devel] [PATCH for-3.2 24/41] slirp: replace HOST_WORDS_BIGENDIAN with glib equivalent
Date: Wed, 14 Nov 2018 13:32:29 +0000 [thread overview]
Message-ID: <20181114133229.GL19298@redhat.com> (raw)
In-Reply-To: <20181114123643.24091-25-marcandre.lureau@redhat.com>
On Wed, Nov 14, 2018 at 04:36:26PM +0400, Marc-André Lureau wrote:
> One more step towards making the project independent from QEMU.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> slirp/ip.h | 8 +++++---
> slirp/ip6.h | 3 ++-
> slirp/ip6_icmp.h | 6 +++---
> slirp/slirp_config.h | 3 ---
> slirp/tcp.h | 4 +++-
> 5 files changed, 13 insertions(+), 11 deletions(-)
>
> diff --git a/slirp/ip.h b/slirp/ip.h
> index 59cf4aa918..83fc9cdfbf 100644
> --- a/slirp/ip.h
> +++ b/slirp/ip.h
> @@ -33,7 +33,9 @@
> #ifndef IP_H
> #define IP_H
>
> -#ifdef HOST_WORDS_BIGENDIAN
> +#include <glib.h>
> +
> +#if G_BYTE_ORDER == G_BIG_ENDIAN
This is a example of legacy cruft in QEMU that we should just
clean up across the entire codebase. Obviously it made sense
when first added to QEMU, but there's no sense in duplicating
what's provided by glib now it is a mandatory dependency.
I'm fine with you just changing slirp in this patch to avoid
getting bogged down in debate, but I'd strongly encourage a
followup to clean the rest of QEMU too
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> # undef NTOHL
> # undef NTOHS
> # undef HTONL
> @@ -69,7 +71,7 @@ typedef uint32_t n_long; /* long as received from the net */
> * Structure of an internet header, naked of options.
> */
> struct ip {
> -#ifdef HOST_WORDS_BIGENDIAN
> +#if G_BYTE_ORDER == G_BIG_ENDIAN
> uint8_t ip_v:4, /* version */
> ip_hl:4; /* header length */
> #else
> @@ -135,7 +137,7 @@ struct ip_timestamp {
> uint8_t ipt_code; /* IPOPT_TS */
> uint8_t ipt_len; /* size of structure (variable) */
> uint8_t ipt_ptr; /* index of current entry */
> -#ifdef HOST_WORDS_BIGENDIAN
> +#if G_BYTE_ORDER == G_BIG_ENDIAN
> uint8_t ipt_oflw:4, /* overflow counter */
> ipt_flg:4; /* flags, see below */
> #else
> diff --git a/slirp/ip6.h b/slirp/ip6.h
> index b1bea43b3c..14e9c78735 100644
> --- a/slirp/ip6.h
> +++ b/slirp/ip6.h
> @@ -6,6 +6,7 @@
> #ifndef SLIRP_IP6_H
> #define SLIRP_IP6_H
>
> +#include <glib.h>
> #include "net/eth.h"
>
> #define ALLNODES_MULTICAST { .s6_addr = \
> @@ -113,7 +114,7 @@ static inline void in6_compute_ethaddr(struct in6_addr ip,
> * Structure of an internet header, naked of options.
> */
> struct ip6 {
> -#ifdef HOST_WORDS_BIGENDIAN
> +#if G_BYTE_ORDER == G_BIG_ENDIAN
> uint32_t
> ip_v:4, /* version */
> ip_tc_hi:4, /* traffic class */
> diff --git a/slirp/ip6_icmp.h b/slirp/ip6_icmp.h
> index b3378b17b5..32b0914055 100644
> --- a/slirp/ip6_icmp.h
> +++ b/slirp/ip6_icmp.h
> @@ -34,7 +34,7 @@ struct ndp_rs { /* Router Solicitation Message */
>
> struct ndp_ra { /* Router Advertisement Message */
> uint8_t chl; /* Cur Hop Limit */
> -#ifdef HOST_WORDS_BIGENDIAN
> +#if G_BYTE_ORDER == G_BIG_ENDIAN
> uint8_t
> M:1,
> O:1,
> @@ -56,7 +56,7 @@ struct ndp_ns { /* Neighbor Solicitation Message */
> } QEMU_PACKED;
>
> struct ndp_na { /* Neighbor Advertisement Message */
> -#ifdef HOST_WORDS_BIGENDIAN
> +#if G_BYTE_ORDER == G_BIG_ENDIAN
> uint32_t
> R:1, /* Router Flag */
> S:1, /* Solicited Flag */
> @@ -125,7 +125,7 @@ struct ndpopt {
> #define ndpopt_linklayer ndpopt_body.linklayer_addr
> struct prefixinfo { /* Prefix Information */
> uint8_t prefix_length;
> -#ifdef HOST_WORDS_BIGENDIAN
> +#if G_BYTE_ORDER == G_BIG_ENDIAN
> uint8_t L:1, A:1, reserved1:6;
> #else
> uint8_t reserved1:6, A:1, L:1;
> diff --git a/slirp/slirp_config.h b/slirp/slirp_config.h
> index 5126711849..b2def6d20c 100644
> --- a/slirp/slirp_config.h
> +++ b/slirp/slirp_config.h
> @@ -11,8 +11,5 @@
> * You shouldn't need to touch any of these
> */
>
> -/* Define if the machine is big endian */
> -//#undef HOST_WORDS_BIGENDIAN
> -
> /* Define to sizeof(char *) */
> #define SIZEOF_CHAR_P (HOST_LONG_BITS / 8)
> diff --git a/slirp/tcp.h b/slirp/tcp.h
> index 174d3d960c..47aaea6c5b 100644
> --- a/slirp/tcp.h
> +++ b/slirp/tcp.h
> @@ -33,6 +33,8 @@
> #ifndef TCP_H
> #define TCP_H
>
> +#include <glib.h>
> +
> typedef uint32_t tcp_seq;
>
> #define PR_SLOWHZ 2 /* 2 slow timeouts per second (approx) */
> @@ -51,7 +53,7 @@ struct tcphdr {
> uint16_t th_dport; /* destination port */
> tcp_seq th_seq; /* sequence number */
> tcp_seq th_ack; /* acknowledgement number */
> -#ifdef HOST_WORDS_BIGENDIAN
> +#if G_BYTE_ORDER == G_BIG_ENDIAN
> uint8_t th_off:4, /* data offset */
> th_x2:4; /* (unused) */
> #else
> --
> 2.19.1.708.g4ede3d42df
>
>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2018-11-14 13:32 UTC|newest]
Thread overview: 137+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-14 12:36 [Qemu-devel] [PATCH for-3.2 00/41] RFC: slirp: make it again a standalone project Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 01/41] slirp: move socket pair creation in helper function Marc-André Lureau
2018-11-19 22:46 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 02/41] glib-compat: add g_spawn_async_with_fds() fallback Marc-André Lureau
2018-11-19 22:50 ` Samuel Thibault
2018-11-20 6:11 ` Thomas Huth
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 03/41] slirp: simplify fork_exec() Marc-André Lureau
2018-11-14 14:22 ` Daniel P. Berrangé
2018-11-19 22:59 ` Samuel Thibault
2018-11-19 23:20 ` Eric Blake
2018-11-19 22:56 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 04/41] slirp: remove unused M_TRAILINGSPACE Marc-André Lureau
2018-11-14 13:32 ` Daniel P. Berrangé
2018-11-19 23:01 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 05/41] slirp: use a callback structure to interface with qemu Marc-André Lureau
2018-11-14 13:10 ` Philippe Mathieu-Daudé
2018-11-19 23:09 ` Samuel Thibault
2018-11-14 14:30 ` Stefan Hajnoczi
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 06/41] slirp: add a callback for qemu_chr_fe_write_all() Marc-André Lureau
2018-11-15 13:12 ` Paolo Bonzini
2019-01-15 19:22 ` Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 07/41] slirp: add clock_get_ns() callback Marc-André Lureau
2018-11-15 12:54 ` Paolo Bonzini
2018-11-19 23:15 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 08/41] slirp: add callbacks for timer Marc-André Lureau
2018-11-15 12:56 ` Paolo Bonzini
2019-01-15 19:21 ` Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 09/41] slirp: add a set_nonblock() callback Marc-André Lureau
2018-11-15 13:03 ` Paolo Bonzini
2018-11-21 21:02 ` Marc-André Lureau
2018-11-22 13:09 ` Paolo Bonzini
2019-01-15 19:22 ` Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 10/41] slirp: remove PROBE_CONN dead-code Marc-André Lureau
2018-11-14 13:12 ` Philippe Mathieu-Daudé
2018-11-19 23:17 ` Samuel Thibault
2018-11-14 13:33 ` Daniel P. Berrangé
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 11/41] slirp: remove FULL_BOLT Marc-André Lureau
2018-11-14 13:46 ` Daniel P. Berrangé
2018-11-19 23:18 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 12/41] slirp: remove the disabled readv()/writev() code path Marc-André Lureau
2018-11-14 13:46 ` Daniel P. Berrangé
2018-11-19 23:19 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 13/41] slirp: remove HAVE_SYS_SIGNAL_H Marc-André Lureau
2018-11-14 13:47 ` Daniel P. Berrangé
2018-11-20 0:58 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 14/41] slirp: remove unused HAVE_SYS_BITYPES_H Marc-André Lureau
2018-11-14 13:47 ` Daniel P. Berrangé
2018-11-20 0:59 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 15/41] slirp: remove NO_UNIX_SOCKETS Marc-André Lureau
2018-11-14 13:48 ` Daniel P. Berrangé
2018-11-20 0:59 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 16/41] slirp: remove unused HAVE_SYS_STROPTS_H Marc-André Lureau
2018-11-14 13:49 ` Daniel P. Berrangé
2018-11-20 1:00 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 17/41] slirp: remove unused HAVE_ARPA_INET_H Marc-André Lureau
2018-11-14 13:50 ` Daniel P. Berrangé
2018-11-20 1:01 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 18/41] slirp: remove unused HAVE_SYS_WAIT_H Marc-André Lureau
2018-11-14 13:50 ` Daniel P. Berrangé
2018-11-20 1:01 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 19/41] slirp: remove unused HAVE_SYS_SELECT_H Marc-André Lureau
2018-11-14 13:51 ` Daniel P. Berrangé
2018-11-20 1:02 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 20/41] slirp: remove HAVE_SYS_IOCTL_H Marc-André Lureau
2018-11-14 13:51 ` Daniel P. Berrangé
2018-11-20 1:03 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 21/41] slirp: remove HAVE_SYS_FILIO_H Marc-André Lureau
2018-11-14 13:52 ` Daniel P. Berrangé
2018-11-20 1:04 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 22/41] slirp: remove unused DECLARE_IOVEC Marc-André Lureau
2018-11-14 13:53 ` Daniel P. Berrangé
2018-11-20 1:05 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 23/41] slirp: remove unused HAVE_INET_ATON Marc-André Lureau
2018-11-14 13:54 ` Daniel P. Berrangé
2018-11-20 1:05 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 24/41] slirp: replace HOST_WORDS_BIGENDIAN with glib equivalent Marc-André Lureau
2018-11-14 13:14 ` Philippe Mathieu-Daudé
2018-11-20 1:07 ` Samuel Thibault
2018-11-14 13:32 ` Daniel P. Berrangé [this message]
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 25/41] slirp: replace SIZEOF_CHAR_P " Marc-André Lureau
2018-11-14 13:14 ` Philippe Mathieu-Daudé
2018-11-20 1:08 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 26/41] slirp: replace compile time DO_KEEPALIVE Marc-André Lureau
2018-11-20 1:09 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 27/41] slirp: remove unused global slirp_instance Marc-André Lureau
2018-11-14 13:55 ` Daniel P. Berrangé
2018-11-20 1:10 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 28/41] slirp: replace error_report() with g_critical() Marc-André Lureau
2018-11-20 1:14 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 29/41] slirp: improve a bit the debug macros Marc-André Lureau
2018-11-14 14:04 ` Daniel P. Berrangé
2018-11-14 20:51 ` Marc-André Lureau
2018-11-20 1:19 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 30/41] slirp: replace trace functions with DEBUG calls Marc-André Lureau
2018-11-20 1:21 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 31/41] slirp: add a callback to log guest errors Marc-André Lureau
2018-11-20 1:27 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 32/41] slirp: remove unused sbflush() Marc-André Lureau
2018-11-14 14:05 ` Daniel P. Berrangé
2018-11-20 1:28 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 33/41] slirp: replace qemu_notify_event() with a callback Marc-André Lureau
2018-11-20 1:32 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 34/41] slirp: remove #if notdef dead code Marc-André Lureau
2018-11-14 14:07 ` Daniel P. Berrangé
2018-11-20 1:28 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 35/41] slirp: NULL is defined by glib (at least) Marc-André Lureau
2018-11-14 14:11 ` Daniel P. Berrangé
2018-11-20 1:33 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 36/41] slirp: remove dead TCP_ACK_HACK code Marc-André Lureau
2018-11-14 14:12 ` Daniel P. Berrangé
2018-11-20 1:34 ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 37/41] slirp: replace ARRAY_SIZE with G_N_ELEMENTS Marc-André Lureau
2018-11-14 13:17 ` Philippe Mathieu-Daudé
2018-11-20 1:35 ` Samuel Thibault
2018-11-14 14:15 ` Daniel P. Berrangé
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 38/41] net: do not depend on slirp internals Marc-André Lureau
2018-11-14 13:21 ` Philippe Mathieu-Daudé
2018-11-20 1:37 ` Samuel Thibault
2018-11-15 13:19 ` Paolo Bonzini
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 39/41] slirp: move QEMU state saving to a separate unit Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 40/41] slirp: replace remaining QEMU dependency Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 41/41] build-sys: add a basic meson build Marc-André Lureau
2018-11-14 12:59 ` [Qemu-devel] [PATCH for-3.2 00/41] RFC: slirp: make it again a standalone project Markus Armbruster
2018-11-14 13:20 ` Richard W.M. Jones
2018-11-14 13:33 ` Thomas Huth
2018-11-14 14:46 ` Markus Armbruster
2018-11-14 15:10 ` Dr. David Alan Gilbert
2018-11-14 15:14 ` Richard W.M. Jones
2018-11-14 16:52 ` Thomas Huth
2018-11-14 17:51 ` Markus Armbruster
2018-11-14 18:14 ` Dr. David Alan Gilbert
2018-11-14 13:45 ` Daniel P. Berrangé
2018-11-15 16:49 ` Giuseppe Scrivano
2018-11-16 5:09 ` Akihiro Suda
2018-11-14 14:26 ` Stefan Hajnoczi
2018-11-14 14:30 ` Daniel P. Berrangé
2018-11-14 15:26 ` Philippe Mathieu-Daudé
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=20181114133229.GL19298@redhat.com \
--to=berrange@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=renzo@cs.unibo.it \
--cc=rjones@redhat.com \
--cc=samuel.thibault@ens-lyon.org \
--cc=stefanha@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).