]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - include/linux/restart_block.h
Merge branch 'stable-4.10' of git://git.infradead.org/users/pcmoore/selinux into...
[mirror_ubuntu-bionic-kernel.git] / include / linux / restart_block.h
1 /*
2 * Common syscall restarting data
3 */
4 #ifndef __LINUX_RESTART_BLOCK_H
5 #define __LINUX_RESTART_BLOCK_H
6
7 #include <linux/compiler.h>
8 #include <linux/types.h>
9
10 struct timespec;
11 struct compat_timespec;
12 struct pollfd;
13
14 /*
15 * System call restart block.
16 */
17 struct restart_block {
18 long (*fn)(struct restart_block *);
19 union {
20 /* For futex_wait and futex_wait_requeue_pi */
21 struct {
22 u32 __user *uaddr;
23 u32 val;
24 u32 flags;
25 u32 bitset;
26 u64 time;
27 u32 __user *uaddr2;
28 } futex;
29 /* For nanosleep */
30 struct {
31 clockid_t clockid;
32 struct timespec __user *rmtp;
33 #ifdef CONFIG_COMPAT
34 struct compat_timespec __user *compat_rmtp;
35 #endif
36 u64 expires;
37 } nanosleep;
38 /* For poll */
39 struct {
40 struct pollfd __user *ufds;
41 int nfds;
42 int has_timeout;
43 unsigned long tv_sec;
44 unsigned long tv_nsec;
45 } poll;
46 };
47 };
48
49 extern long do_no_restart_syscall(struct restart_block *parm);
50
51 #endif /* __LINUX_RESTART_BLOCK_H */