Merge branch 'splice' of git://brick.kernel.dk/data/git/linux-2.6-block
* 'splice' of git://brick.kernel.dk/data/git/linux-2.6-block: [PATCH] splice: add ->splice_write support for /dev/null [PATCH] splice: rearrange moving to/from pipe helpers [PATCH] Add support for the sys_vmsplice syscall [PATCH] splice: fix offset problems [PATCH] splice: fix min() warning
This commit is contained in:
@@ -321,8 +321,9 @@
|
||||
#define __NR_splice 313
|
||||
#define __NR_sync_file_range 314
|
||||
#define __NR_tee 315
|
||||
#define __NR_vmsplice 316
|
||||
|
||||
#define NR_syscalls 316
|
||||
#define NR_syscalls 317
|
||||
|
||||
/*
|
||||
* user-visible error numbers are in the range -1 - -128: see
|
||||
|
||||
@@ -290,12 +290,13 @@
|
||||
#define __NR_get_robust_list 1299
|
||||
#define __NR_sync_file_range 1300
|
||||
#define __NR_tee 1301
|
||||
#define __NR_vmsplice 1302
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/config.h>
|
||||
|
||||
#define NR_syscalls 278 /* length of syscall table */
|
||||
#define NR_syscalls 279 /* length of syscall table */
|
||||
|
||||
#define __ARCH_WANT_SYS_RT_SIGACTION
|
||||
|
||||
|
||||
@@ -303,8 +303,9 @@
|
||||
#define __NR_unshare 282
|
||||
#define __NR_splice 283
|
||||
#define __NR_tee 284
|
||||
#define __NR_vmsplice 285
|
||||
|
||||
#define __NR_syscalls 285
|
||||
#define __NR_syscalls 286
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define __NR__exit __NR_exit
|
||||
|
||||
@@ -615,8 +615,10 @@ __SYSCALL(__NR_splice, sys_splice)
|
||||
__SYSCALL(__NR_tee, sys_tee)
|
||||
#define __NR_sync_file_range 277
|
||||
__SYSCALL(__NR_sync_file_range, sys_sync_file_range)
|
||||
#define __NR_vmsplice 278
|
||||
__SYSCALL(__NR_vmsplice, sys_vmsplice)
|
||||
|
||||
#define __NR_syscall_max __NR_sync_file_range
|
||||
#define __NR_syscall_max __NR_vmsplice
|
||||
|
||||
#ifndef __NO_STUBS
|
||||
|
||||
|
||||
@@ -61,4 +61,21 @@ void __free_pipe_info(struct pipe_inode_info *);
|
||||
/* from/to, of course */
|
||||
#define SPLICE_F_MORE (0x04) /* expect more data */
|
||||
|
||||
/*
|
||||
* Passed to the actors
|
||||
*/
|
||||
struct splice_desc {
|
||||
unsigned int len, total_len; /* current and remaining length */
|
||||
unsigned int flags; /* splice flags */
|
||||
struct file *file; /* file to read/write */
|
||||
loff_t pos; /* file position */
|
||||
};
|
||||
|
||||
typedef int (splice_actor)(struct pipe_inode_info *, struct pipe_buffer *,
|
||||
struct splice_desc *);
|
||||
|
||||
extern ssize_t splice_from_pipe(struct pipe_inode_info *, struct file *,
|
||||
loff_t *, size_t, unsigned int,
|
||||
splice_actor *);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -574,6 +574,9 @@ asmlinkage long sys_splice(int fd_in, loff_t __user *off_in,
|
||||
int fd_out, loff_t __user *off_out,
|
||||
size_t len, unsigned int flags);
|
||||
|
||||
asmlinkage long sys_vmsplice(int fd, const struct iovec __user *iov,
|
||||
unsigned long nr_segs, unsigned int flags);
|
||||
|
||||
asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags);
|
||||
|
||||
asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes,
|
||||
|
||||
Reference in New Issue
Block a user