home *** CD-ROM | disk | FTP | other *** search
/ PC Extra Super CD 1998 January / PCPLUS131.iso / DJGPP / V2MISC / WMEMU2S.ZIP / LINUX / DRIVERS / FPU-EMU / EXCEPTIO.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-01  |  1.8 KB  |  54 lines

  1. /*---------------------------------------------------------------------------+
  2.  |  exception.h                                                              |
  3.  |                                                                           |
  4.  | Copyright (C) 1992    W. Metzenthen, 22 Parker St, Ormond, Vic 3163,      |
  5.  |                       Australia.  E-mail   billm@vaxc.cc.monash.edu.au    |
  6.  |                                                                           |
  7.  +---------------------------------------------------------------------------*/
  8.  
  9. #ifndef _EXCEPTION_H_
  10. #define _EXCEPTION_H_
  11.  
  12.  
  13. #ifdef __ASSEMBLER__
  14. #define    Const_(x)    $##x
  15. #else
  16. #define    Const_(x)    x
  17. #endif
  18.  
  19. #ifndef SW_C1
  20. #include "fpu_emu.h"
  21. #endif SW_C1
  22.  
  23. #define FPU_BUSY        Const_(0x8000)   /* FPU busy bit (8087 compatibility) */
  24. #define EX_ErrorSummary Const_(0x0080)   /* Error summary status */
  25. /* Special exceptions: */
  26. #define    EX_INTERNAL    Const_(0x8000)    /* Internal error in wm-FPU-emu */
  27. #define EX_StackOver    Const_(0x0041|SW_C1)    /* stack overflow */
  28. #define EX_StackUnder    Const_(0x0041)    /* stack underflow */
  29. /* Exception flags: */
  30. #define EX_Precision    Const_(0x0020)    /* loss of precision */
  31. #define EX_Underflow    Const_(0x0010)    /* underflow */
  32. #define EX_Overflow    Const_(0x0008)    /* overflow */
  33. #define EX_ZeroDiv    Const_(0x0004)    /* divide by zero */
  34. #define EX_Denormal    Const_(0x0002)    /* denormalized operand */
  35. #define EX_Invalid    Const_(0x0001)    /* invalid operation */
  36.  
  37.  
  38. #define PRECISION_LOST_UP    Const_((EX_Precision | SW_C1))
  39. #define PRECISION_LOST_DOWN  Const_(EX_Precision)
  40.  
  41.  
  42. #ifndef __ASSEMBLER__
  43.  
  44. #ifdef DEBUG
  45. #define    EXCEPTION(x)    { printk("exception in %s at line %d\n", \
  46.     __FILE__, __LINE__); exception(x); }
  47. #else
  48. #define    EXCEPTION(x)    exception(x)
  49. #endif
  50.  
  51. #endif __ASSEMBLER__
  52.  
  53. #endif _EXCEPTION_H_
  54.