hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
kernel/include/linux/fs.h
....@@ -56,6 +56,7 @@
5656 struct kobject;
5757 struct pipe_inode_info;
5858 struct poll_table_struct;
59
+struct oob_poll_wait;
5960 struct kstatfs;
6061 struct vm_area_struct;
6162 struct vfsmount;
....@@ -963,6 +964,7 @@
963964 #endif
964965 /* needed for tty driver, and maybe others */
965966 void *private_data;
967
+ void *oob_data;
966968
967969 #ifdef CONFIG_EPOLL
968970 /* Used by fs/eventpoll.c to link all the hooks to this file */
....@@ -1800,8 +1802,11 @@
18001802 #ifdef CONFIG_COMPAT
18011803 extern long compat_ptr_ioctl(struct file *file, unsigned int cmd,
18021804 unsigned long arg);
1805
+extern long compat_ptr_oob_ioctl(struct file *file, unsigned int cmd,
1806
+ unsigned long arg);
18031807 #else
18041808 #define compat_ptr_ioctl NULL
1809
+#define compat_ptr_oob_ioctl NULL
18051810 #endif
18061811
18071812 /*
....@@ -1888,6 +1893,11 @@
18881893 __poll_t (*poll) (struct file *, struct poll_table_struct *);
18891894 long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
18901895 long (*compat_ioctl) (struct file *, unsigned int, unsigned long);
1896
+ ssize_t (*oob_read) (struct file *, char __user *, size_t);
1897
+ ssize_t (*oob_write) (struct file *, const char __user *, size_t);
1898
+ long (*oob_ioctl) (struct file *, unsigned int, unsigned long);
1899
+ long (*compat_oob_ioctl) (struct file *, unsigned int, unsigned long);
1900
+ __poll_t (*oob_poll) (struct file *, struct oob_poll_wait *);
18911901 int (*mmap) (struct file *, struct vm_area_struct *);
18921902 unsigned long mmap_supported_flags;
18931903 int (*open) (struct inode *, struct file *);