home *** CD-ROM | disk | FTP | other *** search
- #ifndef _XBRA_H
- #define _XBRA_H
-
- typedef struct __xbra *xptr;
-
- typedef struct __xbra
- {
- int xbra_magic;
- int prog_magic;
- xptr next;
- short jump;
- void (*this)();
- } xbra_struct;
-
- #define _XBRA_MAGIC 0x58425241L /* "XBRA" */
- #define _JMP_OPCODE 0x4EF9
- #define _JSR_OPCODE 0x4EB9
-
- #define _XBRA_VEC(x) ((void (*)()) &(x.jump))
-
- #define _XBRA_INIT(fn) { \
- _XBRA_MAGIC, \
- _GNUC_MAGIC, \
- (xptr) 0, \
- _JMP_OPCODE, \
- (void (*)()) fn \
- }
-
- #define _TRAP_VEC(n,x) ((void (*)()) (((long) n << 24) | (long) &(x.jump)))
-
- #define _TRAP_INIT(fn) { \
- _XBRA_MAGIC, \
- _GNUC_MAGIC, \
- (xptr) 0, \
- _JSR_OPCODE, \
- (void (*)()) fn \
- }
- #endif /* _XBRA_H */
-