diff options
Diffstat (limited to 'packages/libc/src/sigcontexth.inc')
-rw-r--r-- | packages/libc/src/sigcontexth.inc | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/packages/libc/src/sigcontexth.inc b/packages/libc/src/sigcontexth.inc new file mode 100644 index 0000000000..7292903580 --- /dev/null +++ b/packages/libc/src/sigcontexth.inc @@ -0,0 +1,89 @@ + +type + P_fpreg = ^_fpreg; + _fpreg = record + significand : array[0..3] of word; + exponent : word; + end; + + P_fpxreg = ^_fpxreg; + _fpxreg = record + significand : array[0..3] of word; + exponent : word; + padding : array[0..2] of word; + end; + + P_xmmreg = ^_xmmreg; + _xmmreg = record + element : array[0..3] of dword; + end; + + P_fpstate = ^_fpstate; + _fpstate = record + cw : dword; + sw : dword; + tag : dword; + ipoff : dword; + cssel : dword; + dataoff : dword; + datasel : dword; + _st : array[0..7] of _fpreg; + status : word; + magic : word; + _fxsr_env : array[0..5] of dword; + mxcsr : dword; + reserved : dword; + _fxsr_st : array[0..7] of _fpxreg; + _xmm : array[0..7] of _xmmreg; + padding : array[0..55] of dword; + end; + + +const + X86_FXSR_MAGIC = $0000; + +type + Psigcontext = ^sigcontext; + sigcontext = record + gs : word; + __gsh : word; + fs : word; + __fsh : word; + es : word; + __esh : word; + ds : word; + __dsh : word; + edi : dword; + esi : dword; + ebp : dword; + esp : dword; + ebx : dword; + edx : dword; + ecx : dword; + eax : dword; + trapno : dword; + err : dword; + eip : dword; + cs : word; + __csh : word; + eflags : dword; + esp_at_signal : dword; + ss : word; + __ssh : word; + fpstate : P_fpstate; + oldmask : dword; + cr2 : dword; + end; + + +{ --------------------------------------------------------------------- + Borland compatibility types + ---------------------------------------------------------------------} + TFPreg = _fpreg; + PFPreg = ^TFPreg; + + TFPstate = _fpstate; + PFPstate = ^TFPstate; + + TSigContext = sigcontext; + |