From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/14596 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: [PATCH] Add copy_file_range system call Date: Fri, 23 Aug 2019 20:25:07 -0400 Message-ID: <20190824002507.GT9017@brightrain.aerifal.cx> References: <20190819234114.19848-1-arni@dagur.eu> Reply-To: musl@lists.openwall.com Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="201965"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mutt/1.5.21 (2010-09-15) To: musl@lists.openwall.com Original-X-From: musl-return-14612-gllmg-musl=m.gmane.org@lists.openwall.com Sat Aug 24 02:25:24 2019 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.89) (envelope-from ) id 1i1Jrv-000qRi-IS for gllmg-musl@m.gmane.org; Sat, 24 Aug 2019 02:25:23 +0200 Original-Received: (qmail 19820 invoked by uid 550); 24 Aug 2019 00:25:20 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 19802 invoked from network); 24 Aug 2019 00:25:20 -0000 Content-Disposition: inline In-Reply-To: <20190819234114.19848-1-arni@dagur.eu> Original-Sender: Rich Felker Xref: news.gmane.org gmane.linux.lib.musl.general:14596 Archived-At: On Mon, Aug 19, 2019 at 11:41:14PM +0000, Árni Dagur wrote: > This patch was based on commit 53147f9, which added splice and vmsplice. > --- > The function signature in the glibc manpage specifies `loff_t` instead > of `off_t`, for both `copy_file_range` and `splice`. In musl, however, > the function signature for `splice` specifies `off_t`, so I did the > same here. I'm not an experienced C programmer, so that may have been > wrong. > > include/unistd.h | 1 + > src/linux/copy_file_range.c | 8 ++++++++ > 2 files changed, 9 insertions(+) > create mode 100644 src/linux/copy_file_range.c > > diff --git a/include/unistd.h b/include/unistd.h > index 9485da7a..00cc7042 100644 > --- a/include/unistd.h > +++ b/include/unistd.h > @@ -188,6 +188,7 @@ char *get_current_dir_name(void); > int syncfs(int); > int euidaccess(const char *, int); > int eaccess(const char *, int); > +ssize_t copy_file_range(int fd_in, off_t *off_in, int fd_out, off_t *off_out, size_t len, unsigned flags); > #endif > > #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE) > diff --git a/src/linux/copy_file_range.c b/src/linux/copy_file_range.c > new file mode 100644 > index 00000000..34742588 > --- /dev/null > +++ b/src/linux/copy_file_range.c > @@ -0,0 +1,8 @@ > +#define _GNU_SOURCE > +#include ^^^^^^^^^ One more detail, this should be unistd.h. I'm fixing with applying it. Rich