mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Consolidate non cancellable writev call
This patch consolidates all the non cancellable writev calls to use the __writev_nocancel identifier. For non cancellable targets it will be just a macro to call the default respective symbol while on Linux will be a internal one. Checked on x86_64-linux-gnu, x86_64-linux-gnu-x32, and i686-linux-gnu. * gmon/gmon.c (write_hist): Replace writev_not_cancel_no_status with __writev_nocancel_nostatus. (write_call_graph): Likewise. (write_bb_counts): Likewise. * resolv/herror.c (herror): Likewise. * sysdeps/generic/not-cancel.h (writev_not_cancel_no_status): Remove macro. (__writev_nocancel_nostatus): New macro. * sysdeps/unix/sysv/linux/not-cancel.h (writev_not_cancel_no_status): Remove macro. (__writev_nocancel_nostatus): New function.
This commit is contained in:
parent
df1deda600
commit
19926de954
14
ChangeLog
14
ChangeLog
@ -1,3 +1,17 @@
|
|||||||
|
2017-08-21 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||||
|
|
||||||
|
* gmon/gmon.c (write_hist): Replace writev_not_cancel_no_status with
|
||||||
|
__writev_nocancel_nostatus.
|
||||||
|
(write_call_graph): Likewise.
|
||||||
|
(write_bb_counts): Likewise.
|
||||||
|
* resolv/herror.c (herror): Likewise.
|
||||||
|
* sysdeps/generic/not-cancel.h (writev_not_cancel_no_status): Remove
|
||||||
|
macro.
|
||||||
|
(__writev_nocancel_nostatus): New macro.
|
||||||
|
* sysdeps/unix/sysv/linux/not-cancel.h (writev_not_cancel_no_status):
|
||||||
|
Remove macro.
|
||||||
|
(__writev_nocancel_nostatus): New function.
|
||||||
|
|
||||||
2017-08-21 Joseph Myers <joseph@codesourcery.com>
|
2017-08-21 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
Revert:
|
Revert:
|
||||||
|
12
gmon/gmon.c
12
gmon/gmon.c
@ -216,7 +216,7 @@ write_hist (int fd)
|
|||||||
strncpy (thdr.dimen, "seconds", sizeof (thdr.dimen));
|
strncpy (thdr.dimen, "seconds", sizeof (thdr.dimen));
|
||||||
thdr.dimen_abbrev = 's';
|
thdr.dimen_abbrev = 's';
|
||||||
|
|
||||||
writev_not_cancel_no_status (fd, iov, 3);
|
__writev_nocancel_nostatus (fd, iov, 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -273,13 +273,13 @@ write_call_graph (int fd)
|
|||||||
|
|
||||||
if (++nfilled == NARCS_PER_WRITEV)
|
if (++nfilled == NARCS_PER_WRITEV)
|
||||||
{
|
{
|
||||||
writev_not_cancel_no_status (fd, iov, 2 * nfilled);
|
__writev_nocancel_nostatus (fd, iov, 2 * nfilled);
|
||||||
nfilled = 0;
|
nfilled = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (nfilled > 0)
|
if (nfilled > 0)
|
||||||
writev_not_cancel_no_status (fd, iov, 2 * nfilled);
|
__writev_nocancel_nostatus (fd, iov, 2 * nfilled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -312,12 +312,12 @@ write_bb_counts (int fd)
|
|||||||
for (grp = __bb_head; grp; grp = grp->next)
|
for (grp = __bb_head; grp; grp = grp->next)
|
||||||
{
|
{
|
||||||
ncounts = grp->ncounts;
|
ncounts = grp->ncounts;
|
||||||
writev_not_cancel_no_status (fd, bbhead, 2);
|
__writev_nocancel_nostatus (fd, bbhead, 2);
|
||||||
for (nfilled = i = 0; i < ncounts; ++i)
|
for (nfilled = i = 0; i < ncounts; ++i)
|
||||||
{
|
{
|
||||||
if (nfilled > (sizeof (bbbody) / sizeof (bbbody[0])) - 2)
|
if (nfilled > (sizeof (bbbody) / sizeof (bbbody[0])) - 2)
|
||||||
{
|
{
|
||||||
writev_not_cancel_no_status (fd, bbbody, nfilled);
|
__writev_nocancel_nostatus (fd, bbbody, nfilled);
|
||||||
nfilled = 0;
|
nfilled = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -325,7 +325,7 @@ write_bb_counts (int fd)
|
|||||||
bbbody[nfilled++].iov_base = &grp->counts[i];
|
bbbody[nfilled++].iov_base = &grp->counts[i];
|
||||||
}
|
}
|
||||||
if (nfilled > 0)
|
if (nfilled > 0)
|
||||||
writev_not_cancel_no_status (fd, bbbody, nfilled);
|
__writev_nocancel_nostatus (fd, bbbody, nfilled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ herror(const char *s) {
|
|||||||
v++;
|
v++;
|
||||||
v->iov_base = (char *) "\n";
|
v->iov_base = (char *) "\n";
|
||||||
v->iov_len = 1;
|
v->iov_len = 1;
|
||||||
writev_not_cancel_no_status(STDERR_FILENO, iov, (v - iov) + 1);
|
__writev_nocancel_nostatus(STDERR_FILENO, iov, (v - iov) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
__read (fd, buf, n)
|
__read (fd, buf, n)
|
||||||
#define __write_nocancel(fd, buf, n) \
|
#define __write_nocancel(fd, buf, n) \
|
||||||
__write (fd, buf, n)
|
__write (fd, buf, n)
|
||||||
#define writev_not_cancel_no_status(fd, iov, n) \
|
#define __writev_nocancel_nostatus(fd, iov, n) \
|
||||||
(void) __writev (fd, iov, n)
|
(void) __writev (fd, iov, n)
|
||||||
#define fcntl_not_cancel(fd, cmd, val) \
|
#define fcntl_not_cancel(fd, cmd, val) \
|
||||||
__fcntl (fd, cmd, val)
|
__fcntl (fd, cmd, val)
|
||||||
|
@ -62,10 +62,14 @@ __close_nocancel_nostatus (int fd)
|
|||||||
__close_nocancel (fd);
|
__close_nocancel (fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Uncancelable writev. */
|
/* Non cancellable writev syscall that does not also set errno in case of
|
||||||
#define writev_not_cancel_no_status(fd, iov, n) \
|
failure. */
|
||||||
(void) ({ INTERNAL_SYSCALL_DECL (err); \
|
static inline void
|
||||||
INTERNAL_SYSCALL (writev, err, 3, (fd), (iov), (n)); })
|
__writev_nocancel_nostatus (int fd, const struct iovec *iov, int iovcnt)
|
||||||
|
{
|
||||||
|
INTERNAL_SYSCALL_DECL (err);
|
||||||
|
INTERNAL_SYSCALL_CALL (writev, err, fd, iov, iovcnt);
|
||||||
|
}
|
||||||
|
|
||||||
/* Uncancelable fcntl. */
|
/* Uncancelable fcntl. */
|
||||||
#define fcntl_not_cancel(fd, cmd, val) \
|
#define fcntl_not_cancel(fd, cmd, val) \
|
||||||
|
Loading…
Reference in New Issue
Block a user