|
@@ -24,10 +24,16 @@
|
|
* but is simplified since we know the fault is from userspace.
|
|
* but is simplified since we know the fault is from userspace.
|
|
*/
|
|
*/
|
|
struct sigcontext {
|
|
struct sigcontext {
|
|
- __uint_reg_t gregs[53]; /* General-purpose registers. */
|
|
|
|
- __uint_reg_t tp; /* Aliases gregs[TREG_TP]. */
|
|
|
|
- __uint_reg_t sp; /* Aliases gregs[TREG_SP]. */
|
|
|
|
- __uint_reg_t lr; /* Aliases gregs[TREG_LR]. */
|
|
|
|
|
|
+ __extension__ union {
|
|
|
|
+ /* General-purpose registers. */
|
|
|
|
+ __uint_reg_t gregs[56];
|
|
|
|
+ __extension__ struct {
|
|
|
|
+ __uint_reg_t __gregs[53];
|
|
|
|
+ __uint_reg_t tp; /* Aliases gregs[TREG_TP]. */
|
|
|
|
+ __uint_reg_t sp; /* Aliases gregs[TREG_SP]. */
|
|
|
|
+ __uint_reg_t lr; /* Aliases gregs[TREG_LR]. */
|
|
|
|
+ };
|
|
|
|
+ };
|
|
__uint_reg_t pc; /* Program counter. */
|
|
__uint_reg_t pc; /* Program counter. */
|
|
__uint_reg_t ics; /* In Interrupt Critical Section? */
|
|
__uint_reg_t ics; /* In Interrupt Critical Section? */
|
|
__uint_reg_t faultnum; /* Fault number. */
|
|
__uint_reg_t faultnum; /* Fault number. */
|