|
|
A new extended user context structure in /usr/include/sys/ucontext.h has been added for extended floating point instruction support:
typedef struct uxcontext uxcontext_t;
The extended user context structure is identical to the existing user context structure (see ucontext(5)) except that it has an element for a 512-byte extended floating point save area appended to the end:
__fpxregset_t __fpxregset;
A new floating point context flag in /usr/include/sys/ucontext.h has also been added:
#define UC_FPX 020
The uc_flags
element of the user context structure is
used to determine if a user context is extended.
If UC_FPX is cleared in the uc_flags
element
of a user context structure, then the user context is assumed to
be of type ucontext_t.
If UC_FPX is set and UC_FP is cleared in the
uc_flags
element of a user context structure, then the
user context is assumed to be of type uxcontext_t with
the extended floating point state saved in the __fpxregset
element.
Normally, applications should not set both UC_FPX and
UC_FP in the uc_flags
element of a user context
structure.
If both UC_FPX and UC_FP are set in the
uc_flags
element, then the user context is assumed to
have been pushed on the user stack during signal handling.
This is treated as a special case by the
setcontext(2)
system call.
See the notes on signal handling below for more details.