\r
typedef struct\r
{\r
- UINT32 r[16];\r
- UINT32 ppc;\r
- UINT32 pc;\r
- UINT32 pr;\r
- UINT32 sr;\r
- UINT32 gbr, vbr;\r
- UINT32 mach, macl;\r
-\r
- UINT32 ea;\r
- UINT32 delay;\r
- UINT32 test_irq;\r
-\r
- int pending_irq;\r
+ unsigned int r[16];\r
+ unsigned int ppc;\r
+ unsigned int pc;\r
+ unsigned int pr;\r
+ unsigned int sr;\r
+ unsigned int gbr, vbr;\r
+ unsigned int mach, macl;\r
+\r
+ unsigned int ea;\r
+ unsigned int delay;\r
+ unsigned int test_irq;\r
+\r
+ int pending_irl;\r
+ int pending_int_irq; // internal irq\r
+ int pending_int_vector;\r
void (*irq_callback)(int id, int level);\r
int is_slave;\r
\r
- UINT32 cycles_aim; // subtract sh2_icount to get global counter\r
+ unsigned int cycles_aim; // subtract sh2_icount to get global counter\r
} SH2;\r
\r
SH2 *sh2; // active sh2\r
void sh2_reset(SH2 *sh2);\r
int sh2_execute(SH2 *sh2_, int cycles);\r
void sh2_irl_irq(SH2 *sh2, int level);\r
+void sh2_internal_irq(SH2 *sh2, int level, int vector);\r
\r
#endif /* __SH2_H__ */\r