Intel 253668-032US Webcam User Manual


 
5-24 Vol. 3
PROTECTION
segments B and C. The dotted line shows that a calling procedure in code segment A
cannot access call gate B.
The RPL of the segment selector to a call gate must satisfy the same test as the CPL
of the calling procedure; that is, the RPL must be less than or equal to the DPL of the
call gate. In the example in Figure 5-15, a calling procedure in code segment C can
access call gate B using gate selector B2 or B1, but it could not use gate selector B3
to access call gate B.
If the privilege checks between the calling procedure and call gate are successful, the
processor then checks the DPL of the code-segment descriptor against the CPL of the
calling procedure. Here, the privilege check rules vary between CALL and JMP
instructions. Only CALL instructions can use call gates to transfer program control to
more privileged (numerically lower privilege level) nonconforming code segments;
that is, to nonconforming code segments with a DPL less than the CPL. A JMP instruc
-
tion can use a call gate only to transfer program control to a nonconforming code
segment with a DPL equal to the CPL. CALL and JMP instruction can both transfer
program control to a more privileged conforming code segment; that is, to a
conforming code segment with a DPL less than or equal to the CPL.
If a call is made to a more privileged (numerically lower privilege level) noncon-
forming destination code segment, the CPL is lowered to the DPL of the destination
code segment and a stack switch occurs (see Section 5.8.5, “Stack Switching”). If a
call or jump is made to a more privileged conforming destination code segment, the
CPL is not changed and no stack switch occurs.