1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2/* 3 * Author: Hanlu Li <lihanlu@loongson.cn> 4 * Huacai Chen <chenhuacai@loongson.cn> 5 * 6 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited 7 */ 8#ifndef _UAPI_ASM_SIGCONTEXT_H 9#define _UAPI_ASM_SIGCONTEXT_H 10 11#include <linux/types.h> 12#include <linux/posix_types.h> 13 14/* FP context was used */ 15#define SC_USED_FP (1 << 0) 16/* Address error was due to memory load */ 17#define SC_ADDRERR_RD (1 << 30) 18/* Address error was due to memory store */ 19#define SC_ADDRERR_WR (1 << 31) 20 21struct sigcontext { 22 __u64 sc_pc; 23 __u64 sc_regs[32]; 24 __u32 sc_flags; 25 __u64 sc_extcontext[0] __attribute__((__aligned__(16))); 26}; 27 28#define CONTEXT_INFO_ALIGN 16 29struct sctx_info { 30 __u32 magic; 31 __u32 size; 32 __u64 padding; /* padding to 16 bytes */ 33}; 34 35/* FPU context */ 36#define FPU_CTX_MAGIC 0x46505501 37#define FPU_CTX_ALIGN 8 38struct fpu_context { 39 __u64 regs[32]; 40 __u64 fcc; 41 __u32 fcsr; 42}; 43 44/* LSX context */ 45#define LSX_CTX_MAGIC 0x53580001 46#define LSX_CTX_ALIGN 16 47struct lsx_context { 48 __u64 regs[2*32]; 49 __u64 fcc; 50 __u32 fcsr; 51}; 52 53/* LASX context */ 54#define LASX_CTX_MAGIC 0x41535801 55#define LASX_CTX_ALIGN 32 56struct lasx_context { 57 __u64 regs[4*32]; 58 __u64 fcc; 59 __u32 fcsr; 60}; 61 62/* LBT context */ 63#define LBT_CTX_MAGIC 0x42540001 64#define LBT_CTX_ALIGN 8 65struct lbt_context { 66 __u64 regs[4]; 67 __u32 eflags; 68 __u32 ftop; 69}; 70 71 72#endif /* _UAPI_ASM_SIGCONTEXT_H */ 73