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

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2 #ifndef __MIPS_UAPI_ASM_UCONTEXT_H
   3 #define __MIPS_UAPI_ASM_UCONTEXT_H
   4 
   5 /**
   6  * struct extcontext - extended context header structure
   7  * @magic:      magic value identifying the type of extended context
   8  * @size:       the size in bytes of the enclosing structure
   9  *
  10  * Extended context structures provide context which does not fit within struct
  11  * sigcontext. They are placed sequentially in memory at the end of struct
  12  * ucontext and struct sigframe, with each extended context structure beginning
  13  * with a header defined by this struct. The type of context represented is
  14  * indicated by the magic field. Userland may check each extended context
  15  * structure against magic values that it recognises. The size field allows any
  16  * unrecognised context to be skipped, allowing for future expansion. The end
  17  * of the extended context data is indicated by the magic value
  18  * END_EXTCONTEXT_MAGIC.
  19  */
  20 struct extcontext {
  21         unsigned int            magic;
  22         unsigned int            size;
  23 };
  24 
  25 /**
  26  * struct msa_extcontext - MSA extended context structure
  27  * @ext:        the extended context header, with magic == MSA_EXTCONTEXT_MAGIC
  28  * @wr:         the most significant 64 bits of each MSA vector register
  29  * @csr:        the value of the MSA control & status register
  30  *
  31  * If MSA context is live for a task at the time a signal is delivered to it,
  32  * this structure will hold the MSA context of the task as it was prior to the
  33  * signal delivery.
  34  */
  35 struct msa_extcontext {
  36         struct extcontext       ext;
  37 #define MSA_EXTCONTEXT_MAGIC    0x784d5341      /* xMSA */
  38 
  39         unsigned long long      wr[32];
  40         unsigned int            csr;
  41 };
  42 
  43 #define END_EXTCONTEXT_MAGIC    0x78454e44      /* xEND */
  44 
  45 /**
  46  * struct ucontext - user context structure
  47  * @uc_flags:
  48  * @uc_link:
  49  * @uc_stack:
  50  * @uc_mcontext:        holds basic processor state
  51  * @uc_sigmask:
  52  * @uc_extcontext:      holds extended processor state
  53  */
  54 struct ucontext {
  55         /* Historic fields matching asm-generic */
  56         unsigned long           uc_flags;
  57         struct ucontext         *uc_link;
  58         stack_t                 uc_stack;
  59         struct sigcontext       uc_mcontext;
  60         sigset_t                uc_sigmask;
  61 
  62         /* Extended context structures may follow ucontext */
  63         unsigned long long      uc_extcontext[0];
  64 };
  65 
  66 #endif /* __MIPS_UAPI_ASM_UCONTEXT_H */

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