home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 196.lha / Exception_v0.6 / excppriv.h < prev    next >
C/C++ Source or Header  |  1988-12-27  |  3KB  |  60 lines

  1. /**************************************************************************/
  2. /*                                                                        */
  3. /*                   EXCEPTION HANDLER                                    */
  4. /*               ==========================================               */
  5. /*                                                                        */
  6. /*                                                                        */
  7. /*  MODULE      : Exception                                               */
  8. /*  NOM         : E_private.h                                             */
  9. /*  FONCTION    :                                                         */
  10. /*                                                                        */
  11. /*  RESPONSABLE : HEWES Gerald                                            */
  12. /*  TEL         : 33 (1) 46 24 20 27                                      */
  13. /*                                                                        */
  14. /**************************************************************************/
  15.  
  16. /**************************************************************************/
  17. /*                                                                        */
  18. /* HEW 880310 Ver 0.1 : First Soft Version                                */
  19. /* HEW 880324 Ver 0.2 : Handle 68000 exceptions                           */
  20. /* HEW 880413 Ver 0.3 : Handle 680X0 Formats                              */
  21. /* HEW 880508 Ver 0.4 : First Released version : routines split           */
  22. /*                      Major name changes for better homogeneity         */
  23. /* HEW 880512 Ver 0.4 : Minor declaration changes and bug fixes           */
  24. /* HEW 880517 Ver 0.5 : include change. No more puts in library           */
  25. /*                                                                        */
  26. /**************************************************************************/
  27.  
  28. #include "local:Boolean.h"
  29. #include <exec/types.h>
  30.  
  31. /* Magic Number */
  32.  
  33. #define EM_MAGIC 640218
  34.  
  35.  
  36. /*************************************************************************/
  37.  
  38.  
  39. enum E_E_ERROR_STATE { E_PROTECTED, E_HANDLER };
  40.  
  41. struct E_S_ERRORLINK {
  42.    int                    E_magic    ; /* Magic Number to test Validity */
  43.    struct E_S_ERRORLINK   *E_pred    ; /* Previous link                 */
  44.    jmp_buf                E_current  ; /* long jump data                */
  45.    ExcpClass              E_number   ; /* Error Class                   */
  46.    enum E_E_ERROR_STATE   E_state    ; /* Flag : protected/handler code */
  47.                      };
  48.  
  49. typedef struct {
  50.    struct E_S_ERRORLINK *E_up         ; /* Previous Handling Routine */
  51.    struct E_S_ERRORLINK E_top         ; /* TopLevel Handling Routine */
  52.    BOOLEAN              *E_authorised ; /* Exit authorisation        */
  53.    APTR                 E_OldTrapCode ; /* Values pulled out of task */
  54.    APTR                 E_OldTrapData ; /* Values pulled out of task */
  55.                          } E_ErrorStatus;
  56.  
  57. extern E_ErrorStatus E_global;
  58.  
  59. /*************************  CIVILISATION ENDS HERE  ***********************/
  60.