1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 /* 3 * Copyright 2010 Tilera Corporation. All Rights Reserved. 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License 7 * as published by the Free Software Foundation, version 2. 8 * 9 * This program is distributed in the hope that it will be useful, but 10 * WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or 12 * NON INFRINGEMENT. See the GNU General Public License for 13 * more details. 14 */ 15 16 #ifndef _ASM_TILE_SIGCONTEXT_H 17 #define _ASM_TILE_SIGCONTEXT_H 18 19 /* Don't pollute the namespace since <signal.h> includes this file. */ 20 #define __need_int_reg_t 21 #include <arch/abi.h> 22 23 /* 24 * struct sigcontext has the same shape as struct pt_regs, 25 * but is simplified since we know the fault is from userspace. 26 */ 27 struct sigcontext { 28 __extension__ union { 29 /* General-purpose registers. */ 30 __uint_reg_t gregs[56]; 31 __extension__ struct { 32 __uint_reg_t __gregs[53]; 33 __uint_reg_t tp; /* Aliases gregs[TREG_TP]. */ 34 __uint_reg_t sp; /* Aliases gregs[TREG_SP]. */ 35 __uint_reg_t lr; /* Aliases gregs[TREG_LR]. */ 36 }; 37 }; 38 __uint_reg_t pc; /* Program counter. */ 39 __uint_reg_t ics; /* In Interrupt Critical Section? */ 40 __uint_reg_t faultnum; /* Fault number. */ 41 __uint_reg_t pad[5]; 42 }; 43 44 #endif /* _ASM_TILE_SIGCONTEXT_H */ 45