mirror of git://git.musl-libc.org/musl
add splice and vmsplice syscalls
based on patches by orc and Isaac Dunham.
This commit is contained in:
parent
207460d097
commit
53147f902b
|
@ -9,6 +9,12 @@ extern "C" {
|
||||||
#define __NEED_pid_t
|
#define __NEED_pid_t
|
||||||
#define __NEED_mode_t
|
#define __NEED_mode_t
|
||||||
|
|
||||||
|
#ifdef _GNU_SOURCE
|
||||||
|
#define __NEED_size_t
|
||||||
|
#define __NEED_ssize_t
|
||||||
|
#define __NEED_struct_iovec
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <bits/alltypes.h>
|
#include <bits/alltypes.h>
|
||||||
|
|
||||||
#include <bits/fcntl.h>
|
#include <bits/fcntl.h>
|
||||||
|
@ -108,6 +114,12 @@ struct f_owner_ex {
|
||||||
int type;
|
int type;
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
};
|
};
|
||||||
|
#define SPLICE_F_MOVE 1
|
||||||
|
#define SPLICE_F_NONBLOCK 2
|
||||||
|
#define SPLICE_F_MORE 4
|
||||||
|
#define SPLICE_F_GIFT 8
|
||||||
|
ssize_t vmsplice(int, const struct iovec *, size_t, unsigned);
|
||||||
|
ssize_t splice(int, off_t *, int, off_t *, size_t, unsigned);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
|
#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include "syscall.h"
|
||||||
|
|
||||||
|
ssize_t splice(int fd_in, off_t *off_in, int fd_out, off_t *off_out, size_t len, unsigned flags)
|
||||||
|
{
|
||||||
|
return syscall(SYS_splice, fd_in, off_in, fd_out, off_out, len, flags);
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include "syscall.h"
|
||||||
|
|
||||||
|
ssize_t vmsplice(int fd, const struct iovec *iov, size_t cnt, unsigned flags)
|
||||||
|
{
|
||||||
|
return syscall(SYS_vmsplice, fd, iov, cnt, flags);
|
||||||
|
}
|
Loading…
Reference in New Issue