Annotation of uae/src/include/traps.h, revision 1.1.1.2

1.1       root        1:  /*
                      2:   * E-UAE - The portable Amiga Emulator
                      3:   *
                      4:   * Support for traps
                      5:   *
                      6:   * Copyright Richard Drummond 2005
                      7:   *
                      8:   * Based on code:
                      9:   * Copyright 1995, 1996 Bernd Schmidt
                     10:   * Copyright 1996 Ed Hanway
                     11:   */
1.1.1.2 ! root       12: #define TRACE_TRAPS
1.1       root       13: #ifndef TRAPS_H
                     14: #define TRAPS_H
                     15: 
1.1.1.2 ! root       16: /*
        !            17:  * Data passed to a trap handler.  Opaque to callees, but can be passed
        !            18:  * to CallLib.
        !            19:  */
        !            20: typedef struct TrapContext TrapContext;
        !            21: 
1.1       root       22: #define TRAPFLAG_NO_REGSAVE  1
                     23: #define TRAPFLAG_NO_RETVAL   2
                     24: #define TRAPFLAG_EXTRA_STACK 4
                     25: #define TRAPFLAG_DORET       8
                     26: 
                     27: /*
                     28:  * A function which handles a 68k trap
                     29:  */
1.1.1.2 ! root       30: typedef uae_u32 (*TrapHandler) (TrapContext *);
1.1       root       31: 
                     32: 
1.1.1.2 ! root       33: /*
        !            34:  * Interface with 68k interpreter
        !            35:  */
        !            36: extern void m68k_handle_trap (unsigned int trap_num);
1.1       root       37: 
1.1.1.2 ! root       38: unsigned int define_trap (TrapHandler handler_func, int flags, const char *name);
1.1       root       39: 
1.1.1.2 ! root       40: /*
        !            41:  * Call a 68k Library function from an extended trap
        !            42:  */
        !            43: extern uae_u32 CallLib (TrapContext *context, uaecptr library_base, uae_s16 func_offset);
        !            44: 
        !            45: /*
        !            46:  * Initialization
        !            47:  */
        !            48: void init_traps (void);
        !            49: void init_extended_traps (void);
        !            50: 
        !            51: #define deftrap(f) define_trap((f), 0, "")
        !            52: #ifdef TRACE_TRAPS
        !            53: # define deftrap2(f, mode, str) define_trap((f), (mode), (str))
        !            54: #else
        !            55: # define deftrap2(f, mode, str) define_trap((f), (mode), "")
1.1       root       56: #endif
1.1.1.2 ! root       57: 
        !            58: #endif
        !            59: 
        !            60: /* Declare here so we don't have to pull in traps.h from everywhere that wants
        !            61:  * inputdevice.h.  */
        !            62: extern uae_u32 mousehack_helper (TrapContext *);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.