~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/restart_block.h

Version: ~ [ linux-5.6-rc3 ] ~ [ linux-5.5.6 ] ~ [ linux-5.4.22 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.106 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.171 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.214 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.214 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.82 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 /*
  3  * Common syscall restarting data
  4  */
  5 #ifndef __LINUX_RESTART_BLOCK_H
  6 #define __LINUX_RESTART_BLOCK_H
  7 
  8 #include <linux/compiler.h>
  9 #include <linux/types.h>
 10 #include <linux/time64.h>
 11 
 12 struct timespec;
 13 struct old_timespec32;
 14 struct pollfd;
 15 
 16 enum timespec_type {
 17         TT_NONE         = 0,
 18         TT_NATIVE       = 1,
 19         TT_COMPAT       = 2,
 20 };
 21 
 22 /*
 23  * System call restart block.
 24  */
 25 struct restart_block {
 26         long (*fn)(struct restart_block *);
 27         union {
 28                 /* For futex_wait and futex_wait_requeue_pi */
 29                 struct {
 30                         u32 __user *uaddr;
 31                         u32 val;
 32                         u32 flags;
 33                         u32 bitset;
 34                         u64 time;
 35                         u32 __user *uaddr2;
 36                 } futex;
 37                 /* For nanosleep */
 38                 struct {
 39                         clockid_t clockid;
 40                         enum timespec_type type;
 41                         union {
 42                                 struct __kernel_timespec __user *rmtp;
 43                                 struct old_timespec32 __user *compat_rmtp;
 44                         };
 45                         u64 expires;
 46                 } nanosleep;
 47                 /* For poll */
 48                 struct {
 49                         struct pollfd __user *ufds;
 50                         int nfds;
 51                         int has_timeout;
 52                         unsigned long tv_sec;
 53                         unsigned long tv_nsec;
 54                 } poll;
 55         };
 56 };
 57 
 58 extern long do_no_restart_syscall(struct restart_block *parm);
 59 
 60 #endif /* __LINUX_RESTART_BLOCK_H */
 61 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp