diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-26 10:47:55 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-26 10:47:55 -0400 |
| commit | 7b97ebfb931887be63bfa29b6c143e9e9da3f5e8 (patch) | |
| tree | faaf77f68ef4192ac1a3c23f43fed122a080d341 /include/linux | |
| parent | 07db8696f5d484485dde77138ff87d19c8628a75 (diff) | |
| parent | 1ebd32fc54bd04de6b3944587f25513c0681f98e (diff) | |
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
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/pipe_fs_i.h | 17 | ||||
| -rw-r--r-- | include/linux/syscalls.h | 3 |
2 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index ef7f33c0be19..0008d4bd4059 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h | |||
| @@ -61,4 +61,21 @@ void __free_pipe_info(struct pipe_inode_info *); | |||
| 61 | /* from/to, of course */ | 61 | /* from/to, of course */ |
| 62 | #define SPLICE_F_MORE (0x04) /* expect more data */ | 62 | #define SPLICE_F_MORE (0x04) /* expect more data */ |
| 63 | 63 | ||
| 64 | /* | ||
| 65 | * Passed to the actors | ||
| 66 | */ | ||
| 67 | struct splice_desc { | ||
| 68 | unsigned int len, total_len; /* current and remaining length */ | ||
| 69 | unsigned int flags; /* splice flags */ | ||
| 70 | struct file *file; /* file to read/write */ | ||
| 71 | loff_t pos; /* file position */ | ||
| 72 | }; | ||
| 73 | |||
| 74 | typedef int (splice_actor)(struct pipe_inode_info *, struct pipe_buffer *, | ||
| 75 | struct splice_desc *); | ||
| 76 | |||
| 77 | extern ssize_t splice_from_pipe(struct pipe_inode_info *, struct file *, | ||
| 78 | loff_t *, size_t, unsigned int, | ||
| 79 | splice_actor *); | ||
| 80 | |||
| 64 | #endif | 81 | #endif |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index d3ebc0e68b2b..3996960fc565 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -574,6 +574,9 @@ asmlinkage long sys_splice(int fd_in, loff_t __user *off_in, | |||
| 574 | int fd_out, loff_t __user *off_out, | 574 | int fd_out, loff_t __user *off_out, |
| 575 | size_t len, unsigned int flags); | 575 | size_t len, unsigned int flags); |
| 576 | 576 | ||
| 577 | asmlinkage long sys_vmsplice(int fd, const struct iovec __user *iov, | ||
| 578 | unsigned long nr_segs, unsigned int flags); | ||
| 579 | |||
| 577 | asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags); | 580 | asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags); |
| 578 | 581 | ||
| 579 | asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, | 582 | asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, |
