diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/fs.h | 4 | ||||
| -rw-r--r-- | include/linux/libata.h | 10 | ||||
| -rw-r--r-- | include/linux/pipe_fs_i.h | 8 | ||||
| -rw-r--r-- | include/linux/syscalls.h | 2 |
4 files changed, 23 insertions, 1 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 408fe89498f4..20fa5f6d7269 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -1032,6 +1032,8 @@ struct file_operations { | |||
| 1032 | int (*check_flags)(int); | 1032 | int (*check_flags)(int); |
| 1033 | int (*dir_notify)(struct file *filp, unsigned long arg); | 1033 | int (*dir_notify)(struct file *filp, unsigned long arg); |
| 1034 | int (*flock) (struct file *, int, struct file_lock *); | 1034 | int (*flock) (struct file *, int, struct file_lock *); |
| 1035 | ssize_t (*splice_write)(struct inode *, struct file *, size_t, unsigned int); | ||
| 1036 | ssize_t (*splice_read)(struct file *, struct inode *, size_t, unsigned int); | ||
| 1035 | }; | 1037 | }; |
| 1036 | 1038 | ||
| 1037 | struct inode_operations { | 1039 | struct inode_operations { |
| @@ -1609,6 +1611,8 @@ extern ssize_t generic_file_sendfile(struct file *, loff_t *, size_t, read_actor | |||
| 1609 | extern void do_generic_mapping_read(struct address_space *mapping, | 1611 | extern void do_generic_mapping_read(struct address_space *mapping, |
| 1610 | struct file_ra_state *, struct file *, | 1612 | struct file_ra_state *, struct file *, |
| 1611 | loff_t *, read_descriptor_t *, read_actor_t); | 1613 | loff_t *, read_descriptor_t *, read_actor_t); |
| 1614 | extern ssize_t generic_file_splice_read(struct file *, struct inode *, size_t, unsigned int); | ||
| 1615 | extern ssize_t generic_file_splice_write(struct inode *, struct file *, size_t, unsigned int); | ||
| 1612 | extern void | 1616 | extern void |
| 1613 | file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping); | 1617 | file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping); |
| 1614 | extern ssize_t generic_file_readv(struct file *filp, const struct iovec *iov, | 1618 | extern ssize_t generic_file_readv(struct file *filp, const struct iovec *iov, |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 047192253c3a..0d61357604d5 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -160,8 +160,10 @@ enum { | |||
| 160 | ATA_QCFLAG_DMAMAP = ATA_QCFLAG_SG | ATA_QCFLAG_SINGLE, | 160 | ATA_QCFLAG_DMAMAP = ATA_QCFLAG_SG | ATA_QCFLAG_SINGLE, |
| 161 | ATA_QCFLAG_EH_SCHEDULED = (1 << 5), /* EH scheduled */ | 161 | ATA_QCFLAG_EH_SCHEDULED = (1 << 5), /* EH scheduled */ |
| 162 | 162 | ||
| 163 | /* host set flags */ | ||
| 164 | ATA_HOST_SIMPLEX = (1 << 0), /* Host is simplex, one DMA channel per host_set only */ | ||
| 165 | |||
| 163 | /* various lengths of time */ | 166 | /* various lengths of time */ |
| 164 | ATA_TMOUT_EDD = 5 * HZ, /* heuristic */ | ||
| 165 | ATA_TMOUT_PIO = 30 * HZ, | 167 | ATA_TMOUT_PIO = 30 * HZ, |
| 166 | ATA_TMOUT_BOOT = 30 * HZ, /* heuristic */ | 168 | ATA_TMOUT_BOOT = 30 * HZ, /* heuristic */ |
| 167 | ATA_TMOUT_BOOT_QUICK = 7 * HZ, /* heuristic */ | 169 | ATA_TMOUT_BOOT_QUICK = 7 * HZ, /* heuristic */ |
| @@ -279,6 +281,7 @@ struct ata_probe_ent { | |||
| 279 | unsigned long irq; | 281 | unsigned long irq; |
| 280 | unsigned int irq_flags; | 282 | unsigned int irq_flags; |
| 281 | unsigned long host_flags; | 283 | unsigned long host_flags; |
| 284 | unsigned long host_set_flags; | ||
| 282 | void __iomem *mmio_base; | 285 | void __iomem *mmio_base; |
| 283 | void *private_data; | 286 | void *private_data; |
| 284 | }; | 287 | }; |
| @@ -291,6 +294,9 @@ struct ata_host_set { | |||
| 291 | unsigned int n_ports; | 294 | unsigned int n_ports; |
| 292 | void *private_data; | 295 | void *private_data; |
| 293 | const struct ata_port_operations *ops; | 296 | const struct ata_port_operations *ops; |
| 297 | unsigned long flags; | ||
| 298 | int simplex_claimed; /* Keep seperate in case we | ||
| 299 | ever need to do this locked */ | ||
| 294 | struct ata_port * ports[0]; | 300 | struct ata_port * ports[0]; |
| 295 | }; | 301 | }; |
| 296 | 302 | ||
| @@ -420,6 +426,7 @@ struct ata_port_operations { | |||
| 420 | 426 | ||
| 421 | void (*set_piomode) (struct ata_port *, struct ata_device *); | 427 | void (*set_piomode) (struct ata_port *, struct ata_device *); |
| 422 | void (*set_dmamode) (struct ata_port *, struct ata_device *); | 428 | void (*set_dmamode) (struct ata_port *, struct ata_device *); |
| 429 | unsigned long (*mode_filter) (const struct ata_port *, struct ata_device *, unsigned long); | ||
| 423 | 430 | ||
| 424 | void (*tf_load) (struct ata_port *ap, const struct ata_taskfile *tf); | 431 | void (*tf_load) (struct ata_port *ap, const struct ata_taskfile *tf); |
| 425 | void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); | 432 | void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); |
| @@ -430,6 +437,7 @@ struct ata_port_operations { | |||
| 430 | void (*dev_select)(struct ata_port *ap, unsigned int device); | 437 | void (*dev_select)(struct ata_port *ap, unsigned int device); |
| 431 | 438 | ||
| 432 | void (*phy_reset) (struct ata_port *ap); /* obsolete */ | 439 | void (*phy_reset) (struct ata_port *ap); /* obsolete */ |
| 440 | void (*set_mode) (struct ata_port *ap); | ||
| 433 | int (*probe_reset) (struct ata_port *ap, unsigned int *classes); | 441 | int (*probe_reset) (struct ata_port *ap, unsigned int *classes); |
| 434 | 442 | ||
| 435 | void (*post_set_mode) (struct ata_port *ap); | 443 | void (*post_set_mode) (struct ata_port *ap); |
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index b12e59c75752..75c7f55023ab 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h | |||
| @@ -9,6 +9,7 @@ struct pipe_buffer { | |||
| 9 | struct page *page; | 9 | struct page *page; |
| 10 | unsigned int offset, len; | 10 | unsigned int offset, len; |
| 11 | struct pipe_buf_operations *ops; | 11 | struct pipe_buf_operations *ops; |
| 12 | unsigned int stolen; | ||
| 12 | }; | 13 | }; |
| 13 | 14 | ||
| 14 | struct pipe_buf_operations { | 15 | struct pipe_buf_operations { |
| @@ -16,6 +17,7 @@ struct pipe_buf_operations { | |||
| 16 | void * (*map)(struct file *, struct pipe_inode_info *, struct pipe_buffer *); | 17 | void * (*map)(struct file *, struct pipe_inode_info *, struct pipe_buffer *); |
| 17 | void (*unmap)(struct pipe_inode_info *, struct pipe_buffer *); | 18 | void (*unmap)(struct pipe_inode_info *, struct pipe_buffer *); |
| 18 | void (*release)(struct pipe_inode_info *, struct pipe_buffer *); | 19 | void (*release)(struct pipe_inode_info *, struct pipe_buffer *); |
| 20 | int (*steal)(struct pipe_inode_info *, struct pipe_buffer *); | ||
| 19 | }; | 21 | }; |
| 20 | 22 | ||
| 21 | struct pipe_inode_info { | 23 | struct pipe_inode_info { |
| @@ -53,4 +55,10 @@ void pipe_wait(struct inode * inode); | |||
| 53 | struct inode* pipe_new(struct inode* inode); | 55 | struct inode* pipe_new(struct inode* inode); |
| 54 | void free_pipe_info(struct inode* inode); | 56 | void free_pipe_info(struct inode* inode); |
| 55 | 57 | ||
| 58 | /* | ||
| 59 | * splice is tied to pipes as a transport (at least for now), so we'll just | ||
| 60 | * add the splice flags here. | ||
| 61 | */ | ||
| 62 | #define SPLICE_F_MOVE (0x01) /* move pages instead of copying */ | ||
| 63 | |||
| 56 | #endif | 64 | #endif |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index e487e3b60f60..e78ffc7d5b56 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -569,5 +569,7 @@ asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user * filename, | |||
| 569 | asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename, | 569 | asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename, |
| 570 | int flags, int mode); | 570 | int flags, int mode); |
| 571 | asmlinkage long sys_unshare(unsigned long unshare_flags); | 571 | asmlinkage long sys_unshare(unsigned long unshare_flags); |
| 572 | asmlinkage long sys_splice(int fdin, int fdout, size_t len, | ||
| 573 | unsigned int flags); | ||
| 572 | 574 | ||
| 573 | #endif | 575 | #endif |
