aboutsummaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
authorSergey Bugaev <bugaevc@gmail.com>2023-05-20 14:55:29 +0300
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-05-20 18:14:01 +0200
commit9ec31e57278ffc4e680ef03e75ce5b6b02e5edcf (patch)
tree458e020a274453bacf526e444594138ca67c36ef /hurd
parent36cc908ed549389713955093bbfeaa35fdaf3e2e (diff)
downloadglibc-9ec31e57278ffc4e680ef03e75ce5b6b02e5edcf.zip
glibc-9ec31e57278ffc4e680ef03e75ce5b6b02e5edcf.tar.gz
glibc-9ec31e57278ffc4e680ef03e75ce5b6b02e5edcf.tar.bz2
hurd: Use __hurd_fail () instead of assigning errno
The __hurd_fail () inline function is the dedicated, idiomatic way of reporting errors in the Hurd part of glibc. Not only is it more concise than '{ errno = err; return -1; }', it is since commit 6639cc10029e24e06b34e169712b21c31b8cf213 "hurd: Mark error functions as __COLD" marked with the cold attribute, telling the compiler that this codepath is unlikely to be executed. In one case, use __hurd_dfail () over the plain __hurd_fail (). Signed-off-by: Sergey Bugaev <bugaevc@gmail.com> Message-Id: <20230520115531.3911877-1-bugaevc@gmail.com>
Diffstat (limited to 'hurd')
-rw-r--r--hurd/alloc-fd.c13
-rw-r--r--hurd/fopenport.c5
-rw-r--r--hurd/getdport.c12
-rw-r--r--hurd/hurdselect.c13
-rw-r--r--hurd/hurdsock.c7
5 files changed, 14 insertions, 36 deletions
diff --git a/hurd/alloc-fd.c b/hurd/alloc-fd.c
index 60c8b00..4edc742 100644
--- a/hurd/alloc-fd.c
+++ b/hurd/alloc-fd.c
@@ -34,10 +34,7 @@ _hurd_alloc_fd (int *fd, int first_fd)
long int rlimit;
if (first_fd < 0)
- {
- errno = EINVAL;
- return NULL;
- }
+ return __hurd_fail (EINVAL), NULL;
crit = _hurd_critical_section_lock ();
@@ -99,7 +96,7 @@ _hurd_alloc_fd (int *fd, int first_fd)
if (size * sizeof (*_hurd_dtable) < size)
{
/* Integer overflow! */
- errno = ENOMEM;
+ __hurd_fail (ENOMEM);
goto out;
}
@@ -124,13 +121,13 @@ _hurd_alloc_fd (int *fd, int first_fd)
goto search;
}
else
- errno = ENOMEM;
+ __hurd_fail (ENOMEM);
}
else
- errno = EMFILE;
+ __hurd_fail (EMFILE);
}
else
- errno = EINVAL; /* Bogus FIRST_FD value. */
+ __hurd_fail (EINVAL); /* Bogus FIRST_FD value. */
out:
__mutex_unlock (&_hurd_dtable_lock);
diff --git a/hurd/fopenport.c b/hurd/fopenport.c
index be6aa30..a1efc54 100644
--- a/hurd/fopenport.c
+++ b/hurd/fopenport.c
@@ -126,10 +126,7 @@ __fopenport (mach_port_t port, const char *mode)
/* Check the access mode. */
if ((pflags & needflags) != needflags)
- {
- errno = EBADF;
- return NULL;
- }
+ return __hurd_fail (EBADF), NULL;
return fopencookie ((void *) (uintptr_t) port,
mode, funcsio);
diff --git a/hurd/getdport.c b/hurd/getdport.c
index 2bccc59..27fc41f 100644
--- a/hurd/getdport.c
+++ b/hurd/getdport.c
@@ -35,18 +35,12 @@ __getdport (int fd)
so we don't bother allocating a real table. */
if (_hurd_init_dtable == NULL)
- {
- /* Never had a descriptor table. */
- errno = EBADF;
- return MACH_PORT_NULL;
- }
+ /* Never had a descriptor table. */
+ return __hurd_fail (EBADF), MACH_PORT_NULL;
if (fd < 0 || (unsigned int) fd > _hurd_init_dtablesize
|| _hurd_init_dtable[fd] == MACH_PORT_NULL)
- {
- errno = EBADF;
- return MACH_PORT_NULL;
- }
+ return __hurd_fail (EBADF), MACH_PORT_NULL;
else
{
__mach_port_mod_refs (__mach_task_self (), _hurd_init_dtable[fd],
diff --git a/hurd/hurdselect.c b/hurd/hurdselect.c
index 9630cae..9402763 100644
--- a/hurd/hurdselect.c
+++ b/hurd/hurdselect.c
@@ -71,10 +71,7 @@ _hurd_select (int nfds,
struct hurd_sigstate *ss = NULL;
if (nfds < 0 || (pollfds == NULL && nfds > FD_SETSIZE))
- {
- errno = EINVAL;
- return -1;
- }
+ return __hurd_fail (EINVAL);
#define IO_SELECT_REPLY_MSGID (21012 + 100) /* XXX */
#define IO_SELECT_TIMEOUT_REPLY_MSGID (21031 + 100) /* XXX */
@@ -86,10 +83,7 @@ _hurd_select (int nfds,
struct timespec now;
if (timeout->tv_sec < 0 || ! valid_nanoseconds (timeout->tv_nsec))
- {
- errno = EINVAL;
- return -1;
- }
+ return __hurd_fail (EINVAL);
err = __clock_gettime (CLOCK_REALTIME, &now);
if (err)
@@ -281,8 +275,7 @@ _hurd_select (int nfds,
{
if (sigmask)
__sigprocmask (SIG_SETMASK, &oset, NULL);
- errno = EBADF;
- return -1;
+ return __hurd_fail (EBADF);
}
if (nfds > _hurd_dtablesize)
diff --git a/hurd/hurdsock.c b/hurd/hurdsock.c
index 58c27fe..1d04047 100644
--- a/hurd/hurdsock.c
+++ b/hurd/hurdsock.c
@@ -48,10 +48,7 @@ _hurd_socket_server (int domain, int dead)
socket_t server;
if (domain < 0)
- {
- errno = EAFNOSUPPORT;
- return MACH_PORT_NULL;
- }
+ return __hurd_fail (EAFNOSUPPORT), MACH_PORT_NULL;
retry:
HURD_CRITICAL_BEGIN;
@@ -99,7 +96,7 @@ retry:
if (server == MACH_PORT_NULL && errno == ENOENT)
/* If the server node is absent, we don't support that protocol. */
- errno = EAFNOSUPPORT;
+ __hurd_fail (EAFNOSUPPORT);
__mutex_unlock (&lock);
HURD_CRITICAL_END;