about summary refs log tree commit diff
path: root/REORG.TODO/include/fenv.h
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/include/fenv.h')
-rw-r--r--REORG.TODO/include/fenv.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/REORG.TODO/include/fenv.h b/REORG.TODO/include/fenv.h
new file mode 100644
index 0000000000..de4d46f8b7
--- /dev/null
+++ b/REORG.TODO/include/fenv.h
@@ -0,0 +1,47 @@
+#ifndef _FENV_H
+#include <math/fenv.h>
+
+#ifndef _ISOMAC
+# include <stdbool.h>
+/* Now define the internal interfaces.  */
+
+extern int __feclearexcept (int __excepts);
+extern int __fegetexcept (void);
+extern int __fegetexceptflag (fexcept_t *__flagp, int __excepts);
+extern int __feraiseexcept (int __excepts);
+extern int __fesetexceptflag (const fexcept_t *__flagp, int __excepts);
+extern int __fegetenv (fenv_t *__envp);
+extern int __fesetenv (const fenv_t *__envp);
+extern int __feupdateenv (const fenv_t *__envp);
+extern __typeof (fegetround) __fegetround __attribute_pure__;
+extern __typeof (feholdexcept) __feholdexcept;
+extern __typeof (fesetround) __fesetround;
+
+libm_hidden_proto (feraiseexcept)
+libm_hidden_proto (__feraiseexcept)
+libm_hidden_proto (fegetenv)
+libm_hidden_proto (__fegetenv)
+libm_hidden_proto (fegetround)
+libm_hidden_proto (__fegetround)
+libm_hidden_proto (fesetenv)
+libm_hidden_proto (__fesetenv)
+libm_hidden_proto (fesetround)
+libm_hidden_proto (__fesetround)
+libm_hidden_proto (feholdexcept)
+libm_hidden_proto (__feholdexcept)
+libm_hidden_proto (feupdateenv)
+libm_hidden_proto (__feupdateenv)
+libm_hidden_proto (fetestexcept)
+libm_hidden_proto (feclearexcept)
+
+/* Rounding mode context.  This allows functions to set/restore rounding mode
+   only when the desired rounding mode is different from the current rounding
+   mode.  */
+struct rm_ctx
+{
+  fenv_t env;
+  bool updated_status;
+};
+#endif
+
+#endif