Messages in this thread | | | From | "Warlich, Christof" <> | Subject | RE: X86 fpu registers in a signal handler's ucontext | Date | Tue, 30 Apr 2013 13:45:09 +0000 |
| |
Mikael Pettersson <mikpe@it.uu.se> writes: > Write to the fpstate ->mxcsr and ->swd fields in the sigaction handler's uc_mcontext.
To me, "sigaction handler's uc_mcontext" sounds like userspace, which really confuses me: Even in most recent glibc-2.17, uc_mcontext is of type mcontext_t, which us defined as:
typedef struct { gregset_t gregs; fpregset_t fpregs; } mcontext_t;
typedef struct fpregset { union { struct fpchip_state { int state[27]; int status; } fpchip_state; struct fp_emul_space { char fp_emul[246]; char fp_epad[2]; } fp_emul_space; int f_fpregs[62]; } fp_reg_set; long int f_wregs[33]; } fpregset_t;
So there is no fpstate whatsoever.
However, these elements seem to be available in the uc_mcontext definition of the kernel, but I can't have a sigaction handler there, can I? Then, how does the kernel's uc_mcontext definition help me in my (userspace) signal handler?
| |