|
|
| version 1.26, 2011/12/20 01:17:30 | version 1.28, 2011/12/21 16:25:52 |
|---|---|
| Line 380 interrupt_task_gate(const descriptor_t * | Line 380 interrupt_task_gate(const descriptor_t * |
| if (errorp) { | if (errorp) { |
| XPUSH0(error_code); | XPUSH0(error_code); |
| } | } |
| /* out of range */ | |
| if (CPU_EIP > CPU_STAT_CS_LIMIT) { | |
| VERBOSE(("interrupt: new_ip is out of range. new_ip = %08x, limit = %08x", CPU_EIP, CPU_STAT_CS_LIMIT)); | |
| EXCEPTION(GP_EXCEPTION, 0); | |
| } | |
| } | } |
| static void | static void |
| Line 424 interrupt_intr_or_trap(const descriptor_ | Line 430 interrupt_intr_or_trap(const descriptor_ |
| break; | break; |
| } | } |
| exc_errcode = cs_sel.idx; | exc_errcode = gsdp->u.gate.selector & ~3; |
| if (intrtype == INTR_TYPE_EXTINTR) | if (intrtype == INTR_TYPE_EXTINTR) |
| exc_errcode++; | exc_errcode++; |