From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41520) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WyPGp-0002LQ-Tz for qemu-devel@nongnu.org; Sat, 21 Jun 2014 13:40:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WyPGg-0007bx-PT for qemu-devel@nongnu.org; Sat, 21 Jun 2014 13:40:07 -0400 Received: from mail-wg0-x22a.google.com ([2a00:1450:400c:c00::22a]:48793) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WyPGg-0007br-Hi for qemu-devel@nongnu.org; Sat, 21 Jun 2014 13:39:58 -0400 Received: by mail-wg0-f42.google.com with SMTP id z12so4883810wgg.1 for ; Sat, 21 Jun 2014 10:39:57 -0700 (PDT) Sender: Paul Burton Date: Sat, 21 Jun 2014 18:39:52 +0100 From: Paul Burton Message-ID: <20140621173952.GA3158@gmail.com> References: <1402849113-11402-1-git-send-email-paul@archlinuxmips.org> <1402849113-11402-2-git-send-email-paul@archlinuxmips.org> <20140621093912.GA23713@afflict.kos.to> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="X1bOJ3K7DJ5YkBrT" Content-Disposition: inline In-Reply-To: <20140621093912.GA23713@afflict.kos.to> Subject: Re: [Qemu-devel] [PATCH 01/16] linux-user: translate the result of getsockopt SO_TYPE List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Riku Voipio Cc: qemu-devel@nongnu.org, Paul Burton --X1bOJ3K7DJ5YkBrT Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Jun 21, 2014 at 12:39:12PM +0300, Riku Voipio wrote: > > @@ -1526,6 +1555,7 @@ static abi_long do_getsockopt(int sockfd, int lev= el, int optname, > > abi_long ret; > > int len, val; > > socklen_t lv; > > + int (*translate_result)(int val) =3D NULL; > > =20 > > switch(level) { > > case TARGET_SOL_SOCKET: > > @@ -1578,6 +1608,7 @@ static abi_long do_getsockopt(int sockfd, int lev= el, int optname, > > optname =3D SO_REUSEADDR; > > goto int_case; > > case TARGET_SO_TYPE: > > + translate_result =3D host_to_target_sock_type; > > optname =3D SO_TYPE; > > goto int_case; > > case TARGET_SO_ERROR: > > @@ -1636,6 +1667,8 @@ static abi_long do_getsockopt(int sockfd, int lev= el, int optname, > > ret =3D get_errno(getsockopt(sockfd, level, optname, &val, &lv= )); > > if (ret < 0) > > return ret; > > + if (translate_result) > > + val =3D translate_result(val); >=20 > perhaps instead: >=20 > if (optname =3D=3D SO_TYPE) > val =3D host_to_target_sock_type(val); >=20 > Then we avoid the need of function pointer. Fair enough, perhaps I was making it too generic for my own good :) Thanks, Paul --X1bOJ3K7DJ5YkBrT Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJTpcNoAAoJENzvn0paErs5gS8P/ieOZYUbzfi5hBPOqsqsiaNh hbFBmSOd1Q6+3LTTsAxDXYzgYiZ/CoX6MxLcSGA778uLrTSz5/ArgoJ2M0vFAWzf Xnr3VeuZpuoKQH0VZ8DYhd7FocVVwpayDkhAZd4NYlhr6+L2WVBnjkYfn0GWNiDB Y/z2SEHT05EaNwz7AEYzLqXKwqMATFVu7gL6IewCkivubdzFQxR0k5DyAeXD0Zcg HOy/7xqscvHI+iprdiP/clX4xXsn8RHf7Nhqr//qUQQ7i1dqcDCjNp9cuCWOpUmE ghURU3HsCkErNi4O0Hc2b75KVTduFKsZ+dW8oAvI34iz+iGceBEOiPATgvJ8s43b 9+STzAvvPJLsvSa1kJPhgj9zj6JTraRkASegmnR/A/bTbsnz3UpR/uRQR1Dz3Fis dqTURHNfolh7PGrihfKlaeSNoLXzQotYYBy5nEAB2w2I8mboCrJEoso5j5rzAtso BwrqlyGkCKISr/C9bJ75Snbfh44dmGArEslFEM2EeYuuPrvXmPC9sqI1vL1B3ZMG 3rJ8raqwBsz8JK6jh9D8APb0jWHBLX3/XJliD7Q5YJNBPm6O5NjxJTBBI3FfjqiX pZcOkxAfU0TLk4JYrXj8QMaBstlGNQZwhLjalV1XnUarQ/uj0hYlcfDofanVZe4t AOawcvebDe57G3m5Aiv7 =NSFv -----END PGP SIGNATURE----- --X1bOJ3K7DJ5YkBrT--