[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gmake in Solaris 11.4: TFR missing
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: gmake in Solaris 11.4: TFR missing |
Date: |
Sat, 4 Jul 2020 13:30:26 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
+Eric for macros & errno handling
On 7/4/20 11:11 AM, Peter Maydell wrote:
> On Fri, 3 Jul 2020 at 22:55, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>>
>> On 7/3/20 11:35 PM, Michele Denber wrote:
>>> What is TFR?
>>
>> TFR() is defined in include/qemu-common.h:
>
> Yep; adding #include "qemu-common.h" to tap-solaris.c should fix
> this (I think we missed tap-solaris.c in the header cleanup of
> commit a8d2532645cf5ce4).
Any idea what means TFR? I understand it keeps retrying while
interrupted, but can't find the origin of that abbreviation.
I'm not sure what we gain by using this macro, it seems dangerous
as there is no guaranty we 'expr' is a single libc call updating
errno.
We have:
include/qemu-common.h:13:#define TFR(expr) do { if ((expr) != -1) break;
} while (errno == EINTR)
block/file-posix.c:1515: } while (errno == EINTR);
block/file-posix.c:1539: } while (errno == EINTR);
block/file-posix.c:1701: } while (errno == EINTR);
Good, de-macro-ified form.
chardev/char-fd.c:122: TFR(fd = qemu_open(src, flags, 0666));
chardev/char-pipe.c:135: TFR(fd_in = qemu_open(filename_in, O_RDWR |
O_BINARY));
chardev/char-pipe.c:136: TFR(fd_out = qemu_open(filename_out, O_RDWR
| O_BINARY));
chardev/char-pipe.c:146: TFR(fd_in = fd_out = qemu_open(filename,
O_RDWR | O_BINARY));
^ few cases, we need to check if qemu_open() is errno safe.
Maybe better to inline instead?
os-posix.c:297: TFR(fd = qemu_open("/dev/null", O_RDWR));
^ I don't really understand this one.
net/tap-bsd.c:68: TFR(fd = open(dname, O_RDWR));
net/tap-bsd.c:123: TFR(fd = open(PATH_NET_TAP, O_RDWR));
net/tap-bsd.c:171: TFR(fd = open(dname, O_RDWR));
net/tap-linux.c:49: TFR(fd = open(PATH_NET_TUN, O_RDWR));
net/tap-solaris.c:87: TFR(ip_fd = open("/dev/udp", O_RDWR, 0));
net/tap-solaris.c:93: TFR(tap_fd = open("/dev/tap", O_RDWR, 0));
net/tap-solaris.c:107: TFR(if_fd = open("/dev/tap", O_RDWR, 0));
net/tap-solaris.c:140: TFR(arp_fd = open ("/dev/tap", O_RDWR, 0));
net/tap.c:625: TFR(fd = tap_open(ifname, ifname_sz, vnet_hdr,
vnet_hdr_required,
Ditto, is tap_open() errno safe? If this code prefers to keep the
macro, we could move it to net/tap_int.h.
- Re: [PATCH] configure / util: Auto-detect the availability of openpty(), (continued)
- Re: [PATCH] configure / util: Auto-detect the availability of openpty(), Thomas Huth, 2020/07/02
- Re: [PATCH] configure / util: Auto-detect the availability of openpty(), Michele Denber, 2020/07/02
- Re: [PATCH] configure / util: Auto-detect the availability of openpty(), Thomas Huth, 2020/07/03
- Re: [PATCH] configure / util: Auto-detect the availability of openpty(), Michele Denber, 2020/07/03
- Re: [PATCH] configure / util: Auto-detect the availability of openpty(), Michele Denber, 2020/07/03
- Re: [PATCH] configure / util: Auto-detect the availability of openpty(), Peter Maydell, 2020/07/03
- gmake in Solaris 11.4: _IOR missing, Michele Denber, 2020/07/03
- gmake in Solaris 11.4: TFR missing, Michele Denber, 2020/07/03
- Re: gmake in Solaris 11.4: TFR missing, Philippe Mathieu-Daudé, 2020/07/03
- Re: gmake in Solaris 11.4: TFR missing, Peter Maydell, 2020/07/04
- Re: gmake in Solaris 11.4: TFR missing,
Philippe Mathieu-Daudé <=
- Re: gmake in Solaris 11.4: TFR missing, Peter Maydell, 2020/07/04
- Re: gmake in Solaris 11.4: TFR missing, Michele Denber, 2020/07/04
- Re: gmake in Solaris 11.4: TFR missing, Thomas Huth, 2020/07/04
- Re: gmake in Solaris 11.4: TFR missing, Michele Denber, 2020/07/04
- Re: gmake in Solaris 11.4: TFR missing, Philippe Mathieu-Daudé, 2020/07/04
- Re: gmake in Solaris 11.4: TFR missing, Michele Denber, 2020/07/04
- Re: gmake in Solaris 11.4: TFR missing, Peter Maydell, 2020/07/04
- Re: gmake in Solaris 11.4: TFR missing, Michele Denber, 2020/07/04