home *** CD-ROM | disk | FTP | other *** search
/ RISCWORLD 7 / RISCWORLD_VOL7.iso / Software / Issue4 / SDL / gcc346 / !gcc / include / unixlib / bits / h / fenv < prev    next >
Encoding:
Text File  |  2006-09-17  |  1.9 KB  |  59 lines

  1. /* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.  
  4.    The GNU C Library is free software; you can redistribute it and/or
  5.    modify it under the terms of the GNU Lesser General Public
  6.    License as published by the Free Software Foundation; either
  7.    version 2.1 of the License, or (at your option) any later version.
  8.  
  9.    The GNU C Library is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.    Lesser General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU Lesser General Public
  15.    License along with the GNU C Library; if not, write to the Free
  16.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.    02111-1307 USA.  */
  18.  
  19. #ifndef _FENV_H
  20. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  21. #endif
  22.  
  23. /* Define bits representing exceptions in the FPU status word.  */
  24. enum
  25.   {
  26.     FE_INVALID = 1,
  27. #define FE_INVALID FE_INVALID
  28.     FE_DIVBYZERO = 2,
  29. #define FE_DIVBYZERO FE_DIVBYZERO
  30.     FE_OVERFLOW = 4,
  31. #define FE_OVERFLOW FE_OVERFLOW
  32.     FE_UNDERFLOW = 8,
  33. #define FE_UNDERFLOW FE_UNDERFLOW
  34.   };
  35.  
  36. /* Amount to shift by to convert an exception to a mask bit.  */
  37. #define FE_EXCEPT_SHIFT    16
  38.  
  39. /* All supported exceptions.  */
  40. #define FE_ALL_EXCEPT    \
  41.     (FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW)
  42.  
  43. /* The ARM FPU basically only supports round-to-nearest.  Other rounding
  44.    modes exist, but you have to encode them in the actual instruction.  */
  45. #define FE_TONEAREST    0
  46.  
  47. /* Type representing exception flags. */
  48. typedef unsigned long int fexcept_t;
  49.  
  50. /* Type representing floating-point environment.  */
  51. typedef struct
  52.   {
  53.     unsigned long int __cw;
  54.   }
  55. fenv_t;
  56.  
  57. /* If the default argument is used we use this value.  */
  58. #define FE_DFL_ENV    ((fenv_t *) -1l)
  59.