/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2020 Collabora Ltd. */ #ifndef _SYSCALL_USER_DISPATCH_H #define _SYSCALL_USER_DISPATCH_H #include #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 */