提交 53147f90 编写于 作者: R Rich Felker

add splice and vmsplice syscalls

based on patches by orc and Isaac Dunham.
上级 207460d0
......@@ -9,6 +9,12 @@ extern "C" {
#define __NEED_pid_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/fcntl.h>
......@@ -108,6 +114,12 @@ struct f_owner_ex {
int type;
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
#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
......
#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);
}
#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);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册