1*118100d9Sriastradh /* $NetBSD: fenv.h,v 1.5 2024/05/12 20:04:12 riastradh Exp $ */ 26cf6fe02Smatt 36cf6fe02Smatt /* 46cf6fe02Smatt * Based on ieeefp.h written by J.T. Conklin, Apr 28, 1995 56cf6fe02Smatt * Public domain. 66cf6fe02Smatt */ 76cf6fe02Smatt 86cf6fe02Smatt #ifndef _RISCV_FENV_H_ 96cf6fe02Smatt #define _RISCV_FENV_H_ 106cf6fe02Smatt 116cf6fe02Smatt typedef int fenv_t; /* FPSCR */ 126cf6fe02Smatt typedef int fexcept_t; 136cf6fe02Smatt 14*118100d9Sriastradh #define FE_INEXACT ((int)__BIT(0)) /* Result inexact */ 15*118100d9Sriastradh #define FE_UNDERFLOW ((int)__BIT(1)) /* Result underflowed */ 16*118100d9Sriastradh #define FE_OVERFLOW ((int)__BIT(2)) /* Result overflowed */ 17*118100d9Sriastradh #define FE_DIVBYZERO ((int)__BIT(3)) /* divide-by-zero */ 18*118100d9Sriastradh #define FE_INVALID ((int)__BIT(4)) /* Result invalid */ 196cf6fe02Smatt 2040dd220aSskrll #define FE_ALL_EXCEPT \ 2140dd220aSskrll (FE_INEXACT | FE_UNDERFLOW | FE_OVERFLOW | FE_DIVBYZERO | FE_INVALID) 226cf6fe02Smatt 236cf6fe02Smatt #define FE_TONEAREST 0 /* round to nearest representable number */ 246cf6fe02Smatt #define FE_TOWARDZERO 1 /* round to zero (truncate) */ 256cf6fe02Smatt #define FE_DOWNWARD 2 /* round toward negative infinity */ 266cf6fe02Smatt #define FE_UPWARD 3 /* round toward positive infinity */ 276cf6fe02Smatt 286cf6fe02Smatt __BEGIN_DECLS 296cf6fe02Smatt 306cf6fe02Smatt /* Default floating-point environment */ 317e30e943Schs extern const fenv_t __fe_dfl_env; 326cf6fe02Smatt #define FE_DFL_ENV (&__fe_dfl_env) 336cf6fe02Smatt 346cf6fe02Smatt __END_DECLS 356cf6fe02Smatt 366cf6fe02Smatt #endif /* _RISCV_FENV_H_ */ 37