Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

fs: move struct kiocb to fs.h

struct kiocb now is a generic I/O container, so move it to fs.h.
Also do a #include diet for aio.h while we're at it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

authored by

Christoph Hellwig and committed by
Al Viro
e2e40f2c 04b2fa9f

+55 -86
+1 -1
arch/s390/hypfs/inode.c
··· 21 21 #include <linux/module.h> 22 22 #include <linux/seq_file.h> 23 23 #include <linux/mount.h> 24 - #include <linux/aio.h> 24 + #include <linux/uio.h> 25 25 #include <asm/ebcdic.h> 26 26 #include "hypfs.h" 27 27
+1 -1
drivers/char/mem.c
··· 26 26 #include <linux/pfn.h> 27 27 #include <linux/export.h> 28 28 #include <linux/io.h> 29 - #include <linux/aio.h> 29 + #include <linux/uio.h> 30 30 31 31 #include <linux/uaccess.h> 32 32
-1
drivers/char/tile-srom.c
··· 27 27 #include <linux/types.h> /* size_t */ 28 28 #include <linux/proc_fs.h> 29 29 #include <linux/fcntl.h> /* O_ACCMODE */ 30 - #include <linux/aio.h> 31 30 #include <linux/pagemap.h> 32 31 #include <linux/hugetlb.h> 33 32 #include <linux/uaccess.h>
-1
drivers/infiniband/hw/ipath/ipath_file_ops.c
··· 40 40 #include <linux/slab.h> 41 41 #include <linux/highmem.h> 42 42 #include <linux/io.h> 43 - #include <linux/aio.h> 44 43 #include <linux/jiffies.h> 45 44 #include <linux/cpu.h> 46 45 #include <asm/pgtable.h>
-1
drivers/infiniband/hw/qib/qib_file_ops.c
··· 39 39 #include <linux/vmalloc.h> 40 40 #include <linux/highmem.h> 41 41 #include <linux/io.h> 42 - #include <linux/aio.h> 43 42 #include <linux/jiffies.h> 44 43 #include <asm/pgtable.h> 45 44 #include <linux/delay.h>
-1
drivers/misc/mei/amthif.c
··· 19 19 #include <linux/errno.h> 20 20 #include <linux/types.h> 21 21 #include <linux/fcntl.h> 22 - #include <linux/aio.h> 23 22 #include <linux/ioctl.h> 24 23 #include <linux/cdev.h> 25 24 #include <linux/list.h>
-1
drivers/misc/mei/main.c
··· 22 22 #include <linux/errno.h> 23 23 #include <linux/types.h> 24 24 #include <linux/fcntl.h> 25 - #include <linux/aio.h> 26 25 #include <linux/poll.h> 27 26 #include <linux/init.h> 28 27 #include <linux/ioctl.h>
-1
drivers/misc/mei/pci-me.c
··· 21 21 #include <linux/errno.h> 22 22 #include <linux/types.h> 23 23 #include <linux/fcntl.h> 24 - #include <linux/aio.h> 25 24 #include <linux/pci.h> 26 25 #include <linux/poll.h> 27 26 #include <linux/ioctl.h>
+1 -1
drivers/scsi/sg.c
··· 33 33 #include <linux/sched.h> 34 34 #include <linux/string.h> 35 35 #include <linux/mm.h> 36 - #include <linux/aio.h> 37 36 #include <linux/errno.h> 38 37 #include <linux/mtio.h> 39 38 #include <linux/ioctl.h> ··· 50 51 #include <linux/mutex.h> 51 52 #include <linux/atomic.h> 52 53 #include <linux/ratelimit.h> 54 + #include <linux/uio.h> 53 55 54 56 #include "scsi.h" 55 57 #include <scsi/scsi_dbg.h>
-1
drivers/staging/unisys/include/timskmod.h
··· 46 46 #include <linux/module.h> 47 47 #include <linux/moduleparam.h> 48 48 #include <linux/fcntl.h> 49 - #include <linux/aio.h> 50 49 #include <linux/workqueue.h> 51 50 #include <linux/kthread.h> 52 51 #include <linux/seq_file.h>
+1
drivers/usb/gadget/function/f_fs.c
··· 23 23 #include <linux/export.h> 24 24 #include <linux/hid.h> 25 25 #include <linux/module.h> 26 + #include <linux/uio.h> 26 27 #include <asm/unaligned.h> 27 28 28 29 #include <linux/usb/composite.h>
+1
drivers/usb/gadget/legacy/inode.c
··· 26 26 #include <linux/poll.h> 27 27 #include <linux/mmu_context.h> 28 28 #include <linux/aio.h> 29 + #include <linux/uio.h> 29 30 30 31 #include <linux/device.h> 31 32 #include <linux/moduleparam.h>
+1 -1
fs/9p/vfs_addr.c
··· 33 33 #include <linux/pagemap.h> 34 34 #include <linux/idr.h> 35 35 #include <linux/sched.h> 36 - #include <linux/aio.h> 36 + #include <linux/uio.h> 37 37 #include <net/9p/9p.h> 38 38 #include <net/9p/client.h> 39 39
+1 -1
fs/affs/file.c
··· 12 12 * affs regular file handling primitives 13 13 */ 14 14 15 - #include <linux/aio.h> 15 + #include <linux/uio.h> 16 16 #include "affs.h" 17 17 18 18 static struct buffer_head *affs_get_extblock_slow(struct inode *inode, u32 ext);
-1
fs/afs/write.c
··· 14 14 #include <linux/pagemap.h> 15 15 #include <linux/writeback.h> 16 16 #include <linux/pagevec.h> 17 - #include <linux/aio.h> 18 17 #include "internal.h" 19 18 20 19 static int afs_write_back_from_locked_page(struct afs_writeback *wb,
+1
fs/bfs/inode.c
··· 15 15 #include <linux/buffer_head.h> 16 16 #include <linux/vfs.h> 17 17 #include <linux/writeback.h> 18 + #include <linux/uio.h> 18 19 #include <asm/uaccess.h> 19 20 #include "bfs.h" 20 21
-1
fs/block_dev.c
··· 27 27 #include <linux/namei.h> 28 28 #include <linux/log2.h> 29 29 #include <linux/cleancache.h> 30 - #include <linux/aio.h> 31 30 #include <asm/uaccess.h> 32 31 #include "internal.h" 33 32
+1 -1
fs/btrfs/file.c
··· 24 24 #include <linux/string.h> 25 25 #include <linux/backing-dev.h> 26 26 #include <linux/mpage.h> 27 - #include <linux/aio.h> 28 27 #include <linux/falloc.h> 29 28 #include <linux/swap.h> 30 29 #include <linux/writeback.h> ··· 31 32 #include <linux/compat.h> 32 33 #include <linux/slab.h> 33 34 #include <linux/btrfs.h> 35 + #include <linux/uio.h> 34 36 #include "ctree.h" 35 37 #include "disk-io.h" 36 38 #include "transaction.h"
+1 -1
fs/btrfs/inode.c
··· 32 32 #include <linux/writeback.h> 33 33 #include <linux/statfs.h> 34 34 #include <linux/compat.h> 35 - #include <linux/aio.h> 36 35 #include <linux/bit_spinlock.h> 37 36 #include <linux/xattr.h> 38 37 #include <linux/posix_acl.h> ··· 42 43 #include <linux/btrfs.h> 43 44 #include <linux/blkdev.h> 44 45 #include <linux/posix_acl_xattr.h> 46 + #include <linux/uio.h> 45 47 #include "ctree.h" 46 48 #include "disk-io.h" 47 49 #include "transaction.h"
-1
fs/ceph/file.c
··· 7 7 #include <linux/mount.h> 8 8 #include <linux/namei.h> 9 9 #include <linux/writeback.h> 10 - #include <linux/aio.h> 11 10 #include <linux/falloc.h> 12 11 13 12 #include "super.h"
-1
fs/direct-io.c
··· 37 37 #include <linux/uio.h> 38 38 #include <linux/atomic.h> 39 39 #include <linux/prefetch.h> 40 - #include <linux/aio.h> 41 40 42 41 /* 43 42 * How many user pages to map in one call to get_user_pages(). This determines
-1
fs/ecryptfs/file.c
··· 31 31 #include <linux/security.h> 32 32 #include <linux/compat.h> 33 33 #include <linux/fs_stack.h> 34 - #include <linux/aio.h> 35 34 #include "ecryptfs_kernel.h" 36 35 37 36 /**
+1 -1
fs/ext2/inode.c
··· 31 31 #include <linux/mpage.h> 32 32 #include <linux/fiemap.h> 33 33 #include <linux/namei.h> 34 - #include <linux/aio.h> 34 + #include <linux/uio.h> 35 35 #include "ext2.h" 36 36 #include "acl.h" 37 37 #include "xattr.h"
+1 -1
fs/ext3/inode.c
··· 27 27 #include <linux/writeback.h> 28 28 #include <linux/mpage.h> 29 29 #include <linux/namei.h> 30 - #include <linux/aio.h> 30 + #include <linux/uio.h> 31 31 #include "ext3.h" 32 32 #include "xattr.h" 33 33 #include "acl.h"
+1 -1
fs/ext4/file.c
··· 23 23 #include <linux/jbd2.h> 24 24 #include <linux/mount.h> 25 25 #include <linux/path.h> 26 - #include <linux/aio.h> 27 26 #include <linux/quotaops.h> 28 27 #include <linux/pagevec.h> 28 + #include <linux/uio.h> 29 29 #include "ext4.h" 30 30 #include "ext4_jbd2.h" 31 31 #include "xattr.h"
+1 -1
fs/ext4/indirect.c
··· 20 20 * (sct@redhat.com), 1993, 1998 21 21 */ 22 22 23 - #include <linux/aio.h> 24 23 #include "ext4_jbd2.h" 25 24 #include "truncate.h" 25 + #include <linux/uio.h> 26 26 27 27 #include <trace/events/ext4.h> 28 28
-1
fs/ext4/inode.c
··· 37 37 #include <linux/printk.h> 38 38 #include <linux/slab.h> 39 39 #include <linux/ratelimit.h> 40 - #include <linux/aio.h> 41 40 #include <linux/bitops.h> 42 41 43 42 #include "ext4_jbd2.h"
-1
fs/ext4/page-io.c
··· 18 18 #include <linux/pagevec.h> 19 19 #include <linux/mpage.h> 20 20 #include <linux/namei.h> 21 - #include <linux/aio.h> 22 21 #include <linux/uio.h> 23 22 #include <linux/bio.h> 24 23 #include <linux/workqueue.h>
+1 -1
fs/f2fs/data.c
··· 12 12 #include <linux/f2fs_fs.h> 13 13 #include <linux/buffer_head.h> 14 14 #include <linux/mpage.h> 15 - #include <linux/aio.h> 16 15 #include <linux/writeback.h> 17 16 #include <linux/backing-dev.h> 18 17 #include <linux/blkdev.h> 19 18 #include <linux/bio.h> 20 19 #include <linux/prefetch.h> 20 + #include <linux/uio.h> 21 21 22 22 #include "f2fs.h" 23 23 #include "node.h"
-1
fs/fat/inode.c
··· 19 19 #include <linux/mpage.h> 20 20 #include <linux/buffer_head.h> 21 21 #include <linux/mount.h> 22 - #include <linux/aio.h> 23 22 #include <linux/vfs.h> 24 23 #include <linux/parser.h> 25 24 #include <linux/uio.h>
+1 -1
fs/fuse/cuse.c
··· 38 38 #include <linux/device.h> 39 39 #include <linux/file.h> 40 40 #include <linux/fs.h> 41 - #include <linux/aio.h> 42 41 #include <linux/kdev_t.h> 43 42 #include <linux/kthread.h> 44 43 #include <linux/list.h> ··· 47 48 #include <linux/slab.h> 48 49 #include <linux/stat.h> 49 50 #include <linux/module.h> 51 + #include <linux/uio.h> 50 52 51 53 #include "fuse_i.h" 52 54
-1
fs/fuse/dev.c
··· 19 19 #include <linux/pipe_fs_i.h> 20 20 #include <linux/swap.h> 21 21 #include <linux/splice.h> 22 - #include <linux/aio.h> 23 22 24 23 MODULE_ALIAS_MISCDEV(FUSE_MINOR); 25 24 MODULE_ALIAS("devname:fuse");
+1 -1
fs/fuse/file.c
··· 15 15 #include <linux/module.h> 16 16 #include <linux/compat.h> 17 17 #include <linux/swap.h> 18 - #include <linux/aio.h> 19 18 #include <linux/falloc.h> 19 + #include <linux/uio.h> 20 20 21 21 static const struct file_operations fuse_direct_io_file_operations; 22 22
+1 -1
fs/gfs2/aops.c
··· 20 20 #include <linux/swap.h> 21 21 #include <linux/gfs2_ondisk.h> 22 22 #include <linux/backing-dev.h> 23 - #include <linux/aio.h> 23 + #include <linux/uio.h> 24 24 #include <trace/events/writeback.h> 25 25 26 26 #include "gfs2.h"
-1
fs/gfs2/file.c
··· 25 25 #include <asm/uaccess.h> 26 26 #include <linux/dlm.h> 27 27 #include <linux/dlm_plock.h> 28 - #include <linux/aio.h> 29 28 #include <linux/delay.h> 30 29 31 30 #include "gfs2.h"
+1 -1
fs/hfs/inode.c
··· 14 14 #include <linux/pagemap.h> 15 15 #include <linux/mpage.h> 16 16 #include <linux/sched.h> 17 - #include <linux/aio.h> 17 + #include <linux/uio.h> 18 18 19 19 #include "hfs_fs.h" 20 20 #include "btree.h"
+1 -1
fs/hfsplus/inode.c
··· 14 14 #include <linux/pagemap.h> 15 15 #include <linux/mpage.h> 16 16 #include <linux/sched.h> 17 - #include <linux/aio.h> 17 + #include <linux/uio.h> 18 18 19 19 #include "hfsplus_fs.h" 20 20 #include "hfsplus_raw.h"
+1 -1
fs/jfs/inode.c
··· 22 22 #include <linux/buffer_head.h> 23 23 #include <linux/pagemap.h> 24 24 #include <linux/quotaops.h> 25 + #include <linux/uio.h> 25 26 #include <linux/writeback.h> 26 - #include <linux/aio.h> 27 27 #include "jfs_incore.h" 28 28 #include "jfs_inode.h" 29 29 #include "jfs_filsys.h"
-1
fs/nfs/file.c
··· 26 26 #include <linux/nfs_mount.h> 27 27 #include <linux/mm.h> 28 28 #include <linux/pagemap.h> 29 - #include <linux/aio.h> 30 29 #include <linux/gfp.h> 31 30 #include <linux/swap.h> 32 31
+1 -1
fs/nilfs2/inode.c
··· 26 26 #include <linux/mpage.h> 27 27 #include <linux/pagemap.h> 28 28 #include <linux/writeback.h> 29 - #include <linux/aio.h> 29 + #include <linux/uio.h> 30 30 #include "nilfs.h" 31 31 #include "btnode.h" 32 32 #include "segment.h"
-1
fs/ntfs/file.c
··· 28 28 #include <linux/swap.h> 29 29 #include <linux/uio.h> 30 30 #include <linux/writeback.h> 31 - #include <linux/aio.h> 32 31 33 32 #include <asm/page.h> 34 33 #include <asm/uaccess.h>
-1
fs/ntfs/inode.c
··· 28 28 #include <linux/quotaops.h> 29 29 #include <linux/slab.h> 30 30 #include <linux/log2.h> 31 - #include <linux/aio.h> 32 31 33 32 #include "aops.h" 34 33 #include "attrib.h"
+1
fs/ocfs2/aops.c
··· 29 29 #include <linux/mpage.h> 30 30 #include <linux/quotaops.h> 31 31 #include <linux/blkdev.h> 32 + #include <linux/uio.h> 32 33 33 34 #include <cluster/masklog.h> 34 35
+1 -1
fs/ocfs2/aops.h
··· 22 22 #ifndef OCFS2_AOPS_H 23 23 #define OCFS2_AOPS_H 24 24 25 - #include <linux/aio.h> 25 + #include <linux/fs.h> 26 26 27 27 handle_t *ocfs2_start_walk_page_trans(struct inode *inode, 28 28 struct page *page,
-1
fs/pipe.c
··· 21 21 #include <linux/audit.h> 22 22 #include <linux/syscalls.h> 23 23 #include <linux/fcntl.h> 24 - #include <linux/aio.h> 25 24 26 25 #include <asm/uaccess.h> 27 26 #include <asm/ioctls.h>
-1
fs/read_write.c
··· 9 9 #include <linux/fcntl.h> 10 10 #include <linux/file.h> 11 11 #include <linux/uio.h> 12 - #include <linux/aio.h> 13 12 #include <linux/fsnotify.h> 14 13 #include <linux/security.h> 15 14 #include <linux/export.h>
+1 -1
fs/reiserfs/inode.c
··· 18 18 #include <linux/writeback.h> 19 19 #include <linux/quotaops.h> 20 20 #include <linux/swap.h> 21 - #include <linux/aio.h> 21 + #include <linux/uio.h> 22 22 23 23 int reiserfs_commit_write(struct file *f, struct page *page, 24 24 unsigned from, unsigned to);
-1
fs/splice.c
··· 32 32 #include <linux/gfp.h> 33 33 #include <linux/socket.h> 34 34 #include <linux/compat.h> 35 - #include <linux/aio.h> 36 35 #include "internal.h" 37 36 38 37 /*
-1
fs/ubifs/file.c
··· 50 50 */ 51 51 52 52 #include "ubifs.h" 53 - #include <linux/aio.h> 54 53 #include <linux/mount.h> 55 54 #include <linux/namei.h> 56 55 #include <linux/slab.h>
+1 -1
fs/udf/file.c
··· 34 34 #include <linux/errno.h> 35 35 #include <linux/pagemap.h> 36 36 #include <linux/buffer_head.h> 37 - #include <linux/aio.h> 37 + #include <linux/uio.h> 38 38 39 39 #include "udf_i.h" 40 40 #include "udf_sb.h"
+1 -1
fs/udf/inode.c
··· 38 38 #include <linux/slab.h> 39 39 #include <linux/crc-itu-t.h> 40 40 #include <linux/mpage.h> 41 - #include <linux/aio.h> 41 + #include <linux/uio.h> 42 42 43 43 #include "udf_i.h" 44 44 #include "udf_sb.h"
-1
fs/xfs/xfs_aops.c
··· 31 31 #include "xfs_bmap.h" 32 32 #include "xfs_bmap_util.h" 33 33 #include "xfs_bmap_btree.h" 34 - #include <linux/aio.h> 35 34 #include <linux/gfp.h> 36 35 #include <linux/mpage.h> 37 36 #include <linux/pagevec.h>
-1
fs/xfs/xfs_file.c
··· 37 37 #include "xfs_log.h" 38 38 #include "xfs_icache.h" 39 39 40 - #include <linux/aio.h> 41 40 #include <linux/dcache.h> 42 41 #include <linux/falloc.h> 43 42 #include <linux/pagevec.h>
+1 -30
include/linux/aio.h
··· 1 1 #ifndef __LINUX__AIO_H 2 2 #define __LINUX__AIO_H 3 3 4 - #include <linux/list.h> 5 - #include <linux/workqueue.h> 6 4 #include <linux/aio_abi.h> 7 - #include <linux/uio.h> 8 - #include <linux/rcupdate.h> 9 - 10 - #include <linux/atomic.h> 11 5 12 6 struct kioctx; 13 7 struct kiocb; 8 + struct mm_struct; 14 9 15 10 #define KIOCB_KEY 0 16 11 17 12 typedef int (kiocb_cancel_fn)(struct kiocb *); 18 13 19 - #define IOCB_EVENTFD (1 << 0) 20 - 21 - struct kiocb { 22 - struct file *ki_filp; 23 - loff_t ki_pos; 24 - void (*ki_complete)(struct kiocb *iocb, long ret, long ret2); 25 - void *private; 26 - int ki_flags; 27 - }; 28 - 29 - static inline bool is_sync_kiocb(struct kiocb *kiocb) 30 - { 31 - return kiocb->ki_complete == NULL; 32 - } 33 - 34 - static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp) 35 - { 36 - *kiocb = (struct kiocb) { 37 - .ki_filp = filp, 38 - }; 39 - } 40 - 41 14 /* prototypes */ 42 15 #ifdef CONFIG_AIO 43 - struct mm_struct; 44 16 extern void exit_aio(struct mm_struct *mm); 45 17 extern long do_io_submit(aio_context_t ctx_id, long nr, 46 18 struct iocb __user *__user *iocbpp, bool compat); 47 19 void kiocb_set_cancel_fn(struct kiocb *req, kiocb_cancel_fn *cancel); 48 20 #else 49 - struct mm_struct; 50 21 static inline void exit_aio(struct mm_struct *mm) { } 51 22 static inline long do_io_submit(aio_context_t ctx_id, long nr, 52 23 struct iocb __user * __user *iocbpp,
+22
include/linux/fs.h
··· 314 314 struct address_space; 315 315 struct writeback_control; 316 316 317 + #define IOCB_EVENTFD (1 << 0) 318 + 319 + struct kiocb { 320 + struct file *ki_filp; 321 + loff_t ki_pos; 322 + void (*ki_complete)(struct kiocb *iocb, long ret, long ret2); 323 + void *private; 324 + int ki_flags; 325 + }; 326 + 327 + static inline bool is_sync_kiocb(struct kiocb *kiocb) 328 + { 329 + return kiocb->ki_complete == NULL; 330 + } 331 + 332 + static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp) 333 + { 334 + *kiocb = (struct kiocb) { 335 + .ki_filp = filp, 336 + }; 337 + } 338 + 317 339 /* 318 340 * "descriptor" for what we're up to with a read. 319 341 * This allows us to use the same read code yet
-1
include/net/sock.h
··· 57 57 #include <linux/page_counter.h> 58 58 #include <linux/memcontrol.h> 59 59 #include <linux/static_key.h> 60 - #include <linux/aio.h> 61 60 #include <linux/sched.h> 62 61 63 62 #include <linux/filter.h>
+1 -1
kernel/printk/printk.c
··· 32 32 #include <linux/security.h> 33 33 #include <linux/bootmem.h> 34 34 #include <linux/memblock.h> 35 - #include <linux/aio.h> 36 35 #include <linux/syscalls.h> 37 36 #include <linux/kexec.h> 38 37 #include <linux/kdb.h> ··· 45 46 #include <linux/irq_work.h> 46 47 #include <linux/utsname.h> 47 48 #include <linux/ctype.h> 49 + #include <linux/uio.h> 48 50 49 51 #include <asm/uaccess.h> 50 52
+1
kernel/sysctl.c
··· 19 19 */ 20 20 21 21 #include <linux/module.h> 22 + #include <linux/aio.h> 22 23 #include <linux/mm.h> 23 24 #include <linux/swap.h> 24 25 #include <linux/slab.h>
-1
mm/filemap.c
··· 13 13 #include <linux/compiler.h> 14 14 #include <linux/fs.h> 15 15 #include <linux/uaccess.h> 16 - #include <linux/aio.h> 17 16 #include <linux/capability.h> 18 17 #include <linux/kernel_stat.h> 19 18 #include <linux/gfp.h>
+1 -1
mm/page_io.c
··· 20 20 #include <linux/buffer_head.h> 21 21 #include <linux/writeback.h> 22 22 #include <linux/frontswap.h> 23 - #include <linux/aio.h> 24 23 #include <linux/blkdev.h> 24 + #include <linux/uio.h> 25 25 #include <asm/pgtable.h> 26 26 27 27 static struct bio *get_swap_bio(gfp_t gfp_flags,
+1 -1
mm/shmem.c
··· 31 31 #include <linux/mm.h> 32 32 #include <linux/export.h> 33 33 #include <linux/swap.h> 34 - #include <linux/aio.h> 34 + #include <linux/uio.h> 35 35 36 36 static struct vfsmount *shm_mnt; 37 37
-1
net/ipv4/raw.c
··· 46 46 #include <linux/stddef.h> 47 47 #include <linux/slab.h> 48 48 #include <linux/errno.h> 49 - #include <linux/aio.h> 50 49 #include <linux/kernel.h> 51 50 #include <linux/export.h> 52 51 #include <linux/spinlock.h>
+1 -1
sound/core/pcm_native.c
··· 25 25 #include <linux/slab.h> 26 26 #include <linux/time.h> 27 27 #include <linux/pm_qos.h> 28 - #include <linux/aio.h> 29 28 #include <linux/io.h> 30 29 #include <linux/dma-mapping.h> 31 30 #include <sound/core.h> ··· 34 35 #include <sound/pcm_params.h> 35 36 #include <sound/timer.h> 36 37 #include <sound/minors.h> 38 + #include <linux/uio.h> 37 39 38 40 /* 39 41 * Compatibility