|
|
| version 1.22, 2011/12/20 09:03:28 | version 1.23, 2011/12/21 18:07:57 |
|---|---|
| Line 110 JMPfar_pm_code_segment(const selector_t | Line 110 JMPfar_pm_code_segment(const selector_t |
| /* check privilege level */ | /* check privilege level */ |
| if (!SEG_IS_CONFORMING_CODE(&cs_sel->desc)) { | if (!SEG_IS_CONFORMING_CODE(&cs_sel->desc)) { |
| VERBOSE(("JMPfar_pm: NON-CONFORMING-CODE-SEGMENT")); | VERBOSE(("JMPfar_pm: NON-CONFORMING-CODE-SEGMENT")); |
| /* イシエャ p.119 4.8.1.1. */ | /* 荳句キサ p.119 4.8.1.1. */ |
| if (cs_sel->rpl > CPU_STAT_CPL) { | if (cs_sel->rpl > CPU_STAT_CPL) { |
| VERBOSE(("JMPfar_pm: RPL(%d) > CPL(%d)", cs_sel->rpl, CPU_STAT_CPL)); | VERBOSE(("JMPfar_pm: RPL(%d) > CPL(%d)", cs_sel->rpl, CPU_STAT_CPL)); |
| EXCEPTION(GP_EXCEPTION, cs_sel->idx); | EXCEPTION(GP_EXCEPTION, cs_sel->idx); |
| Line 121 JMPfar_pm_code_segment(const selector_t | Line 121 JMPfar_pm_code_segment(const selector_t |
| } | } |
| } else { | } else { |
| VERBOSE(("JMPfar_pm: CONFORMING-CODE-SEGMENT")); | VERBOSE(("JMPfar_pm: CONFORMING-CODE-SEGMENT")); |
| /* イシエャ p.120 4.8.1.2. */ | /* 荳句キサ p.120 4.8.1.2. */ |
| if (cs_sel->desc.dpl > CPU_STAT_CPL) { | if (cs_sel->desc.dpl > CPU_STAT_CPL) { |
| VERBOSE(("JMPfar_pm: DPL(%d) > CPL(%d)", cs_sel->desc.dpl, CPU_STAT_CPL)); | VERBOSE(("JMPfar_pm: DPL(%d) > CPL(%d)", cs_sel->desc.dpl, CPU_STAT_CPL)); |
| EXCEPTION(GP_EXCEPTION, cs_sel->idx); | EXCEPTION(GP_EXCEPTION, cs_sel->idx); |
| Line 190 JMPfar_pm_call_gate(const selector_t *ca | Line 190 JMPfar_pm_call_gate(const selector_t *ca |
| /* check privilege level */ | /* check privilege level */ |
| if (!SEG_IS_CONFORMING_CODE(&cs_sel.desc)) { | if (!SEG_IS_CONFORMING_CODE(&cs_sel.desc)) { |
| /* イシエャ p.119 4.8.1.1. */ | /* 荳句キサ p.119 4.8.1.1. */ |
| if (cs_sel.rpl > CPU_STAT_CPL) { | if (cs_sel.rpl > CPU_STAT_CPL) { |
| VERBOSE(("JMPfar_pm: RPL(%d) > CPL(%d)", cs_sel.rpl, CPU_STAT_CPL)); | VERBOSE(("JMPfar_pm: RPL(%d) > CPL(%d)", cs_sel.rpl, CPU_STAT_CPL)); |
| EXCEPTION(GP_EXCEPTION, cs_sel.idx); | EXCEPTION(GP_EXCEPTION, cs_sel.idx); |
| Line 200 JMPfar_pm_call_gate(const selector_t *ca | Line 200 JMPfar_pm_call_gate(const selector_t *ca |
| EXCEPTION(GP_EXCEPTION, cs_sel.idx); | EXCEPTION(GP_EXCEPTION, cs_sel.idx); |
| } | } |
| } else { | } else { |
| /* イシエャ p.120 4.8.1.2. */ | /* 荳句キサ p.120 4.8.1.2. */ |
| if (cs_sel.desc.dpl > CPU_STAT_CPL) { | if (cs_sel.desc.dpl > CPU_STAT_CPL) { |
| VERBOSE(("JMPfar_pm: DPL(%d) > CPL(%d)", cs_sel.desc.dpl, CPU_STAT_CPL)); | VERBOSE(("JMPfar_pm: DPL(%d) > CPL(%d)", cs_sel.desc.dpl, CPU_STAT_CPL)); |
| EXCEPTION(GP_EXCEPTION, cs_sel.idx); | EXCEPTION(GP_EXCEPTION, cs_sel.idx); |
| Line 404 CALLfar_pm_code_segment(const selector_t | Line 404 CALLfar_pm_code_segment(const selector_t |
| /* check privilege level */ | /* check privilege level */ |
| if (!SEG_IS_CONFORMING_CODE(&cs_sel->desc)) { | if (!SEG_IS_CONFORMING_CODE(&cs_sel->desc)) { |
| VERBOSE(("CALLfar_pm: NON-CONFORMING-CODE-SEGMENT")); | VERBOSE(("CALLfar_pm: NON-CONFORMING-CODE-SEGMENT")); |
| /* イシエャ p.119 4.8.1.1. */ | /* 荳句キサ p.119 4.8.1.1. */ |
| if (cs_sel->rpl > CPU_STAT_CPL) { | if (cs_sel->rpl > CPU_STAT_CPL) { |
| VERBOSE(("CALLfar_pm: RPL(%d) > CPL(%d)", cs_sel->rpl, CPU_STAT_CPL)); | VERBOSE(("CALLfar_pm: RPL(%d) > CPL(%d)", cs_sel->rpl, CPU_STAT_CPL)); |
| EXCEPTION(GP_EXCEPTION, cs_sel->idx); | EXCEPTION(GP_EXCEPTION, cs_sel->idx); |
| Line 415 CALLfar_pm_code_segment(const selector_t | Line 415 CALLfar_pm_code_segment(const selector_t |
| } | } |
| } else { | } else { |
| VERBOSE(("CALLfar_pm: CONFORMING-CODE-SEGMENT")); | VERBOSE(("CALLfar_pm: CONFORMING-CODE-SEGMENT")); |
| /* イシエャ p.120 4.8.1.2. */ | /* 荳句キサ p.120 4.8.1.2. */ |
| if (cs_sel->desc.dpl > CPU_STAT_CPL) { | if (cs_sel->desc.dpl > CPU_STAT_CPL) { |
| VERBOSE(("CALLfar_pm: DPL(%d) > CPL(%d)", cs_sel->desc.dpl, CPU_STAT_CPL)); | VERBOSE(("CALLfar_pm: DPL(%d) > CPL(%d)", cs_sel->desc.dpl, CPU_STAT_CPL)); |
| EXCEPTION(GP_EXCEPTION, cs_sel->idx); | EXCEPTION(GP_EXCEPTION, cs_sel->idx); |