From 67c0a2329f6194d86243ef52961aaea112e9c245 Mon Sep 17 00:00:00 2001 From: Sjoerd van der Berg Date: Wed, 10 Dec 2003 17:24:13 +0000 Subject: [PATCH] New entries for exception generating instructions Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1483 --- include/cpu.h | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/include/cpu.h b/include/cpu.h index 2de0a508..ef488cc1 100644 --- a/include/cpu.h +++ b/include/cpu.h @@ -66,22 +66,29 @@ void CPU_CALL(bool use32,Bitu selector,Bitu offset); void CPU_RET(bool use32,Bitu bytes); #define CPU_INT_SOFTWARE 0x1 -#define CPU_INT_HAS_ERROR 0x2 +#define CPU_INT_EXCEPTION 0x2 +#define CPU_INT_HAS_ERROR 0x4 -void CPU_Interrupt(Bitu num,Bitu error_code,Bitu type); + +bool CPU_Interrupt(Bitu num,Bitu type); INLINE void CPU_HW_Interrupt(Bitu num) { - CPU_Interrupt(num,0,0); + CPU_Interrupt(num,0); } -INLINE void CPU_SW_Interrupt(Bitu num,Bitu oplen) { - CPU_Interrupt(num,oplen,CPU_INT_SOFTWARE); +INLINE bool CPU_SW_Interrupt(Bitu num) { + return CPU_Interrupt(num,CPU_INT_SOFTWARE); } -void CPU_Exception(Bitu num,Bitu error_code=0); + +void CPU_Exception(Bitu which,Bitu error=0); +void CPU_StartException(void); +void CPU_SetupException(Bitu which,Bitu error=0); + + void CPU_IRET(bool use32); -void CPU_SetSegGeneral(SegNames seg,Bitu value); +bool CPU_SetSegGeneral(SegNames seg,Bitu value); void CPU_CPUID(void); -void CPU_HLT(Bitu oplen); +bool CPU_HLT(void); Bitu CPU_Pop16(void); Bitu CPU_Pop32(void); @@ -375,6 +382,9 @@ struct CPUBlock { Bitu cs,eip; CPU_Decoder * old_decoder; } hlt; + struct { + Bitu which,error; + } exception; }; extern CPUBlock cpu;