| 1584 |
|
|
| 1585 |
if (!(e2 & DESC_CS_MASK) || !(e2 & DESC_C_MASK)) { |
if (!(e2 & DESC_CS_MASK) || !(e2 & DESC_C_MASK)) { |
| 1586 |
/* if not conforming code, test rights */ |
/* if not conforming code, test rights */ |
| 1587 |
if (dpl < cpl || dpl < rpl) |
if (dpl < cpl || dpl < rpl) |
| 1588 |
raise_exception_err(EXCP0D_GPF, selector & 0xfffc); |
raise_exception_err(EXCP0D_GPF, selector & 0xfffc); |
| 1589 |
} |
} |
| 1590 |
} |
} |
| 2152 |
sp_mask = get_sp_mask(ss_e2); |
sp_mask = get_sp_mask(ss_e2); |
| 2153 |
|
|
| 2154 |
/* validate data segments */ |
/* validate data segments */ |
| 2155 |
validate_seg(R_ES, cpl); |
validate_seg(R_ES, rpl); |
| 2156 |
validate_seg(R_DS, cpl); |
validate_seg(R_DS, rpl); |
| 2157 |
validate_seg(R_FS, cpl); |
validate_seg(R_FS, rpl); |
| 2158 |
validate_seg(R_GS, cpl); |
validate_seg(R_GS, rpl); |
| 2159 |
|
|
| 2160 |
sp += addend; |
sp += addend; |
| 2161 |
} |
} |