Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162/* SPDX-License-Identifier: GPL-2.0 *//* * Common syscall restarting data */#ifndef __LINUX_RESTART_BLOCK_H#define __LINUX_RESTART_BLOCK_H
#include <linux/compiler.h>#include <linux/time64.h>#include <linux/types.h>
struct __kernel_timespec;struct timespec;struct old_timespec32;struct pollfd;
enum timespec_type { TT_NONE = 0, TT_NATIVE = 1, TT_COMPAT = 2,};
/* * System call restart block. */struct restart_block { unsigned long arch_data; long (*fn)(struct restart_block *); union { /* For futex_wait() */ struct { u32 __user *uaddr; u32 val; u32 flags; u32 bitset; ktime_t time; u32 __user *uaddr2; } futex; /* For nanosleep */ struct { clockid_t clockid; enum timespec_type type; union { struct __kernel_timespec __user *rmtp; struct old_timespec32 __user *compat_rmtp; }; ktime_t expires; } nanosleep; /* For poll */ struct { struct pollfd __user *ufds; int nfds; int has_timeout; struct timespec64 end_time; } poll; };};
extern long do_no_restart_syscall(struct restart_block *parm);
#endif /* __LINUX_RESTART_BLOCK_H */