root/arch/riscv/include/uapi/asm/ucontext.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
   2 /*
   3  * Copyright (C) 2012 ARM Ltd.
   4  * Copyright (C) 2017 SiFive, Inc.
   5  *
   6  * This file was copied from arch/arm64/include/uapi/asm/ucontext.h
   7  */
   8 #ifndef _UAPI__ASM_UCONTEXT_H
   9 #define _UAPI__ASM_UCONTEXT_H
  10 
  11 #include <linux/types.h>
  12 
  13 struct ucontext {
  14         unsigned long     uc_flags;
  15         struct ucontext  *uc_link;
  16         stack_t           uc_stack;
  17         sigset_t          uc_sigmask;
  18         /* There's some padding here to allow sigset_t to be expanded in the
  19          * future.  Though this is unlikely, other architectures put uc_sigmask
  20          * at the end of this structure and explicitly state it can be
  21          * expanded, so we didn't want to box ourselves in here. */
  22         __u8              __unused[1024 / 8 - sizeof(sigset_t)];
  23         /* We can't put uc_sigmask at the end of this structure because we need
  24          * to be able to expand sigcontext in the future.  For example, the
  25          * vector ISA extension will almost certainly add ISA state.  We want
  26          * to ensure all user-visible ISA state can be saved and restored via a
  27          * ucontext, so we're putting this at the end in order to allow for
  28          * infinite extensibility.  Since we know this will be extended and we
  29          * assume sigset_t won't be extended an extreme amount, we're
  30          * prioritizing this. */
  31         struct sigcontext uc_mcontext;
  32 };
  33 
  34 #endif /* _UAPI__ASM_UCONTEXT_H */

/* [<][>][^][v][top][bottom][index][help] */