block: remove redundant req_op in blk_rq_is_passthrough
[linux-block.git] / include / linux / syscall_user_dispatch.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) 2020 Collabora Ltd.
4  */
5 #ifndef _SYSCALL_USER_DISPATCH_H
6 #define _SYSCALL_USER_DISPATCH_H
7
8 #include <linux/thread_info.h>
9
10 #ifdef CONFIG_GENERIC_ENTRY
11
12 struct syscall_user_dispatch {
13         char __user     *selector;
14         unsigned long   offset;
15         unsigned long   len;
16         bool            on_dispatch;
17 };
18
19 int set_syscall_user_dispatch(unsigned long mode, unsigned long offset,
20                               unsigned long len, char __user *selector);
21
22 #define clear_syscall_work_syscall_user_dispatch(tsk) \
23         clear_task_syscall_work(tsk, SYSCALL_USER_DISPATCH)
24
25 int syscall_user_dispatch_get_config(struct task_struct *task, unsigned long size,
26                                      void __user *data);
27
28 int syscall_user_dispatch_set_config(struct task_struct *task, unsigned long size,
29                                      void __user *data);
30
31 #else
32 struct syscall_user_dispatch {};
33
34 static inline int set_syscall_user_dispatch(unsigned long mode, unsigned long offset,
35                                             unsigned long len, char __user *selector)
36 {
37         return -EINVAL;
38 }
39
40 static inline void clear_syscall_work_syscall_user_dispatch(struct task_struct *tsk)
41 {
42 }
43
44 static inline int syscall_user_dispatch_get_config(struct task_struct *task,
45                                                    unsigned long size, void __user *data)
46 {
47         return -EINVAL;
48 }
49
50 static inline int syscall_user_dispatch_set_config(struct task_struct *task,
51                                                    unsigned long size, void __user *data)
52 {
53         return -EINVAL;
54 }
55
56 #endif /* CONFIG_GENERIC_ENTRY */
57
58 #endif /* _SYSCALL_USER_DISPATCH_H */