linux/arch/arm64/include/uapi/asm/sigcontext.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2012 ARM Ltd.
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2 as
   6 * published by the Free Software Foundation.
   7 *
   8 * This program is distributed in the hope that it will be useful,
   9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11 * GNU General Public License for more details.
  12 *
  13 * You should have received a copy of the GNU General Public License
  14 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  15 */
  16#ifndef _UAPI__ASM_SIGCONTEXT_H
  17#define _UAPI__ASM_SIGCONTEXT_H
  18
  19#include <linux/types.h>
  20
  21/*
  22 * Signal context structure - contains all info to do with the state
  23 * before the signal handler was invoked.
  24 */
  25struct sigcontext {
  26        __u64 fault_address;
  27        /* AArch64 registers */
  28        __u64 regs[31];
  29        __u64 sp;
  30        __u64 pc;
  31        __u64 pstate;
  32        /* 4K reserved for FP/SIMD state and future expansion */
  33        __u8 __reserved[4096] __attribute__((__aligned__(16)));
  34};
  35
  36/*
  37 * Header to be used at the beginning of structures extending the user
  38 * context. Such structures must be placed after the rt_sigframe on the stack
  39 * and be 16-byte aligned. The last structure must be a dummy one with the
  40 * magic and size set to 0.
  41 */
  42struct _aarch64_ctx {
  43        __u32 magic;
  44        __u32 size;
  45};
  46
  47#define FPSIMD_MAGIC    0x46508001
  48
  49struct fpsimd_context {
  50        struct _aarch64_ctx head;
  51        __u32 fpsr;
  52        __u32 fpcr;
  53        __uint128_t vregs[32];
  54};
  55
  56/* ESR_EL1 context */
  57#define ESR_MAGIC       0x45535201
  58
  59struct esr_context {
  60        struct _aarch64_ctx head;
  61        __u64 esr;
  62};
  63
  64#endif /* _UAPI__ASM_SIGCONTEXT_H */
  65