summaryrefslogtreecommitdiff
path: root/packages/libc/src/bfenvh.inc
diff options
context:
space:
mode:
Diffstat (limited to 'packages/libc/src/bfenvh.inc')
-rw-r--r--packages/libc/src/bfenvh.inc55
1 files changed, 55 insertions, 0 deletions
diff --git a/packages/libc/src/bfenvh.inc b/packages/libc/src/bfenvh.inc
new file mode 100644
index 0000000000..b6e37d620e
--- /dev/null
+++ b/packages/libc/src/bfenvh.inc
@@ -0,0 +1,55 @@
+
+Const
+ FE_INVALID = $01;
+ __FE_DENORM = $02;
+ FE_DIVBYZERO = $04;
+ FE_OVERFLOW = $08;
+ FE_UNDERFLOW = $10;
+ FE_INEXACT = $20;
+
+ FE_ALL_EXCEPT = (((FE_INEXACT or FE_DIVBYZERO) or FE_UNDERFLOW) or FE_OVERFLOW) or FE_INVALID;
+
+ FE_TONEAREST = 0;
+ FE_DOWNWARD = $400;
+ FE_UPWARD = $800;
+ FE_TOWARDZERO = $c00;
+
+type
+ Pfexcept_t = ^fexcept_t;
+ fexcept_t = word;
+
+ Pfenv_t = ^fenv_t;
+ fenv_t = record
+ __control_word : word;
+ __unused1 : word;
+ __status_word : word;
+ __unused2 : word;
+ __tags : word;
+ __unused3 : word;
+ __eip : dword;
+ __cs_selector : word;
+ flag0 : word;
+ __data_offset : dword;
+ __data_selector : word;
+ __unused5 : word;
+ end;
+const
+ bm_fenv_t___opcode = $7FF;
+ bp_fenv_t___opcode = 0;
+ bm_fenv_t___unused4 = $F800;
+ bp_fenv_t___unused4 = 11;
+
+const
+ FE_DFL_ENV = Pfenv_t(-1);
+ FE_NOMASK_ENV = Pfenv_t(-2);
+
+{ ---------------------------------------------------------------------
+ Borland compatibility types
+ ---------------------------------------------------------------------}
+
+Type
+ TExceptionFlags = fexcept_t;
+ PExceptionFlags = ^TExceptionFlags;
+
+ TFloatingPointEnv = fenv_t;
+ PFloatingPointEnv = ^TFloatingPointEnv;