splice.h (d4bbf7e7759afc172e2bfbc5c416324590049cdd) | splice.h (047fe3605235888f3ebcda0c728cb31937eadfe6) |
---|---|
1/* 2 * Function declerations and data structures related to the splice 3 * implementation. 4 * 5 * Copyright (C) 2007 Jens Axboe <jens.axboe@oracle.com> 6 * 7 */ 8#ifndef SPLICE_H --- 37 unchanged lines hidden (view full) --- 46}; 47 48/* 49 * Passed to splice_to_pipe 50 */ 51struct splice_pipe_desc { 52 struct page **pages; /* page map */ 53 struct partial_page *partial; /* pages[] may not be contig */ | 1/* 2 * Function declerations and data structures related to the splice 3 * implementation. 4 * 5 * Copyright (C) 2007 Jens Axboe <jens.axboe@oracle.com> 6 * 7 */ 8#ifndef SPLICE_H --- 37 unchanged lines hidden (view full) --- 46}; 47 48/* 49 * Passed to splice_to_pipe 50 */ 51struct splice_pipe_desc { 52 struct page **pages; /* page map */ 53 struct partial_page *partial; /* pages[] may not be contig */ |
54 int nr_pages; /* number of pages in map */ | 54 int nr_pages; /* number of populated pages in map */ 55 unsigned int nr_pages_max; /* pages[] & partial[] arrays size */ |
55 unsigned int flags; /* splice flags */ 56 const struct pipe_buf_operations *ops;/* ops associated with output pipe */ 57 void (*spd_release)(struct splice_pipe_desc *, unsigned int); 58}; 59 60typedef int (splice_actor)(struct pipe_inode_info *, struct pipe_buffer *, 61 struct splice_desc *); 62typedef int (splice_direct_actor)(struct pipe_inode_info *, --- 17 unchanged lines hidden (view full) --- 80extern ssize_t splice_to_pipe(struct pipe_inode_info *, 81 struct splice_pipe_desc *); 82extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *, 83 splice_direct_actor *); 84 85/* 86 * for dynamic pipe sizing 87 */ | 56 unsigned int flags; /* splice flags */ 57 const struct pipe_buf_operations *ops;/* ops associated with output pipe */ 58 void (*spd_release)(struct splice_pipe_desc *, unsigned int); 59}; 60 61typedef int (splice_actor)(struct pipe_inode_info *, struct pipe_buffer *, 62 struct splice_desc *); 63typedef int (splice_direct_actor)(struct pipe_inode_info *, --- 17 unchanged lines hidden (view full) --- 81extern ssize_t splice_to_pipe(struct pipe_inode_info *, 82 struct splice_pipe_desc *); 83extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *, 84 splice_direct_actor *); 85 86/* 87 * for dynamic pipe sizing 88 */ |
88extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *); 89extern void splice_shrink_spd(struct pipe_inode_info *, 90 struct splice_pipe_desc *); | 89extern int splice_grow_spd(const struct pipe_inode_info *, struct splice_pipe_desc *); 90extern void splice_shrink_spd(struct splice_pipe_desc *); |
91extern void spd_release_page(struct splice_pipe_desc *, unsigned int); 92 93extern const struct pipe_buf_operations page_cache_pipe_buf_ops; 94#endif | 91extern void spd_release_page(struct splice_pipe_desc *, unsigned int); 92 93extern const struct pipe_buf_operations page_cache_pipe_buf_ops; 94#endif |