summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/loongarch64/bits/signal.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/arch/loongarch64/bits/signal.h b/arch/loongarch64/bits/signal.h
index 5a9ed8c9..70ce9402 100644
--- a/arch/loongarch64/bits/signal.h
+++ b/arch/loongarch64/bits/signal.h
@@ -18,6 +18,10 @@
#endif
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+#define SC_USED_FP (1U << 0)
+#define SC_ADDRERR_RD (1U << 30)
+#define SC_ADDRERR_WR (1U << 31)
+
typedef unsigned long greg_t, gregset_t[32];
struct sigcontext {
@@ -26,6 +30,45 @@ struct sigcontext {
unsigned sc_flags;
unsigned long sc_extcontext[] __attribute__((__aligned__(16)));
};
+
+#define CONTEXT_INFO_ALIGN 16
+struct sctx_info {
+ unsigned magic;
+ unsigned size;
+ unsigned long padding;
+};
+
+#define FPU_CTX_MAGIC 0x46505501
+#define FPU_CTX_ALIGN 8
+struct fpu_context {
+ unsigned long regs[32];
+ unsigned long fcc;
+ unsigned fcsr;
+};
+
+#define LSX_CTX_MAGIC 0x53580001
+#define LSX_CTX_ALIGN 16
+struct lsx_context {
+ unsigned long regs[2*32];
+ unsigned long fcc;
+ unsigned fcsr;
+};
+
+#define LASX_CTX_MAGIC 0x41535801
+#define LASX_CTX_ALIGN 32
+struct lasx_context {
+ unsigned long regs[4*32];
+ unsigned long fcc;
+ unsigned fcsr;
+};
+
+#define LBT_CTX_MAGIC 0x42540001
+#define LBT_CTX_ALIGN 8
+struct lbt_context {
+ unsigned long regs[4];
+ unsigned eflags;
+ unsigned ftop;
+};
#endif
typedef struct {