root/arch/nds32/include/uapi/asm/sigcontext.h

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2 // Copyright (C) 2005-2017 Andes Technology Corporation
   3 
   4 #ifndef _ASMNDS32_SIGCONTEXT_H
   5 #define _ASMNDS32_SIGCONTEXT_H
   6 
   7 /*
   8  * Signal context structure - contains all info to do with the state
   9  * before the signal handler was invoked.  Note: only add new entries
  10  * to the end of the structure.
  11  */
  12 struct fpu_struct {
  13         unsigned long long fd_regs[32];
  14         unsigned long fpcsr;
  15         /*
  16          * When CONFIG_SUPPORT_DENORMAL_ARITHMETIC is defined, kernel prevents
  17          * hardware from treating the denormalized output as an underflow case
  18          * and rounding it to a normal number. Hence kernel enables the UDF and
  19          * IEX trap in the fpcsr register to step in the calculation.
  20          * However, the UDF and IEX trap enable bit in $fpcsr also lose
  21          * their use.
  22          *
  23          * UDF_IEX_trap replaces the feature of UDF and IEX trap enable bit in
  24          * $fpcsr to control the trap of underflow and inexact. The bit filed
  25          * of UDF_IEX_trap is the same as $fpcsr, 10th bit is used to enable UDF
  26          * exception trapping and 11th bit is used to enable IEX exception
  27          * trapping.
  28          *
  29          * UDF_IEX_trap is only modified through fp_udfiex_crtl syscall.
  30          * Therefore, UDF_IEX_trap needn't be saved and restored in each
  31          * context switch.
  32          */
  33         unsigned long UDF_IEX_trap;
  34 };
  35 
  36 struct zol_struct {
  37         unsigned long nds32_lc; /* $LC */
  38         unsigned long nds32_le; /* $LE */
  39         unsigned long nds32_lb; /* $LB */
  40 };
  41 
  42 struct sigcontext {
  43         unsigned long trap_no;
  44         unsigned long error_code;
  45         unsigned long oldmask;
  46         unsigned long nds32_r0;
  47         unsigned long nds32_r1;
  48         unsigned long nds32_r2;
  49         unsigned long nds32_r3;
  50         unsigned long nds32_r4;
  51         unsigned long nds32_r5;
  52         unsigned long nds32_r6;
  53         unsigned long nds32_r7;
  54         unsigned long nds32_r8;
  55         unsigned long nds32_r9;
  56         unsigned long nds32_r10;
  57         unsigned long nds32_r11;
  58         unsigned long nds32_r12;
  59         unsigned long nds32_r13;
  60         unsigned long nds32_r14;
  61         unsigned long nds32_r15;
  62         unsigned long nds32_r16;
  63         unsigned long nds32_r17;
  64         unsigned long nds32_r18;
  65         unsigned long nds32_r19;
  66         unsigned long nds32_r20;
  67         unsigned long nds32_r21;
  68         unsigned long nds32_r22;
  69         unsigned long nds32_r23;
  70         unsigned long nds32_r24;
  71         unsigned long nds32_r25;
  72         unsigned long nds32_fp; /* $r28 */
  73         unsigned long nds32_gp; /* $r29 */
  74         unsigned long nds32_lp; /* $r30 */
  75         unsigned long nds32_sp; /* $r31 */
  76         unsigned long nds32_ipc;
  77         unsigned long fault_address;
  78         unsigned long used_math_flag;
  79         /* FPU Registers */
  80         struct fpu_struct fpu;
  81         struct zol_struct zol;
  82 };
  83 
  84 #endif

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