Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/include/fenv.h')
-rwxr-xr-xwinsup/cygwin/include/fenv.h177
1 files changed, 0 insertions, 177 deletions
diff --git a/winsup/cygwin/include/fenv.h b/winsup/cygwin/include/fenv.h
deleted file mode 100755
index b49033f29..000000000
--- a/winsup/cygwin/include/fenv.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/* fenv.h
-
- Copyright 2010, 2011 Red Hat, Inc.
-
-This file is part of Cygwin.
-
-This software is a copyrighted work licensed under the terms of the
-Cygwin license. Please consult the file "CYGWIN_LICENSE" for
-details. */
-
-#ifndef _FENV_H_
-#define _FENV_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Primary sources:
-
- The Open Group Base Specifications Issue 6:
- http://www.opengroup.org/onlinepubs/000095399/basedefs/fenv.h.html
-
- C99 Language spec (draft n1256):
- <url unknown>
-
- Intel® 64 and IA-32 Architectures Software Developer’s Manuals:
- http://www.intel.com/products/processor/manuals/
-
- GNU C library manual pages:
- http://www.gnu.org/software/libc/manual/html_node/Control-Functions.html
- http://www.gnu.org/software/libc/manual/html_node/Rounding.html
- http://www.gnu.org/software/libc/manual/html_node/FP-Exceptions.html
- http://www.gnu.org/software/libc/manual/html_node/Status-bit-operations.html
-
- Linux online man page(s):
- http://linux.die.net/man/3/fegetexcept
-
- The documentation quotes these sources for reference. All definitions and
- code have been developed solely based on the information from these specs.
-
-*/
-
-/* Represents the entire floating-point environment. The floating-point
- environment refers collectively to any floating-point status flags and
- control modes supported by the implementation.
- In this implementation, the struct contains the state information from
- the fstenv/fnstenv instructions and a copy of the SSE MXCSR, since GCC
- uses SSE for a lot of floating-point operations. (Cygwin assumes i686
- or above these days, as does the compiler.) */
-
-typedef struct _fenv_t
-{
- struct _fpu_env_info {
- unsigned int _fpu_cw; /* low 16 bits only. */
- unsigned int _fpu_sw; /* low 16 bits only. */
- unsigned int _fpu_tagw; /* low 16 bits only. */
- unsigned int _fpu_ipoff;
- unsigned int _fpu_ipsel;
- unsigned int _fpu_opoff;
- unsigned int _fpu_opsel; /* low 16 bits only. */
- } _fpu;
- unsigned int _sse_mxcsr;
-} fenv_t;
-
-/* Represents the floating-point status flags collectively, including
- any status the implementation associates with the flags. A floating-point
- status flag is a system variable whose value is set (but never cleared)
- when a floating-point exception is raised, which occurs as a side effect
- of exceptional floating-point arithmetic to provide auxiliary information.
- A floating-point control mode is a system variable whose value may be
- set by the user to affect the subsequent behavior of floating-point
- arithmetic. */
-
-typedef struct _fexcept_t
-{
- unsigned short _fpu_exceptions;
- unsigned short _sse_exceptions;
-} fexcept_t;
-
-/* The <fenv.h> header shall define the following constants if and only
- if the implementation supports the floating-point exception by means
- of the floating-point functions feclearexcept(), fegetexceptflag(),
- feraiseexcept(), fesetexceptflag(), and fetestexcept(). Each expands to
- an integer constant expression with values such that bitwise-inclusive
- ORs of all combinations of the constants result in distinct values. */
-
-#define FE_DIVBYZERO (1 << 2)
-#define FE_INEXACT (1 << 5)
-#define FE_INVALID (1 << 0)
-#define FE_OVERFLOW (1 << 3)
-#define FE_UNDERFLOW (1 << 4)
-
-/* This is not defined by Posix, but since x87 supports it we provide
- a definition according to the same naming scheme used above. */
-#define FE_DENORMAL (1 << 1)
-
-/* The <fenv.h> header shall define the following constant, which is
- simply the bitwise-inclusive OR of all floating-point exception
- constants defined above: */
-
-#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID \
- | FE_OVERFLOW | FE_UNDERFLOW | FE_DENORMAL)
-
-/* The <fenv.h> header shall define the following constants if and only
- if the implementation supports getting and setting the represented
- rounding direction by means of the fegetround() and fesetround()
- functions. Each expands to an integer constant expression whose values
- are distinct non-negative vales. */
-
-#define FE_DOWNWARD (1)
-#define FE_TONEAREST (0)
-#define FE_TOWARDZERO (3)
-#define FE_UPWARD (2)
-
-/* Precision bit values. Not defined by Posix, but follow logically. */
-#define FE_SINGLEPREC (0)
-#define FE_RESERVEDPREC (1)
-#define FE_DOUBLEPREC (2)
-#define FE_EXTENDEDPREC (3)
-
-/* The <fenv.h> header shall define the following constant, which
- represents the default floating-point environment (that is, the one
- installed at program startup) and has type pointer to const-qualified
- fenv_t. It can be used as an argument to the functions within the
- <fenv.h> header that manage the floating-point environment. */
-
-extern const fenv_t *_fe_dfl_env;
-#define FE_DFL_ENV (_fe_dfl_env)
-
-/* Additional implementation-defined environments, with macro
- definitions beginning with FE_ and an uppercase letter,and having
- type "pointer to const-qualified fenv_t",may also be specified by
- the implementation. */
-
-#ifdef _GNU_SOURCE
-/* If possible, the GNU C Library defines a macro FE_NOMASK_ENV which
- represents an environment where every exception raised causes a trap
- to occur. You can test for this macro using #ifdef. It is only defined
- if _GNU_SOURCE is defined. */
-extern const fenv_t *_fe_nomask_env;
-#define FE_NOMASK_ENV (_fe_nomask_env)
-#endif /* _GNU_SOURCE */
-
-
-/* The following shall be declared as functions and may also be
- defined as macros. Function prototypes shall be provided. */
-extern int feclearexcept (int excepts);
-extern int fegetexceptflag (fexcept_t *flagp, int excepts);
-extern int feraiseexcept (int excepts);
-extern int fesetexceptflag (const fexcept_t *flagp, int excepts);
-extern int fetestexcept (int excepts);
-extern int fegetround (void);
-extern int fesetround (int round);
-extern int fegetenv (fenv_t *envp);
-extern int feholdexcept (fenv_t *envp);
-extern int fesetenv (const fenv_t *envp);
-extern int feupdateenv (const fenv_t *envp);
-
-/* These are not defined in Posix, but make sense by obvious extension. */
-extern int fegetprec (void);
-extern int fesetprec (int prec);
-
-/* This is Cygwin-custom, not from the standard, for use in the Cygwin CRT. */
-extern void _feinitialise (void);
-
-/* These are GNU extensions defined in glibc. */
-extern int feenableexcept (int excepts);
-extern int fedisableexcept (int excepts);
-extern int fegetexcept (void);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _FENV_H_ */