Mercurial > projects > ldc
view druntime/import/stdc/fenv.d @ 760:6f33b427bfd1
Seems like hg ignores .di files, so I missed a bunch of stuff. complete druntime should be there now :)
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Wed, 12 Nov 2008 00:19:18 +0100 |
parents | |
children |
line wrap: on
line source
/** * D header file for C99. * * Copyright: Public Domain * License: Public Domain * Authors: Sean Kelly, Walter Bright * Standards: ISO/IEC 9899:1999 (E) */ module stdc.fenv; extern (C): version( Windows ) { struct fenv_t { ushort status; ushort control; ushort round; ushort[2] reserved; } alias int fexcept_t; } else version( linux ) { struct fenv_t { ushort __control_word; ushort __unused1; ushort __status_word; ushort __unused2; ushort __tags; ushort __unused3; uint __eip; ushort __cs_selector; ushort __opcode; uint __data_offset; ushort __data_selector; ushort __unused5; } alias int fexcept_t; } else version ( darwin ) { version ( BigEndian ) { alias uint fenv_t; alias uint fexcept_t; } version ( LittleEndian ) { struct fenv_t { ushort __control; ushort __status; uint __mxcsr; byte[8] __reserved; } alias ushort fexcept_t; } } else version ( freebsd ) { struct fenv_t { ushort __control; ushort __mxcsr_hi; ushort __status; ushort __mxcsr_lo; uint __tag; byte[16] __other; } alias ushort fexcept_t; } else { static assert( false ); } enum { FE_INVALID = 1, FE_DENORMAL = 2, // non-standard FE_DIVBYZERO = 4, FE_OVERFLOW = 8, FE_UNDERFLOW = 0x10, FE_INEXACT = 0x20, FE_ALL_EXCEPT = 0x3F, FE_TONEAREST = 0, FE_UPWARD = 0x800, FE_DOWNWARD = 0x400, FE_TOWARDZERO = 0xC00, } version( Windows ) { private extern fenv_t _FE_DFL_ENV; fenv_t* FE_DFL_ENV = &_FE_DFL_ENV; } else version( linux ) { fenv_t* FE_DFL_ENV = cast(fenv_t*)(-1); } else version( darwin ) { private extern fenv_t _FE_DFL_ENV; fenv_t* FE_DFL_ENV = &_FE_DFL_ENV; } else version( freebsd ) { private extern fenv_t __fe_dfl_env; fenv_t* FE_DFL_ENV = &__fe_dfl_env; } else { static assert( false ); } void feraiseexcept(int excepts); void feclearexcept(int excepts); int fetestexcept(int excepts); int feholdexcept(fenv_t* envp); void fegetexceptflag(fexcept_t* flagp, int excepts); void fesetexceptflag(in fexcept_t* flagp, int excepts); int fegetround(); int fesetround(int round); void fegetenv(fenv_t* envp); void fesetenv(in fenv_t* envp); void feupdateenv(in fenv_t* envp);