12345678910111213141516171819202122232425262728293031323334353637383940 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
- * Copyright (C) 2020 Collabora Ltd.
- */
- #ifndef _SYSCALL_USER_DISPATCH_H
- #define _SYSCALL_USER_DISPATCH_H
- #include <linux/thread_info.h>
- #ifdef CONFIG_GENERIC_ENTRY
- struct syscall_user_dispatch {
- char __user *selector;
- unsigned long offset;
- unsigned long len;
- bool on_dispatch;
- };
- int set_syscall_user_dispatch(unsigned long mode, unsigned long offset,
- unsigned long len, char __user *selector);
- #define clear_syscall_work_syscall_user_dispatch(tsk) \
- clear_task_syscall_work(tsk, SYSCALL_USER_DISPATCH)
- #else
- struct syscall_user_dispatch {};
- static inline int set_syscall_user_dispatch(unsigned long mode, unsigned long offset,
- unsigned long len, char __user *selector)
- {
- return -EINVAL;
- }
- static inline void clear_syscall_work_syscall_user_dispatch(struct task_struct *tsk)
- {
- }
- #endif /* CONFIG_GENERIC_ENTRY */
- #endif /* _SYSCALL_USER_DISPATCH_H */
|