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#include <linux/syscall_user_dispatch_types.h> 10 11#ifdef CONFIG_GENERIC_ENTRY 12 13int set_syscall_user_dispatch(unsigned long mode, unsigned long offset, 14 unsigned long len, char __user *selector); 15 16#define clear_syscall_work_syscall_user_dispatch(tsk) \ 17 clear_task_syscall_work(tsk, SYSCALL_USER_DISPATCH) 18 19int syscall_user_dispatch_get_config(struct task_struct *task, unsigned long size, 20 void __user *data); 21 22int syscall_user_dispatch_set_config(struct task_struct *task, unsigned long size, 23 void __user *data); 24 25#else 26 27static inline int set_syscall_user_dispatch(unsigned long mode, unsigned long offset, 28 unsigned long len, char __user *selector) 29{ 30 return -EINVAL; 31} 32 33static inline void clear_syscall_work_syscall_user_dispatch(struct task_struct *tsk) 34{ 35} 36 37static inline int syscall_user_dispatch_get_config(struct task_struct *task, 38 unsigned long size, void __user *data) 39{ 40 return -EINVAL; 41} 42 43static inline int syscall_user_dispatch_set_config(struct task_struct *task, 44 unsigned long size, void __user *data) 45{ 46 return -EINVAL; 47} 48 49#endif /* CONFIG_GENERIC_ENTRY */ 50 51#endif /* _SYSCALL_USER_DISPATCH_H */ 52